Annonce

  •  » Trucs et astuces
  •  » [jQuery] Recharger une page après validation des options

#1 2009-11-27 21:22:25

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

[jQuery] Recharger une page après validation des options

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 :

Code:

// +-----------------------------------------------------------------------+
// |                            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 :

Code:

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

#2 2009-11-28 09:48:54

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

Re: [jQuery] Recharger une page après validation des options

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

#3 2009-11-28 11:00:20

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [jQuery] Recharger une page après validation des options

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.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#4 2009-11-28 11:28:05

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [jQuery] Recharger une page après validation des options

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

#5 2009-11-28 13:01:10

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [jQuery] Recharger une page après validation des options

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.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#6 2009-11-28 15:06:42

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [jQuery] Recharger une page après validation des options

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

#7 2009-11-28 15:18:12

Gotcha
Ex Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: [jQuery] Recharger une page après validation des options

Eric, ton astuce sur les boites dé-pliables gardes là bien sous le coude pour un futur plugin ;-)


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

  •  » Trucs et astuces
  •  » [jQuery] Recharger une page après validation des options

Pied de page des forums

Propulsé par FluxBB

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