•  » Utilisation
  •  » Cacher/affichier metadonnées par javascript/cookie

#1 2006-08-30 14:07:26

phgiraud
Membre
2006-08-23
37

Cacher/affichier metadonnées par javascript/cookie

Vous avez remarqué? Quand on clique sur http://demo.phpwebgallery.net/template/yoga/icon/metadata.png pour afficher ou masquer les metadonnées, on constate:
- que la page est entièrement rechargée = lenteur, visu pas très agréable
- que le nombre total de visites de l'image est incrémenté systématiquement

Voilà pourquoi j'ai préféré gérer cette affichage et javascript de manière dynamique, en stockant l'info "metadonnées visibles" dans un cookie du navigateur.

picture.php, ligne 765

Code:

// commenter comme ceci pour que le tableau des metadonnées soit toujours alimenté:
if ($metadata_showable /*and isset($_GET['metadata'])*/)

J'ai changé l'intitulé de la bulle d'aide sur le bouton http://demo.phpwebgallery.net/template/yoga/icon/metadata.png :
language\fr_FR.iso-8859-1\common.lang.php

Code:

$lang['picture_show_metadata'] = 'Données EXIF on/off';

Ensuite, il faut ajouter des fonctions javascript pour gérer la visibilité du tableau de metadonnées:
template/yoga/picture.tpl, ajouter au début du fichier:

Code:

<script type="text/javascript">
  var id_exifs = 'show_exifs';

  function getCookieVal(offset)
  {
    var endstr=document.cookie.indexOf (";", offset);
    if (endstr==-1) endstr=document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
  }
  function LireCookie(nom)
  {
    var arg=nom+"=";
    var alen=arg.length;
    var clen=document.cookie.length;
    var i=0;
    while (i<clen)
    {
      var j=i+alen;
      if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
      i=document.cookie.indexOf(" ",i)+1;
      if (i==0) break;    
    }
    return null;
  }  
  function EcrireCookie(nom, valeur)
  {
    var argv=EcrireCookie.arguments;
    var argc=EcrireCookie.arguments.length;    
    var expires=(argc > 2) ? argv[2] : null;
    var path=(argc > 3) ? argv[3] : null;
    var domain=(argc > 4) ? argv[4] : null;
    var secure=(argc > 5) ? argv[5] : false;
    var coo = nom+"="+escape(valeur)+
      ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
      ((path==null) ? "" : ("; path="+path))+
      ((domain==null) ? "" : ("; domain="+domain))+
      ((secure==true) ? "; secure" : "");
    document.cookie = coo ;
  }

  // show/hide the element 'id' and store the visibility in a cooky
  function show_hide(id) {
    var element = document.getElementById(id);
    element.style.visibility = element.style.visibility ==  'hidden' ? 'visible' : 'hidden';
    date=new Date;
    date.setFullYear(date.getFullYear()+10);
    EcrireCookie(id, element.style.visibility, date);
  }
</script>

Ces fonctions javascript permettent d'écrire et lire un cooky, et show_hide(id) sera appelée au clic sur le bouton http://demo.phpwebgallery.net/template/yoga/icon/metadata.png. Pour cela, modifier la ligne où se trouve {L_PICTURE_METADATA}:
template/yoga/picture.tpl

Code:

<a href="javascript:show_hide(id_exifs)" title="{L_PICTURE_METADATA}"><img src="{pwg_root}{themeconf:icon_dir}/metadata.png" class="button" alt="{L_PICTURE_METADATA}"></a>

Il faut aussi donner l'ID qui va bien au tableau des metadonnees dans le bloc <!-- BEGIN metadata --> (j'enrobe la table dans un span pour lui donner un ID sans toucher à ce qu'il y a dessous):
template/yoga/picture.tpl

Code:

      <!-- BEGIN metadata -->
      <span id="show_exifs">
        <table class="infoTable" style="font-size: 82%;""  summary="Some more (technical) info about this picture">
          <!-- BEGIN line -->
          <tr>
            <td class="label">{metadata.line.KEY}</td>
            <td class="value">{metadata.line.VALUE}</td>
          </tr>
          <!-- END line -->
        </table>
      </span>
      <!-- END metadata -->

Sans oublier le script à déclencher au chargement de la page:
template/yoga/picture.tpl, ajouter en fin de fichier

Code:

<!-- At page load, use the last value (cookie) of exifs visible/hidden -->
<script>
  var old_visibility = LireCookie(id_exifs);
  var tableau_exif = document.getElementById(id_exifs) ;
  if (old_visibility!=null) tableau_exif.style.visibility = old_visibility ;
  else tableau_exif.style.visibility = 'hidden' ;
</script>

Et voilà. Le bouton -//:---\spam/cache le tableau des metadonnées instantanemment. L'info de visibilité est stockée au niveau de l'ordinateur et sera conservée à chaque fois (sur ce même ordinateur).

Dernière modification par phgiraud (2006-08-30 17:34:26)

Hors ligne

#2 2006-08-30 22:37:17

Nicco
Membre
Paris - Val de Marne
2006-05-12
1794

Re: Cacher/affichier metadonnées par javascript/cookie

Salut comme pour tes autres modifs ... tu assures !

bon maintenant le soucis c est que pour les exif a off ca me laisse un vide ...


Nicco Starrrr ..... voici ma galerie http://gallery-nicco.no-ip.org & ma passion http://bd-nicco.no-ip.org
version PWG 1.7.1 + de nombreux plugins actifs (trop pour les énumérer)

Hors ligne

#3 2006-08-30 22:43:32

phgiraud
Membre
2006-08-23
37

Re: Cacher/affichier metadonnées par javascript/cookie

merci!

que veux-tu dire "ça laisse un vide" ? comme précédemment puisque cette fonction afficher/masquer avait le même effet, non ?

Hors ligne

#4 2006-08-31 14:02:32

Nicco
Membre
Paris - Val de Marne
2006-05-12
1794

Re: Cacher/affichier metadonnées par javascript/cookie

Bahhh je ne sais pas si c est pareil chez toi mais moi
l espace pour afficher les exif est reservé !

et en gros soit ils sont visible ou non mais la place est la comme si tu avais plein de retour chariot ...

pour moi avant vu que tu refaisais la page ... tu n avais pas ces retour a la ligne en bas, enfin je ne crois pas


Nicco Starrrr ..... voici ma galerie http://gallery-nicco.no-ip.org & ma passion http://bd-nicco.no-ip.org
version PWG 1.7.1 + de nombreux plugins actifs (trop pour les énumérer)

Hors ligne

#5 2006-08-31 14:18:23

nicolas
Former Piwigo Team
2004-12-30
1565

Re: Cacher/affichier metadonnées par javascript/cookie

Nicco a écrit:

Bahhh je ne sais pas si c est pareil chez toi mais moi
l espace pour afficher les exif est reservé !

et en gros soit ils sont visible ou non mais la place est la comme si tu avais plein de retour chariot ...

pour moi avant vu que tu refaisais la page ... tu n avais pas ces retour a la ligne en bas, enfin je ne crois pas

Si tu ne veux pas d'espace alros il ne faut pas cacher/montrer l'élément mais plutôt l'afficher/ne pas 'afficher. Au lieu de la propriété visible que l'on met à visible/hidden il faut utiliser la propriété display que l'on positionne à block/none.
En revanche il faut bien être conscient que lorsqu'on va vouloir l'afficher cela peut écraser les éléments qui se trouverait dans l'espace réservé.


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#6 2006-08-31 18:59:40

Nicco
Membre
Paris - Val de Marne
2006-05-12
1794

Re: Cacher/affichier metadonnées par javascript/cookie

je ne suis pas sure que la 2 eme solution m arrange en fait

et je crois meme que je vais finir par affichier les exif en permanence :D


Nicco Starrrr ..... voici ma galerie http://gallery-nicco.no-ip.org & ma passion http://bd-nicco.no-ip.org
version PWG 1.7.1 + de nombreux plugins actifs (trop pour les énumérer)

Hors ligne

#7 2008-10-16 13:36:55

Kel
Membre
2007-05-08
11

Re: Cacher/affichier metadonnées par javascript/cookie

Bonjour phgiraud

je réactive ce sujet qui ne l'a pas été depuis un moment apparemment, peut-être en a t-il été question depuis ?

La possibilité d'afficher ou non les métadonnées de mes images faites au D300 me plait bien
mais je bloque sur ton mode d'emploi
à cet endroit :

Ces fonctions javascript permettent d'écrire et lire un cooky, et show_hide(id) sera appelée au clic sur le bouton http://demo.phpwebgallery.net/template/ … adata.png. Pour cela, modifier la ligne où se trouve {L_PICTURE_METADATA}:
template/yoga/picture.tpl

Dans mon fichier picture.tpl, je ne trouve pas et ne sais pas où placer le code qui suit (je ne vois pas {L_PICTURE_METADATA}: dans mon fichier picture.tpl  ?

<a href="javascript:show_hide(id_exifs)" title="{L_PICTURE_METADATA}"><img src="{pwg_root}{themeconf:icon_dir}/metadata.png" class="button" alt="{L_PICTURE_METADATA}"></a>

je suis nouveau sur PWG que je trouve super , je suis en version 1.7.0

merci pour ton aide
Kel

Hors ligne

#8 2008-10-16 14:39:04

phgiraud
Membre
2006-08-23
37

Re: Cacher/affichier metadonnées par javascript/cookie

Désolé mais j'ai arrêté d'utiliser PHPWebGallery. La principale raison étant que chaque mise à jour était une énorme galère à gérer quand on fait des personnalisations telles que celle consistant à afficher correctement les données Exif.
J'utilise maintenant Picassa (application + album web) et ça me convient.
Désolé de ne pouvoir répondre à ta question.

Hors ligne

#9 2008-10-16 14:47:33

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16915

Re: Cacher/affichier metadonnées par javascript/cookie

Vu la date du post ce n'était pas pour la version 1.7 je te conseil d'attendre la version 2


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#10 2008-10-16 15:42:56

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Cacher/affichier metadonnées par javascript/cookie

phgiraud a écrit:

Désolé mais j'ai arrêté d'utiliser PHPWebGallery. La principale raison étant que chaque mise à jour était une énorme galère à gérer quand on fait des personnalisations telles que celle consistant à afficher correctement les données Exif.
J'utilise maintenant Picassa (application + album web) et ça me convient.
Désolé de ne pouvoir répondre à ta question.

Si tu préfères Picassa, tu es libre de le faire mais nous ne préférons pas laisser nos photos sur un site comme celui là. Chacun fait comme il l'entend.

Par contre, tu devrais nous laisser répondre positivement à la question le moment venu. Cela serait logique, non?
Merci.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#11 2008-10-16 15:46:47

phgiraud
Membre
2006-08-23
37

Re: Cacher/affichier metadonnées par javascript/cookie

Heu j'ai dit un truc qui fallait pas ? On me pose une question, j'y réponds...

Hors ligne

#12 2008-10-16 16:01:17

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Cacher/affichier metadonnées par javascript/cookie

Ah! bon? Je ne suis pas certain que kel attende une réponse:"Désolé...".

A mon avis, il préfèrerait... "Tu devrais essayer de changer ceci et cela, et chez moi, ça marche."

Nous répondrons donc à ta place.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#13 2008-10-16 16:07:49

phgiraud
Membre
2006-08-23
37

Re: Cacher/affichier metadonnées par javascript/cookie

Cela fait plus de deux ans que je n'utilise plus PHPWebGallery, je suis aujourd'hui bien en peine de pouvoir me rappeler tous les points techniques que je connaissais à l'époque. Je préfère donc répondre "désolé" que de répondre n'importe quoi ou bien, pire, ne pas répondre du tout. Je pense que je le ferai en message privé la prochaine fois, cela m'évitera de devoir perdre mon temps à justifier qu'on n'a juste la politesse de répondre.

Hors ligne

#14 2008-10-16 16:08:16

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Cacher/affichier metadonnées par javascript/cookie

Par exemple, un début de réponse pourrait consister en 1.7:

As-tu regardé le plugin Look_like_GBo même s'il ne répond pas exactement à ton besoin, c'est sans doute une solution plus simple et qui marche.

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#15 2008-10-16 16:39:17

Kel
Membre
2007-05-08
11

Re: Cacher/affichier metadonnées par javascript/cookie

Merci pour vos réponses ! j'apprécie l'intention de répondre à ma demande et cela me conforte d'avoir choisi PWG
pour montrer mon travail de photographe (amateur de longue date)

Pas de problème PhGiraud, je ne suis pas trop pour Picasa d'autant que PWG est une façon plus personnelle de montrer ses images

Je retiens effectivement la version 2 surement prometteuse mais en RC donc j'attends un peu, n'étant pas trop fort en manipulation de codes

Je retiens ton conseil VDigital d'installer Look like GBo, j'espère que ça va me convenir


En fait, j'aimerais bien effectivement avoir les métadonnées sous chacune de mes images


Merci en tous cas
Bien à vous
Kel

Hors ligne

  •  » Utilisation
  •  » Cacher/affichier metadonnées par javascript/cookie

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact