Afficher la version complète : Créer votre propre page produite par vBulletin
Ce tutoriel est la mise à jour de l'article "Comment créer votre propre page produite par vBulletin". A utiliser uniquement avec vB4.
Lynne (http://www.vbulletin.org/forum/member.php?u=65230) est l'auteur de ce Tutoriel (http://www.vbulletin.org/forum/showthread.php?t=228112), et précise que cette astuce n'est pas son oeuvre mais provient d'un autre sujet où le codeur vB style (http://www.vbulletin.org/forum/member.php?u=215438) a pris le temps de le rédiger, son travail est basé sur l'article "Comment créer votre propre page vBulletin" de Gary King (http://www.vbulletin.org/forum/member.php?u=5183) que vous trouverez ICI (http://www.vbulletin.org/forum/showthread.php?t=228112).
Remerciements
Ce tutoriel a été traduit en français pour vBulletin-Ressources avec l'autorisation explicite de son auteur que nous remercions.
Version vBulletin Requise : vB 4.x
Traducteur : Sunray (http://www.vbulletin-ressources.com/forum/member.php?u=8678)
Copyright © 2006-2009 vBulletin-Ressources.com - Tous droits réservés Uniquement pour nos traductions
Instructions
Créer un nouveau fichier que vous pourrez nommer : test.php. Ouvrez-le et ajoutez ce qui suit (remplacez 'test' par n'importe quel template que vous souhaitez afficher) :
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT', 'test');
define('CSRF_PROTECTION', true);
// change this depending on your filename
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();
// get special data templates from the datastore
$specialtemplates = array();
// pre-cache templates used by all actions
$globaltemplates = array('TEST',
);
// pre-cache templates used by specific actions
$actiontemplates = array();
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################
$navbits = construct_navbits(array('' => 'Test Page'));
$navbar = render_navbar_template($navbits);
// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'My Page Title';
// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######
$templater = vB_Template::create('TEST');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());
?> Assurez-vous de changer "TEST" par le nom de l'actuel template et changez 'testé dans le nom du fichier. Changer également "Test Page" par celui que vous souhaitez afficher dans la barre de navigation, comme "Affichage du compte utilisateur" par exemple.
Maintenant créez le template nommé TEST avec le contenu suivant :
{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}"
id="vbulletin_html">
<head>
<title>{vb:raw vboptions.bbtitle}</title>
{vb:raw headinclude}
</head>
<body>
{vb:raw header}
{vb:raw navbar}
<div id="pagetitle">
<h1>{vb:raw pagetitle}</h1>
</div>
<h2 class="blockhead">Title</h2>
<div class="blockbody">
<div class="blockrow">
Text
</div>
</div>
{vb:raw footer}
</body>
</html>
Veuillez consulter cet article afin de vous aider pour le rendu du template - [vB4] Rendu des templates et enregistrement des variables - Petit Guide (http://www.vbulletin.org/forum/showthread.php?t=228078)
Bonsoir, merci Sunray pour cette traduction de tutoriel, superbement rédigé :)
Merci pour la traduction :)
Jose.N70
06/12/2009, 18h42
Ah super merci pour la traduction :)
Merci et bravo pour ce tutoriel :)
bonsoir avec cette modif il manque la partit haute du forum, don la baniere et connexion
merci
bonsoir avec cette modif il manque la partit haute du forum, don la baniere et connexionNormalement non, tu es sûr de ne pas avoir supprimer un morceau par erreur ?
bonsoir
effectivement j'ai un souci sur le nouveau style que j'ai installer, tout roule sur le style d'origine
si vous avez une idée
merci
Bonsoir,
Merci beaucoup pour cette tradution et pour le taff accompli ;)
bonsoir
effectivement j'ai un souci sur le nouveau style que j'ai installer, tout roule sur le style d'origine
si vous avez une idée
merciQuel est le nom du style en question ? Inspire-toi des autres templates, il y a peut être une variable supplémentaire à ajouter.
salut oui merci simon
effectivement il manquer une partit, le style en question est Darkness-ver6.3
par contre j'ai d'autres question s'il vous plais en rapport de cette modification
je voudrais intégrer une page nommé lulu en php mais avec du html melangé au php sais la que je blok
donc jai ma page php vb et le template qui va avec, donc es que il faut que je place tout le code html de ma page lulu dans mon template?, je me demande aussi le html que j'ai ajouté dans le template, comment va t'il appeler les fonction dans la page vb.php
es que on peut placé du code php dans un template? et comment faire quant on a du code php au milieux d'un code html?
voila un exemple de code
<?php
//Configuration
$proxy = 0; //1 =>
$proxyurl = 'proxy.php';//Url du proxy
$cryptkey = 'DEFAULT';
$lang = 1;// 0 =>
if($lang)
{
$error = 'Nous ne pouvons pas. Raisons possible :
<ul>
<li>est invalide.</li>
<li>hors service.</li>
</ul>
';
$mes1 = 'Lo';
$mes7 = 'Ln';
}
else
{
function boss ($method, $host, $port, $page, $datarray = 0, $cookies = 0, $lang = 'fr')
{
$letter = 0;
}
$neword = ord($maChaineACrypter{$i}) + ord($maCleDeCryptage{$letter});
if ( $neword > 255 )
}
?>
<form action="vb.php" method="post">
<?php
if($max == 1)
{
?>
<p><label for='li' ><?php echo $mes1; ?></label> : <img src="jpg" class="bord" alt=""/><input type="text" class="input_txt" name="li" size="45" /><img src="jpg" class="bord" alt=""/></p>
<p><label for='pa'><?php echo $mes2; ?></label> : <img src="jpg" class="bord" alt=""/><input type="text" class="input_txt" name="pa" id="pass" size="28" /><img src="jpg" class="bord" alt=""/></p>
<?php
}
else
{
?>
<p><label for='li' ><?php echo $mes3.$max.$mes4; ?></label> : </p> <p><textarea id="li" name="li" cols='50' rows='<?php echo $max; ?>'></textarea></p>
<p><label for='pa'><?php echo $mes5; ?></label> : <img src="b.jpg" class="bord" alt=""/><input type="text" class="input_txt" name="pa" id="pa" size="28" /><img src="jpg" class="bord" alt=""/></p>
<?php
}
if($divxplayer)
{
?>
<p><label for='vision'><?php echo $mes6; ?> : <input type="checkbox" name="vision" id="vision"/><input type="image" src="jpg" id="submit" alt="Go !"/></p>
<?php
}
else
{
?>
<p><input type="image" src="pp" id="submit" alt="Go !"/></p>
<?php
}
?>
</form>
<?php
if (isset($_POST['l']) and !empty($_POST['l']))
$linkarray = array_slice($linkarray, 0, $maxlink);
$num = 0;
foreach ($linkarray2 as $nbr => $lien)
{
if($array = @makepath($lien))
{
$basename = @basename($result);
{
?>
<object classid="clsid:67DABF" width="720" height="394" codebase="http://g">
<param name="src" value="<?php echo $result; ?>"/>
<embed type="vuu" src="<?php echo $result; ?>" width="720" height="394" pluginspage="http://g"></embed>
</object>
<?php
}
else
{
$nbr++;
echo '<p>'.$mes7.' '.$nbr.' : '.$error.'</p>';
{
$q = crypter($cryptkey, $result);
{
?>
<object classid="clsid:67D616" width="720" height="394" codebase="http://">
<param name="src" value="<?php echo $result; ?>"/>
<embed type="vuu" src="<?php echo $result; ?>" width="720" height="394" pluginspage="http://g</embed>
</object>
<?php
{
$nbr++;
echo '<p>'.$mes7.' '.$nbr.' : '.$error.'</p>';;
}
}
}
?>
merci l'équipe vb
SoLDaT-SiNiK
03/05/2010, 23h41
On peut intégrer des scripts php dans ces pages ?? si oui ou précisement merci d'avance
allez un petit coup de pouce les gars:lol:
titcrunch
18/05/2010, 21h40
tout dépend du code php mais le plus propre je pense est de faire une nouvelle page php avec ton script et de l'include dans ta nouvelle page vbulletin
Bonjour
je voudrai savoir si ont peu mettre cette nouvelle page en page d'acceuil genre un disclaimer que les visiteurs devront accépter ?
Merci
Bonjour
je voudrai savoir si ont peu mettre cette nouvelle page en page d'acceuil genre un disclaimer que les visiteurs devront accépter ?
MerciBonsoir,
Tout est possible, c'est à toi de développer ce système (à placer dans le hook global_start). Inspire-toi du code source de vBulletin lui-même.
Bonsoir,
Tout est possible, c'est à toi de développer ce système (à placer dans le hook global_start). Inspire-toi du code source de vBulletin lui-même.
Merci mais pourrais tu me préciser ce que je doit entrer dans le code php du module ?
Merci
Bonjour
je ne comprends pas la partie
Maintenant créez le template nommé TEST avec le contenu suivant :
on fait ca comment svp
pepsi-tom
08/08/2010, 02h39
hello
merci pour la traduction sunray
byby
pepsi-tom
09/08/2010, 07h08
hello
j'aurai une petite question si quelqu'un sait me renseigner.
Aprés avoir suivi la procedure, ma page fonctionne mais lorsque je clic sur le nouvel onglet installé dans la navbar, c'est l'onglet "forum" qui reste selectionné
au lieu du nouvel onglet créé.
Comment doit-je m'y prendre pour que ça soit bien le nouvel onglet en rapport a la page qui soit selectionné.?
hello
j'aurai une petite question si quelqu'un sait me renseigner.
Aprés avoir suivi la procedure, ma page fonctionne mais lorsque je clic sur le nouvel onglet installé dans la navbar, c'est l'onglet "forum" qui reste selectionné
au lieu du nouvel onglet créé.
Comment doit-je m'y prendre pour que ça soit bien le nouvel onglet en rapport a la page qui soit selectionné.?Hello,
Il faut créer un nouveau module (encore un...) dans process_template_complete avec le code suivant:
if (THIS_SCRIPT == 'valeur de la constante mise dans le fichier')
{
$vbulletin->options['selectednavtab'] = 'id de l'onglet';
}Et avoir une condition pour l'onglet afin qu'il adopte la classe selected lorsque l'onglet est sélectionné:
<li <vb:if condition="$vboptions['selectednavtab'] == 'id de l'onglet'">class="selected"</vb:if>>Ou en plus lisible:
<vb:if condition="$vboptions['selectednavtab'] == 'id de l'onglet'">
<li class="selected">
<vb:else>
<li>
</vb:if>Il est fort probable que tu puisse trouver un exemple dans ta liste de modules avec un autre hack.
pepsi-tom
09/08/2010, 20h46
Hello simon,
Merci beaucoup pour ta réponse.
J'ai suivi les conseils
création du module:
if (THIS_SCRIPT == 'valeur de la constante mise dans le fichier')
{
$vbulletin->options['selectednavtab'] = 'id de l'onglet';
}
Puis la condition pour l'onglet:
<vb:if condition="$vboptions['selectednavtab'] == 'id de l'onglet'">
<li class="selected">
<a class="navtab" href="exemple.php" accesskey="2">exemple</a>
</li>
</vb:if>
cela fonctionne bien, mais j'avais omis de préciser que mon onglet est généré avec le hack suivant :
http://www.vbulletin-ressources.com/forum/showthread.php?t=17823
Donc avec le hack + la condition ajouté pour l'onglet j'ai deux onglet du meme non quand je suis sur la page.
Comment puis je faire au niveau de la condition si je veut garder le hack si c'est possible.?
pepsi-tom
09/08/2010, 22h59
Hello simon,
Merci beaucoup pour ta réponse.
J'ai suivi les conseils
création du module:
if (THIS_SCRIPT == 'valeur de la constante mise dans le fichier')
{
$vbulletin->options['selectednavtab'] = 'id de l'onglet';
}
Puis la condition pour l'onglet:
<vb:if condition="$vboptions['selectednavtab'] == 'id de l'onglet'">
<li class="selected">
<a class="navtab" href="exemple.php" accesskey="2">exemple</a>
</li>
</vb:if>
cela fonctionne bien, mais j'avais omis de préciser que mon onglet est généré avec le hack suivant :
http://www.vbulletin-ressources.com/forum/showthread.php?t=17823
Donc avec le hack + la condition ajouté pour l'onglet j'ai deux onglet du meme non quand je suis sur la page.
Comment puis je faire au niveau de la condition si je veut garder le hack si c'est possible.?
Ok soucis resolu, je n'avais pas fait attention a l'option du hack "Selection onglets"
Donc les variables ci dessus ne me servent pas, mais maintenant grace a ton aide simon je sait le faire si j'ajoute un onglet en manuel.
merci encore
a+
Bonjour ,
j'ai créer une page perso est fonctionne correctement .
mais ma nouvelle page n'est pas reconnue dans "Qui est en ligne ?" (who is online), est indique "Lieu inconnu" .
il y a un tuto similaire pour vb 3.x ici (http://www.vbulletin-ressources.com/forum/showthread.php?t=5&highlight=Page+personnalis%E9e+%E0+votre+forum)qui lui le faits .
Est il possible de l'adapter pour vb 4.x ?
Bonjour, il faudra voir cela avec un codeur.
D'accord merci , je vais attendre la réponse d'un codeur alors ;) c'est pas urgent de toute façon ,et je pensait que la manip aurait été assez simple :d2 mais si ça demande trop de recherche ou modif ,c'est pas grave ,je m'en passerait .
Bonsoir,
C'est très simple :) Il faut passer par deux nouveaux modules:
1) online_location_process
Produit: vBulletin (ou le tient si tu dev un mod)
Emplacement du crochet: online_location_process
Code PHP du module:
if (THIS_SCRIPT == 'Ta valeur')
{
$userinfo['activity'] = 'Ta valeur';
}
2) online_location_unknown
Produit: vBulletin (ou le tient si tu dev un mod)
Emplacement du crochet: online_location_unknown
Code PHP du module:
if ($userinfo['activity'] == 'Ta valeur')
{
$userinfo['action'] = 'Texte à afficher'
$handled = true;
}
En remplaçant Ta valeur par la constante THIS_SCRIPT de ton fichier.
Merci sinon ,par contre etant novice sous vb ,j'ai regarder pour créer 2 module ok
mais je comprends pas cette phrase :
En remplaçant Ta valeur par la constante THIS_SCRIPT de ton fichier. (c'est quoi la constante et ou la trouver ?)
Bonjour,
Dans le code donné sur le premier message:
define('THIS_SCRIPT', 'test');Ce sera test.
Gros gros merci simon :notworthy: (en plus j'ai tout compris :D ) trop génial je vais essayer ce week end .
Bon j'ai essayer plusieurs fois mais toujours pareil ,emplacement inconnu .
et un message d'erreur :
Parse error: syntax error, unexpected T_VARIABLE in /data/multiserv/users/330626/projects/463320/www/includes/functions_online.php(1214) : eval()'d code on line 53
Une petite idée ?
le nom de ma constante est : recherche_mat
Bonjour,
La cerise sur le gâteau !!!! Merci Sunray
Bonne continuation
Au plaisir de vous lire
A bientôt
Bonsoir, étant donner que je suis nouveau dans le domaine de VB, j'aimerai savoir comment créer le template, je vois un peu pres ce que je doit opérer mais je ne sais ou aller pour me lancer, pourriez vous m'éclairer un petit peu plus sur le sujet, parce que j'ai pas envie de bouffer mon forum, pour lequel je souhaiterai ajouter quelques pages au gout du forum avec du code php à l'intérieur accessible depuis le menu du forum.
Ce que je sais faire créer la page test.php depuis mon ftp c'est ok ça c'est bon.
Ou je blocque c'est la création du template, à partir de quel endroit dois-je le faire, est-ce que cela ce gère depuis le panno d'admin et si oui ou, ou alors est-ce un nouveau fichier que je dois créer placer le code ci-dessus indiquer et le placer dans les fichiers du forum via ftp dans un dossier bien précis.
Merci de votre attention. meoui
Bonsoir,
Dirige toi dans ton admincp >> Styles & Templates >> Gérer les styles >> et sur le style visé, tu as un menu déroulant, il suffit de regarder les options disponibles, et tu trouveras ton bonheur.
Bonsoir Ombre je te remercie, j'ai bien pigé la chose maintenant et l'affaire tourne :yahoo:
Bonjour,
Je c'est que je ne suis pas trés bon dans le php mais il y as un début a tout :P
J'utilise le template Abyss by Ombre xD Mais lorsque j'utilise se script le template vb d'origine apparait!
Ne trouvant pas la soluce je vous demande un peu d'aide :)
j'ai donc codé mon fichier php comme ceci
Le nom de mon fichier est Achat.php
Celui du Template est skill
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT', 'achat');
define('CSRF_PROTECTION', true);
// change this depending on your filename
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();
// get special data templates from the datastore
$specialtemplates = array();
// pre-cache templates used by all actions
$globaltemplates = array('abyss by ombre',
);
// pre-cache templates used by specific actions
$actiontemplates = array();
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################
$navbits = construct_navbits(array('' => 'skill'));
$navbar = render_navbar_template($navbits);
// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'Buy Silk and gold Here';
// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######
$templater = vB_Template::create('skill');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());
?>
Je ne comprend pas ou j'ai fait erreur :/
Un petit coup de main serai le bienvenue!
Et encore merci pour le script :)
Le nom de mon fichier est Achat.php
Celui du Template est skillJe ne comprend pas ou j'ai fait erreur :/
Un petit coup de main serai le bienvenue!
Et encore merci pour le script :)Le code a pourtant l'air à l'exception de:
$globaltemplates = array('abyss by ombre',D'où sort ce abyss by ombre ? Cette variable sert à précharger des templates, pas des styles ! Ici, ce sera:
$globaltemplates = array('skill',
Bonjour,
Tout d'abord merci de votre aide!
J'avais effectivement compris qu'il fallait renseigné le style! pourquoi comment .... je ne c'est plus l'heure tardive surement llol
J'ai donc effectué la modification, mais malheureusement cela n'as rien changer !
Le problème étant toujours le même, il ne charge pas le style par défaut du forum, a savoir Abyss by Ombre (http://www.vbulletin-ressources.com/forum/showthread.php?t=27385).
Je ne comprend pas pourquoi le style n'est pas charger!
Freddy.k
02/10/2011, 13h07
Bonjour oui je vient de tester sa je confirme
17642
Ombre va bien nous trouver un petit truc
Il suffit de rajouter cette ligne dans le template que vous avez créé juste au-dessus de </head>
{vb:raw headinclude_bottom}
Et testé :)
Je pense que vous avez quelque chose que nous n'avons pas car avec la ligne ajouter j'obtient ceci
http://img291.imageshack.us/img291/6319/sansreju.png
Hors Normalement je devrai optenir quelque chose comme ceci :)
http://img819.imageshack.us/img819/3462/sansretae.png
Je pense que vous avez quelque chose que nous n'avons pas car avec la ligne ajouter j'obtient ceci
http://img291.imageshack.us/img291/6319/sansreju.png
Hors Normalement je devrai optenir quelque chose comme ceci :)
http://img819.imageshack.us/img819/3462/sansretae.pngBonjour, la feuille de style n'est pas prise en compte je pense, malgré la modification que tu propose Balhack, il faudrait que je vois cela en direct, mais il semble vu tes captures que tu test ça en local, donc difficile.
Il existe des solutions autres, mais normalement ça devrais marché, les variable qu'il faut qui soient ajoutées sont les suivantes:
{vb:cssfile abyss_by_Ombre.css} <---- pour la feuille de style du style Abyss.
{vb:cssfile additional.css} <---- Pour le template additional.css qui te permettras de modifier le style facilement.
Mais ils sont présent dans le headinclude_bottom, c'est pour ça que je trouve étonnant que ça ne marche pas.
effectivement je travaille en local pour apprendre le site avant de le mettre en ligne sans savoir ou je vais :)
J'utilise un programme appelé TeamViewer qui vous permettrai de voir cela directement sur mon pc comme un bureau a distance si cela vous intéresse afin de voir ou sa cloche :)
Edit: Autan pour moi cela fonctionne maintenant ! J'avais Malencontreusement supprimé une ligne ....
Mile escuse pour le dérangement :)
De rien, bonne continuation.
Merci beaucoup
Vous de même et encore merci pour se magnifique style :)
Freddy.k
02/10/2011, 17h57
oui sa sa marche je répond trop tard lol Merci a BalHack je garde sa de coté
sa donne pas mal http://tuto-logiciel-info.com/test.php
Xx-SniiPeR-Xx
02/10/2011, 18h55
Les codes on les met ou ??
Il faut mettre cette ligne dans le template que tu crée
Propulsé par vBulletin™ Version 4.1.10 Copyright © 2012 vBulletin Solutions, Inc. Tous droits réservés - Version française par vBulletin-Ressources.com