Hallo Mirko,
>Hi,
>
>Blöcke funktionieren in Flexmodulen ganz gut, es sei denn man will sie im
>Editmode untereinander und Savemode nebeneinander anordnen, oder?
Jein :)
[..]
>Hat jemand eine Idee wie man das richtig macht?
Ja ich,
>Das Mini-Template und 2 Mini-Flexmodule habe ich mal angehängt.
Sehr gut das Problem auf den Punkt gebracht!
Im Flexmodul liegt der Hase begraben. Was Du bei dem Flexmodul-Aufruf
richtig gemacht hast, hast Du bei den Imperia-Bloecken vergessen.
Zum Verstaendnis des Templatprozessors hier dein Template
#IF ("<!--XX-editmode-->")
<!-- 1. Flexsteuerung -->
<!--INSERT_FLEXMODULE_COMPACT:INDEX=0:VALIDCODE=10-->
<hr/>
<!-- 2. Flexsteuerung -->
<!--INSERT_FLEXMODULE_COMPACT:INDEX=1:VALIDCODE=10-->
#ELSE
<table border="1">
<tr>
<td valign="top">
<!--INSERT_FLEXMODULE_COMPACT:INDEX=0:VALIDCODE=10-->
</td>
<td valign="top">
<!--INSERT_FLEXMODULE_COMPACT:INDEX=1:VALIDCODE=10-->
</td>
</tr>
</table>
#ENDIF
nun werden die FLEXMODULE expandiert und daraus wird
#IF ("<!--XX-editmode-->")
<!-- 1. Flexsteuerung -->
<!--INSERT_FLEXMODULE_COMPACT:INDEX=0:VALIDCODE=10-->
<!--IMPERIABLOCK-->
...
<!--/IMPERIABLOCK-->
<hr/>
<!-- 2. Flexsteuerung -->
<!--INSERT_FLEXMODULE_COMPACT:INDEX=1:VALIDCODE=10-->
#ELSE
<table border="1">
<tr>
<td valign="top">
<!--INSERT_FLEXMODULE_COMPACT:INDEX=0:VALIDCODE=10-->
<!--IMPERIABLOCK-->
...
<!--/IMPERIABLOCK-->
</td>
<td valign="top">
<!--INSERT_FLEXMODULE_COMPACT:INDEX=1:VALIDCODE=10-->
</td>
</tr>
</table>
#ENDIF
und nun kommt (vor der Auswertung der #IF#ELSE#ENDIF-Blöcke) die Expansion
der Imperia-Blöcke. Dabei wird nun der obere und der untere ImperiaBlöcke
als unterschiedliche "Instanzen" angesehen.
Langer Rede kurzer Sinn, Wenn Du so Imperia-Blöcke benutzen willst hasst du
2 möglichkeiten:
1. Entweder einen "festen" Index vergeben.
<!--IMPERIABLOCK:INdEX=<!--FLEX_ID-->-->
sollte m.E. eigentlich funktionieren, habe es aber nicht ausgiebig
getestet.
2. (Meine Wahl) Du lagerst obigen Code in ein Perl-CodeInclude aus:
<!--CODEINCLUDE:FLexe.pl-->
Und FLexe.pl
use strict;
use vars qw($new $metainfo $mode);
if ($mode eq 'EDIT' ){
$new = <<EOT;
<!-- 1. Flexsteuerung -->
<!--INSERT_FLEXMODULE_COMPACT:INDEX=0:VALIDCODE=10-->
<hr/>
<!-- 2. Flexsteuerung -->
<!--INSERT_FLEXMODULE_COMPACT:INDEX=1:VALIDCODE=10-->
EOT
}else{
$new = <<EOT;
<table border="1">
<tr>
<td valign="top">
<!--INSERT_FLEXMODULE_COMPACT:INDEX=0:VALIDCODE=10-->
</td>
<td valign="top">
<!--INSERT_FLEXMODULE_COMPACT:INDEX=1:VALIDCODE=10-->
</td>
</tr>
</table>
EOT
}
Dann gibt es diese Probleme nicht.
HTH
Georg Mavridis
Imperia AG
| Thread (I7.0.1: Problem mit Block in Flexmodul) |
|
© 2001, 2002 marchive.pl Christian Lackas
[HOME]
[MARCHIVE]
[INDEX]
[IMPERIA]
[IMPRESSUM]
[DELTA]