Skip to main content Help Control Panel

Login   A+   A-

Community «   Le forum «   Besoin d'aide «  

Une redirection à l'intérieur d'une page Yacs

Existe-t-il quelque chose comme un redirect ?
Problem has been recorded

Issue description

Je me demande si c'est possible avec Yacs et si quelqu'un sait comment faire ou peut me créer un bout de script qui ferait le travail.

Voici ce que je veux obtenir :
-  imaginons que je clique ci-dessus (dans le site Yetanother...) sur l'onglet Logiciel
-  actuellement je serai acheminé vers la page d'index d'une section intitulée Logiciel
-  quelque part ailleurs dans le site il existe une page (ou une sous-section) intitulée Téléchargement
-  je voudrais qu'un clic sur l'onglet Logiciel achemine directement à la page Téléchargement sans ouvrir la page d'index de Logiciel.

Quelqu'un a une suggestion ?

Comments

Christian
avatar
from Chonas l'Amballan
Associate, 776 posts

on Feb. 21


Les liens contenus dans les onglets de skin sont en durs dans le template si je ne m'abuse... Donc il suffit de modifier template.php

A vérifier tout de même
Lasares
avatar
from L'Île-Bizard à Montréal, Québec
699 posts

inspired from Christian on Feb. 21


Christian : Merci de ta réponse rapide. Note que les liens ne sont pas vraiment codés en dur.

Les onglets sont créés par function tabs(...) qu'on trouve dans page.php. Cette fonction crée les onglets à partir d'une requête dans la base de données pour connaître la liste des sections (en ayant recours à une autre fonction qu'on trouve dans sections.php pour présumément identifier les sections de top-niveau).

J'imagine qu'on pourrait créer un script qui ajoute à function tabs (...) une instruction if qui identifie l'onglet voulu et qui redirige alors (par code en dur) vers la page requise.

3 problèmes avec ça :

1. c'est ni très élégant, ni très flexible, ni très facile à implémenter

2. ça ne fonctionnerait qu'avec les onglets de premier niveau (ma requête initiale, il est vrai) mais pas avec les sous-sections situées plus bas dans l'arborescence (et je cherche une solution plus générale)

3. c'est au-dessus de mes forces, pour l'instant

Je me demandais si quelqu'un d'autre avait déjà été confronté à cette question et s'il existait déjà une solution...
Christian
avatar
from Chonas l'Amballan
Associate, 776 posts

on Feb. 21


Lasares : alors à quoi correspondent ces lignes dans le template de yacs_2007 (ligne 100 environ) ?
// tab to software
$local = array();
$local['label_en'] = 'Software';
$local['label_fr'] = 'Logiciel';
$site_bar = array_merge($site_bar, array(Sections::get_url(186, 'view', 'software_factory') => array(NULL, i18n::l($local, 'label'), NULL, 'section_186')));



http://actupro.fr
Lasares
avatar
from L'Île-Bizard à Montréal, Québec
699 posts

inspired from Christian on Feb. 21


Christian :

Et toc ! Tu as raison, c'est codé en dur dans ce skin. Et c'est effectivement une réponse possible à ma requête, dans sa forme initiale.

Pourrais-tu être aussi fine mouche et me suggérer où regarder pour faire la même chose sur un index de sous-section ?
Christian
avatar
from Chonas l'Amballan
Associate, 776 posts

on Feb. 21


Là je comprends pas trop. Les numéros invoqués dans ce code peuvent être des sections comme des sous-sections à mon avis. Si c'est çà le sens de ta dernière question.


http://actupro.fr
Lasares
avatar
from L'Île-Bizard à Montréal, Québec
699 posts

on Feb. 21


C'est moi qui ne suis pas clair. En début de ce post, je demandais comment faire un redirect sur un onglet principal, comme Logiciel sur ce site, et tu m'as fourni une réponse. Merci.

Maintenant, je cherche comment faire un redirect sur une sous-section, qui n'apparaît pas dans un onglet principal, mais dans le menu contextuel, sur le côté.

Disons, par exemple, que je voudrais "tricher" avec l'organisation automatique du site et faire en sorte qu'un clic sur "Besoin d'aide", dans la boîte en haut à droite dans cette page, ne mène plus à l'index du forum Besoin d'aide mais, disons, à cette page-ci que nous sommes en train de lire.

J'imagine que je pourrais "tripoter" le code du menu contextuel. Te souviens-tu dans quel script on le trouve ?


On a si peu d'idée de ce qui est possible...
Christian
avatar
from Chonas l'Amballan
Associate, 776 posts

on Feb. 21


Le menu est dans les pages globales. Par contre j'ai essayé d'insérer un code yacs entre les codes [ menu ] ou [ submenu] mais ca ne fonctionne pas. il faut juste mettre [ section=x,label]. A la rigueur tu peux sous forme de liste [ *] ou carrément avec de < ul> et < li>


http://actupro.fr
Lasares
avatar
from L'Île-Bizard à Montréal, Québec
699 posts

inspired from Christian on Feb. 21


Merci, Christian, c'est sympathique de te donner tant de mal. À charge de revanche.

Remarque que je ne parlais pas du menu principal à gauche, mais du menu contextuel à droite. Si tu sais où trouver le script qui le génère, je suis preneur, je ne m'en souviens plus.

Par contre, tu peux cesser de travailler sur la question, j'ai trouvé une solution qui fait davantage appel à mes compétences. Au lieu de jouer avec le PHP, je joue avec le CSS.

Pour ceux que ça intéresserait, voici ma solution pour "tricher" comme indiqué dans mon post précédent (un clic sur Besoin d'aide à partir de la page actuelle ne mènerait plus au forum Besoin d'aide mais, disons à l'article 99):

1. sur la page où vous voulez "tricher", (celle-ci en l'occurence, mais vous êtes associé, pas simplement membre comme moi ici), vous créez une division qui inclut votre redirection, en lui donnant une classe unique, par exemple redirect1 et vous la placez n'importe ou dans votre contenu

2. ça donne ceci (enlevez les espaces additionnels que j'ai dû mettre dans les balises pour l'affichage dans ce commentaire) :

div class="redirect1" > [ article=99Besoin daide ] < /div >



3. dans votre feuille de style (quelque chose comme skins/monskin/monskin.css), créez une nouvelle règle de style pour positionner et formatter votre lien de redirection par dessus celui que vous voulez remplacer

4. il vous faut connaître l'emplacement exact du lien que vous remplacez : ici , je veux remplacer Besoin d'aide, qui est à 225 pixels du haut de la page et à 140 pixels du bord droit

5. ça donne ceci (le formattage comme la police, la couleur et la taille, dépendront de votre skin, évidemment):

div.redirect1 a /* to overlap a subsection tab with a different link */
    
colorblack;
    
font-familyVerdanaArialHelveticasans-serif;
    
font-size77%;
    
font-weightnormal;
    
positionabsolute;
    
top225px;
    
right140px;
    
display:inline;
    
backgroundwhite url("icons/tree/node.gif"no-repeat;
    
margin0;
    
padding0;
}



6. vous devrez vraisemblablement ajuster d'autres paramètres, comme les marges ou même l'image selon ce que vous essayez de remplacer; réglez le #background## à red pour faciliter l'ajustement, puis fixez-le à la couleur de fond pour cacher le lien original

Une fois bien positionné, l'illusion est parfaite : un clic sur Besoin d'aide (mais seulement dans la page où vous avez inclus votre DIV spéciale) mène à l'article 99 et non plus au forum Besoin d'aide.

Je reconnais que c'est une triche et que ça n'a pas d'usage généralisé mais ça peut être utile dans des cas spéciaux. Je vous montrerai bientôt un site où j'en fais usage.

Rate this page
Posted by Lasares on Feb. 21, (popular)