•  » Utilisation
  •  » Modification de "picture_modify" via plugin

#1 2011-05-06 21:35:08

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Modification de "picture_modify" via plugin

Question assez technique aux devs de longue date ^^

Comment ajouter des "trucs" sur la page "picture_modify" (back-office)
j'ai pensé à un préfiltre mais j'ai l'impression que ça ne fonctionne que pour des template compilés par pparse, ici c'est assign_var_from_handle qui est utilisé

En fait là je suis sur cette page mais ça peut s'appliquer à n'importe quelle page admin, pour CommentOnAlbums j'ai modifié le DOM en javascript parce qu'il n'y avait pas grand chose, mais pour les modifs plus lourdes c'est pas génial.
On peu facilement ajouter des éléments à la suite mais pas au milieu de ces pages.

hs mais pas trop : ça serait une bonne idée d'utiliser les mêmes méthodes pour la gestion du template côté admin que côté publique...

Dernière modification par mistic100 (2011-05-08 20:13:59)

Hors ligne

#2 2011-05-08 20:20:36

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16915

Re: Modification de "picture_modify" via plugin

je pense que tu peux faire un préfiltre sur picture_modify sans problème

je l'utilise pour addInfo, title et meta


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#3 2011-05-08 20:22:03

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Modification de "picture_modify" via plugin

j'ai essayé pourtant...
je vais regarder addInfo, il doit y avoir une subtilité

Hors ligne

#4 2011-05-09 22:48:17

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Modification de "picture_modify" via plugin

cache du template.... il ne passera pas un jour sans que je me fasse avoir

avec $conf['template_force_compile'] = true; c'est mieux

Hors ligne

#5 2011-05-09 23:13:49

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Modification de "picture_modify" via plugin

nan définitivement il y a un truc qui m'échappe

fichier main.inc.php

Code:

if (script_basename() == 'admin')
{
  include(SMART_PATH.'init_cat_modify.php');
  add_event_handler('loc_begin_admin', 'smart_init_prefilter', 50);  
}

fichier init_cat_modify.php

Code:

function smart_init_prefilter()
{
  global $template;
  $template->set_prefilter('cat_modify', 'smart_prefilter');
}

function smart_prefilter($content, &$smarty)
{
  $search = '#<form action="{$F_ACTION}" method="POST" id="links">#';
  
  $replacement = '
My new form here
<form action="{$F_ACTION}" method="POST" id="links">
  ';
  
  return preg_replace($search, $replacement, $content);
}

et nada !
pourtant 5 secondes avant le même script fonctionnait sur 'picture_modify'

ps : j'ai essayé d'appliquer le préfiltre à 'categories' aussi, ne sachant plus si on doit faire référence au nom du fichier ou au nom sous lequel il est inclut

Hors ligne

#6 2011-05-10 13:30:40

LucMorizur
Membre
Vienne (Isère, 38)
2009-03-01
1969

Re: Modification de "picture_modify" via plugin

Je ne sais pas si ça peut aider...

Dans [Forum, post 133967 by P@t in topic 15641] Préparation plugin Event Cats, P@t m'a aidé à trouver le handler pour le préfiltre dont j'ai besoin pour [extension by LucMorizur] Event Cats. Ce n'est pas encore implémenté dans la version actuelle de Event Cats, mais j'ai pu modifier la page d'admin cat_list.php correctement, ça fonctionne en local.

Hors ligne

#7 2011-05-10 21:29:18

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16915

Re: Modification de "picture_modify" via plugin

je te propose plutôt

fichier main.inc.php

if (script_basename() == 'admin')
{
  include(SMART_PATH.'init_cat_modify.php');

}

fichier init_cat_modify.php

add_event_handler('loc_begin_admin', 'smart_init_prefilter', 50);

function smart_init_prefilter()
{
  global $template;
  $template->set_prefilter('categories', 'smart_prefilter');
}

function smart_prefilter($content, &$smarty)
{
  $search = '#<form .*? id="links">#';
 
  $replacement = '
My new form here
<form action="{$F_ACTION}" method="POST" id="links">
  ';
 
  return preg_replace($search, $replacement, $content);
}

mais tu n'en a peux être plus besoin


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#8 2011-05-10 21:32:49

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16915

Re: Modification de "picture_modify" via plugin

j'ai oublié une partie de l'explication dsl

dans le fichier cat_modify.php tu as ligne 194

$template->set_filename( 'categories', 'cat_modify.tpl');

donc le nom à filtré est sur categories


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#9 2011-05-10 22:30:41

LucMorizur
Membre
Vienne (Isère, 38)
2009-03-01
1969

Re: Modification de "picture_modify" via plugin

Bah, euh, moi, ça va, aujourd'hui, hein... (enfin, si j'arrive à m'y remettre :-/ ...) (Je ne sais pas si ça s'adresse à moi ou à mistic100, ou aux deux.) Mais je peux en tous cas regarder si ta proposition donne du mieux.

Voyons en tous cas si ça aide mistic100 :-)

Hors ligne

#10 2011-05-11 09:28:50

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Modification de "picture_modify" via plugin

Comme je le dis souvent attention à preg_replace... il y a des caractères non-échappés dans le pattern.

S'il n'y a pas besoin d'utiliser d'expression rationelle, alors, mieux vaut utiliser un str_replace pour éviter les soucis:

Code:

function smart_prefilter($content, &$smarty)
{
  $search = '<form action="{$F_ACTION}" method="POST" id="links">';
  
  $replacement = '
My new form here
<form action="{$F_ACTION}" method="POST" id="links">
  ';
  
  return str_replace($search, $replacement, $content);
}

P@t

Hors ligne

#11 2011-05-11 12:01:56

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Modification de "picture_modify" via plugin

j'avais essayé aussi penses-tu ^^

et Damien je ne vois pas bien la différence entre mon code et le tiens :s

bon là je vais m'y remettre je suis sur que c'est a bonne

Hors ligne

#12 2011-05-11 12:21:23

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Modification de "picture_modify" via plugin

c'est bon j'y suis :D

seulement il y a un problème, c'est que j'ai besoin d'opérer avant que la page picture_modify soit exécutée, mais j'ai besoin des variables $page[*] qui sont créée entre le trigger 'loc_gegin_admin' et l'inclusion de la page

comme c'est pas la première fois que ça m'arrive je vais ajouter un trigger ('loc_begin_admin_page' ligne 224 de admin.php), j'ai vu qu'il y en a sur certaines page (cat_modify par exemple) mais pas sur toutes

Hors ligne

#13 2011-05-11 16:06:18

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Modification de "picture_modify" via plugin

mistic100 a écrit:

comme c'est pas la première fois que ça m'arrive je vais ajouter un trigger ('loc_begin_admin_page' ligne 224 de admin.php), j'ai vu qu'il y en a sur certaines page (cat_modify par exemple) mais pas sur toutes

Perso, j'utilise en général le trigger plugin_admin_menu_link qui fait très bien l'affaire :-)


P@t

Hors ligne

#14 2011-05-11 16:16:14

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Modification de "picture_modify" via plugin

get_admin_plugin_menu_links ?
ouais mais... il n'est pas fait pour ça :D
et puis c'est un trigger_event, tel que je me connais je vais oublier de faire transiter les données et je vais tourner en rond pendant 1h à trouver pourquoi c'est tout cassé

Hors ligne

#15 2011-05-11 20:51:18

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Modification de "picture_modify" via plugin

mistic100 a écrit:

get_admin_plugin_menu_links ?
ouais mais... il n'est pas fait pour ça :D

Si on devait avoir un trigger spécifique pour chaque bout de code à insérer, il y aurait un trigger toute les trois lignes! Pour ce cas précis, je reconnais que ca serait peut-etre judicieux d'avoir une nouveau trigger... mais je me contente très bien de celui qui existe...

mistic100 a écrit:

et puis c'est un trigger_event, tel que je me connais je vais oublier de faire transiter les données et je vais tourner en rond pendant 1h à trouver pourquoi c'est tout cassé

Ca n'arrivera que la première fois ;-)


P@t

Hors ligne

  •  » Utilisation
  •  » Modification de "picture_modify" via plugin

Pied de page des forums

Propulsé par FluxBB

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