Ayé ! J'ai pigé ! Milles mercis, mistic100 !
Effectivement, j'ai commencé par une grosse boulette en mettant du code autre que du template dans le préfiltre. Et grâce à ton exemple avec oauth, je comprends mieux l'appel aux deux triggers.
Je vais creuser dans ce sens. :-)
mais je ne comprend pas trop bien ce que tu fais, à quel moment tu as besoin de l'id ?
dans oauth j'ai besoin d'ajouter un icone dans le tableau pour ça je joue avec les deux triggers qui sont dans admin/user_list_backend.php
http://piwigo.org/dev/browser/extension … ts.inc.php (oauth_user_list_columns et oauth_user_list_render)
après la sauvegarde et la récupération des détails se fait en AJAX à l'aide de l'API (méthode pwg.users.setInfo et pwg.users.getList) je suppose que c'est là que tu a besoin d'agir
attends tu ne peux pas mettre de code métier dans un préfiltre : ils ne sont exécutés qu'une seule fois puis mis en cache avec le reste dans _data/templates_c
le code métier ce met en dehors, et dans le préfiltre on ne voit que du code de template ajouté à l'existant (qui peut lui aussi contenir du metier, mais en syntaxe Smarty)
Re bonjour !
Dans mon précédent forfait (topic:24953), j'attaquai le tableau des utilisateurs. Mais ici, c'est la partie "édition" des informations pour chaque utilisateur qui m'intéresse. Grâce au modèle donné par extension:531, je peux ajouter une nouvelle information / action dans le panneau.
Problème : J'ai besoin de récupérer l'ID de l'utilisateur en question pour afficher la bonne info. ddtddt a "contourné" le problème en utilisant un lien vers la page de profil et en se basant sur <%- user.id %> dans l'URL.
Mais comment retrouver ce user.id pour une utilisation dans une requête ?
Pour illustrer, voici mon code (la variable "$userid" n'est là que pour l'exemple et ne fonctionne évidemment pas):
//add admin panel prefiter add_event_handler('loc_begin_admin', 'PP_admin_prefilter', 80 ); function PP_admin_prefilter() { global $template, $prefixeTable, $conf, $page ; $template->set_prefilter('user_list', 'PP_admin_prefilter_tpl'); } function PP_admin_prefilter_tpl($content, &$smarty) { load_language('plugin.lang', PP_PATH); $query = ' SELECT DISTINCT id, PP_lock FROM '.USERS_TABLE.' WHERE id IN ('.$userid.') ;'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { if ($row['PP_lock'] == 'false') { $LockedUser = '<img src="'.PP_PATH.'admin/template/icons/nolock.png" title="'.l10n('PP_User Not Locked').'" alt="'.l10n('PP_User Not Locked').'"/><br/><br/>'; } else if ($row['PP_lock'] == 'true') { $LockedUser = '<img src="'.PP_PATH.'admin/template/icons/lock.png" title="'.l10n('PP_User Locked').'" alt="'.l10n('PP_User Locked').'"/><div style="display: none">'.l10n('PP_User Locked').'</div>'; } else $LockedUser = '<img src="'.PP_PATH.'admin/template/icons/nolock.png" title="'.l10n('PP_User Not Locked').'" alt="'.l10n('PP_User Not Locked').'"/><div style="display: none">'.l10n('PP_User Not Locked').'</div>'; } $search = '<div class="userPropertiesSetTitle">{\'Properties\'|translate}</div>'; return str_replace($search, $search."\n".$LockedUser."\n", $content); }
Là aussi, je suis ouvert à toutes suggestions ;-)