Un petit correctif à appliquer à la méthode exposée ci-dessus...
Pour éviter l'affichage d'un message d'erreur en bas de page sur l'interface d'administration d'automne :
Citer:
Automne (TM) 4.0.0b1 error : : PHP Notice : Undefined variable: rowPosition line 71 of file D:\xampplite\htdocs\html\7.php
qui correspond à la ligne (première appel de la variable $rowPosition sur la page en cours) :
Code :
<?php $rowPosition = ($rowPosition == 'imgLeft') ? 'imgRight' : 'imgLeft';
il faut ajouter l'initialisation de la variable php dans le(s) modèle(s) de page utilisé(s) :
Code :
<body>
<?php $rowPosition = 'imgLeft'; ?>
...
Une autre solution plus facile à maintenir consiste à ajouter dans le code de la rangée un test d'existence de la variable (comme l'avait suggéré Sébastien dans son code...). On évite ainsi de devoir penser à ajouter le code proposé ci-dessus à tous les modèles de page susceptibles d'utiliser ce type de rangée.
Voici le code à insérer dans la rangée :
Code :
...
<?php
if (!isset($rowPosition)) {$rowPosition = 'imgLeft';}
$rowPosition = ($rowPosition == 'imgLeft') ? 'imgRight' : 'imgLeft';
echo '<div class="'.$rowPosition.' shadowR">'; ?>
...
Le code complet de la rangée devient donc :
Citer:
<row>
<br style="clear:both;" />
<block module="standard" type="image" id="image" maxWidth="300">
<?php
if (!isset($rowPosition)) {$rowPosition = 'imgLeft';}
$rowPosition = ($rowPosition == 'imgLeft') ? 'imgRight' : 'imgLeft';
echo '<div class="'.$rowPosition.' shadowR">'; ?>
<div class="shadowB">
<div class="shadowTR">
<div class="shadowBL">
<div class="shadowBR">
{{data}}
</div>
</div>
</div>
</div>
<?php echo '</div>'; ?>
</block>
<block module="standard" type="text" id="texte">
<div class="text">{{data}}</div>
</block>
<br style="clear:both;" />
</row>