CMS Automne

Forum de la communauté du CMS Automne
Nous sommes actuellement le Dim Nov 24, 2024 3:47 am

Le fuseau horaire est UTC [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 12 messages ] 
Auteur Message
 Sujet du message: Identifier une rangée
MessagePublié: Mar Juil 06, 2010 4:57 pm 
Hors-ligne

Inscrit(e) le : Jeu Fév 19, 2009 11:50 am
Message(s) : 80
Bonjour,

Actuellement j'ai de nombreuses rangées permettant d'afficher des images (avec le module standard).
Dans ces rangées, le champ "Alt tag/Légende" du type "image", s'il est renseigné, est affiché sous l'image (et dans l'attribut "alt"). S'il n'est pas renseigné, la légende n'est pas affichée (et l'attribut "alt" n'est pas renseigné non plus).
Ce que je voudrais c'est pouvoir choisir de renseigner le champ "alt" sans afficher la légende et sans créer de nouvelles rangées (donc en utilisant les rangées existantes).
Le mieux aurait été d'avoir deux champs distincts dans le type image du module standard mais ce n'est pas le cas. Je pourrais envisager de créer un champ "texte" avec le module standard en plus du champ "image" permettant de renseigner la propriété "alt" mais dans ce cas toutes les pages utilisant ces rangées auront l'attribut "alt" à vide et je voudrais éviter une "double-saisie".

Je pensais donc à mettre une case à cocher dans les rangées concernées : si la case est cochée, on affiche la légende, sinon on ne l'affiche pas (ou inversement, par commodité). Il me faudrait donc un identifiant unique de rangée au sein d'une page pour enregistrer l'état de la case à cocher dans une table. Je vois dans certaines tables un "rowID" qui semble être exactement ce dont j'ai besoin. Ma question est donc : comment récupérer (ou calculer) le rowID au sein d'une rangée ?
Est-ce que ma solution vous parait cohérente (peut-être un peu compliquée à mettre en place, mais au niveau ergonomie pour l'utilisateur) ?

Merci !


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Juil 06, 2010 5:39 pm 
Hors-ligne
Administrateur
Avatar de l’utilisateur

Inscrit(e) le : Jeu Juin 16, 2005 8:05 am
Message(s) : 628
Localisation : Toulouse, France
Salut Daniel,

En effet ce serait bien de pouvoir dissocier l'alternative textuelle et de la légende, d'ailleurs en HTML5 l'élément figcaption sera utilisé pour les légendes, il faudra donc pouvoir faire évoluer Automne à ce niveau.

Code :
<figure>
  <img src="/macaque.jpg" alt="Macaque in the trees">
  <figcaption>A cheeky macaque, Lower Kintaganban River, Borneo. Original by <a href="http://www.flickr.com/photos/rclark/">Richard Clark</a></figcaption>
</figure>


Pour obtenir l'identifiant d'une rangée tu peux utiliser $cms_row->getID() en PHP, Sébastien te répondra plus précisément sur la faisabilité de tout ça car je suis pas sur d'avoir compris ce que tu voulais faire avec cet ID ;)

_________________
Frank
http://www.automne-cms.org


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mer Juil 07, 2010 8:19 am 
Hors-ligne

Inscrit(e) le : Jeu Fév 19, 2009 11:50 am
Message(s) : 80
J'ai essayé de faire un <?php echo $cms_row->getID(); ?> dans une rangée, mais résultat ma rangée ne s'affiche plus. Où est-ce qu'est déclarée la variable $cms_row ?
En fait ce que je veux faire, c'est enregistrer en base l'état de ma case à cocher pour une rangée donnée. Donc j'ai besoin d'identifier exactement chaque rangée.

Merci pour ton aide !


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Sep 07, 2010 11:10 am 
Hors-ligne

Inscrit(e) le : Jeu Fév 19, 2009 11:50 am
Message(s) : 80
Bonjour,

Je reviens sur ce problème. Je résume :

J'ai une rangée qui contient une image et un texte HTML. Le champ "Alt tag/Légende" de l'image permet :
- de renseigner les champs "title" et "alt" de l'image
- d'afficher une légende sous l'image

Je souhaite gérer de manière indépendante le "alt tag" et la légende. Pour ça, j'ai finalement ajouté un champ texte avec le module standard dans la rangée qui va me permettre de renseigner la légende.
Maintenant mon problème est la récupération des données. Comment je pourrais faire pour prendre le contenu du champ "alt tag" de l'image, et le copier dans le nouveau champ "légende" (lorsque le "alt tag" n'est pas renseigné, la légende restera donc vide) ? Et ce, pour toutes les pages utilisant la rangée ?
J'essaie de faire un script qui tape en base, mais ça ne semble pas évident du tout.
Déjà il faudrait que j'arrive à identifier ma rangée (champ "rowID" dans les tables "blocks*") ?

Bref, je veux bien d'un coup de main :D

Merci !


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Sep 07, 2010 11:36 am 
Hors-ligne
Administrateur
Avatar de l’utilisateur

Inscrit(e) le : Jeu Juin 16, 2005 8:05 am
Message(s) : 628
Localisation : Toulouse, France
dbanon a écrit:
Bonjour,
J'ai une rangée qui contient une image et un texte HTML. Le champ "Alt tag/Légende" de l'image permet :
- de renseigner les champs "title" et "alt" de l'image
- d'afficher une légende sous l'image
Je souhaite gérer de manière indépendante le "alt tag" et la légende.


Pourquoi ne pas faire simple et utiliser le module médiathèque pour cela ?
Automne embarque par défaut des rangées "Texte et media" que tu peux ensuite personnaliser et adapter afin de décider quels champs du module iront dans ton alt, ton title ou ta légende.

A noter que le remplissage de l'alternative textuelle (alt) est obligatoire que si ton image contient des informations textuelles ou non données par le contexte (texte associé). Le title lui n'est obligatoire que si le libellé du lien n'est pas assez explicite et doit apporter de l'information supplémentaire.
Pour la légende (figcaption arrive en HTML5 : http://html5doctor.com/the-figure-figcaption-elements/) :)

_________________
Frank
http://www.automne-cms.org


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Sep 07, 2010 12:33 pm 
Hors-ligne
Administrateur
Avatar de l’utilisateur

Inscrit(e) le : Mer Juin 15, 2005 8:28 am
Message(s) : 759
Localisation : Sophia Antipolis
Faire un tel script demanderai pas mal de temps et là comme ça, je ne sais même pas par quel bout l'aborder ...
Ce que tu demande n'est vraiment pas simple et c'est un peu en dehors de ce que je peux faire sur ce forum. Le faire manuellement reste encore le plus simple. Si vraiment ton volume de données à reprendre est important tu peux passer par notre support commercial, on pourra te faire un devis soit pour la reprise, soit pour la création du script.


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Sep 07, 2010 1:51 pm 
Hors-ligne

Inscrit(e) le : Jeu Fév 19, 2009 11:50 am
Message(s) : 80
Merci pour vos réponses. Je vais voir s'il est possible de réaliser cette opération manuellement, et sinon... j'aviserai !


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Sep 07, 2010 2:06 pm 
Hors-ligne
Administrateur
Avatar de l’utilisateur

Inscrit(e) le : Jeu Juin 16, 2005 8:05 am
Message(s) : 628
Localisation : Toulouse, France
Code :
<row>
<div class="right">
   <block module="pmedia" id="media-item" language="fr">
      <atm-search what="{Media}" name="image">
         <!-- On recherche un seul élément -->
         <atm-search-param search="image" type="item" value="block" mandatory="true"/>
         <!-- limiter la recherche à une sous-catégorie 'images' par exemple -->
         <atm-search-param search="image" type="{Media:Categorie:fieldID}" value="block" mandatory="true"/>
         <atm-result search="image">
            <atm-if what="{Media:Fichier:fileExtension} == 'jpg' || {Media:Fichier:fileExtension} == 'gif' || {Media:Fichier:fileExtension} == 'png'">
               <!-- Si il y a une vignette on l'affiche et on fait un lien vers l'image zoom -->
               <atm-if what="{Media:Fichier:thumbnail}">
                  <a href="{Media:Fichier:filePath}/{Media:Fichier:filename}" title="{Media:label}"><img src="{Media:Fichier:filePath}/{Media:Fichier:thumbnail}" alt="{Media:label}"/></a>
               </atm-if>     
               <!-- Si il n'y a pas de vignette, on force le redimensionnement de l'image via une classe CSS -->
               <atm-if what="!{Media:Fichier:thumbnail}"><img src="{Media:Fichier:filePath}/{Media:Fichier:filename}" alt="{Media:label}" title="{Media:label}" class="resizeImage" /></atm-if>
              </atm-if>
               <!-- On affiche la légende de l'image seulement si elle est présente-->
               <atm-if what="{Media:Description:hasvalue}">
                  <div class="legend">{Media:Description:value}</div>
               </atm-if>
            </atm-result>
      </atm-search>
   </block>   
</div>
   <block module="standard" type="text" id="article"><div class="clearfix">{{data}}</div></block>
</row>     


Je sais pas si ça peut répondre à ton besoin, mais sinon tu peux passer par une rangée de ce type - code non testé - en utilisant la mediathèque pour pouvoir te permettre de distinguer le contenu du 'alt' et celui de la légende en utilisant le label pour le alt et la description pour la légende.

Mes 2 cents.

_________________
Frank
http://www.automne-cms.org


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Sep 07, 2010 2:42 pm 
Hors-ligne

Inscrit(e) le : Jeu Fév 19, 2009 11:50 am
Message(s) : 80
Malheureusement je ne peux pas passer par le module Mediathèque. La rangée dont je parle n'est pas basée sur ce module et est utilisée depuis un certain temps dans un certain nombre de pages maintenant.


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Sep 07, 2010 2:52 pm 
Hors-ligne

Inscrit(e) le : Jeu Fév 19, 2009 11:50 am
Message(s) : 80
Comment est-il possible de savoir à quelle rangée appartient un bloc dans la base de données ? Le champ "rowID" des tables "blocks*" me perturbe...


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Sep 07, 2010 3:30 pm 
Hors-ligne
Administrateur
Avatar de l’utilisateur

Inscrit(e) le : Mer Juin 15, 2005 8:28 am
Message(s) : 759
Localisation : Sophia Antipolis
Le champ rowID est un ID unique qui permet de lier une rangée aux espaces clients d'une page (cf champ rowsDefinition_cs des tables mod_standard_clientSpaces_*). C'est cette table mod_standard_clientSpaces_* qui te permettra de relier la page, l'espace client et la rangée.


Haut
 Profil  
 
 Sujet du message: Re: Identifier une rangée
MessagePublié: Mar Sep 07, 2010 3:38 pm 
Hors-ligne

Inscrit(e) le : Jeu Fév 19, 2009 11:50 am
Message(s) : 80
Merci pour l'info !


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 12 messages ] 

Le fuseau horaire est UTC [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Majestic-12 [Bot] et 8 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de:
Aller vers :  
Powered by phpBB® Forum Software © phpBB Group
Traduit par Maël Soucaze et Elglobo © phpBB.fr