Vous avez remarqué? Quand on clique sur 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
// 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 :
language\fr_FR.iso-8859-1\common.lang.php
$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:
<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 . Pour cela, modifier la ligne où se trouve {L_PICTURE_METADATA}:
template/yoga/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>
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
<!-- 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
<!-- 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
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 ...
Hors ligne
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
Hors ligne
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é.
Hors ligne
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
Hors ligne
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
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
Vu la date du post ce n'était pas pour la version 1.7 je te conseil d'attendre la version 2
Hors ligne
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.
Hors ligne
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-)
Hors ligne
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
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-)
Hors ligne
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