Vue slideshow avec imagefield multi-image inclus dans node.tpl

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai u type de contenu dans lequel j'upload des images afin d'en faire un diaporama.
Donc une fois les images envoyées, elles sont traitées avec imagecache et affichées via view slideshow.
Pour cela j'ai en champ le imagefield, et en argument le nid.

Viens ensuite l'inclusion dans le node.tpl dédié,et je voudrais rendre cela dépendant de la présence ou non d'images dans imagefield.

Voici mon code de départ:

<?php
//Includes pour afficher vue slideshow multimage sur fiche formation
if($node->field_diapo_fiche_flash['0']['view']): ?>

    <div id="diapo_fiche">
        <?php foreach ($node->field_diapo_fiche_flash as $item) : ?>
               <?php  print views_embed_view('Diaporama_slideshow_multimage','default',$view_args); ?>
        <?php endforeach; ?>
    </div>
<?php endif; ?>

Je m'inspire d'un code qui marche bien avec les filefield classiques, je n'ai jamais essayé avec l'inclusion des vues.Cela fonctionne mais view affiche 4 fois l'image ( j'ai 4 champs) alors que je n'ai envoyé que 2 images.

Le souci vient surtout du test de la présence d'image.Ensuite il faudra que je règle celui de la multiplication des images (je pense que ça vient de view)

Merci

Forum : 
Version de Drupal : 

la duplication vient de mon code, car si je laisse :

<?php
 
print views_embed_view('Diaporama_slideshow_multimage','default',$view_args);
?>

c'est parfait, à l'exception du fait qu'il affiche les champs vides , je n'ai mis que 2 images sur 4 possibles. réglage de view ?

actuellement j'inclus le resultat dans un node.tpl via :

<?php
 
print $node->field_image_deco_lycee[0]['view']
?>

je n'utilise pas de views.tpl...peut etre le devrais je ?
mais dans ce cas voila ce qui est proposé :

<?php
// $Id: views-slideshow.tpl.php,v 1.1.2.2.2.4 2010/02/23 22:49:57 psynaptic Exp $

/**
 * @file
 * Default views template for displaying a slideshow.
 *
 * - $view: The View object.
 * - $options: Settings for the active style.
 * - $rows: The rows output from the View.
 * - $title: The title of this group of rows. May be empty.
 *
 * @ingroup views_templates
 */
?>

<?php print $slideshow; ?>

du coup pas sur que l'on puisse s'appuyer dessus

vu comme ça, effectivement :p ... j'y réfléchis qd meme
Et comme ça ?

<?php if($node->field_image_deco_lycee[0]['view']): ?>
<?php print $node->field_image_deco_lycee[0]['view'] ?>
<?php endif; ?>

(si il existe, tu me l affiche, sinon rien)

en fait j'ai deja tenté ce genre la, mais lui comprend "si il y a une image alors j'affiche tout", il n'a pas l'air de checker le nombre reel d'image, c'est oui ou non, pas peut etre..du coup il y a des vides...sauf à mettre le nombre max d'images bien sur..

les champs vides ne sont pas affichés mais je voudrais arriver à afficher la DIV seulement si il y a des images , ainsi le code simple fonctionne :

   <div id="diapo_fiche">
              <?php  print views_embed_view('Diaporama_slideshow_multimage','block_1',$view_args);/<em>affiche view slideshow diapo</em>/ ?>
     
    </div>

mais le conditionnel n'affiche rien alors qu'il y a des images dans les champs

<?php
//Includes pour afficher vue slideshow multimage sur fiche formation
if($node->field_diapo_fiche_flash['0']['view']): ?>

    <div id="diapo_fiche">
        <?php foreach ($node->field_diapo_fiche_flash as $item) : ?>
               <?php  print views_embed_view('Diaporama_slideshow_multimage','block_1',$view_args);/<em>affiche view slideshow diapo</em>/ ?>
        <?php endforeach; ?>
    </div>
<?php endif; ?>

comment tester ces champs et afficher la DIV et la vue uniquement si il y a des images dans les champs ?

merci

Cela va mieux avec ce code, mais j'ai les champs vides affichés..grrr, pourtant j'ai coché "ne pas affiché si vide"...

<?php

if($node->field_diapo_fiche_flash[0]['view']
        OR
$node->field_diapo_fiche_flash[1]['view']
        OR
$node->field_diapo_fiche_flash[2]['view']
        OR
$node->field_diapo_fiche_flash[3]['view']):?>
<!-- Diapo deco fiche formation -->
    <div id="diapo_fiche">
      
               <?php  print views_embed_view('Diaporama_slideshow_multimage','block_1',$view_args); ?>
      
    </div>
<?php endif; ?>