Cycle2

La seconde version de la librairie Javascript “jQuery Cycle”, qui permet de produire des diaporamas, se nomme “Cycle2” : http://jquery.malsup.com/cycle2/.

Voici cette nouvelle librairie mise en plugin pour SPIP.

Si vous utilisez déjà “jQuery Cycle”, vous pouvez le garder tel qu’il est. Cette version est à considérer comme un nouveau diaporama.

Bien que les modèles et certains paramètres aient été conservés pour tenter de préserver une certaine compatibilité, le rendu n’est pas assuré entre la version 2 et cette version 3.

Le principal avantage de cette nouvelle version : l’affichage est adapté aux différentes largeurs d’écrans (responsive design) selon l’interface du site.

Il est nécessaire d’utiliser un squelette qui respecte la norme HTML5.

Pour une utilisation courante, le diaporama (slider pour les anglophones) s’insère dans les textes par le modèle <articleN|cycle> où “N” est le numéro de l’article dont on veut afficher les images.

Pour la compatibilité avec le plugin “jQuery Cycle” le modèle <sjcycleN> est tout à fait fonctionnel. La différence est que ce dernier n’affiche les images de l’article “N” que lorsqu’il est inclus dans l’article “N” lui-même.

Paramétrage général

Si un paramètre de la librairie a été implémenté, il l’a été fidèlement, pour rester dans une logique simple par rapport à Cycle2. On retrouve toute la documentation de référence ici : http://jquery.malsup.com/cycle2/api/.

Par exemple : data-cycle-random=true est un paramétrage du plugin d’origine qui fait tourner les images dans un ordre aléatoire. Ce paramètre est transposé dans le plugin SPIP, et on lui donne une valeur à l’insertion du modèle comme ceci : <articleN|cycle|random=true>.

Si le paramétrage général du plugin prévoit déjà l’ordre aléatoire, toutes les insertions de <articleN|cycle> joueront le diaporama dans un ordre aléatoire. Mais dans ce cas, il est aussi possible d’insérer un diaporama sans ce paramètre avec l’écriture <articleN|cycle|random=false>-

La page de configuration (dans l’administration de SPIP, une fois le plugin installé comme les autres, se rendre dans “Squelettes > Cycle2”, accès limité aux webmestres du site) offre un certains nombre d’options qui s’appliqueront à toutes les inclusions du modèle <articleN|cycle> :

  • Largeur maximum (par défaut 640) : toutes les images seront retaillées en largeur à cette valeur, en pixels. Les diaporamas étant en taille proportionnelle, ils s’adapteront à la largeur définie par l’interface du site, mais dans la limite définie ici.
    • |largeurmax=350
  • Hauteur maximum : en laissant le champ vide, les images seront toujours à la largeur maximum possible. Sinon toutes les images seront retaillées en hauteur à cette valeur, en pixels. Si la largeur de l’image n’est pas suffisante, la couleur de fond configurée sera visible. La valeur de couleur de fond “transparent” rendra par contre un fond blanc.
    • |hauteurmax=240
  • Hauteur automatique : Choisissez ici la façon dont est déterminée la hauteur du diaporama. Par défaut (le champ vide), la hauteur de la première image sert de valeur, “calc” utilisera la hauteur de la plus haute image, et “container” ajustera la hauteur du diaporama à la hauteur de l’image courante. Il est possible de forcer le ratio hauteur/largeur avec une double valeur, par exemple “600:400”. La valeur “false” empêchera le script de gérer la hauteur automatiquement.
    • |autoheight=600:400 ou |autoheight=container
  • Temps d’affichage pour chaque image (en millisecondes) : choisir “0” pour faire un diaporama manuel (cf les boutons “précédent” et “suivant” pour activer le défilement manuel).
    • |timeout=4000
  • Temps de transition entre chaque image (en millisecondes)
    • |speed=1000
  • Temps d’attente : Temps d’attente avant le départ du diaporama (en millisecondes).
    • |delay=6000
  • Effet de transition : voir les exemples en ligne - fade - fadeout - scrollHorz - scrollVert - flipHorz - flipVert - shuffle - tileSlide - tileBlind - carousel - none
    • exemple : |fx=scrollHorz
    • pour |fx=tileSlide et |fx=tileBlind, option supplémentaire pour jouer l’animation verticalement
    • pour |fx=carousel, options supplémentaires pour :
      • choisir le nombre de diapositives affichées simultanément (carousel-visible) : |carouselvisible=3
      • le décalage (en pixels) de la première diapositive (carousel-offset) : |carouseloffset=30
      • définir la dimension des vignettes. Largeur (carousel horizontal) ou hauteur (carousel vertical) d’une diapositive (carousel-slide-dimension) : |carouselslidedimension=130
      • jouer le déplacement verticalement (carousel-vertical) : |carouselvertical=true ou |carouselvertical=false
      • adapter le carousel à la mise en page, seulement si horizontal (carousel-fluid) : |carouselfluid=true ou |carouselfluid=false
  • À l’envers : Joue le diaporama à rebours :
    • |reverse=true ou |reverse=false
  • Synchronisation des animations, l’arrivée d’une image est simultanée avec le départ de la précédente :
    • |sync=true ou |sync=false
  • Pause au survol : |pauseonhover=true ou |pauseonhover=false
  • Message lors de la pause au survol, laisser vide pour ne rien afficher :
    • |pauseonhovercontent=en pause
  • Ordre aléatoire :
    • |random=true ou |random=false
  • Bouton “suivant” : cibler un bloc html par sa classe ou son identifiant. Par défaut “.cycle-next” place une flèche à droite au survol de l’image. [1] :
    • |next=.cycle-next
  • Bouton “précédent” : cibler un bloc html par sa classe ou son identifiant. Par défaut “.cycle-prev” place une flèche à gauche au survol de l’image. [1] :
    • |prev=.cycle-prev
  • En boucle, à propos des boutons “précédent” et “suivant” : à la fin du diaporama, ne pas revenir au début, ou bien au début, ne pas suivre à la fin (n’empêche pas le diaporama automatique de tourner en continu) :
    • |allowwrap=true ou |allowwrap=false
  • Départ arrêté :
    • |paused=true ou |paused=false
  • Pagination : cibler un bloc html qui contiendra la pagination en nommant sa classe ou son identifiant css. Par défaut “.cycle-pager” place les boutons par-dessus l’image. [1] :
    • |pager=.cycle-pager
  • Afficher une légende pour chaque image [1]. Par défaut “.cycle-caption” :
    • |caption=.cycle-caption. Il est possible de choisir le contenu de cette légende (cf la documentation) :
    • Afficher le décompte/le total : par défaut
    • Afficher le titre du document : |captiontemplate="{{alt}}"
    • Sur-mesure : |captiontemplate="images {{slideNum}} sur {{slideCount}}"
    • Sur-mesure : |captiontemplate=image {{slideNum}} : {{cycleTitle}} {{cycleDesc}}
  • Afficher une seconde légende en surimpression [1], un calque noir/transparent sur le bas de l’image pour afficher une légende avec Titre et Description de l’image :
    • |overlay=.cycle-overlay
  • Format de la légende en surimpression, par défaut le titre et la description de l’image, vous pouvez personnaliser le contenu suivant les exemples :
    • |overlaytemplate="<span class=left>&nbsp;<br>{{slideNum}} / {{slideCount}}</span>{{date}} - {{title}}<br>{{desc}}"
  • Choisir une couleur de fond, une valeur de couleur hexadécimale avec le “#”, ex “#C5E41C”. La valeur “transparent” rétabli la transparence. :
    • |backgroundcolor=#b5b5b5
    • en installant le plugin Palette vous pourrez piquer la couleur sur une palette.

Paramètres tooltip et mediabox

  • Info au survol avec Tooltip : peut être surchargé lors de l’inclusion avec |tooltip=oui ou |tooltip=non
  • Afficher les caractéristiques techniques de l’image : peut être surchargé lors de l’inclusion avec |tooltip_carac=oui ou |tooltip_carac=non
  • Mediabox : ouvre l’image d’origine suivant vos paramétrages de la mediabox (dans l’administration : Squelettes > Boîte multimédia. Peut être surchargé lors de l’inclusion avec |mediabox=oui ou |mediabox=non

Inclure le modèle <articleN|cycle>

On l’a déjà vu plus haut, pour une utilisation courante, le diaporama s’insère dans les textes par le modèle <articleN|cycle> où “N” est le numéro de l’article dont on veut afficher les images. On peut insérer ce modèle dans n’importe quel autre article que l’article N lui-même.

Chaque paramètre de la configuration générale est actif et en même temps corrigeable lors de l’inclusion. (cf. plus haut pour chacun d’eux)
En dehors de ces paramètres généraux, voici quelques paramètres optionnels pour ce modèle :

Alignement dans le texte

Comme un autre document, on peut aligner le diaporama : |left, |right ou |center comme ceci <articleN|cycle|left>
S’il n’est pas précisé, l’alignement est “centré”. L’effet rendu dépendra de la valeur saisie pour le paramètre “Largeur maximum” et de l’interface du site. L’alignement flottant est intéressant si le diaporama est significativement moins large que le texte lui-même.


Choisir les images
<articleN|cycle|docs=1,5> fait tourner les images 1 et 5 de l’article “N” en diaporama, dans l’ordre du titre des images.
N” n’est pas obligatoire. On peut maintenant écrire <article|cycle|docs=1,2,3,6,9> pour demander les images 1,2,3,6,9 même si elles sont liées à des articles différents, voir des rubriques ou d’autres objets.

Attention : dans le cas d’une utilisation dans un squelette, l’écriture diffère :
[(#MODELE{article_cycle,id_article=N,docs=21|22|24})]
ou
[(#MODELE{article_cycle,docs=21|22|24})]

Plusieurs diaporamas par page
On peut inclure plusieurs diaporamas par page de la même façon :
<articleX|cycle>
<articleY|cycle>
<articleZ|cycle>

Dans ce cas, si les boutons “suivant/précédent” sont activés dans la configuration générale, ils actionneront tous les diaporamas en même temps. Pour corriger cet effet, il est préférable de personnaliser chaque diaporama comme ceci :

<articleN|cycle|prev=.pre1|next=.suiv1>
<a href="#" class="pre1">précédent</a>
<a href="#" class="suiv1">suivant</a>
<articleN|cycle|prev=.pre2|next=.suiv2>
<a href="#" class="pre2">précédent</a>
<a href="#" class="suiv2">suivant</a>
<articleN|cycle|prev=.pre3|next=.suiv3>
<a href="#" class="pre3">précédent</a>
<a href="#" class="suiv3">suivant</a>

Encore faut-il ensuite styler ces balises HTML aux couleurs de votre site...

Paramètre “lien_parent”
|lien_parent=oui
Crée un lien sur chaque image vers l’objet auquel elle est liée, que ce soit les images d’un seul article, ou bien sélectionnées individuellement |docs=1,2,3,6,9. Si une image est liée à plusieurs objets, ce sera le dernier en date qui sera utilisé.

Paramètres “lien_article” et “forcer_lien_reference”

<articleN|cycle|lien_article=XXX|forcer_lien_reference=oui>


Permet de poser un lien sur le diaporama vers un article, celui qui contient les images ou un autre. Dans le cas d’un site multilingue, fournir l’id de l’article de référence, le modèle se charge de trouver l’id de l’article correspondant à la langue du visiteur. Cette option désactive l’ouverture vers une box. Si l’article n’existe pas dans la langue courante on met ou pas un lien vers l’article de référence suivant que le paramètre forcer_lien_reference soit défini ou pas.

Exemple dans le cas d’une insertion dans un squelette sur une page sommaire :
-  [(#MODELE{article_cycle,id_article=16,lien_article=171})] : diaporama sur toutes les images de l’article 16 avec un lien vers l’article 171 (ou sa traduction)
-  

[(#MODELE{article_cycle,id_article=16,lien_article=171|forcer_lien_reference=oui})]

: c’est pareil sauf que le lien ne se fera pas sur la traduction même si elle existe.


Paramètres “liens_individuels”
<articleN|cycle|liens_individuels=article>
Permet de poser un lien sur chaque image du diaporama vers un article, une rubrique ou un site externe suivant la valeur du paramètre (article, rubrique, externe). Si la valeur vaut article ou rubrique, l’identifiant de l’objet est pris dans le champ descriptif de chaque image. Si la valeur vaut externe, le champ descriptif de chaque image doit contenir un lien http. Cette option désactive l’ouverture vers une box.

Exemple :
-  <article16|cycle|center|liens_individuels=article> : diaporama sur toutes les images de l’article 16 avec sur chaque image un lien vers l’article dont l’identifiant est contenu dans le descriptif de l’image.

Paramètre “limite” :
<articleN|cycle|limite=3>
Sortira les trois premières images de l’article “N” dans le diaporama.

Diaporama des images d’une rubrique

Le modèle rubrique_cycle.html est fait pour ça.
<rubriqueN|cycle> où “N” est l’identifiant de la rubrique concernée.
Pour compatibilité, le modèle sjcycle_rubrique.html est conservé et permet d’inclure <sjcycle6|rubrique>

Diaporama des sites

Le modèle sjcycle_sites.html est conservé et transposé pour cette version du plugin.

Diaporama des albums

Le plugins Albums permet de regrouper des documents.
L’inclusion de <albumN|cycle> affiche un diaporama des images de l’album N.

Footnotes

[1Peut aussi prendre la valeur de la classe ou de l’identifiant (id) de n’importe quelle balise HTML... astuce : <articleN|cycle|next=.suivante><a href="#" class="suivante">avance rapide</a> dans un texte placera le bouton d’avance rapide sous l’image.

Discussion

43 discussions

  • 4
    Christophe Noisette

    Salut
    j’ai par mégarde supprimer ce plugin. Je l’ai donc réinstallé et depuis il a un comportement bizarre. Les photos s’enchainent à toute vitesse et je ne peux rien controler.
    Voici un exemple de page https://lairederien.net/915
    J’ai pourtant chercher à comprendre avant de vous écrire... je deviens un peu chèvre, j’avoue. Merci pour vos conseils à venir.
    Je suis en spip 3.2.1 et j’utilise la version 3.5 de sjcycle.
    Elle est notée en test, est-ce ceci ? Aurais je mis une version trop récente ?
    Christophe.

    • Christophe Noisette

      En remettant la version 3.4.21 le diapo remarche... bonne journée. C.

    • En effet, je confirme, la version 3.4.21 fonctionne très bien en spip4.
      Il y a donc un souci avec la version 3.5.0

    • robin dominique

      bonjour, suite à vos information j’ai tenté de remplacer la version 3.5 par la version 3.4 21. Je l’ai installée manuellement dans le dossier plugin. Il s’est affiché comme plugin incompatible et quand j’ai voulu la mettre en place spip a refusé de le faire en raison de son incompatibilité en générant une erreur. y a t il d’autres solutions car j’utilisais aussi Galleria qui ne fonctionne plus également. Je me contente de nivoslider que j’aime moins mais qui fonctionne. Malheureusement je n’ai pas les compétences pour aider à trouver la solution je vais donc retenter ma chance ultérieurement.
      dr

    • Bonjour

      Pour utiliser des plugins spip3 avec spip4, il faut mettre ceci

      <?php
      define('_DEV_VERSION_SPIP_COMPAT',"3.2.99");

      dans config/mes_options.php

    Reply to this message

  • Bonjour tout le monde,
    je rapporte un bug que j’expérimente sur un site en dev sur un seveur local.

    Le carousel fonctionne bien, mais dès lors que je change les valeurs de de l’image, en hauteur et en largeur, sur la partie admin du plugin, plus rien ne fonctionne.

    j’ai une erreur qui s’affiche:

    Erreur d’exécution plugins/auto/sjcycle/v3.5.0/modeles/article_cycle.html | File […]/plugins-dist/filtres_images/filtres/images_transforme.php Line 384 : Unsupported operand types: string - string

    Il semblerait qu’un integer soit attendu et non un string.

    Merci de vos réponse

    Reply to this message

  • 1

    bonjour,
    ravi de cette mise à jour pour Spip4 ! J’étais passé en en Spip 4 et contraint de laisser mes pages avec les codes cycle dedans. Je viens de remettre donc la version 3.5 sur un squelette html5 : Html5up Editorial 1.3.12 et avec le code que j’avais en spip 3.2

    <article424|cycle|right|docs=473,474,475,476|largeurmax=150|hauteurmax=380|overlay=.cycle-overlay>

    je n’ai que l’image 476 (la dernière) qui s’affiche. je sais fouiller dans le code : que vous faut-il faire pour vous aider à la mise au point svp ?
    merci d’avance.

    • Bonjour,
      il me semble que le diaporama reste sur l’image et ne tourne pas.
      Je ne vois pas trop pourquoi, je fais un ticket...

    Reply to this message

  • Bonjour,
    Ce plugin est indiqué comme compatible avec Spip4, je souhaitais m’en assurer. Dans le code source,
    https://git.spip.net/spip-contrib-extensions/sjcycle.git
    il est indiqué : “Version 3.5.0 en test, compatible SPIP 3.0-4.0 avec quelques refactoring”. J’en déduis qu’il faut faire quelques aménagements ? Que faut-il faire exactement ?
    Pour l’instant, aprés l’avoir simplement sous spip téléchargé et activé, il ne fonctionne pas sur mon site même si je désactive les autres plugins.
    En remerciant par avance ceux qui ont des idées de les partager.
    Cordialement à tous. Luc

    Reply to this message

  • 2

    La nouvelle version 3.5 ne fonctionne pas sur notre site en SPIP 3.2.11 [24473], alors que votre version 3.4.21 est OK => https://laccreteil.fr

    Reply to this message

  • Bonjour

    Je viens de m’apercevoir que le plugin cycle2 qui fonctionne très bien sur spip3.2 ne fonctionne plus sur spip4

    Ceci avec le même hébergeur et le mêmes réglages.

    Reply to this message

  • 2

    bonjour, avez vous une piste pour pouvoir utilisé ce plugin avec la version 4 de spip
    Merci.

    • Tu peux forcer la possibilité d’utiliser des plugins pas mis à jour av ec la constante _DEV_VERSION_SPIP_COMPAT.

      Je sais plus dans quel sens elle marche mais ajoute ceci dns ton fichier mes_options.php :

      <?php
      define('_DEV_VERSION_SPIP_COMPAT', '4.0.0');

      Ou bien sinon ceci

      <?php
      define('_DEV_VERSION_SPIP_COMPAT', '3.2.0');
    • Merci Jluc ( avec beaucoup de retard)

    Reply to this message

  • Bonjour
    J’utilise ce plugin avec un nouveau site (spip 3.2) et un thème html5up (Spectral)
    J’ai repris d’anciens articles et rubriques contenant cycle2 pour des images en album.

    J’ai été surpris que dans une rubrique,
    -  le modèle <albumN|cycle> permet bien d’afficher les images de l’album
    mais que dans un article (de cette meme rubrique)
    -  le modèle <albumN|cycle> n’affiche pas les images de ce même album

    le mode inclure indique dans les 2 cas

    plugins/auto/sjcycle/v3.4.20/modeles/album_cycle.html
    plugins/auto/sjcycle/v3.4.20/modeles/article_cycle.html

    mais seul dans la rubrique les images s’affichent

    Je ne me souviens plus en spip 2.X comment se comportait de telles configs,

    que dois-je en penser ?
    Merci

    Reply to this message

  • 1

    bonjour,
    j’aime bien ce plugin .
    J’ai un soucis car je veux mettre les explications de la description , alors j’ai mis le code :

    <article402|cycle|right|docs=458,459,665|largeurmax=400|overlay=.cycle-overlay>

    mais le texte assez long , déborde sur l’image : comment faire pour que cela s’affiche en dessous svp ?
    merci

    • Bonsoir,
      je crois que ce n’est pas très bien adapté aux longs textes, la situation est qu’on cherche à utiliser le maximum d’espace pour l’image, mais avec du texte, on peut plus calibrer l’espace de la même manière.
      Sinon il y a une adaptation de la mediabox de SPIP qui permet de mettre du texte par-dessus l’image, et on peut masquer ce texte pour voir l’image entière, ou le réafficher pour le lire : https://contrib.spip.net/Mediabox-avec-texte

    Reply to this message

  • 8

    J’ai un site sous ESCAL et je viens d’installer Cycle2 (à la place de nivoslider). Je suis plutôt satisfait de Cycle2, mais j’ai cependant rencontré un problème : j’utilise le sommaire automatique et les titres des images du diaporama apparaissent dans le sommaire (au niveau 2 apparemment). Ai-je fait une erreur de paramétrage ou y a-t-il une autre raison ? Merci d’avance pour votre aide.

    • spipfactory

      Bonsoir,

      est il possible d’avoir l’url du site.
      j’aimerais pouvoir essayé de reproduire le bug décrit sur la plateforme escalienne

      merci

    • Bonjour
      Voici l’URL concernée : https://050mariannedebequet.spipfactory.fr
      C’est dans l’article 18 (Courrier pour l’étranger) que j’ai le problème. A noter que j’ai choisi l’option “insertion dans le texte à la demande” pour ne plus avoir un sommaire de plusieurs dizaines de lignes dans l’article en question.
      Bernard

    • Hello

      As-tu résolu ton souci ?

    • Non, rien de nouveau. Je ne comprends pas la cause de ce dysfonctionnement.

    • Peux-tu remettre le sommaire et reproduire le bug que j’y jette un œil ?

    • Jean-Christophe
      J’ai rajouté en tête de l’article Courrier pour l’étranger, et on retrouve le problème signalé.
      Bernard

    • Avec quel plugin le sommaire est-il ajouté ?
      S’il s’agit de “sommaire automatique” ou de la lame correspondante du couteau suisse, tu peux choisir de n’afficher que le premier niveau.

    • J’utilise “sommaire automatique”. Effectivement, en relisant la doc du plugin, j’ai vu qu’on pouvait limiter à un niveau. Mais ce sera le cas pour tous les articles alors ? Je vais regarder cela de plus près.

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom