bmsenlis a écrit:
Euh ! comment fait-on pour noter le sujet comme résolu ?
[wiki]
:-)
Là je l'ai fait pour toi.
Euh ! comment fait-on pour noter le sujet comme résolu ?
Bien que n'utilisant pas les metadonnées, le fondement est le même : lier des infos. supplémentaires à des images.
Alors plutôt que de créer une icône supplémentaire sur des barres d'icônes qui sont parfois déjà bien chargées, j'ai préféré utiliser une icône existante dont l'objet est pratiquement le même.
Et cette fois je clôture le sujet pour de bon.
Merci de passer le sujet en résolu ;-)
Pourquoi n'as tu pas rajouter une icônes qui correspond plus à ton besoins et différente de celle existante ?
Et merci à toi d'avoir bien commenté ton plugin-perso :-)
Bonsoir,
bingo !
je viens de trouver la syntaxe correct :
<?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, $picture, $lang;
$url = get_root_url().'plugins/PersonalPlugin/index.php?idimg='.$picture['current']['id'];
$js ="#\" onClick=\"window.open('$url','Popup', 'directories=no,
location=no, menubar=no, resizable=no, status=no, width=480, height=430')";
/* Assigner dans 'U_METADATA' la nouvelle valeur */
$template->assign( 'U_METADATA', $js);
/* Changer le titre du bouton de meta-données */
$lang['Show file metadata'] = 'Informations complémentaires';
}
?>
Merci à ceux qui m'ont aidé.
bmsenlis a écrit:
Ok
merci
je clos le sujet.
Le sujet est-il donc résolu ?
Ok
merci
je clos le sujet.
Tu as vu comment coder, si tu veux utiliser phpWGOpenWindow
Tu devrais y arriver seul, non?
J'obtiens le lien suivant : http://localhost/alo/picture.php?/2265/category/14#
mais : directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50
pas pris en compte ; j'ouvre toujours sur une page normale.
En fait ça devrait donner la même chose que le lien pour les images HD :
javascript:phpWGOpenWindow('./images/aff/pwg_high/aff_A3_71.jpg','1865929234c1be3a606544','scrollbars=yes,toolbar=no,status=no,resizable=yes')
sauf qu'on pointe sur 'plugins/PersonalPlugin/index.php'
Normal.
Prenons le picture.tpl que contient-il?
<a href="{$U_METADATA}" title="{'Sh.... etc...
or {$U_METADATA} sera remplacé par le contenu de $js ce qui va donner:
1 - $url = get_root_url() . 'plugins/PersonalPlugin/index.php?idimg='.$num;
par exemple => $url = ./plugins/PersonalPlugin/index.php?idimg=421
2 - $js='"#" onClick="window.open(\'' . $url . '\',\'directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50\'); return false"';
par exemple => $js = "#" onClick="window.open('./plugins/PersonalPlugin/index.php?idimg=421','directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50'); return false"
et... au final
3 - ce que ça donnera:
<a href=""#" onClick="window.open('./plugins/PersonalPlugin/index.php?idimg=421','directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50'); return false"" title="{'Sh...
href="" ne risque pas de fonctionner.
Que veux-tu obtenir?
<a href="#" onClick="window.open('./plugins/PersonalPlugin/index.php?idimg=421','directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50'); return false" title="{'Sh...
donc $U_METADATA devra contenir
#" onClick="window.open('./plugins/PersonalPlugin/index.php?idimg=421','directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50'); return false
on échappe les 2 double-apostrophes
#\" onClick=\"window.open('./plugins/PersonalPlugin/index.php?idimg=421','directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50'); return false
on remplace l'adresse par " . $url . "
#\" onClick=\"window.open('" . $url . "','directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50'); return false
Ce qui donnera pour $js
$js ="#\" onClick=\"window.open('"
. $url . "','directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50'); return false";
donc
function personal_replace_tpl_code()
{
global $template, $picture;
$url = get_root_url() . 'plugins/PersonalPlugin/index.php?idimg='.$picture['current']['id'];
$js ="#\" onClick=\"window.open('"
. $url . "','directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50'); return false";
$template->assign( 'U_METADATA', $js);
}
extension:144
onglet langues, fr_FR, insère:
$lang['Show file metadata'] = 'Informations complémentaires';
Rien de changé. Voici le lien que j'obtiens : http://localhost/alo/picture.php?/2261/category/15
Je remet le code complet :
<?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, $num, $picture, $url, $js ;
$num=$picture['current']['id'];
$url = get_root_url() . 'plugins/PersonalPlugin/index.php?idimg='.$num;
$js='"#" onClick="window.open(\'' . $url . '\',\'directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50\'); return false"';
/* Assigner dans 'U_METADATA' la nouvelle valeur */
$template->assign( 'U_METADATA', $js);
/* Changer le titre du bouton de meta-données */
$lang['Show file metadata'] = 'Informations complémentaires';
}
?>
Environnement : Linux Mandrake One 10 + Firefox 3.6.3
Apache+PHP+Mysql sur le poste en local.
Peut-être que si tu en disais un peu plus...
Code (3):
$js='"#" onClick="window.open(\'' . $url . '\',\'directories=no,location=no,menubar=no,resizable=no,status=no,width=50,height=50\'); return false"';
Bonjour,
j'ai appliqué tes remarques pour le 2 et le 3. J'obtiens bien la page ''PersonalPlugin/index.php", mais ne prend pas en compte les valeurs : width="50" height="50" border="0".
Pour t'éclairer : ''PersonalPlugin/index.php" interroge simplement la table ""phpwebgallery_image" avec comme filtre le n° d'identification de l'image. Et j'affiche certains champs rajoutés.
Merci de ton aide.
(1) $num=$picture['current']['id'];
(2) $url='plugins/PersonalPlugin/index.php?idimg='.$num;
(3) $js='"#" onClick="window.open($url)" width="50" height="50" border="0" return false';
(4) $template->assign( 'U_METADATA', $js);
(1) Ok
(2) pourquoi pas => admettons...
(3) comment $url peut être résolu?
$js='"#" onClick="window.open(\'' . $url . '\')" width="50" height="50" border="0" return false';
(4) Ok
(2) est-ce que tu ne veux pas faire plus sûr?
$url = get_root_url() . 'plugins/PersonalPlugin/index.php?idimg='.$num;
Pas certain que cela fonctionne, je ne connais pas PersonalPlugin/index.php
Et je ne sais pas dire si idimg est "sanitized".
Mais déjà cela me semble plus logique.
;-)