Pages: 1
Bonsoir à tous les pros du php (et les autres aussi bien sur ! ;) )
Le week-end est enfin là et je peux le remettre aux dev... Et je tombe sur un os qui saura certainement trouver un echo, voire une solution, ici. Je m'explique :
La partie admin du plugin NBC_UserAdvManager propose deux onglets de configuration déjà bien fournis plus 2 (bientot 3) autres onglets résultants de la configuration sauvegardée. J'aimerai masquer ces onglets résultants lorsque la(les) option(s) correspondantes ne sont pas validées. J'ai donc tenté l'approche suivante :
// +-----------------------------------------------------------------------+ // | Tabssheet | // +-----------------------------------------------------------------------+ if (!isset($_GET['tab'])) $page['tab'] = 'global'; else $page['tab'] = $_GET['tab']; /* Je récupère l'état des options sauvegardées */ $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array(); $tabsheet = new tabsheet(); /* Mes deux onglets de configuration sont toujours affichés */ $tabsheet->add('global', l10n('Tab_Global'), $my_base_url.'&tab=global'); $tabsheet->add('confirmmail', l10n('Tab_ConfirmMail'), $my_base_url.'&tab=confirmmail'); /* Si telle option est active alors j'affiche l'onglet correspondant */ if (isset($conf_nbc_UserAdvManager[20]) and $conf_nbc_UserAdvManager[20]=='true') { $tabsheet->add('userlist', l10n('Tab_UserList'), $my_base_url.'&tab=userlist'); } $tabsheet->select($page['tab']); $tabsheet->assign();
Cela fonctionne pour un état des options à l'instant T de l'affichage du module d'admin du plugin. Mais si je change la position de l'option $conf_nbc_UserAdvManager[20] dans l'onglet de configuration, l'onglet résultant (userlist) ne s'affiche pas dans la foulée ou ne disparait pas sans qu'il faille rappeler manuellement le module d'admin.
J'ai essayé plusieurs méthodes pour "rafraichir" la page automatiquement à chaque fois qu'une sauvegarde d'option est effectuée sans beaucoup de succès. Notamment avec un javascript de ce type :
echo "<script language='javascript'>window.location.reload();</script>";
Quelqu'un aurait-il une idée lumineuse pour arriver au résultat escompté ?
Dernière modification par Eric (2009-11-28 15:07:12)
Hors ligne
Bonjour Eric ;
dans Event Cats, j'ai ce fonctionnement : le fichier d'administration appelé est toujours evntcats_admin.php. Sa structure est :
_ (vérifications hacking, globals... ;)
_ vérifications des données dans la DB ;
_ traitement des $_POST et $_GET pour modifier la DB et établir quel devrait être l'onglet affiché ;
_ vérifications des données dans la DB (à nouveau) ;
_ création de l'objet tabsheet, et création des différents onglets en fonction des données de la DB ;
_ appel (include) de la partie d'administration spécifique à chaque onglet, afin d'affecter au template (template->assign) les valeurs spécifiques à chaque onglet) ;
_ (retour à evntcats_admin.php après le traitement du include) affectation (template->assign) des valeurs communes à tous les onglets, et appel du template.
En espérant que cela puisse t'aider ?
:-)
Hors ligne
Luc, je ne sais pas si tu as bien compris le pb d'Eric.
En réalité, il n'a aucun pb. Il veut simplement faire super-beau.
Je cherche à faire le même genre d'exploit dans WordPress.
Onglet invisible avant mais visible si on coche une option en gros.
Pour moi, c'est là où jQuery permet de faire simple.
On génère tous les tabsheets.
Mais on place un event au load sur l'option pour masquer l'onglet voulu.
Hors ligne
Merci tout d'abord pour vos réponses.
Effectivement je n'ai pas réellement de pb mais juste une envie d'améliorer l'affichage de la partie admin de mon plugin que je trouve particulièrement lourd et encombré.
jQuery semble être le bon moyen pour arriver à ce que je cherche. Mais c'est encore quelque chose de particulièrement obscur pour moi, ce jQuery. Je vais essayer de voir comment faire cet event dont tu parles, VDigital.
Hors ligne
Dans Whois online, les filtres du radar font un peu ce genre de fonction.
Dans AkBookStyle, d'une autre façon on obtient le même résultat, je clique la page n'est pas reloadée mais l'affichage change.
Hors ligne
VDigital a écrit:
Dans Whois online, les filtres du radar font un peu ce genre de fonction.
Dans AkBookStyle, d'une autre façon on obtient le même résultat, je clique la page n'est pas reloadée mais l'affichage change.
Je vois le code, je lis le code... Mais il va me falloir un peu de temps pour le comprendre.
[HS]
En parallèle, j'ai aussi imaginé rassembler tous les formulaires de configuration dans un même onglet et les séparer dans des boites dépliables en jQuery. D'un point de vue graphique, j'y suis arrivé facilement mais l'enregistrement des informations des différents formulaires (3 en tout) ne se fait plus. En plus, toute action en "submit" ferme la boite dépliable...
Pas glop ;-)
Je sens que je vais avoir besoin de longues heures d'étude de jQuery.[/HS]
Hors ligne
Eric, ton astuce sur les boites dé-pliables gardes là bien sous le coude pour un futur plugin ;-)
Hors ligne
Pages: 1