Albums 3

Le plugin « Albums » évolue dans une version 3 pour SPIP 3.

Avant d’effectuer une mise à jour depuis la version 1 ou 2, consultez les notes sur la rétro-compatibilité. Les modèles, notamment, on reçut quelques changements pour la bonne cause.

En préambule, une courte vidéo de présentation.
Si vous rencontrez des difficultés pour la lecture, rendez vous sur medias.spip.net où le fichier source est téléchargeable.

Évolutions

  • v3.6.0 : permet de réordonner les documents des albums par glisser-déposer

Des albums, pour quoi faire ?

Dans sa première version, le plugin permettait d’insérer des galeries d’images au fil du texte, dans les articles.

Depuis la version 2, les albums sont des objets éditoriaux à part entière, aussi la portée du plugin est plus générale : il sert à la gestion de groupes de documents.

Des groupes de documents

Un album, c’est donc un conteneur pour une série de documents.
Précisons le bien, si le terme « album » évoque des albums d’images, il peut contenir tout type de document : images, bandes-son, vidéos et autres.
Un même document peut appartenir à plusieurs albums : toutes sortes de combinaisons sont envisageables.

Les albums sont des groupes de documents

Albums et documents liés à un objet

En SPIP 3, les documents liés à un objet sont présentés sous forme de 3 groupes : « illustrations », « portfolio » et « documents ». Leur finalité est expliquée dans cet article, mais retenons qu’il s’agit d’une séparation arbitraire pensée pour les articles.
Dans cette documentation, on va se référer à ces documents comme des documents « individuels », par opposition au documents regroupés au sein d’albums.

Les documents individuels et les albums sont indépendants et n’ont pas d’incidence l’un sur l’autre : on peut continuer à gérer les documents individuels comme avant.
En pratique, vous avez le choix au moment d’ajouter des documents à un objet : ils peuvent être ajoutés individuellement, ou regroupés au sein d’albums.

Albums et documents liés
Documents individuels et regroupés aux seins d’albums

Installation & configuration

L’installation se fait comme n’importe que plugin.
2 tables vont être ajoutées : spip_albums et spip_albums_liens.

Des plugins supplémentaires doivent être installés si vous souhaitez bénéficier du formulaire qui permet de personnaliser les balises <album> à insérer dans le texte. Il s’agit de dépendances optionnelles.

Une fois l’installation effectuée, un passage sur la page de configuration est ensuite nécessaire. Elle est constituée de 2 onglets.

Onglet « options »
L’option principale permet de définir sur quels objets les albums pourront être ajoutés.
2 autres options permettent de proposer un titre par défaut lorsqu’on ajoute un nouvel album à un objet, et d’activer le déplacement de documents par cliquer-glisser.

Onglet « outils »
Un formulaire permet de migrer des articles en albums.
Il est prévu dans le cas où l’on se servait d’articles comme de pseudo albums, et se charge de créer des vrais albums à l’identique à partir de ceux-ci.

Utilisation

Les albums peuvent être autonomes ou liés à d’autres objets éditoriaux.

⇒ Dans le cas d’albums autonomes, on les créera depuis la barre d’outil rapide ou depuis la page des albums, comme n’importe quel objet éditorial.

⇒ Dans le cas d’albums liés à des objet éditoriaux, leur gestion est assez similaire à celle des documents : on peut gérer les albums depuis la fiche d’un objet ou lorsque celui-ci est en cours d’édition.

Gestion des albums sur la fiche d’un objet

Sur la fiche d’un objet éditorial, les albums font suite aux documents. L’interface permet d’ajouter de nouveaux albums ou des albums existants, d’éditer leur texte et de manipuler leurs documents.

Albums et documents liés
1) documents « individuels » 2) documents regroupés au sein d’albums

Ajouter des albums

Le bouton « Ajouter un album » fait apparaître un formulaire proposant deux méthodes [1] :

Créer et remplir un nouvel album. Titre et descriptif sont optionnels : laissé vide, le titre sera rempli à posteriori avec « Nouvel album N° X ».

Choisir un ou plusieurs albums existants : on peut parcourir la liste, ou rentrer directement les numéros des albums.

Ajouter un album à un objet éditorial
1) Créer et remplir un nouvel album 2) Choisir un ou plusieurs albums existants

Editer un album sur place

Les albums peuvent être édités sur place. Pour l’édition complète (gestion des auteurs, des mots-clés etc.), on se rendra sur leur fiche.

Editer le texte : une icône apparaît au survol du header, elle permet d’afficher le formulaire d’édition du titre et du descriptif.

Ajouter des documents : un lien situé en bas fait apparaître le formulaire d’ajout de documents.

Manipuler les documents : les boutons d’édition apparaissent au survol de chaque document.

Il est également possible, sous certaines conditions, de déplacer des documents entre albums par cliquer-glisser.

Édition rapide d’un album
1) Editer titre et descriptif 2) Ajouter des documents 3) Modifier les documents

Retirer des albums

Pour retirer un album, cliquer sur le bouton qui apparaît au survol, en bas de chaque album.
Lorsqu’il y a plusieurs albums, un bouton présent à la fin de la liste permet de tous les retirer d’un coup.

Gestion des albums lors de l’édition d’un objet

Pendant l’édition d’un objet, la gestion des albums s’opère au même endroit que celle des documents, dans la colonne de gauche.
Quand l’objet peut recevoir à la fois des documents et des albums, un menu permet de basculer entre les deux.

Albums et documents lors de l’édition d’un objet
1) Gestion des documents 2) Gestion des albums

Ajouter, éditer et retirer les albums

On gère les albums de la même façon que lorsqu’on se trouve sur la fiche de l’objet : même formulaire pour ajouter des documents, mêmes possibilités pour éditer les albums et manipuler leur documents.


Insertion des balises <album> dans le texte

Les albums insérés dans le texte au moyen de la balise <albumX> seront automatiquement associés à l’objet : ce comportement est similaire à celui des balises <doc>, <img> et <emb> des documents.

Un formulaire permet de personnaliser les balises de chaque album : choix de la variante, alignement, paramètres des modèles, etc.

Important : pour bénéficier de cette fonctionnalité, des plugins supplémentaires doivent être installés. Consultez la section sur l’installation.

Personnaliser la balise d’un album
En mode édition, un formulaire permet de personnaliser la balise de chaque album en vue de l’insérer dans le texte.

Les modèles

L’apparence, la structure et certains paramètres évoluent par rapport aux versions 1 et 2. Consultez les notes sur la rétro-compatibilité.

2 modèles « album » sont proposés : le modèle de base est une vue en vignettes, complété d’une variante avec une vue en liste.
Par défaut, ces 2 modèles produisent un affichage minimaliste : titre, descriptif, et autres éléments "superflus" ne sont pas affichés à moins d’utiliser les paramètres adéquats (détaillés plus bas).
De même, la feuille de style chargée sur le site public ne contient que le strict minimum.

Ces 2 modèles ne prétendent pas répondre à tous les cas de figure. Les usages possibles sont trop vastes pour être tous pris en compte par un modèle générique : listes de lecture audio ou vidéo, diaporamas, etc.
Pour vos besoins spécifiques, ajoutez des variantes du modèle.

Modèle <album> : vue en vignettes

Modèle album par défaut : vue en vignettes

Ce modèle est prévu pour afficher des séries d’images : les documents sont affichés sous forme de vignettes cliquables.
Il est basé sur Tiny Typo, la base CSS de Romy Têtue.
Les images peuvent être retaillées et recadrées pour obtenir un affichage uniforme, par défaut elles sont retaillées selon une hauteur de 100 pixels.

La structure HTML de base est la suivante (avec #HTML5 activé) :

<figure class="album vignettes figure">
    <ul>
        <li>
            <a href="#"><img src="..."></a>
        </li>
    </ul>
    <figcaption>...</figcaption>
</figure>

Modèle <album|liste> : vue en liste

Modèle album, variante sous forme de liste

Cette variante affiche les documents sous forme d’une simple liste. Elle est donc adaptée à tout type de documents.

La structure HTML de base est la suivante :

<div class="album liste">
    <ul class="spip">
        <li>
            <a href="#">...</a>
        </li>
    </ul>
</div>


Paramètres des modèles

Paramètres communs aux 2 modèles
Paramètre Description
titre « oui » pour afficher le titre
N’importe quelle chaîne pour un titre personnalisé.
balise_titre Pour encapsuler le titre dans une balise, sans les chevrons.
→ strong, h4, etc.
descriptif « oui » pour afficher le descriptif
par Tri des documents, défaut : « titre »
→ date, titre, media, fichier, extension, taille
media Pour restreindre à un type de document
→ image, file, audio, video
Paramètres propres à la variante « vignettes »
Paramètre Description
largeur Largeur maximale des vignettes
hauteur Hauteur maximale des vignettes, défaut : 100 (pixels)
recadrer « oui » pour recadrer les images
label « oui » pour afficher le titre de chaque document
Paramètres propres à la variante « liste »
Paramètre Description
metas « oui » pour afficher les infos complémentaires de chaque fichier, ou une liste d’éléments séparés par des virgules :
→ extension, taille, dimensions


Ajouter des modèles

Pour que vos propres variantes du modèle soient prises en compte par le formulaire de personnalisation des balises, il faut créer un fichier YAML en plus du squelette HTML.

Ce fonctionnement est inspiré par celui du plugin Insérer Modèles : chaque fichier YAML décrit le modèle et ses paramètres, sous forme de saisies. La syntaxe est identique, avec toutefois 2 éléments supplémentaires :

  • alias : nom de la variante
  • description : description de la variante (optionnelle)

Pour assurer la compatibilité avec le plugin cité plus haut, 4 paramètres sont obligatoires : modele, id_modele, id_album et variante.
Les 3 premiers étant identiques pour toutes les variantes, ils sont regroupés dans un fichier inc-yaml/album-compat.yaml qu’il suffit d’inclure.

Pour les saisies, une option supplémentaire config permet d’avoir comme valeur par défaut un réglage stocké dans la table spip_meta.
Dans l’idée, config:'truc' revient à faire 'defaut'=>lire_config('truc') en php.

Exemple : Imaginons un plugin fournissant une variante « diaporama ».
Ce modèle accepterait entre autre un paramètre vitesse dont la valeur par défaut serait enregistrée dans une méta du plugin. Le squelette HTML serait nommé album_diaporama.html et le fichier YAML album_diaporama.yaml.
Ce dernier ressemblerait à ça :

nom: 'un album (diaporama)'
logo: 'prive/themes/spip/images/album-24.png'
icone_barre: 'album-diaporama.png'
alias: 'Diaporama'
parametres:
  - 'inclure:inc-yaml/album-compat.yaml'
  -
    saisie: 'hidden'
    options:
      nom: 'variante'
      defaut: 'diaporama'
  -
    saisie: 'input'
    options:
      nom: 'vitesse'
      config: 'plugin/vitesse'
  - le reste des saisies...

En cas de doute, vous pouvez prendre la variante « liste » comme référence.

Albumothèque

Albumothèque

L’albumothèque est l’équivalent de la médiathèque, pour les albums.

Les filtres situés dans la colonne de gauche sont prévus pour sélectionner les albums en fonction de leurs documents et de leurs liaisons avec les objets : articles, auteurs, mots-clés etc. Attention, il ne s’agit pas de menus, mais bien de filtres : un clic pour activer, un autre pour désactiver.

Des champs avec autocomplétion permettent de trouver un objet précis.
Par exemple, pour afficher les albums liés à un article en particulier, il faut cliquer sur l’icône à droite du filtre « articles », puis rentrer les premières lettres du titre ou son numéro : les articles correspondants vont apparaître dans une liste déroulante, cliquer sur un résultat va mettre à jour la liste des albums.
La fontion d’autocomplétion ne va chercher que les objets ayant un lien avec les albums.

Albumothèque : filtres
Des champs avec autocomplétion permettent de trouver les objets liés aux albums.

Déplacer des documents entre albums par cliquer-glisser

Il est possible de déplacer les documents entre albums par cliquer-glisser. L’option doit être activée dans la page de configuration, et vous devez y avoir l’autorisation.

Gardez en tête qu’il s’agit d’une fonctionnalité un peu expérimentale !

Lorsqu’on entame le déplacement d’un document, les albums pouvant recevoir celui-ci sont surlignés d’une bordure verte, il suffit d’y relacher le document. Dès qu’un document à été déplacé, un formulaire apparaît en bas de la liste pour enregistrer les modifications. On peut cependant effectuer plusieurs déplacement d’affilée avant de les enregistrer.

Notez qu’il est possible de manipuler également les documents « individuels » liés aux objets.

Déplacer des documents entre albums par cliquer-glisser
1) Effectuer un ou plusieurs déplacements 2) Valider avec le formulaire qui apparaît en bas

Boucles & critères

Critère {orphelins}

Le critère {orphelins} permet de sélectionner les albums sans lien avec un objet éditorial (on qualifiait ces albums « d’autonomes » plus haut).

Jointures

Les albums ont une jointure automatique pour tous les objets (cf. déclaration de la base).

Dès qu’un qu’un id_xxx est présent dans l’environnement, on peut donc sélectionner les albums liés à l’objet sans avoir à faire de jointure explicite avec la table de liens :
<BOUCLE_albums(ALBUMS){id_xxx}>

Attention, pour {id_auteur}, le comportement est différent :

  • <BOUCLE_albums(ALBUMS){id_auteur}> sélectionne les albums de l’auteur (d’après la table spip_auteurs_liens).
  • <BOUCLE_albums(ALBUMS){objet=auteur}{id_objet=#ID_AUTEUR}> sélectionne les albums liés à l’auteur (d’après la table spip_albums_liens).


Sélectionner les albums en fonction de leurs documents

En faisant une jointure avec la table spip_documents, on peut utiliser certains critères des documents :
<BOUCLE_albums(ALBUMS documents){documents.critere=xxx}>
Quelques exemples avec les critères les plus utiles :

  • {documents.media IN image,audio} : albums contenant des images ou des bandes-sons.
  • {documents.id_document=x} : albums contenant le document n°x.
  • {documents.titre LIKE %truc%} : albums contenant des documents dont le titre ou le nom de fichier comprend le terme « truc ».
  • {documents.extension == mp3|ogg|oga} : albums contenant des fichiers mp3 ou ogg audio.
  • {documents.taille > 1000000} : albums contenant des documents d’une taille supérieure à 1Mo [2].

Autorisations

Voici comment sont définies certaines autorisations particulières (les administrateurs complets peuvent tout faire).

  • Modifier un album : il faut être auteur de l’album et avoir le droit de modifier tous les objets auquel l’album est lié.
  • Ajouter un album à un objet : il faut que l’objet soit activé dans les options, et avoir le droit de le modifier.
  • Déplacer des documents entre albums : il faut que l’option soit activée, et dans le contexte d’un objet, avoir le droit de modifier tous les albums liés.
  • Supprimer un album : il faut qu’il soit vide, inutilisé et non publié.

Rétro-compatibilité

Modèles

La syntaxe de la version 1, qui avait disparu de la version 2, est à nouveau supportée dans cette version : <album|id_article=x> et <album|id=x,y,z>

La structure du modèle de base a changé, afin notamment de respecter l’usage des balises <figure> et <figcaption> en HTML5.

Visuellement, quelques altérations ont eu lieu :
-  par défaut, les titres sont cachés.
-  le titre et le descriptif du modèle de base passent en bas.

Changement de quelques paramètres :
-  vignettes & liste : titraille est supprimé
-  vignettes & liste : balise_titraille est déprécié au profit de balise_titre
-  liste : infos est déprécié au profit de metas

Divers

-  Le critère {contenu} apparu dans la version 2 est supprimé : on peut utiliser à la place le critère {documents.media == x} avec une jointure (ALBUMS documents) pour un résultat similaire.
Voir la section sur les jointures.

Paramétrage fin par les constantes

-  Constante _ALBUMS_TITRE_COURT : si vous insérez define('_ALBUMS_TITRE_COURT','oui'); dans votre mes_options.php, le titre des images sous les images sera réduit à leur titre et n’incluera pas les indications techniques.

Notes

[1Techniquement, le formulaire « ajouter_album » est une fusion des formulaires « editer_album » et « ajouter_document »

[21000000 octets = 975ko, mais on ne va pas chipoter


La version 2 du plugin est documentée ici.
Elle a en quelque sorte servi de transition entre la version 1 et la présente version, qui est la version « correcte » pour SPIP 3. La branche 2 n’est plus amenée à évoluer, et ne recevra que des corrections de bugs.
D’ailleurs, n’hésitez pas à signaler les bugs de la version 2 sur ce forum, en précisant bien quelle version est concernée.

Discussion

95 discussions

  • Bonjour,

    j’intègre mes albums directement dans l’admin. J’ai beaucoup de photos (50) que je souhaite mettre à la suite, dans mon article :

    -  > je souhaite enlever la pagination existante (mais comment ??)
    -  > dans un article j’utilise le système d’onglet (couteau suisse). J’ai mis les photos à l’intérieur de l’onglet N°3 et quand on clique sur les photos suivantes (pagination)...on réamorce l’onglet et donc on revient à l’onglet N°1...

    Merci pour vos éclairages et votre aide

    Kiki

    Répondre à ce message

  • 4

    Bonjour à tous

    Je suis sur SPIP 3.2.1 avec la dernière version d’album (3.5.7). Le problème c’est que mes vignettes n’ont pas la même hauteur et qu’elles se rangent donc n’importe comment (voir fichier joint). Pour l’instant je suis sur les squelettes-dist et j’aimerais bien que les vignettes se range correctement avant de me lancer dans la transformation graphique de mes squelettes.

    Si quelqu’un a une idée, merci d’avance.

    • Bonjour

      Suis passé sous des squelettes retouchés et c’est toujours la même chose. Pour info, mes images ont la même hauteur à l’origine.

      Personne pour un avis, une idée, un truc ???? :-(

    • Salut,

      Une URL où jeter un coup d’oeil ?

      Sinon tu peux passer une option pour qu’elles aient toutes la même hauteur, ou bien les recadrer.

    • Merci pour ta réponse.
      J’ai mis dans le fichier mes_options une option pour éviter l’affichage des données type JPEG, poids, etc dans les agrandissement d’image.

      Le problème se posait déjà sur mon premier site par exemple là et maintenant, en je suis en train de le refaire.
      Jusqu’ici, ça ne me gênait pas trop, mais dans la future nouvelle version, j’aimerais bien un truc clean.

      Pour les options, je suis preneur, par contre, pour les titres des agrandissement, j’avais mis :

      define('_ALBUMS_TITRE_COURT','oui');

      Mais là, je peux mettre quoi ? Y-a-t-il une page de référence avec les options possibles ?
      En tout cas, un grand merci pour ton aide.
      Denis.

    • Bonjour

      Désolé de revenir, mais je ne trouve pas comment faire. J’ai bien vu dans l’explication du plugin qu’il y a des paramètres propres à la variante « vignettes » (dont hauteur et largeur) mais je ne sais vraiment pas comment les utiliser.

      Est-ce le plugin qui calcule les vignettes ? Est-ce que les vignette sont calculées par les fonctions avancées de SPIP ?
      Est-il possible de donner au vignette une hauteur maximale dans l’un ou l’autre cas ?

      Si quelqu’un pouvait me donner un coup de main.
      Merci d’avance.

    Répondre à ce message

  • 15

    Bonjour
    Tout d’abord merci pour ce plugin bien utile.
    J’ai un site en spip 3.1.4 avec le plugin Album3 installé. Tout fonctionne bien. Juste un détail un peu gênant.
    Quand on a un album volumineux (une cinquantaine de photos par ex.), une pagination apparait en bas de l’album (voir sur mon site). Pas de souci la-dessus.
    Et quand on clique sur une vignette de l’album, on visualise le document via une fenêtre Mediabox avec des flèches droite et gauche pour passer d’une image à l’autre. Nickel.
    Le pb : j’aimerais pouvoir visualiser l’ensemble de l’album dans la fenêtre Mediabox, pas seulement les images de la page... Dans l’exemple en lien, les 2 albums font une cinquantaine de photo, la pagination est de 20 en 20. Et dans la fenêtre Mediabox, on visualise pas plus de 20 photos à la fois, alors que j’aimerai qu’on fasse défiler la cinquantaine de photo dans la même fenêtre Mediabox.
    Est-ce possible ?
    Quel fichier modifier ?
    Merci pour votre aide

    • Les albums ont été momentanément retirés de l’article cité ci dessus (raison personnelles pour ne pas donner d’indications à nos futurs adversaires...)
      Mais la question reste posée : comment visualiser l’ensemble d’un album volumineux paginé dans Mediabox...?
      Merci d’avance pour votre aide

    • Bonjour,
      J’ai la même limite de 20 vignettes et un problème supplémentaire (ayant 35 vignettes), je ne peux visualiser la deuxième page pour accéder aux 15 autres vignettes (le clic n’aboutit pas).

      • Est-il possible de paramétrer le nombre d’éléments par page ?
      • Comment accéder à la deuxième page ?
      • J’utilise également SPIP Cycle2 qui pourrait utiliser le paramètre « album », mais n’est pas utilisable avec cette limite...
      • Les 35 photos correspondent à l’exposition sur bâches présentées dans l’article : http://laccreteil.fr/spip.php?article132

      Vous souhaitant bonne réception.
      Michel

    • J’ai trouvé => « Pagination »qui permet de choisir le nombre d’éléments.
      Mais l’accès aux pages pose toujours problème.

    • Bonjour,
      Savez-vous comment activer la Boîte multimédia « Mediabox » pour visualiser les images cliquées ( .mediabox ) ?
      Bonne soirée.
      Michel

    • Bonjour
      Je me permets de relancer ma question concernant la visualisation des vignettes via mediabox quand on a une pagination.
      Il semble que la visualisation des images en grand dans mediabox ne regroupe que les vignettes affichées sur la page. Pour visualiser en gd les images des paginations suivantes, il faut afficher ces pages pour accéder à leurs agrandissements.
      Avez vous une solution à ce pb ?
      Merci d’avance...

    • Hello,

      Pour l’instant la mediabox ne prend en compte que les images présentes dans le HTML, et en cas de pagination il n’y en a forcément qu’une partie d’affichées, elle ne peut pas « deviner » celles des autres pas de pagination.
      Il y a peut-être des options à passer au script pour renseigner l’ensemble des images d’une galerie, il faut que je me penche sur la question.

    • Bonjour
      Merci pour ta réponse
      Pour info, le pb a été évoqué sur le rezo : https://www.mail-archive.com/spip@rezo.net/msg69040.html mais mes compétences ne me permettent pas d’utiliser la solution évoquée...

    • Bonjour
      J’ai retrouvé le doc proposé sur le rezo par Patrick (voir lien ci-dessus) avec une solution à ce pb de pagination (pour un portfolio mais c’est le même principe). Il fait en fait une suite de boucle dans une div invisible qui liste toutes les photos qui sont en dehors de la pagination. Du coup, toutes les images sont visibles dans la Mediabox puisque présentes sur la page.
      Voici le code qu’il propose (dans son cas, c’est pour un portfolio paginé, mais le pb est le même pour les albums) :

      [(#REM) Portfolio : album d'images ]
      <B_documents_portfolio>
      <div id="documents_portfolio">
      
      <h1>Galerie de photos</h1>
      	
        #ANCRE_PAGINATION
      <BOUCLE_documents_portfolio(DOCUMENTS) {id_article} {mode=document}{extension IN png,jpg,gif} {par titre, date}{pagination 10}{doublons}{vu=non}>[
        <a href="(#URL_DOCUMENT)" type="#MIME_TYPE" onclick="location.href='[(#URL_ARTICLE
          |parametre_url{id_document,#ID_DOCUMENT}
          )]#documents_portfolio';return false;"[ class="(#EXPOSER)"][ title="(#TITRE|attribut_html|couper{80})"]>
      	[(#FICHIER|image_reduire{190,190}
      	|image_recadre{100,100,center}
      	|image_aplatir{jpg,ffffff}
      	|inserer_attribut{class,spip_logos[ modulo(#COMPTEUR_BOUCLE|alterner{1,2,3,4,5})]})]</a>
        ]
        </BOUCLE_documents_portfolio>
      [<p class="pagination">Suite des documents ici: (#PAGINATION) </p>]
      
      [(#REM) Sans la boucle qui suit, mediabox affiche uniquement les images
      de la première "page" de pagination et il faut la fermer,
      cliquer sur la "page 2" puis relancer mediabox. Cette boucle corrige cela.]
      
      <div  style="display:none">
      <BOUCLE1_doc_caches(DOCUMENTS) {id_article}{mode=document}{extension IN png,jpg,gif} {par titre, date}{pagination 10}{doublons}{vu=non}>
      [<a href="(#URL_DOCUMENT)" type="#MIME_TYPE"[ title="(#TITRE|attribut_html|couper{80})"] ></a>]
      </BOUCLE1_doc_caches>
      <BOUCLE2_doc_caches(DOCUMENTS) {id_article}{mode=document}{extension IN png,jpg,gif} {par titre, date}{pagination 10}{doublons}{vu=non}>
      [<a href idem>]
      </BOUCLE2_doc_caches>
      <BOUCLE3_doc_caches(DOCUMENTS) {id_article}{mode=document}{extension IN png,jpg,gif} {par titre, date}{pagination 10}{doublons}{vu=non}>
      [<a href idem>]
      </BOUCLE3_doc_caches>
      ...
      et ainsi de suite avec autant de boucles qu'on veut
      ...
      </div>
      </div>
      </B_documents_portfolio>

      Si cela peut aider ? L’idée serait peut-être de s’en inspirer pour modifier le modèle album.html...?
      Dites moi ce que vous en pensez...

    • Je viens de tester et cela a l’air de bien fonctionner...
      J’ai surchargé le modèle album.html du plugin en ajoutant le paramètre {doublons} à la boucle existante documents_album (ligne 152).
      Puis j’ai ajouté une div invisible juste avant la fermeture de cette boucle (avant la ligne 180 :
      </B_documents_album>) soit :

      <div  style="display:none">
      <BOUCLE1_doc_caches(DOCUMENTS){id_document IN #GET{ids_documents}}{tout}{pagination #GET{pagination} #VAL{album}|concat{#ENV{id_album,x}}} {doublons}>
      [
      		(#SET{titre_doc,      #TITRE|sinon{#FICHIER|basename}})][
      		(#SET{titre_doc_long, #EVAL{_ALBUMS_TITRE_COURT}|?{#GET{titre_doc},#GET{titre_doc}|concat{' - ',#TYPE_DOCUMENT,' - ',#VAL{#TAILLE|taille_en_octets},#MEDIA|=={image}|?{#VAL{' - '}|concat{#LARGEUR,'&times;',#HAUTEUR,' px'}}}}})][
      		(#SET{ratio,          #GET{recadrer}|?{#VAL{/\[-:\/\]/}|preg_split{#ENV*{ratio,1}}}})][
      		(#SET{ratio,          #GET{ratio}|count|>{1}|?{#GET{ratio/1}|div{#GET{ratio/0}},#GET{ratio/0}}|floatval})][
      		(#SET{ratio,          #GET{ratio}|sinon{#LARGEUR|div{#HAUTEUR}}|floatval})][
      		(#SET{largeur,        #ENV{largeur}|sinon{#ENV{hauteur}|div{#GET{ratio}}}|sinon{#GET{taille_preview}}|intval})][
      		(#SET{hauteur,        #ENV{hauteur,#GET{largeur}|mult{#GET{ratio}}}|intval})][
      		(#SET{extension,      #EXTENSION|sinon{#FICHIER|pathinfo|table_valeur{extension}}})][
      		(#SET{media_defaut,   #VAL{media_defaut}|sql_getfetsel{'spip_types_documents',#VAL{extension=}|concat{#GET{extension}|sql_quote}}})][
      		(#SET{media,          #MEDIA|in_array{#LISTE{image,audio,video,file,document}}|?{#MEDIA,#GET{media_defaut}}})][
      		(#SET{src,            #GET{media}|=={image}|?{
      		                        #GET{recadrer}|?{
      		                          #FICHIER|image_passe_partout{#GET{largeur},#GET{hauteur}}|image_recadre{#GET{largeur},#GET{hauteur},center},
      		                          #FICHIER|image_reduire{#GET{largeur},#GET{hauteur}}},
      		                        #LOGO_DOCUMENT{#FICHIER}}
      		                      |extraire_attribut{src}})]
      		<li[ (#PLUGIN{bootstrap}|oui)class='span4']>
      			<a href="#FICHIER" type="#MIME_TYPE" rel="album#ID_ALBUM" class="[(#EXTENSION)][ (#PLUGIN{foundation}|oui)th][ (#PLUGIN{bootstrap}|oui)thumbnail]" title="[(#GET{titre_doc_long}|attribut_html)]" role="button" aria-label="Vignette">
      				[(#GET{src}|balise_img{#GET{titre_doc_long},vignette}|inserer_attribut{aria-hidden,true})]
      			</a>[
      			(#ENV{label}|oui)[<span class="label">(#GET{titre_doc})</span>]]
      		</li>
      </BOUCLE1_doc_caches>
      </div>

      Je n’ai pour l’instant ajouté qu’une seule boucle dans cette div mais on pourra en ajouter autant qu’on veut selon l’importance des albums à traiter.
      On peut sans doute alléger les ligne dans cette boucle puisu’on n’a pas besoin de tout cela juste pour charger la photo de manière invisible sur la page.
      Dites moi ce que vous en pensez ?
      merci d’avance pour votre aide.

    • J’ai amélioré la surcharge à effectuer sur le modèle du plugin « album.html » en générant automatiquement le nombre de boucles nécessaires selon le ratio docs de l’album/pagination.
      On récupère ce nombre de boucles en divisant la qté de docs de l’album par la pagination. Résultat arrondi à l’unité supérieure :
      #SET{nbre_de_boucles, #GRAND_TOTAL|div{#GET{pagination}}|ceil }.
      Voilà ce que ça donne, toujours inséré avant la ligne 180 </B_documents_album> :

      <div  style="display:none">
         #SET{nbre_de_boucles, #GRAND_TOTAL|div{#GET{pagination}}|ceil }
         <BOUCLE_nbre_de_boucles (CONDITION) {si #GET{nbre_de_boucles}|>{1}} {0,#GET{nbre_de_boucles}} >
            <BOUCLE_doc_caches (DOCUMENTS) {id_document IN #GET{ids_documents}} {tout} {pagination #GET{pagination}  #VAL{album}|concat{#ENV{id_album,x}}} {doublons}>
               Lignes de récupération des docs
            </BOUCLE_doc_caches>
         </BOUCLE_nbre_de_boucles>
      </div>

      La variable « nbre_de_boucles » va me servir dans une boucle CONDITION pour créer les boucles de recherche des docs qui ne sont pas dans la pagination...
      La boucle CONDITION ne se déclenche que si la variable « nbre_de_boucles » est supérieure à 1 (donc s’il y a une pagination)
      {si #GET{nbre_de_boucles}|>{1}}.
      Dites moi ce que vous en pensez ?

    • Bonjour Tcharlss
      J’en termine avec les dernières mises au point :
      il ne faut pas passer de critère de pagination à la boucle qui permet de récupérer les images hors pagination (BOUCLE_doc_caches). Avec le critère doublons, la boucle va récupérer simplement l’ensemble des images manquantes sur la page et les mettre dans la div invisible.
      Voici le code corrigé :

      <div  style="display:none">
      #SET{nbre_de_boucles, #GRAND_TOTAL|div{#GET{pagination}}|ceil }
      <BOUCLE_nbre_de_boucles(CONDITION) {si #GET{nbre_de_boucles}|>{1}} {0,1} >
      	<BOUCLE_doc_caches(DOCUMENTS){id_document IN #GET{ids_documents}}{tout} {doublons}>[
      	    code d'affichage des images (la même chose que dans la boucle existante "documents_album" ligne 152)
      	</BOUCLE_doc_caches>	
      </BOUCLE_nbre_de_boucles>
      </div>

      Peux-tu me dire ce que tu en penses stp ?

    • Bonjour
      Voici pour finir le résumé de la surcharge à effectuer sur le modèle du plugin « album.html » pour pouvoir visualiser dans Mediabox l’ensemble des images d’un Album paginé :
      -  Ajouter le critère {doublons} à la boucle existante documents_album (ligne 152).
      -  Ajouter ces lignes de code juste avant la fermeture de cette boucle (avant la ligne 180 </B_documents_album>) soit :

          <div  style="display:none">
          #SET{nbre_de_boucles, #GRAND_TOTAL|div{#GET{pagination}}|ceil }
          <BOUCLE_nbre_de_boucles(CONDITION) {si #GET{nbre_de_boucles}|>{1}} {0,1} >
                  <BOUCLE_doc_caches(DOCUMENTS){id_document IN #GET{ids_documents}}{tout} {doublons}>
                      [#FICHIER]
                  </BOUCLE_doc_caches>   
          </BOUCLE_nbre_de_boucles>
          </div>

      tcharlss, peux-tu me dire ce que tu en penses ?
      Chez moi (Spip 3.1.3) cela fonctionne bien mais peut être y a-t-il des améliorations/modifications à apporter ?
      Merci d’avance pour ta réponse...

    • Salut JeanLuc et merci pour la contribution.

      À vue de nez, ça me semble pénalisant de sortir tous les documents dans le HTML juste pour la mediabox. Si tu as un album de 300 images avec une pagination de 20, ça ferait 280 images cachées... Bon c’est un exemple tiré par les cheveux, mais je ne suis pas fan des contenus cachés dans le HTML.

      Il doit y avoir une façon de faire ça programmatiquement en pilotant la mediabox.

    • Salut tcharlss
      Je vais tenter de laisser un message à Cerdic sur la page Mediabox de Spip-Contrib...
      A+

    • Voir ma demande sur la page de Mediabox : https://contrib.spip.net/MediaBox#forum497131

    Répondre à ce message

  • 4

    Dans le modele par defaut album ;html il y a
    « [(#GETposition_legende|==bottom|oui)[(#GETcaption)]] »

    qui affiche le titre de l’album en dessous de celui-ci.

    Pour plus de lisibilité je voudrais l’afficher au-dessus de l’album mais lorsque je change le modèle en :
    « [(#GETposition_legende|==top|oui)[(#GETcaption)]] »

    Il n’y a plus du tout de titre affiché.

    Comment faire ? Merci

    • Si c’est pour tous les albums, dans mes_options.php :

      define('_ALBUMS_POSITION_LEGENDE', 'bottom')

      Si c’est au cas par cas, il suffit de passer le paramètre au modèle.

    • Le

          define('_ALBUMS_POSITION_LEGENDE', 'top')

      pour insérer le titre de l’album au-dessus ne fonctionne pas.

    • Ah oui pardon, c’est :

      define('_ALBUMS_POSITION_LEGENDE_VIGNETTES', 'top');
    • Nickel merci !

    Répondre à ce message

  • 2

    Bonjour,

    Le fichier inclure/documents.html du plugin appelle les documents joints « classiques » via l’inclure suivant :

    <INCLURE{fond=squelettes-dist/inclure/documents, env}>

    Y a-t-il une raison de forcer à prendre le fichier dans le répertoire -dist ?

    Bonne journée !
    Sandrine

    • Hello,

      L’idée c’était de compléter la liste des documents-joints des squelettes de la dist avec la liste des albums, sans avoir à tout surcharger. Avec le recul je ne suis pas sûr que ce soit une bonne idée.
      Tu as un cas où ça pose problème ?

    • Hello Tcharlss

      J’ai constaté le souci en testant le squelette HTML5_solid_state. Je n’ai pas d’exemple en ligne : je ne l’ai testé qu’en local.

      Grosso modo, pas de souci quand on surcharge inclure/documents.html dans le dossier squelettes, en revanche, ça pose problème quand on surcharge ce même fichier via un plugin.

      Dans le cas d’un plugin de squelettes comme HTML5_solid_state, la surcharge consiste notamment en l’ajout de classes spécifiques au jeu de squelettes utilisé, afin de gérer entre autre l’habillage graphique du portfolio.

      Bonne journée !
      Sandrine

    Répondre à ce message

  • 6

    Bonjour,

    Après une migration par FTP, tout les liens des albums sont cassés, et donc toutes les images sont en 404.
    Savez vous comment je peux résoudre le problème svp ?

    • Peux tu décrire précisement comment tu a migré.

      Normalement on migre la BDD + les fichiers. Et album étant codé proprement, il ne devrait pas y avoir de lien cassé, car on album se réfère aux objetdocuments SPIP, pas aux URLS. Bref, je pense que tu a un souci ailleurs, mais là ce n’est pas hyper clair

    • Bonjour,

      J’ai effectué la migration exactement de cette façon : la DB, les fichiers, modification du connect.php
      Je connais assez peu SPIP, y aurait-il quelque chose de plus à faire ?

      Pour les images, je vois que dans le dossier IMG/jpg, elles sont de type xxxxxxx.jpg, or les url appelés sont de type r_nomdelarticle_-_xxxxxxx.jpg, d’ou ma conclusion de liens cassés, mais il est fort possible que cela vienne d’autre part.

      Aurais-tu d’autres pistes a explorer approfondir ?

      Dans tout les cas, merci de ton aide

    • Hello,

      À priori comme le dit Maïeul ce n’est pas spécifique aux albums, il vaut mieux investiguer directement dans la médiathèque (?exec=documents).
      Les images manquantes sont signalées avec cette icône : document-manquant-24.png

      les url appelés sont de type r_nomdelarticle_-_xxxxxxx.jpg

      C’était pareil avant la migration ? Il n’y a pas de raison que le nom du fichier soit modifié en principe.
      Comment tu récupères cette info ? Quand un document est manquant, la vraie URL est visible en cliquant sur modifier, puis section aperçu.

    • Bonjour,
      Il semble que oui, c’était pareil avant la migration. Malheureusement je n’ai aucun moyen de vérifier, je n’ai plus qu’accès au ftp, apache étant désactivé et je n’ai pas la main dessus.

      Dans le front d’un article par exemple, j’ai la liste des images plutot que les images :
      IMG/jpg/r_tromobile_2018_-_artcurial_-_p1020160-s.jpg
      IMG/jpg/r_tromobile_2018_-_artcurial_-_p1020162-s.jpg
      IMG/jpg/r_tromobile_2018_-_artcurial_-_p1020173-s.jpg
      IMG/jpg/r_tromobile_2018_-_artcurial_-_p1020175-s.jpg

      Quand que je clique dessus, j’ai une lightbox qui pop avec : « This image failed to load. »

      Coté back, j’ai plus ou moins la même chose (cf capture)
      et lorce que je vais dans modifier, j’ai toujours la même URL (../IMG/jpg/r_tromobile_2018_-_artcurial_-_p1020160-s.jpg) qui donne toujours un 404

      Enfin, quand je vais dans la médiathèque et recherche toujours le même fichier, j’ai bel et bien l’icone du fichier manquant.

      Ce que je comprends vraiment pas, c’est que niveau fichier, les deux serveurs sont exactement identique, alors que ce comportement n’était pas présent du tout avant la migration.

    • Mais ces images existent bien, tu as vérifié dans le FTP ?

    • Non, les images n’existent pas sur le disque (nouveau ET ancien serveur). Ou en tout cas pas sous ce path/name.

      Pourtant avant la migration, les images étaient bien présentes dans le front.

    Répondre à ce message

  • 1

    Bonjour à tous
    Voilà mon pb :
    J’aimerais afficher sur une page les 3 derniers albums publiés dans une rubrique et ses sous-rubriques...
    Mais comme on ne peut pas utiliser le critère « id_secteur » avec la boucle ALBUMS, je suis un peu bloqué...
    Si quelqu’un a déjà eu se pb à résoudre...
    Merci d’avance pour votre aide.

    • Bonjour à tous
      Je me réponds à moi-même pour la solution à mon pb, pour ceux que cela pourrait intéresser...
      Il faut utiliser un tableau qui va stocker les articles du secteur.
      Ensuite piocher dans ce tableau pour trouver les articles liés à un album :

      <!--on définit un tableau-->
      #SET{articles_secteur_XX,#ARRAY} 
      
      <!--on met dans ce tableau les articles du secteur XX classés par date--><BOUCLE_articles_secteur_XX(ARTICLES){id_secteur=XX} {par date} {inverse}>
      	#SET{articles_secteur_XX,#GET{articles_secteur_XX}|push{#ID_ARTICLE}}
      </BOUCLE_articles_secteur_XX>
      
      <!--une boucle récupère les articles du tableau liés à un album-->
      <BOUCLE_albums(ALBUMS){0,1}{id_article IN #GET{articles_secteur_XX}}>
      	code pour afficher les albums
      </BOUCLE_albums>

    Répondre à ce message

  • 1

    Bonjour,
    j’ai un souci avec le changement de langue avec ce plugin. J’utilise les balises <multi>.

    Lorsque je change de langue dans la partie publique, mes albums ne s’affichent pas. Ils sont pourtant présent dans le multi du champ texte.

    Merci pour votre aide !

    • En creusant un peu, je me suis rendu compte que certains filtres ne marchaient pas dans un modèle d’album quand on change de langue. Par exemple |unique ne fonctionne pas. Ou alors je fais faux quelque chose :/

    Répondre à ce message

  • 1

    Bonjour,

    je viens de faire la mise à jour du plugin de la version 1.1.0 vers 3.5.4.

    J’ai beaucoup d’erreur côté public et back-office du type :
    Erreur SQL 1146
    Table ’monsite.spip_albums’ doesn’t exist

    Comment puis-je le corriger ?

    Merci,
    Hervé

    • Bonjour,

      Bizarre. Il n’y avait pas de tables dans la v1 et pour une raison ou une autre la fonction d’installation ne semble pas avoir été appelée. Il faudra que je teste chez moi la migration v1 => v3 pour voir.

      En attendant, si tu n’as pas encore créé d’album, tu peux désinstaller puis réinstaller le plugin, ça devrait régler le souci.

    Répondre à ce message

  • 1

    Bonjour tcharlss, et d’abord merci pour ce plugin, génial !

    C’est moi qui n’ait pas les yeux en face des trous et les doigts agiles, ou l’organisation des documents au sein d’un album, et leur affichage public par la suite, ne supporte pas le critère {par rang_lien} ?

    (j’ai essayé de modifier le modèle par défaut, que j’utilise, mais sans succès - je suis sous spip3.2 btw)

    • Salut et merci !
      Tu as vu juste, il n’y a pas encore la prise en charge d’ordre des documents. Il faut absolument que je m’occupe de cette version pour SPIP 3.2 depuis le temps que j’en parle...

    Répondre à ce message

Ajouter un commentaire

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
  • 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 apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom