Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2014-02-16 14:46:56

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Problème avec jquery.pageTabs.js

Bonjour

Je mets à jour un vieux plugin pour qu'il marche avec Dotclear 2.6. Côté admin, j'ai deux onglets :

- le premier avec une liste de billets
- le second avec une carte Google Maps

Le premier onglet est activé par défaut, et le second est donc caché. Si je clique sur le lien pour afficher le second onglet, la carte ne s'affiche pas correctement, apparemment parce qu'elle a été initialisée dans l'onglet caché en display:none.

Si toutefois je rafraîchis la page alors que l'onglet contenant la carte est actif, il n'y a plus de problème d'affichage, et passer d'un onglet à l'autre ne casse rien.

Je cherche donc à intercepter un évènement lorsque un onglet devient actif, afin de réinitialiser la carte. Connaissez-vous un moyen pour faire cela ?

Merci tout plein pour toute suggestion :)

Hors ligne

#2 2014-02-16 15:18:14

Mirovinben
M comme Mathusalem
Lieu : Dole (Jura)
Inscription : 2007-02-06
Site Web

Re : Problème avec jquery.pageTabs.js

Je ne suis pas du tout familier de la notion et de la gestion des onglets dans l'admin et questionne peut-être naïvement : Le "display:none" est sur l'onglet ou sur la carte ?

Hors ligne

#3 2014-02-16 15:36:30

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Problème avec jquery.pageTabs.js

Le display:none est sur le bloc div class=""multipart", qui contient la carte.

Avec l'ancienne version du script des onglets, je pouvais intercepter le clic sur le lien qui affiche l'onglet masqué et ainsi rafraîchir la carte, mais maintenant il me semble que cet évènement n'est plus propagé

Hors ligne

#4 2014-02-16 16:41:04

nikrou
Membre
Inscription : 2007-10-02
Site Web

Re : Problème avec jquery.pageTabs.js

Salut Philippe, je veux bien le code de plugin si possible pour que j'essaie de reproduire le problème que tu as rencontré. C'est moi qui ai commis le code de jquery.pageTabs.js ! :-)


Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !

Présentez vos photos simplement avec Phyxo !

Hors ligne

#5 2014-02-16 17:04:19

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Problème avec jquery.pageTabs.js

Bonjour nikrou

Le plugin est ici : http://www.dissitou.org/public/myGmaps/ … ps-0.8.zip

Pour voir le bug il faut cliquer sur le menu Blog > Carte Google : les deux onglets du plugin sont "Éléments de carte" et "Paramètres", ce dernier étant caché.

Si tu cliques sur Paramètres, la carte ne s'affiche pas correctement. Si tu actualises la page, tout remarche, ensuite le passage d'un onglet à l'autre fonctionne bien. Si tu vas ailleurs dans l'admin et que tu reviens sur la page du plugin, le problème survient à nouveau.

Hors ligne

#6 2014-02-16 20:09:36

nikrou
Membre
Inscription : 2007-10-02
Site Web

Re : Problème avec jquery.pageTabs.js

J'arrive à reproduire le problème.
Pour le résoudre, il te suffit d'encapsuler la création de la carte dans le callback de l'appel de l'onglet concerné. En clair, tu mets la création de la carte dans le code suivant :

$('#settings').onetabload(function() {
   // la création de la carte
});

Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !

Présentez vos photos simplement avec Phyxo !

Hors ligne

#7 2014-02-16 21:42:16

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Problème avec jquery.pageTabs.js

\o/\o/\o/

C'est exactement ce qu'il me fallait comprendre, merci beaucoup :)

Hors ligne

#8 2014-02-17 10:56:43

nikrou
Membre
Inscription : 2007-10-02
Site Web

Re : Problème avec jquery.pageTabs.js

Philippe a écrit :

\o/\o/\o/

C'est exactement ce qu'il me fallait comprendre, merci beaucoup :)


Hé hé. Bon j'avoue c'est un peu tordu comme truc ! :-)


Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !

Présentez vos photos simplement avec Phyxo !

Hors ligne

#9 2014-02-18 10:37:43

Welsh
Membre
Inscription : 2011-12-28

Re : Problème avec jquery.pageTabs.js

Bonjour

J'ai eu le même problème pour afficher une carte GoogleMaps dans un onglet non actif.
J'ai fait plus "bourrin" : la fonction d'initialisation de la carte commence par rendre l'onglet actif, crée la carte qui va bien et on remet dans l'état initial.

La solution proposée dans le callback ne va t'elle pas créer la carte plusieurs fois ? Question de novice je précise....

Welsh

Hors ligne

#10 2014-02-20 08:49:58

nikrou
Membre
Inscription : 2007-10-02
Site Web

Re : Problème avec jquery.pageTabs.js

Welsh a écrit :

La solution proposée dans le callback ne va t'elle pas créer la carte plusieurs fois ? Question de novice je précise....
Welsh

Non. Le code n'est exécuté qu'une seule fois comme le laisse supposer le nom de la fonction onetabload


Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !

Présentez vos photos simplement avec Phyxo !

Hors ligne

#11 2014-02-20 10:41:01

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Problème avec jquery.pageTabs.js

Pour préciser ce que dit nikrou, dans mon plugin la carte est initialisée à l'ouverture de la page d'administration, même si elle est cachée dans un onglet.

Je sers donc du callback seulement pour la recentrer et lui faire adopter la taille de son conteneur une fois qu'il est visible ;)

Hors ligne

#12 2014-03-13 07:10:47

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Problème avec jquery.pageTabs.js

J'ai encore un petit souci avec ce script : en effet, j'ai deux plugins (cartes google et billets connexes) qui ajoutent des éléments dans la page d'édition d'un billet, sous le champ notes.

Lorsque des éléments sont ajoutés ou supprimés, la page est redirigée, et j'essaie d'ajouter une ancre vers le bloc créé par le plugin pour ajouter un message de succès. Par exemple je modifie l'url de redirection vers :

/dotclear/admin/post.php?id=51#gmap-area

mais ça ne fonctionne pas, le focus reste sur #edit-entry

Cela fonctionnait bien avant la 2.6 de dotclear. Il y a peut-être quelque chose que j'ai loupé ?

Edit : si je tape /dotclear/admin/post.php?id=51#gmap-area dans la barre d'adresse, je suis bien dirigé vers l'ancre dans la page

Dernière modification par Philippe (2014-03-13 08:38:04)

Hors ligne

#13 2014-03-23 11:05:45

nikrou
Membre
Inscription : 2007-10-02
Site Web

Re : Problème avec jquery.pageTabs.js

Salut Philippe. Comment je peux tester pour reproduire et t'aider ?


Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !

Présentez vos photos simplement avec Phyxo !

Hors ligne

#14 2014-03-23 18:09:43

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Problème avec jquery.pageTabs.js

Pour reproduire le problème, il faut installer le plugin relatedEntries, et ajouter des billets connexes à un billet. Le fichier posts.php du plugin enregistre alors les billets connexes (sous forme de metas), puis redirige vers ledit billet avec le code :

http::redirect(DC_ADMIN_URL.'post.php?id='.$id.'&add=1#relatedEntries-area');

Tout marche bien, sauf que le focus est donné à l'onglet #edit-entry mais pas à #relatedEntries-area

Hors ligne

#15 2014-07-07 13:41:00

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Problème avec jquery.pageTabs.js

@nikrou : as-tu pu regarder ce que je faisais de travers ?

Hors ligne

#16 2014-07-07 17:58:29

nikrou
Membre
Inscription : 2007-10-02
Site Web

Re : Problème avec jquery.pageTabs.js

Philippe a écrit :

@nikrou : as-tu pu regarder ce que je faisais de travers ?

T'aurais dû me relancer car j'ai oublié. Alzheimer tout ça ! :-) Je regarde.

Edit :

Bon je viens de regarder. Malheureusement, de base tu ne pourras rien faire. Le plugin écrit par Bibi (jquery.pageTabs) capture l'ancre et colle la page en haut :
https://bitbucket.org/dotclear/dotclear … ault#cl-18

C'était pour corriger le problème de la page about:config avec les ancres et les onglets !

Tu peux peut-être t'en sortir en faisant un scroll jusqu'à ton ancre.

Dernière modification par nikrou (2014-07-07 18:31:30)


Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !

Présentez vos photos simplement avec Phyxo !

Hors ligne

#17 2014-07-08 08:50:51

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Problème avec jquery.pageTabs.js

nikrou a écrit :

Tu peux peut-être t'en sortir en faisant un scroll jusqu'à ton ancre.

Ce serait donc une fonction js à rajouter dans le fichier admin.php du plugin, je vais voir comment ne le déclencher que lors d'un enregistrement par le plugin...

Aurais-tu un exemple dont je pourrais m'inspirer ?

Hors ligne

#18 2014-07-08 13:58:07

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Problème avec jquery.pageTabs.js

nikrou a écrit :

C'était pour corriger le problème de la page about:config avec les ancres et les onglets !

Et il n'y avait pas moyen de limiter le fix à ce plugin ?

:P

Hors ligne

#19 2014-07-08 18:59:22

nikrou
Membre
Inscription : 2007-10-02
Site Web

Re : Problème avec jquery.pageTabs.js

Philippe a écrit :
nikrou a écrit :

C'était pour corriger le problème de la page about:config avec les ancres et les onglets !

Et il n'y avait pas moyen de limiter le fix à ce plugin ?

:P

Sûrement mais je dois avouer que je n'ai pas creusé. Si tu en as envie, le plugin est testé unitairement, donc on peut modifier pour essayer de reproduire le comportement attendu sans casser autre chose.


Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !

Présentez vos photos simplement avec Phyxo !

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map