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 ;-)
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é
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 :-)
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
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
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:
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); }
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 :-)
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
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
Je ne sais pas si ça peut aider...
Dans post:133967, P@t m'a aidé à trouver le handler pour le préfiltre dont j'ai besoin pour extension:326. 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.
nan définitivement il y a un truc qui m'échappe
fichier main.inc.php
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
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
cache du template.... il ne passera pas un jour sans que je me fasse avoir
avec $conf['template_force_compile'] = true; c'est mieux
j'ai essayé pourtant...
je vais regarder addInfo, il doit y avoir une subtilité
je pense que tu peux faire un préfiltre sur picture_modify sans problème
je l'utilise pour addInfo, title et meta
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...