Bonjour à tous,
Je reviens vers vous après plus d'un an car j'ai encore un problème que je n'arrive pas à résoudre.
En effet j'ai un affichage vertical de plusieurs images et je souhaite un affichage horizontal, ça fait plusieurs semaine que je cherche une solution mais rien à faire.
Je pense avoir isolé la ligne qui génére cette mise ne forme, mais je ne comprend pas ce qu'il faut changer,

                <?php if ($this->_tpl_vars['records']['images']): ?>
            <?php $_from = $this->_tpl_vars['records']['images']; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array'); }if (count($_from)):
    foreach ($_from as $this->_tpl_vars['image']):
?>                  

J'ai potassé le manuel php pour les array, mais je n'y comprend plus rien. Bien sur je ne demande pas la solution toute faite mais peut-être une piste.
D'avance merci
Bertrandg17

9 réponses


Bonsoir,
Il nous faudrait l'intérieur du foreach pour vous aidez.

Bonsoir, plutot bonjour Carouge10,

Merci d'avoir répondu si rapidement

Voici le code complet

                <?php if ($this->_tpl_vars['records']['images']): ?>
            <?php $_from = $this->_tpl_vars['records']['images']; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array'); }if (count($_from)):
    foreach ($_from as $this->_tpl_vars['image']):
?>                  
          <p>
                    <?php if ($this->_tpl_vars['use_lightbox_display']): ?>
                        <a href="<?php echo $this->_tpl_vars['image']['imagepath']; ?>
" rel="lightbox-journey" title="<br><?php echo $this->_tpl_vars['records']['ad_title']; ?> annonces <?php echo $this->_tpl_vars['records']['villes']; ?> dans le d&eacute;partement <?php echo $this->_tpl_vars['records']['departement']; ?><br>">
                    <?php else: ?>
                        <?php if ($this->_tpl_vars['use_fancy_urls']): ?>
                            <a href="listings/main/image/<?php echo $this->_tpl_vars['records']['id']; ?>
/<?php echo $this->_tpl_vars['image']['imagepath']; ?>
">
                        <?php else: ?>
                            <a href="<?php echo $this->_tpl_vars['image']['imagepath']; ?>
">
                        <?php endif; ?>
                    <?php endif; ?>

<img src="<?php if ($this->_tpl_vars['records']['sold']): ?>image.php?pic=<?php endif; ?><?php echo $this->_tpl_vars['image']['imagethumbpath']; ?>
<?php if ($this->_tpl_vars['records']['sold']): ?>&amp;sold=1<?php endif; ?>" onmouseover='mainimage.src=this.alt;' title="<?php echo $this->_tpl_vars['records']['ad_title']; ?> annonces <?php echo $this->_tpl_vars['records']['villes']; ?> dans le d&eacute;partement <?php echo $this->_tpl_vars['records']['departement']; ?> <?php echo @IMAGE; ?> <?php echo smarty_function_counter(array(), $this);?>
" alt="image.php?pic=<?php echo $this->_tpl_vars['image']['imagepath']; ?>
&amp;width=<?php echo @MAIN_IMAGE_WIDTH; ?>
<?php if ($this->_tpl_vars['records']['sold']): ?>&amp;sold=1<?php endif; ?>" /><br><img src="images/image_enlarge.gif" border="0" alt="Cliquer sur l'image pour l'agrandir" title="Cliquer sur l'image pour l'agrandir" align="center"></a>
</p>

<?php endforeach; endif; unset($_from); ?>
            <?php else: ?>
                <p><img src="<?php if ($this->_tpl_vars['records']['sold']): ?>image.php?pic=<?php endif; ?>templates/<?php echo @TEMPLATE_DIR; ?>
/images/no_image.gif<?php if ($this->_tpl_vars['records']['sold']): ?>&amp;sold=1<?php endif; ?>" title="<?php echo $this->_tpl_vars['records']['ad_title']; ?> <?php echo @IMAGE; ?> <?php echo smarty_function_counter(array(), $this);?>
" alt="<?php echo $this->_tpl_vars['records']['ad_title']; ?> <?php echo @IMAGE; ?> <?php echo smarty_function_counter(array(), $this);?>
" /></p>
            <?php endif; ?>

Les images sont insérer dans des balises "p" qui sont des paragraphes.
Il vous faudrait revoir cette structure et passer en div pour pouvoir les moduler plus facilement quitte à crrée des bloc de div de x div
Exemple

<div class="ligne_1">
    <div class="img_1"></div><div class="img_2"></div><div class="img_3"></div>
</div>

Pourquoi ne pas afficher simplement les images avec un <br /> ?

<div class="ligne_1">
    <img src="" /><br /><img src="" /><br />...
</div>

@caoua : la ça reviens au même que le code actuelle alors qu'il veut un affichage horizontale

Bonjour Courouge10,
Malheureusement je n'arrive pas à modifier la structure pour l'appel des photos, elles ont toutes un nom différent. Je continue à chercher et à faire des tests.
Merci

@Carouge10,

oups pardon, c'est ma dysléxie qui revient !
Du coup, la même sans les <br />, ce qui revient à

<div class="ligne_1">
    <img src="" /><img src="" />...
</div>

étant donné que les balises <img> sont des éléments inlines, les images s'afficheront horizontallement !

La question qui demande pourquoi mettre des éléments inline dans des div pour les afficher horizontallement en spécifiant bien que les div des images doivent être en display : inline;, car par défaut, les div sont en display : block;, continue de se poser ?

Merci,
Je suis une vraie buse, comme je suis un petit vieux (59 ans) je n'y arrive pas. Merci tout de même pour vos précieux conseils mais je ne vais pas abuser de votre temps, je vais continuer à chercher.

@caoua : Je n'ai pas lu le code en détail et j'ai fait cela pour si besoin ajouter une description ou autre.