Salut tous le monde 
Dans ce tutoriel je vais vous apprendre à créer une simple extension pour xenforo
Ce dont vous aurez besoin :
) Commençons :
1 - Le Mode Debug
Tout d'abord on va commencer par installer le Mode Debug sur notre forum !
Pour ce faire : Connectez-vous à votre FTP ; Ensuite naviguez ici : library -> config.php ; Ouvrez ce fichier
Dedans vous devrez y voir :
Ajoutez tout en bas :
Une fois ceci fais, Sauvegardez !
Retournez sur votre Admin CP et vous devriez apercevoir un nouvel onglet nommé : Développement !
SI c'est le cas c'est que vous êtes bon
2 - Le côté XenForo
Maintenant que nous avons notre nouvel onglet on va commencer les choses sérieuses ^^
On va désormais créé l'extension via L'admin CP
Rendez-vous ici : Admin CP -> Accueil -> Extension -> + Créer une extension
La vous devriez voir quelques champs à remplir, je vais vous les expliquer 1 par 1.
ID de l'extension = Doit être un ID unique
Titre = Le nom que vous voudrez attribuer à votre extension
Version = La version de votre extension (normalement : 1.0)
ID de la version = Nombre Utilisé pour des comparaisons de version internes, veillez à l'augmenter à chaque nouvelle version (je vous conseil de rentrer 10 au début)
URL = Url de redirection lorsqu'un administrateur cliquera dessus
Code d'installation et de désinstallation = Inutile pour le moment
Voilà, je vous laisse rentrer les informations de votre extension
Sauvegardez
Vous devriez voir votre nouvelle extension sur la liste des extensions ^^
Maintenant on va créé un template (qui affichera votre extension)
Rendez-vous ici : Admin CP -> Apparence -> Templates (veillez à bien avoir choisi le style maître) -> + Créer un nouveau template !
Dans nom du template, rentrez le nom que portera votre template !
Et dans le grand carré blanc rentrez le texte de votre template (je vous conseil d'écrire : test ; pour voir si l'extension fonctionnera)
Et dans Extension : Sélectionnez l'extension que vous avez créé auparavant
Sauvegardez
Mon template : test_RG
Maintenant que nous avons notre template on va passer niveau PHP (aucune inquiétude je suis là
)
2 - Le côté PHP
Avant de coder, on va d'abord allez observer les événements ^^
Pour ce faire allez ici : Admin CP -> Développement -> Observateur d'événements -> + Créer un nouvel auditeur d'événement
La vous devriez encore avoirs des champs à remplir mais je vais vous guider ^^
Choisir l'événement : template_hook
Trace d'événement : Inutile pour nous
Voilà vous pouvez vous arrêter là comme nous n'avons pas encore le code PHP
Mais attention ne sauvegardez pas
Allez dans vos FTP ;
Allez dans le dossier library ;
Créez un nouveau dossier (pour ma part: Test) ;
Dans ce nouveau dossier créez un autre dossier (je vous conseil : Listener) ;
Et dans ce dossier créez un fichier (je vous conseil : Listener.php) ; /!\ N'oubliez pas le .php
Ouvrez ce fichier !
Il n'y a rien dedans
Pour commencer à le remplir on va ajouter la balise PHP :
Maintenant on va déterminer la class du fichier !
Si vous avez suivi mes conseils ça sera : Test/Listener/Listener
Mais en PHP on traduit les / par des _
Ce qui va nous donner :
On a déclaré notre class !!!
Mais ça ne s'arrêt pas là !
On va maintenant ajouter une fonction statique
Vous pouvez bien évidemment remplacer le nom de la fonction ^^ Moi c'est hook
A la place de callback signature vous devrez mettre la callback signature de l'événement !
Vous trouverez la callback signature lors de la création de votre événement
Pour template_hook c'est (en version 1.3) :
Ce qui va nous donner :
Maintenant il nous reste juste à trouver un HOOK
Pour trouver un hook c'est très simple ^^
Vous allez dans les templates et vous faîtes rechercher les templates par ce mot-clé : ad_
La des templates du genre : ad_header ou encore ad_above_top_breadcrumb vont apparaître
Je vous explique l'emplacement de quelques un :
Moi je vais choisir ad_above_top_breadcrumb pour afficher mon texte au dessus de la navigation rapide
Un exemple :
Ce qui donne pour moi :
Voilà 
Veillez à bien remplacer : test_RG par le nom de votre template
Et : ad_above_top_breadcrumb par le nom de votre hook.
Sauvegardez le fichier ^^
Maintenant retournons sur notre page ou l'on était en train de créer l'événement
Dans :
Exécutez rappel de service: Mettez dans : Classes : LA Class de votre fichier PHP (pour ma part : Test_Listener_Listener)
Et dans : Méthode : LA nom de la fonction de votre fichier PHP (pour ma part : hook)
Dans : Ordre de rappel d'éxecution: Laissez par défaut 10
Vous laissez cocher : Activer l'exécution de rappel
Description : Vous mettez ce que vous voulez
Extension : Vous choisissez l'extension créé auparavant ^^
Sauvegardez
Retournez sur votre forum !
Et ... Oh ! C'est magique votre texte apparaît
Voilà j'espère que ce tuto vous aura plus ^^
PS :Je vous laissez une de mes extensions créés comme ceci
Dans ce tutoriel je vais vous apprendre à créer une simple extension pour xenforo
Ce dont vous aurez besoin :
- Un éditeur de texte (de préférence Notepad++)
- De basses connaissances en PHP (je fournis tous les codes)
- Des connaissances en XenForo
1 - Le Mode Debug
Tout d'abord on va commencer par installer le Mode Debug sur notre forum !
Pour ce faire : Connectez-vous à votre FTP ; Ensuite naviguez ici : library -> config.php ; Ouvrez ce fichier
Dedans vous devrez y voir :
PHP:
<?php
$config['db']['host'] = 'serverDeLaDB';
$config['db']['port'] = 'portDeLaDB';
$config['db']['username'] = 'userDeLaDB';
$config['db']['password'] = 'mdpDeLaDB';
$config['db']['dbname'] = 'nomDeLaDB';
$config['superAdmins'] = '1';
Ajoutez tout en bas :
PHP:
$config['debug'] = true;
Une fois ceci fais, Sauvegardez !
Retournez sur votre Admin CP et vous devriez apercevoir un nouvel onglet nommé : Développement !
SI c'est le cas c'est que vous êtes bon
2 - Le côté XenForo
Maintenant que nous avons notre nouvel onglet on va commencer les choses sérieuses ^^
On va désormais créé l'extension via L'admin CP
Rendez-vous ici : Admin CP -> Accueil -> Extension -> + Créer une extension
La vous devriez voir quelques champs à remplir, je vais vous les expliquer 1 par 1.
ID de l'extension = Doit être un ID unique
Titre = Le nom que vous voudrez attribuer à votre extension
Version = La version de votre extension (normalement : 1.0)
ID de la version = Nombre Utilisé pour des comparaisons de version internes, veillez à l'augmenter à chaque nouvelle version (je vous conseil de rentrer 10 au début)
URL = Url de redirection lorsqu'un administrateur cliquera dessus
Code d'installation et de désinstallation = Inutile pour le moment
Voilà, je vous laisse rentrer les informations de votre extension
Sauvegardez
Vous devriez voir votre nouvelle extension sur la liste des extensions ^^
Maintenant on va créé un template (qui affichera votre extension)
Rendez-vous ici : Admin CP -> Apparence -> Templates (veillez à bien avoir choisi le style maître) -> + Créer un nouveau template !
Dans nom du template, rentrez le nom que portera votre template !
Et dans le grand carré blanc rentrez le texte de votre template (je vous conseil d'écrire : test ; pour voir si l'extension fonctionnera)
Et dans Extension : Sélectionnez l'extension que vous avez créé auparavant
Sauvegardez
Mon template : test_RG
Maintenant que nous avons notre template on va passer niveau PHP (aucune inquiétude je suis là

2 - Le côté PHP
Avant de coder, on va d'abord allez observer les événements ^^
Pour ce faire allez ici : Admin CP -> Développement -> Observateur d'événements -> + Créer un nouvel auditeur d'événement
La vous devriez encore avoirs des champs à remplir mais je vais vous guider ^^
Choisir l'événement : template_hook
Trace d'événement : Inutile pour nous
Voilà vous pouvez vous arrêter là comme nous n'avons pas encore le code PHP
Mais attention ne sauvegardez pas
Allez dans vos FTP ;
Allez dans le dossier library ;
Créez un nouveau dossier (pour ma part: Test) ;
Dans ce nouveau dossier créez un autre dossier (je vous conseil : Listener) ;
Et dans ce dossier créez un fichier (je vous conseil : Listener.php) ; /!\ N'oubliez pas le .php
Ouvrez ce fichier !
Il n'y a rien dedans
Pour commencer à le remplir on va ajouter la balise PHP :
PHP:
<?php
// ici il y aura tout le code
?>
Maintenant on va déterminer la class du fichier !
Si vous avez suivi mes conseils ça sera : Test/Listener/Listener
Mais en PHP on traduit les / par des _
Ce qui va nous donner :
PHP:
<?php
class Test_Listener_Listener
{
}
?>
On a déclaré notre class !!!
Mais ça ne s'arrêt pas là !
On va maintenant ajouter une fonction statique
PHP:
<?php
class Test_Listener_Listener
{
public static function hook(callback signature)
{
}
}
?>
Vous pouvez bien évidemment remplacer le nom de la fonction ^^ Moi c'est hook
A la place de callback signature vous devrez mettre la callback signature de l'événement !
Vous trouverez la callback signature lors de la création de votre événement
Pour template_hook c'est (en version 1.3) :
PHP:
$hookName, &$contents, array $hookParams, XenForo_Template_Abstract $template
Ce qui va nous donner :
PHP:
<?php
class Test_Listener_Listener
{
public static function hook($hookName, &$contents, array $hookParams, XenForo_Template_Abstract $template)
{
}
}
?>
Maintenant il nous reste juste à trouver un HOOK
Pour trouver un hook c'est très simple ^^
Vous allez dans les templates et vous faîtes rechercher les templates par ce mot-clé : ad_
La des templates du genre : ad_header ou encore ad_above_top_breadcrumb vont apparaître
Je vous explique l'emplacement de quelques un :
- ad_above_top_breadcrumb = au dessus de la navigation rapide
- ad_header = tout en haut de la page
- ad_sidebar_top = au dessus de la barre latérale
- ad_message_below = en dessous de chaque message de topic
Moi je vais choisir ad_above_top_breadcrumb pour afficher mon texte au dessus de la navigation rapide
Un exemple :
PHP:
<?php
class Test_Listener_Listener
{
public static function hook($hookName, &$contents, array $hookParams, XenForo_Template_Abstract $template)
{
if ($hookName == 'nom de votre hook')
{
switch($hookName)
{
case 'nom de votre hook':
$hook = $template->create('nom de votre template', $template->getParams());
$contents = $hook . $contents;
break;
}
}
}
}
?>
Ce qui donne pour moi :
PHP:
<?php
class Test_Listener_Listener
{
public static function hook($hookName, &$contents, array $hookParams, XenForo_Template_Abstract $template)
{
if ($hookName == 'ad_above_top_breadcrumb')
{
switch($hookName)
{
case 'ad_above_top_breadcrumb':
$hook = $template->create('test_RG', $template->getParams());
$contents = $hook . $contents;
break;
}
}
}
}
?>
Veillez à bien remplacer : test_RG par le nom de votre template
Et : ad_above_top_breadcrumb par le nom de votre hook.
Sauvegardez le fichier ^^
Maintenant retournons sur notre page ou l'on était en train de créer l'événement
Dans :
Exécutez rappel de service: Mettez dans : Classes : LA Class de votre fichier PHP (pour ma part : Test_Listener_Listener)
Et dans : Méthode : LA nom de la fonction de votre fichier PHP (pour ma part : hook)
Dans : Ordre de rappel d'éxecution: Laissez par défaut 10
Vous laissez cocher : Activer l'exécution de rappel
Description : Vous mettez ce que vous voulez

Extension : Vous choisissez l'extension créé auparavant ^^
Sauvegardez
Retournez sur votre forum !
Et ... Oh ! C'est magique votre texte apparaît
Voilà j'espère que ce tuto vous aura plus ^^
PS :Je vous laissez une de mes extensions créés comme ceci