Hey Leute, was muss ich in meine Flexform schreiben, um auszuwählen, dass meine extension:
1. Inhaltselement 1 neben Inhaltselement 2 darstellt ?
2. Inhaltselement 1 über Inhaltselement 2 darstellt ?
meine HTML Datei hat zwei Bereiche, die dafür vorgesehen sind:
<!-- ###ZWEISPALTIG### begin -->
[...]
<!-- ###ZWEISPALTIG### end -->
<!-- ###EINSPALTIG### begin -->
[...]
<!-- ###EINSPALTIG### end -->
Es soll also über die Flexform ausgewählt werden, welchen Templatemarker die Extension benutzen soll. In welcher Datei muss ich noch etwas ändern und wie müsste diese Änderung aussehen?
Mfg Skyhead
Hat denn niemand eine idee?
Hier ein ausschnitt aus meiner Flexform:
<template>
<TCEforms>
<label>LLL:EXT:...</label>
<config>
<type>select</type>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">volle Breite</numIndex>
<numIndex index="1">volle Breite</numIndex>
</numIndex>
<numIndex index="1" type="array">
<numIndex index="0">zwei Spalten</numIndex>
<numIndex index="1">zwei Spalten</numIndex>
</numIndex>
</items>
<maxitems>1</maxitems>
<size>1</size>
</config>
</TCEforms>
</template>
was muss ich jetzt in meiner pi1/....php datei einfügen, damit er je nachdem welches selectfeld gewählt ist, dass er dann auch die richtigen Templatemarker benutzt?
Mfg Skyhead
Schau doch einfach in das Array rein wo die Flexform drin steht?! Alternativ empfehle ich diesen Artikel:
http://wiki.typo3.org/index.php/Extension_Development,_using_Flexforms
Vielen Dank für die Hilfe, aber bin leider immernoch nicht wirklich weiter gekommen!
habe jetzt in meiner "pi1/class.php" folgenden code drin stehen:
function main($content, $conf) {
$flexformWerte = $this->pi_initPIflexForm();
$cObjData = $this->cObj->data['pi_flexform'];
$template = $this->pi_getFFvalue($cObjData, 'template', 'sDEF');
# Get the parts out of the template
$template = array();
$template["total"] = $this->cObj->getSubpart($this->template,"###ZWEISPALTEN###");
# create the content by replacing the marker in the template
$markerArray["###TEMPLATE###"] = $template;
Dies ist einfach nur mal um zu sehen, welchen wert mir die Selectbox liefert.
Leider liefert sie mir keinen wert! Woran kann das liegen?
Das HTML-Template dazu sieht so aus:
<h3>zwei Spalten</h3>
<!-- ###ZWEISPALTEN### begin -->
<div class="box">
Template: ###TEMPLATE###<br>
</div>
<!-- ###ZWEISPALTEN### end -->
Mfg Skyhead
na, einerseits musst du halt überprüfen, welchen wert dir das flexform zurückgibt, und je nachdem das eine oder das andere template laden ($this->cObj->getSubpart(...)). also etwa so:
if (($template = $this->pi_getFFvalue($cObjData, 'template', 'sDEF')) == "volle Breite") {
$template['total'] = $this->cObj->getSubpart($this->template,"###EINSPALTIG###");
}else {
$template['total'] = $this->cObj->getSubpart($this->template,"###ZWEISPALTIG###");
}
anschliessend musst du die maker setzen und mit dem korrekten Befehl ersetzen. lies doch dazu einfach mal hier nach: http://wiki.typo3.org/index.php/Extension_Development,_using_HTML-Templates
hey danke für deine antwort.
aber mein Problem lag an einer anderen stelle und zwar hab ich meine Variable, in der ich den wert ausgegeben haben möchte "template" genannt und auch die funktion, in der er sich das HTML Template laden soll "template" genannt. Damit hat er immer wieder alles überschrieben. Hab jetzt einfach die Variable umgenannt und schon funktioniert alles 😉
Mfg Skyhead
*lol* manchmal ist die lösung so einfach... ich muss ehrlich sein, ich habe deinen codeschnipsel nicht wirklich angeschaut und schon anhand von diesem sollte es ja klar sein! 😉
dann kann man das thema ja als gelöst markieren...!