Templateauswahlt über Flexform
| Autor | Nachricht |
|---|---|
|
Verfasst am: 22. 02. 2010 [16:05]
|
|
|
Skyhead
Themenersteller
Dabei seit: 11.02.2008
Beiträge: 32
|
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 [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 22.02.2010 um 21:22.] |
|
Verfasst am: 23. 02. 2010 [19:23]
|
|
|
Skyhead
Themenersteller
Dabei seit: 11.02.2008
Beiträge: 32
|
Hat denn niemand eine idee? Hier ein ausschnitt aus meiner Flexform: PHP <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 |
|
Verfasst am: 24. 02. 2010 [08:15]
|
|
|
BlackPixel
Dabei seit: 22.04.2005
Beiträge: 193
|
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 |
|
Verfasst am: 24. 02. 2010 [11:49]
|
|
|
Skyhead
Themenersteller
Dabei seit: 11.02.2008
Beiträge: 32
|
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: PHP 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###"<img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />;
# 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: HTML <h3>zwei Spalten</h3> <!-- ###ZWEISPALTEN### begin --> <div class="box"> Template: ###TEMPLATE###<br> </div> <!-- ###ZWEISPALTEN### end --> Mfg Skyhead |
|
Verfasst am: 25. 02. 2010 [10:33]
|
|
|
ammannd
Dabei seit: 29.01.2006
Beiträge: 149
|
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: PHP if (($template = $this->pi_getFFvalue($cObjData, 'template', 'sDEF')) == "volle Breite"<img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" /> {
$template['total'] = $this->cObj->getSubpart($this->template,"###EINSPALTIG###"<img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />;
}else {
$template['total'] = $this->cObj->getSubpart($this->template,"###ZWEISPALTIG###"<img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />;
}anschliessend musst du die maker setzen und mit dem korrekten Befehl ersetzen. lies doch dazu einfach mal hier nach: wiki.typo3.org/index.php/Extension_Development,_using_HTML-Templates |
|
Verfasst am: 25. 02. 2010 [12:08]
|
|
|
Skyhead
Themenersteller
Dabei seit: 11.02.2008
Beiträge: 32
|
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 |
|
Verfasst am: 25. 02. 2010 [12:12]
|
|
|
ammannd
Dabei seit: 29.01.2006
Beiträge: 149
|
*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...! |



