Dotclear

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

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2020-07-14 11:18:32

nanart
Membre
Lieu : Roubaix
Inscription : 2007-08-19

[resolu] redirect vers id dans un onglet

Bonjour,

Je suis en train de tester la réalisation de plug.

Dans la page d'administration de ce plug, j'ai au moins deux onglets (tab1 et tab2).
Dans l'onglet tab2 j'ai un formulaire (avec un champ combo) qui me renvoie un id existant dans l'onglet tab2

J'ai testé plusieurs méthodes capturant la valeur de l'id -- goto choisi pour "retourner" un redirect comme :

http::redirect($p_url .'#' .$goto );

ou

http::redirect($p_url .'&tab=tab2' .'#' .$goto);

Tous me renvoient une url correcte (vérifiée) mais aucune ne me renvoie directement à l'id -- se contentant d'afficher le haut de page 'tab2'

Je ne sais pas si je me fais bien comprendre mais j'aimerais un fonctionnement comme about:config, cad :

  • - dans le form je choisis une id (goto).

  • - je suis redirigé directement sur l'id (goto) de la page (tab2)


Je pressens qu'il faut user de quelque chose comme du java. Mais comme je n'y connais rien... ;-(

Quelqu'un a une idée ?
Merci.

Dernière modification par nanart (2020-07-15 13:09:49)


Dernière version stable Dotclear sur wampserver et chez ovh
Versions testing & unstable en local
https
php: 7.4  - 8 +

Hors ligne

#2 2020-07-14 13:01:27

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

Re : [resolu] redirect vers id dans un onglet

J'ai déjà rencontré le problème pour un plugin, je n'arrivais pas à atteindre une ancre dans un onglet.

Peut-être pourrais-tu essayer de mettre l'ancre avant les paramètres ?

http::redirect($p_url.'#'.$goto'&tab=tab2');

Hors ligne

#3 2020-07-14 13:24:39

nanart
Membre
Lieu : Roubaix
Inscription : 2007-08-19

Re : [resolu] redirect vers id dans un onglet

Non, l'ancre avant p ne fonctionne pas. (amha normal ;-) )

Comme dit, les urls sont ok. En consultant les deux formes d'url préparées, j’atteins bien l'id...

Le problème étant que avec http::redirect je ne vais pas directement sur l'id, comme cela se passe dans about::config.

C'est pourquoi je soupçonne une couche java(?) qui redirigerait "automatiquement" vers l'id...


Dernière version stable Dotclear sur wampserver et chez ovh
Versions testing & unstable en local
https
php: 7.4  - 8 +

Hors ligne

#4 2020-07-14 16:40:25

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

Re : [resolu] redirect vers id dans un onglet

Il y a effectivement un code javascript pour gérer les onglets, il est appelé dans le head de la page d'index du plugin, par exemple ainsi :

echo dcPage::jsPageTabs($default_tab)

qui donne le focus à un onglet, on peut lui passer un paramètre avec l'id d'un des onglets, mais je n'ai pas réussi à ajouter une ancre, qui est systématiquement ignorée dans l'url, la page a le focus sur le titre de l'onglet

Hors ligne

#5 2020-07-14 21:11:34

nanart
Membre
Lieu : Roubaix
Inscription : 2007-08-19

Re : [resolu] redirect vers id dans un onglet

Je crois avoir résolu, mais il faut que je teste sur des pages plus longues...

Schématiquement :
- index.php

$default_tab = 'tab-1';

if (isset($_REQUEST['tab'])) {
	$default_tab = $_REQUEST['tab'];
}

....

puis

<div class="multi-part" id="tab-1" ...
<p id='test1'>...

<div class="multi-part" id="tab-2" ...
<p id='test2'>...

dans multi-part "tab-2", par ex

un array, ex :

$tab_values = ['goto test1'=>'test1', 'goto test2'=>'test2'];

et dans le form

echo form::combo('tab',$tab_values);

Apparemment -- mais faut tester plus loin, si on choisit, par ex, 'test2', l'url renvoie uniquement p=(nom du plug), mais on est bien dirigé vers tab-2 qui contient l'id 'test2'. et Lycée de Versailles (test1 sur tab-1)

Bon, c'est un peu simpliste comme méthode (le form renvoie 'tab') et il doit y avoir moyen d'améliorer, mais ça a l'avantage de ne pas utiliser redirect.

Comme dit, faut que je vois si ça marche sur des pages plus longues avec différents id dans les pages.

+++ j'ai essayé avec un part tab-3 contenant un id test3 (ajouté dans l'array), ça a l'air ok

A suivre...?

EDIT: raté, ça semble pô marcher, uniquement redirection haut onglet ??? ;-(

Dernière modification par nanart (2020-07-14 21:32:59)


Dernière version stable Dotclear sur wampserver et chez ovh
Versions testing & unstable en local
https
php: 7.4  - 8 +

Hors ligne

#6 2020-07-15 08:20:08

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : [resolu] redirect vers id dans un onglet

Pour les onglets gérés par PageTabs (que j'ai modifié), l'id de l'onglet se trouve effectivement après le # et si, ensuite, on veut atteindre un id particulier dans le contenu de l'onglet il suffit de rajouter un . et l'id du truc à atteindre.

Exemple pour atteindre directement les préférences utilisateur pour le plugin a11yConfig :

#user-options.a11yConfig

Dotclear addicted since 2004

Hors ligne

#7 2020-07-15 13:09:23

nanart
Membre
Lieu : Roubaix
Inscription : 2007-08-19

Re : [resolu] redirect vers id dans un onglet

Merci sorcier, ça marche impec ;)


Dernière version stable Dotclear sur wampserver et chez ovh
Versions testing & unstable en local
https
php: 7.4  - 8 +

Hors ligne

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

Pied de page des forums

Sites map