Re,
Je voudrais ajouter des icones d'actions, voire du code js à la page d'administration picture_modify (par exemple, ajouter des icones d'actions sous la miniature, à coté des icones existants).
Contrairement à batch_management_global, je ne vois pas de points d'extension possibles par des plugins pour cette page. Ai-je loupé quelque chose ?
--
Bruno
Dernière modification par Dsls (2011-10-18 09:20:10)
Hors ligne
Bon, je m'auto-réponds, le sujet semble avoir bien été balayé par là-bas : http://fr.piwigo.org/forum/viewtopic.php?id=20157
Hors ligne
Oui, j'ai vu ça :)
En revanche, ça pourrait être intéressant de mettre un "balisage" spécifique dans les tpl du core pour faciliter les recherches remplacements.
Par exemple, si je veux ajouter un lien/icone dans les actions de picture_modify.tpl, c'est facile si je l'ajoute au début (avec un search/replace sur l'<ul>). Si je veux l'ajouter à droite, c'est une autre paire de manches.
Un code du type "commentaire Smarty" pourrait faire office de marqueur pour ajouter l'information au bon endroit. Exemple :
<ul class="categoryActions"> {if isset($U_JUMPTO) } <li><a href="{$U_JUMPTO}" title="{'jump to photo'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_jump-to.png" alt="{'jump to photo'|@translate}"></a></li> {/if} [...] {* ##categoryActions## *} </ul>
Hors ligne
L'idée est bonne mais tout le monde ne va pas avoir besoin des mêmes blocs. Un coup en prendra un gros morceau, un autre coup on n'en prendra qu'une partie, bref, pas sûre que le "balisage" soit si efficace que ça au final...
Hors ligne
C'est vrai que pour la page picture_modify, on pourrait rajouter un point d'ancrage... personnellement, je préfèrerai une variable smarty tant qu'à faire, comme pour la page index:
{if !empty($PLUGIN_PICTURE_MODIFY_ACTIONS)}{$PLUGIN_PICTURE_MODIFY_ACTIONS}{/if}
Mais bon, pour ajouter ton icône dans thumbcropper après les icônes existantes, ce n'est pas très compliqué avec un preg_replace:
$pattern = '#(<ul class="categoryActions">.*?)</ul>#s'; $replacement = '$1'. '<li><a href="#thumbcropper" class="cbinline" title="{\'Edit thumbnail\'|@translate}">'. '<img src="plugins/thumbCropper/thumbcropper.png" alt="{\'Edit thumbnail\'|@translate}">'. '</a></li></ul>'. '{include file="'.dirname(__FILE__).'/thumbcropper.tpl"}'; return preg_replace($pattern, $replacement, $content);
Sinon, deux petites remarques sur les préfiltres... Tu as mis ceci dans ton préfiltre:
/* Only work if we are in the right tpl, pre_filter being called for every tpl found */ if ($smarty->_current_file != 'picture_modify.tpl') return $content;
Ca ne sert à rien car le préfiltre n'est chargé que pour la page picture_modify grâce à:
$template->set_prefilter('picture_modify','tc_prefilter');
Ensuite, pour le chargement du fichier langue, il ne faut pas le mettre dans le préfiltre car celui-ci n'est appelé qu'au tout premier chargement (avant la mise en cache).
Hors ligne
P@t a écrit:
Sinon, deux petites remarques sur les préfiltres... Tu as mis ceci dans ton préfiltre:
Code:
/* Only work if we are in the right tpl, pre_filter being called for every tpl found */ if ($smarty->_current_file != 'picture_modify.tpl') return $content;Ca ne sert à rien car le préfiltre n'est chargé que pour la page picture_modify grâce à:
$template->set_prefilter('picture_modify','tc_prefilter');
Ensuite, pour le chargement du fichier langue, il ne faut pas le mettre dans le préfiltre car celui-ci n'est appelé qu'au tout premier chargement (avant la mise en cache).
En fait si : si tu regardes la fin de la fonction, je concatène mon template particulier. Le préfiltre étant rappelé pour chaque tpl parsé, je me retrouve alors avec une page finale qui inclut 3 ou 4 fois mon template. D'où le test...
Hors ligne
Dsls a écrit:
En fait si : si tu regardes la fin de la fonction, je concatène mon template particulier. Le préfiltre étant rappelé pour chaque tpl parsé, je me retrouve alors avec une page finale qui inclut 3 ou 4 fois mon template. D'où le test...
Hum oui, c'est pour ça que j'avais passé ça dans le $replacement en include smarty:
$replacement = '$1'. '<li><a href="#thumbcropper" class="cbinline" title="{\'Edit thumbnail\'|@translate}">'. '<img src="plugins/thumbCropper/thumbcropper.png" alt="{\'Edit thumbnail\'|@translate}">'. '</a></li></ul>'. '{include file="'.dirname(__FILE__).'/thumbcropper.tpl"}';
Comme ça pas besoin de tester ton template.
En fait le préfiltre est chargé pour picture_modify, mais également pour les fichiers inclus dans picture_modify (en l'occurrence autosize, dbpicker et dateselect). C'est pour ça que dans un préfiltre, faut mieux s'en tenir au str_replace ou preg_replace.
PS: tu as laissé un $template->delete_compiled_templates() à la ligne 32 (c'est d'ailleurs pour ça que ton load_language fonctionne). Pour développer avec les préfiltres, tu peux mettre $conf['template_force_compile'] = true; dans ton fichier de configuration locale.
Hors ligne
sinon j'ai envie de dire que lorsque ce sera stable on pourrait intégrer tes extensions élémentaires pour une galerie en ligne moderne
merci pour tes contributions
Hors ligne