Bonjour,
comment peut-on utiliser l'icone "Montrer les metas-données du fichier" pour pointer sur un url défini dans un fichier de conf. ?
J'ai bien trouvé dans my-picture.tpl : href="{$U_METADATA}" ...
mais je n'ai pas trouvé le fichier contenant la variable $U_METADATA.
Pour précision :
nous avons complété la table image de piwigo avec des champs qui ne sont pas Exif ou IPTC. Jusqu'à maintenant je les faisais apparaître dans le bloc d'infos qui s'affiche sous chaque image en modifiant picture.php. Mais évidemment à chaque changement majeur de version, je perds mes modif. (comme ça vient de se passer avec le passage à la 2.1.1) et j'en ai un peu marre de modifier à chaque fois picture.php.
ALors si je pouvais simplement faire pointer l'icone des meta-données vers une page que je gérerai à coté, ça serait un grand pas en avant.
Alors comment faire ou si c'est plus simple comment introduire un icone dans la barre d'icones apparaissant avec picture.php ?
Merci
Hors ligne
bmsenlis a écrit:
Alors comment faire ou si c'est plus simple comment introduire un icone dans la barre d'icones apparaissant avec picture.php ?
Bonjour,
Prends exemple sur les plugins qui font déjà quelque chose de semblable (affichage d'une icône sur picture.php).
:-)
Hors ligne
bmsenlis,
Tu peux utiliser l'icone 'montrer les métadonnées ' pour afficher une page particulière ?
Mais tu perdra l'affichage des Exifs et Iptc.
1 - Est-ce ce que tu souhaites ?
2 - Sais-tu faire un plugin ?
Hors ligne
Les infos Exif ou IPTC ne m'intéressent pas. Donc si je pouvais utiliser cet icone pour afficher les champs suppl. ça serait parfait.
Je ne me suis jamais penché sur la création d'un plugin. Mais pourquoi pas : je peux apprendre.
Hors ligne
Dans ton plugin personnel.
- il te faudra définir
global $template, $lang;
- Assigner ce que tu veux dans 'U_METADATA'
$template->assign( 'U_METADATA','href de la page que tu veux')
- Changer le titre du bouton
$lang['Show file metadata'] = 'le texte qui te convient';
Bonne continuation.
Hors ligne
Ci-dessous le contenu de mon 'plugin personnel' établi à partir de la doc. et de tes conseils.
Il y a encore pas mal de chose qui m'échappe. Je l'ai installé et activé ; sans résultat.
<?php
/*
Plugin Name: Plugin Personnel
Version: 1.0
Description: Plugin Personnel
Plugin URI: http://piwigo.org
Author: P. Villain
Author URI: localhost/alo
*/
/* empêche l'accès direct au fichier main.inc.php */
if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
/* Remplace une partie du code par une autre dans un template */
function personal_replace_tpl_code()
{
global $template, $lang ;
/* Assigner dans 'U_METADATA' la nouvelle valeur */
$template->assign( 'U_METADATA','http://www.google.fr');
/* Changer le titre du bouton de meta-données */
$lang['Show file metadata'] = 'Informations complémentaires';
}
?>
Hors ligne
bmsenlis a écrit:
Ci-dessous le contenu de mon 'plugin personnel' établi à partir de la doc. et de tes conseils.
Il y a encore pas mal de chose qui m'échappe. Je l'ai installé et activé ; sans résultat.
<?php
/*
Plugin Name: Plugin Personnel
Version: 1.0
Description: Plugin Personnel
Plugin URI: http://piwigo.org
Author: P. Villain
Author URI: localhost/alo
*/
/* empêche l'accès direct au fichier main.inc.php */
if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
Add_event_handler( 'loc_end_picture','personal_replace_tpl_code')
/* Remplace une partie du code par une autre dans un template */
function personal_replace_tpl_code()
{
global $template, $lang ;
/* Assigner dans 'U_METADATA' la nouvelle valeur */
$template->assign( 'U_METADATA','http://www.google.fr');
/* Changer le titre du bouton de meta-données */
$lang['Show file metadata'] = 'Informations complémentaires';
}
?>
il te manque le trigger sur la page picture
Add_event_handler( 'loc_end_picture','personal_replace_tpl_code')
Que je viens d'ajouter dans le code ci-dessus.
Dernière modification par EX-FTB (2010-05-31 18:56:19)
Hors ligne
Génial, ça marche.
Mais j'aimerai comprendre la syntaxe de :
Add_event_handler( 'loc_end_picture','personal_replace_tpl_code')
Que signifie : Add_event_handler et loc_end_picture
J'ai bien compris que : personal_replace_tpl_code renvoie sur le nom de la fonction.
Pour aller au bout de mon idée, il faut que je récupére l'id de l'image affichée afin de pouvoir sélectionner les infos correspondante. Je déclare donc une variable $url qui me permet de construire le chemin de ma page php :
global $template, $lang, $url ;
$url='http://fr.wikipedia.org?idimg='.'[$current.id]';
et je passe la variable dans :
$template->assign( 'U_METADATA', $url);
Malheureusement, je n'arrive pas à trouver la bonne syntaxe pour obtenir le bon résultat :
http://fr.wikipedia.org?idimg=25518
Je n'obtiens que :
http://fr.wikipedia.org/?idimg=
http://fr.wikipedia.org/?idimg=[$current.id]
Hors ligne
bmsenlis a écrit:
Mais j'aimerai comprendre la syntaxe de :
Add_event_handler( 'loc_end_picture','personal_replace_tpl_code')
Que signifie : Add_event_handler et loc_end_picture
J'ai bien compris que : personal_replace_tpl_code renvoie sur le nom de la fonction.
Lorsque survient l'événement 'loc_end_picture' ça déclenche l'appel à la fonction 'personal_replace_tpl_code'.
Dernière modification par tosca (2010-05-31 23:07:23)
Hors ligne
bmsenlis a écrit:
$url='http://fr.wikipedia.org?idimg='.'[$current.id]';
Malheureusement, je n'arrive pas à trouver la bonne syntaxe pour obtenir le bon résultat :
Pas sûre de moi du tout sur ce coup-là, mais j'essaierais bien de voir ce que donne :
$url='http://fr.wikipedia.org?idimg='.$current.id;
(et ajuster ensuite éventuellement en fonction du résultat que ça donne).
EDIT : après réflexion, ça ne va sûrement pas le faire, à cause du point entre $current et id ; d'ailleurs, je ne comprends pas d'où sort ce point ... mais je suis loin de tout comprendre :/
Dernière modification par tosca (2010-05-31 23:13:06)
Hors ligne
Effectivement ça donne :
http://fr.wikipedia.org/?idimg=id
J'ai essayé différentes syntaxes, sans résultat.
Hors ligne
Essayons de comprendre, en attendant qu'un de nos spécialistes viennent à notre rescousse ;-)
Si je comprends bien
$current.id
restitue la chaîne de caractères 'id' ...
Que t'attendais-tu à trouver dans $current ?
Qu'est censé vouloir dire le .id qui le suit ? (si tu ne sais pas, tu as quand même du trouver cette expression quelque part)
Hors ligne
J'ai trouvé !
/****************************************************
global $template, $lang, $num, $picture, $url ;
$num=$picture['current']['id'];
$url='http://fr.wikipedia.org?idimg='.$num;
/* Assigner dans 'U_METADATA' la nouvelle valeur */
$template->assign( 'U_METADATA', $url);
/****************************************************
et ça donne : http://fr.wikipedia.org/?idimg=1586
je devrai pouvoir récupérer la variable 'idimg=1586' pour interroger la table phpwebgallery_images et ressortir les infos suppl. de l'image 1586.
Je ne sais pas si l'anti-slash qui se place après org, va me poser problème ? Je vais tester.
Hors ligne
bmsenlis a écrit:
$num=$picture['current']['id'];
$url='http://fr.wikipedia.org?idimg='.$num;
Là, je comprends ;-)
Dernière modification par tosca (2010-06-01 20:07:14)
Hors ligne
Bonsoir,
de retour ; je poursuis la construction de mon plugin.
Je souhaiterai que la page à ouvrir soit appelée par une fonction javascript afin de contrôler la position et la taille. J'ai essayé le code suivant :
$num=$picture['current']['id'];
$url='plugins/PersonalPlugin/index.php?idimg='.$num;
$js='"#" onClick="window.open($url)" width="50" height="50" border="0" return false';
$template->assign( 'U_METADATA', $js);
Le résultat est qu'il m'affiche le lien de base de Piwigo :
http://localhost/alo/picture.php?/2260/category/187
Hors ligne