Moin Leute,
mit dem Kickstarter hab ich mir für die ersten Gehversuche eine Extension angelegt, welche ich auch als Plugin auswählen kann. Dazu hab ich mir noch eine FlexForm gebaut um seperat Informationen in einem Content-Element speichern zu können. Soweit sogut.
Nun möchte ich die Daten aus dem jeweiligen Content-Element ausgeben können. Dazu hab ich ein kleines .html Template mit den Markern. 1. Frage: Geht das mittlerweile auch mit Fluid und wenn ja, gibt es ein geeignetes Tutorial?
2. Frage, gibt es ein einfaches Tutorial, dass mir erklärt, wie ich die Inhalte aus dem FlexForm-Sheet an die Marker im HTML weiterreichen kann?
Freue mich über Ideen.
Ich kann die mal zeigen, wie ich sowas mache. Habe mir eine Funktion geschrieben, die die Flexform-Werte ins $this->conf überträgt und somit ggf. die TypoScript-Werte überschreibt.
Die Funktion sieht so aus:
/**
* Sets one flexform-value (if set)
*
* @param string $pre: pre-name
* @param string $name: name
* @param string $sheet: sheet
* @param int $type: 0-3
*/
function setFlexValue($pre,$name,$sheet,$type) {
$value = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], $name, $sheet);
$new = '';
if ($type==3) { // select text
if ($value!='TS') $new = $value;
} else if ($type==2) { // enter text
if ($value || $value==='0' || $value===0) $new = $value;
} else if ($type==1) { // enter number
if ($value || $value==='0' || $value===0) $new = intval($value);
} else { // select number
if ($value!='TS' && ($value || $value==='0' || $value===0)) $new = intval($value);
}
if ($new || $new==='0' || $new===0) {
if ($type==3 && ($new==='0' || $new===0)) $new = '';
if ($pre) {
$this->conf[$pre.'.'][$name] = $new;
} else {
$this->conf[$name] = $new;
}
}
}
Sie wird so benutzt:
$this->pi_initPIflexForm(); // Init FlexForm configuration for plugin
$this->setFlexValue('','finalPage', 'sDEF', 1);
$this->setFlexValue('email','send_admin', 'sEMAIL', 0);
$this->setFlexValue('email','send_user', 'sEMAIL', 0);
$this->setFlexValue('email','admin_subject', 'sEMAIL', 2);
Die Kommentare in der Funktion sollten klar machen, wie man sie aufrufen muss.
Die erhaltenen Variablen gibt man dann so ans Fluid-Template weiter:
$renderer->assign('finalPage', $this->conf['finalPage']);