Kommentare in Fluid

Leider gibt es keine einfache Möglichkeit Kommentare in Fluid Templates auszugeben, welche nach der Ausgabe an den Browser nicht im HTML vorhanden sind. Einzige mir bekannte Möglichkeit ist momentan einen eigenen ViewHelper zu erstellen. Der ViewHelper selbst macht recht wenig:

class Tx_MyExtension_ViewHelpers_CommentViewHelper extends
    Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
  public function render() {}
}

Im View muß man natürlich wie hoffentlich bekannt eine passende Namespace-Anweisung am Anfang der Datei definieren (z. B. {namespace my=Tx_MyExtension_ViewHelpers}). Anschließend kann man den ViewHelper folgendermaßen verwenden:

<my:comment>Mein Kommentar</my:comment>

Maskierung in Fluid

Falls jemand mal in die Situation kam, folgende Javascript Notation in einem Fluid-Template zu verwenden, hat schnell gemerkt, dass das nicht funktioniert:

var foo={var1:'variable1', var2:'variable2'};

Es gibt die Möglichkeit Bereiche im Template zu maskieren. Das macht man einfach mit der CDATA-Anweisung:

<![CDATA[ var foo={var1:'variable1', var2:'variable2'}; ]]>

Typoscript manuell auslesen

Kurznotiz: Falls z. B. auf Typoscript manuell zugegriffen werden muß:

$GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_myextension."];

Funktioniert auch mit Extbase. Dort geht es auch kürzer:

$this->settings['meinBereich']['meinSchluessel']

Und der Vollständigkeit wegen, sei noch erwähnt, dass man auch aus einer Flexform heraus Settings hinterlegen kann (siehe Typo3 Extbase: Werte aus der Flexform lesen)

Extbase über Typoscript aufrufen

Kurznotiz: Extbase über Typoscript aufrufen

popup = PAGE
popup {
  typeNum = 100
  10 = USER
  10 {
    userFunc = tx_extbase_core_bootstrap->run
    pluginName = Pi1
    extensionName = MyExtensionName
    controller = MyControler
    action = myAction
    settings =< plugin.tx_myextensionname.settings
    persistence =< plugin.tx_myextensionname.persistence
    view =< plugin.tx_myextensionname.view
  }
  config {
    disableAllHeaderCode = 1
    additionalHeaders = Content-type:text/html
    xhtml_cleaning = 0
    admPanel = 0
  }
}

Der Aufruf kann über die URL getestet werden, indem man den Parameter type=100 anhängt.

Vererbung von Inhalten in Typo3 und TemplaVoilà

Falls man mit TemplaVoilà eine Inhaltsspalte vererben möchte:

10 = CONTENT
10.table = tt_content
10.select.where = colPos=3
10.select.languageField = sys_language_uid
# die eigentliche Slide-Anweisung
10.slide = -1
# optional
10.slide {
# Sammeln aller Einträge in der Rootline
  collect = -1
  collectReverse = 1
}
10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->

Typo3 – Baumstruktur im Backend

Nur eine Kurznotiz als Merkhilfe. Dies funktioniert seit Typo3 4.5.x (renderMode) und ist bis dato nicht dokumentiert.

'categories' => array(
       'exclude' => 0,
       'l10n_mode' => 'mergeIfNotBlank',
       'label' => $lPath.':foo',
       'config' => array(
         'type' => 'select',
         'renderMode' => 'tree',
         'treeConfig' => array(
         	 'parentField' => 'parent',
           'appearance' => array(
             'expandAll' => true,
             'showHeader' => true,
           ),
         ),
         'foreign_table' => 'foreign_table',
         'size' => 5,
         'autoSizeMax' => 20,
         'minitems' => 0,
         'maxitems' => 20,
      ),
    ),

Noch eine kleine Anmerkung zur Filterung des Baumes: falls man den Baum in verschiedenen Sysordnern verwendet kann man auch wunderbar mit der aktuellen PID Filtern. Dazu kann man “foreign_table_where” verwenden:

'foreign_table_where' => 'AND myTable.pid = ###CURRENT_PID###'