From:<Georg.Mavridis@imperia.net>
Date:25.6.03 13:40
Subject:Re: I7.0.1: Problem mit Block in Flexmodul
Reply-To:<imperia-users@imperia.de>

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]