Page-Condition / TypoScript Conditions in TemplaVoilà Datenstruktur

Montag, 25. Juni 2012

Ein bestimmter Button oder Inhalt soll nur angezeigt werden, wenn der Benutzer im Frontend eingeloggt ist. Problem: TemplaVoilà läßt keine Page-Conditions im TypoScript zu. Es geht aber trotzdem: Man muss nur das TypoScript mit der Condition-Klausel auslagern – und genau zu diesem Zweck gibt es den Tag “TypoScriptObjPath” in der TemplaVoilà Datenstruktur.

Die entsprechende Stelle im DataStructure XML des TemplaVoilà Datensatzes. Hier ist zwar der Typ auf “Bild” eingestellt worden und zeigt das normale Upload-Feld für ein Bild, aber die Verarbeitung des Bildes ist durch das Tag “TypoScriptObjPath” auf das TypoScript lib.fce_bike_images augelagert:

...
<field_bike_image type="array">
   <tx_templavoila type="array">
      <title>Bild vom Fahrrad</title>
      <sample_data type="array">
         <numIndex index="0"></numIndex>
      </sample_data>
 
      <eType>image</eType>
 
      <TypoScriptObjPath>lib.fce_bike_images</TypoScriptObjPath>
 
      <proc type="array">
         <int>0</int>
         <HSC>0</HSC>
         <stdWrap></stdWrap>
      </proc>
      <preview></preview>
   </tx_templavoila>
   <TCEforms type="array">
      <label>Bild vom Fahrrad</label>
      <config type="array">
         <type>group</type>
         <internal_type>file</internal_type>
         <allowed>gif,png,jpg,jpeg</allowed>
         <max_size>5000</max_size>
         <uploadfolder>uploads/tx_templavoila</uploadfolder>
         <show_thumbs>1</show_thumbs>
         <size>2</size>
         <maxitems>10</maxitems>
         <minitems>0</minitems>
      </config>
   </TCEforms>
</field_bike_image>
...

Das TypoScript lib.fce_bike_images sitzt in einer Template Extension – und genau dort sind dann auch Page-Conditions erlaubt:

 
lib.fce_bike_images = COA
lib.fce_bike_images {
  10 = IMAGE
  10 {
    file {
      import = uploads/tx_templavoila/
      import.current = 1
      import.listNum = 0
      maxW = 650
    }
    imageLinkWrap = 1
    imageLinkWrap {
      enable = 1
      typolink {
         parameter {
            cObject = IMG_RESOURCE
            cObject.file.import.data = TSFE:lastImageInfo|origFile
            cObject.file.maxW = 950
         }
         ATagParams = class="bikezoom"
      }
    }
  }
  
  20 = IMG_RESOURCE
  20.file {
    import = uploads/tx_templavoila/
    import.current = 1
    import.listNum = 1
  }
  20.stdWrap.wrap = <a href="|" class="bikemaxzoom">Zoom</a>
  20.stdWrap.required = 1
  
  30 = TEXT
  30.value = <!-- Not logged in -->
}
 
[loginUser = *]
lib.fce_bike_images {
  30 >
  30 < .20
  30.file.import.listNum = 2
  30.stdWrap.wrap = <a href="|" class="download_hires">&gt; Download</a>
}
[global]