Annonce

Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

flop25
2011-10-21 15:41:40

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

Dsls
2011-10-21 13:56:43

Ok, je viens de publier la 0.4 qui prend en compte tes remarques. Merci :)

P@t
2011-10-21 11:34:43

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:

Code:

$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.

Dsls
2011-10-21 11:20:42

Sinon, je prends note des autres remarques, je les intègrerai dans la 0.4, merci :)

Dsls
2011-10-21 11:19:32

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...

P@t
2011-10-21 11:14:58

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:

Code:

{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:

Code:

$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:

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).

Gotcha
2011-10-19 12:29:31

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...

Dsls
2011-10-19 08:20:47

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 :

Code:

<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>
P@t
2011-10-18 23:44:23

Je précise que ça n'affecte pas du tout les performances grâce à la mise en cache de smarty.

P@t
2011-10-18 23:43:29

En gros, les préfiltres smarty permettent de rajouter ou modifier n'importe quel code (html ou js) sur n'importe quelle page de piwigo (publique ou admin)

Dsls
2011-10-18 09:19:50

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

Dsls
2011-10-18 09:12:43

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

Pied de page des forums

Propulsé par FluxBB

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