PDA

Afficher la version complète : Créer un onglet dans la barre de navigation avec un template



mitch84
29/11/2009, 09h18
Ce tutoriel vous permet d'ajouter un nouvel onglet en passant par la création d'un template.

Ragtek (http://www.vbulletin.org/forum/member.php?u=133387) est l'auteur de ce Tutoriel (http://www.vbulletin.org/forum/showthread.php?t=228313), et j'ai son accord écris pour le partager sur vBulletin-ressources.com. Merci à lui.


Installation

Allez dans la gestion des styles de l'ACP et ajouté un nouveau template dans le thême souhaité.



Sélectionnez le style



Titre : ragtek_news_navbar



Template : Insérez le code suivant


<vb:if condition="$vboptions['selectednavtab'] == 'ragteknews'">
<li class="selected">
<a class="navtab" href="news.php{vb:raw session.sessionurl_q}">{vb:rawphrase ragtek_news}</a>
<ul class="floatcontainer">
<li><a href="#">#</a></li>
</ul>
</li>
<vb:else />
<li><a class="navtab" href="news.php{vb:raw session.sessionurl_q}">{vb:rawphrase ragtek_news}</a></li>
</vb:if>

Enregistrez.

Alors maintenant allez dans Modules & produits et ajouter un module.



Produit : vBulletin



Emplacement du crochet : process_templates_complete



Titre : donnez un nom



Ordre d'exécution : 5



Code PHP du module :


if (THIS_SCRIPT == 'ragteknews')
{
//set selected tab
$vbulletin->options['selectednavtab'] = 'ragteknews';
}
// add the "subtemplate" to the navbartemplate
$template_hook['navtab_middle'] .= vB_Template::create('ragtek_news_navbar')->render(); Comme vous le voyez, il a été défini ragteknews sur cette page PHP, donc ragteknewsdoit aussi être défini du même nom dans la condition
$vbulletin->options['selectednavtab'] = 'ragteknews';

Ombre
29/11/2009, 10h18
Bonjour, merci pour ce tutoriel, il sera utile :)

Simon
29/11/2009, 10h34
Merci pour la traduction :)

Allan
29/11/2009, 10h48
Merci pour ce tutoriel ;)

DiDzI
29/11/2009, 21h24
honte sur moi, je n'avais pas vu la section en bas avec ces super explication

Bravo Mitch84 :)

DexX
12/02/2010, 12h26
J'ai fais comme expliqué sur le tutoriel, mais aucun bouton ne s'affiche ??

Ombre
12/02/2010, 18h32
Bonsoir, tu as bien appliquer cela?


comme vous le voyez, il a été défini ragteknews sur cette page PHP, donc ragteknews doit aussi être défini du même nom dans la condition [CODE]$vbulletin->options['selectednavtab'] = 'ragteknews';

Simon
12/02/2010, 22h42
J'ai fais comme expliqué sur le tutoriel, mais aucun bouton ne s'affiche ??Copie ton code ici si tu ne trouve pas ton erreur.

REBEL
28/02/2010, 12h01
salut a tous
voila mon soucie
j'ai suivi le tuto
et je me retrouve avec sa en haut du forum la shout et statistique enfin bref partout
Parse error: syntax error, unexpected T_VARIABLE in /home/pcmania/www/forum/includes/class_bootstrap.php(399) : eval()'d code on line 18
une petite question je met sa ou
car la je vois pas
[CODE]$vbulletin->options['selectednavtab'] = 'ragteknews';[CODE]
merci

Simon
28/02/2010, 12h12
salut a tous
voila mon soucie
j'ai suivi le tuto
et je me retrouve avec sa en haut du forum la shout et statistique enfin bref partout
Parse error: syntax error, unexpected T_VARIABLE in /home/pcmania/www/forum/includes/class_bootstrap.php(399) : eval()'d code on line 18
une petite question je met sa ou
car la je vois pas
[CODE]$vbulletin->options['selectednavtab'] = 'ragteknews';[CODE]
merciBonjour,

Ce code doit se mettre, comme indiqué dans le tutoriel, dans un module / hook utilisant process_templates_complete. Cette erreur signifie que tu as faire une faute de frappe.

WARNING
02/04/2010, 04h21
salut a tous
voila mon soucie
j'ai suivi le tuto
et je me retrouve avec sa en haut du forum la shout et statistique enfin bref partout
Parse error: syntax error, unexpected T_VARIABLE in /home/pcmania/www/forum/includes/class_bootstrap.php(399) : eval()'d code on line 18
une petite question je met sa ou
car la je vois pas
[CODE]$vbulletin->options['selectednavtab'] = 'ragteknews';[CODE]
merci
bonsoir
je me retrouve avec le même problème que lui et le plus pire sais que je peut même plus me connecter au forum

Il n'est pas possible d'ajouter les cookies, les en-têtes ont déjà été envoyées.
Fichier : /home/forum/public_html/includes/class_bootstrap.php(399) : eval()'d code
Ligne : 18

maintenant j'ai lair bien la

Ombre
02/04/2010, 07h37
Bonjour, solution: http://www.vbulletin-ressources.com/forum/showthread.php?t=8199

WARNING
02/04/2010, 23h28
bonjour
merci

tusk
19/05/2010, 22h29
En effet, même souci !

J'ai copié collé exactement le code donné dans les endroits décrit (un nouveau template et un hook)

même erreur

VB 4,0,3

:fool:

Ali
22/05/2010, 18h06
Pareil pour moi :/

C'est la dernière ligne que je ne comprend pas :/

Simon
22/05/2010, 18h20
Bonsoir,

J'ai mis à jour le code du module, re-essayer.

tusk
25/05/2010, 14h39
Bonsoir,
J'ai mis à jour le code du module, re-essayer.

Bonjour!

Merci pour la mise a jour.. J'ai essayé et cela fonctionne bcp mieux, mais il reste encore un tout petit pb :

Le bouton ne reste pas en état "séléctionné", et c'est le premier bouton de la liste (en général "forum") qui se met en surbrillance

Comment régler ce pb ??

Merci d'avance !

Simon
25/05/2010, 20h40
Le bouton ne reste pas en état "séléctionné", et c'est le premier bouton de la liste (en général "forum") qui se met en surbrillanceBonjour,

C'est normal, il faut passer par du code PHP, dans un hook pour pouvoir changer l'onglet sélectionné. Inspire-toi du code du hook de vBCMS.

tusk
26/05/2010, 09h15
Bonjour,

C'est normal, il faut passer par du code PHP, dans un hook pour pouvoir changer l'onglet sélectionné. Inspire-toi du code du hook de vBCMS.


Très bien je fais faire une recherche la dessus merci :)

tusk
26/05/2010, 17h51
Mouais ben ça risque de pas être facile pour moi cette histoire là..
Un peu trop compliqué.. :(

BalHack
26/05/2010, 18h17
C'est qu'en même plus simple de tout mettre dans un module :)
Car une fois que le bouton est mis, je vois pas l'intérêt du template et en plus, le module est obligatoire, donc ça ne change rien.
On s'amuse pas à modifier le bouton tous les jours et même si c'est le cas, le module revient au même

tusk
26/05/2010, 23h15
C'est qu'en même plus simple de tout mettre dans un module :)
Car une fois que le bouton est mis, je vois pas l'intérêt du template et en plus, le module est obligatoire, donc ça ne change rien.
On s'amuse pas à modifier le bouton tous les jours et même si c'est le cas, le module revient au même


Oui c'est vrai.. Mais bon, moi je cherche juste une solution qui fonctionne bien une fois pour toute.. je l'installe et je l'oublie jusqu'à la prochaine mise à jour..
Je ne suis malheureusement pas très bon en php et encore moins pour comprendre tout le système de crochets, modules etc.....

(Tu aurais ce genre de module ? j'ai vu sstab advanced ? il y en a un d'autres efficaces ??)

BalHack
27/05/2010, 01h10
Essaye ça
en remplaçant c'est chose :) par ce que tu veux différent de ceux existant ;)
toto a remplacé
sous menu 1 et 2 a remplacé si tu en as besoin
liendelapage a remplacé par l'url
'.$tablinks.' a gardé ou supprimé si tu n'utilise pas de sous menu
Titre ce qui est affiché dans le bouton

Normalement, j'ai rien oublié et si c'est le cas, soit je le verrais soit quelqu'un sera là pour corriger

Modules & Produits => gérer les modules
Tout en bas, ajouter un module
Produit laisse sur vbulletin
Emplacement du crochet = process_templates_complete
Titre = ce qui t'inspire (onglet toto)
Ordre d'exécution = 5
Code PHP du module (colle ce qui se trouve en dessous entre les balise php


$tabselected = '';
$tablinks = '';
if (THIS_SCRIPT == 'toto')
{
$vbulletin->options['selectednavtab']='toto';
$tabselected = ' class="selected"';
$tablinks = '<ul class="floatcontainer">
<li><a href="http://" alt="" title="">sous menu 1</a></li>
<li><a href="http://" alt="" title="">sous menu 2</a></li>
</ul> ';
}

$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="liendelapage">Titre</a>'.$tablinks.'</li>' ;

tusk
27/05/2010, 12h20
Essaye ça

Merci de m'aider !!

Bon à vrai dire, j'avais déjà trouvé ce code et je l'avais essayé.
Il apparait dans un autre thread et donc j'avais posté la bas (http://www.vbulletin-ressources.com/forum/showthread.php?t=17892&p=154879#post154879) Je préfère garder les thread séparés ;)

Donc en fait, la même chose se produit : le bouton fonctionne bien, mais le pb c'est qu'il ne se met pas en 'selected', et c'est le tout premier bouton qui est mit en surbrillance.

Comme Simon le notait :

C'est normal, il faut passer par du code PHP, dans un hook pour pouvoir changer l'onglet sélectionné. Inspire-toi du code du hook de vBCMS

Il faut donc trouver comment faire ça, avec le code de ce sujet, ou avec le tiens qui était donné dans l'autre sujet.
Mais cVCMS est bien trop gros pour moi je vais être perdu dans le code pour trouver ce qu'il me faut. Tu saurais ou chercher BalHack?

tusk
28/05/2010, 00h13
Bon j'ai finallement installé le module "Vbh - Add new tabs " et cela fait le boulot ;)

merci