Aujourd'hui, on va un peu essayer d'éclaircir l'installation de mods sur votre forum phpBB. Pour les débutants, quand je parle de mods, ça ne veut peut être rien dire. Nous allons mettre au point certaines choses. Beaucoup pensent que l'installation d'un mod est compliquée et que c'est un vrai cauchemar !
Eh bien là, je dis : non ! L'installation d'un mod n'est pas du tout un cauchemar ! Je vais tenter de vous expliquer pas à pas comment installer un mod basique.
Prochaine partie qui ne va pas tarder à arriver : Installation de mod sous phpBB3 avec ModX !! :)
C'est assez vaste... Faisons simple : un mod, c'est génial, c'est super, c'est pour votre forum phpBB (mais il existe des mods pour bien d'autres sortes de forums ou de CMS). Un mod ajoute plusieurs fonctions à votre forum en modifiant ou en ajoutant des fichiers PHP qui vont l'améliorer.
Un exemple de mod simple qui existe : le mod Poudlard.
À quoi il sert, celui-là ?
Vous ne connaissez peut-être pas Poudlard. :D Ce mot plutôt bizarre est en fait le nom de l'école du célèbre Harry Potter ! Et une des grandes particularités de cette école, c'est le choixpeau magique ! Un chapeau qui décide dans quelle maison les élèves vont être envoyés. Imaginons que vous voulez créer un forum RPG de Harry Potter, et que vous voudriez que les élèves soient répartis dans les différentes maisons grâce à un quiz lors de l'inscription. Eh bien quelques bénévoles ont créé pour vous le mod Poudlard !
Ce mod modifie une partie du forum, lui permettant de faire ce que nous voulons !
Voilà pour l'exemple.
Il existe des tonnes de mods.
Par exemple : réponse rapide, topics barrés quand ils sont verrouillés, anniversaires des membres, pseudos colorés, etc.
Enfin bref, un mod va vous aider à faire de votre forum un forum unique en son genre. ;)
Voilà, vous avez téléchargé votre mod par exemple sur phpBB-FR. ;)
Normalement, votre mod devrait contenir un fichier install.txt et un dossier root. Commençons à ouvrir le dossier root et votre client FTP.
Dans votre dossier root, vous avez plusieurs autres dossiers. Par exemple admin, templates.
Mmh... Ces catégories, je les ai déjà vues quelque part... Mais où ?! Ah oui ! Sur le dossier de mon forum ! Via le FTP, rajoutez, échangez tous les fichiers donc de votre mod, à leurs places respectives. Par exemple, ouvrez votre FTP (pour moi, Filezilla) et dans la fenêtre de gauche, cherchez votre fichier mod, et prenez par exemple :
Citation : fichier mod
root ==> admin ==> index.php
Fenêtre de droite, allez dans :
Citation : forum original
phpBB2 ==> admin
Ensuite, déplacez le fichier index.php de la fenêtre de gauche, jusqu'à la fenêtre de droite pour remplacer l'index.php du forum par défaut ;)
Moi, je n'ai pas de fichier root sur dans mon mod. o_O
Voilà, vous avez compris, pour l'instant, le principal avant installation du mod. ^^ Maintenant, on va attaquer la bête !
Allez : maintenant, on passe à l'attaque. :pirate:
Dans la précédente sous-partie, on avait vu comment transférer les fichiers de notre mod sur notre forum. Maintenant, on va voir comment modifier les différents fichiers comme indiqué dans le fichier install.txt de votre mod.
Pour une meilleure mise en page de votre fichier install, je vous recommande de l'ouvrir sous WordPad. ;)
Voici un aperçu de fichier install.txt :
##############################################################
## MOD Titre: Réponse rapide avec citation
## MOD Auteur: Smartor < [email protected] > (Hoang Ngoc Tu) <lien>http://smartor.is-root.com</lien>
## MOD Traduction: Maya007 < [email protected] > (Alexandra Iannone) <lien>http://www.planete007.fr.tc</lien>
## MOD Description: Ceci ajoutera un cadre de réponse rapide en bas de chaque topic.
## Il sera visible uniquement si l'utilisateur a le droit de poster.
## L'utilisateur pourra citer le dernier message (option supplémentaire).
##
## MOD Version: 1.1.5
##
## Niveau d'installation: Facile
## Temps d'installation: 5 Minutes
##
## Fichier(s) à éditer: (3)
##
## viewtopic.php
## language/lang_french/lang_main.php
## templates/subSilver/viewtopic_body.tpl
##
## Fichier(s) inclu(s): (0)
##
## Aucun.
##
##############################################################
##
## Ce mod est sous licence GPL.
## Notes de l'auteur:
## Selon les lois en vigueur concernant la propriété intellectuelle,
## ce MOD appartient aux auteurs cités plus haut.
##
##############################################################
## Avant d'ajouter ce MOD à votre forum, il vous est fortement conseillé
## d'effectuer une sauvegarde des éléments que vous allez modifier.
##############################################################
#
#-----[ OUVRIR ]------------------------------------------
#
viewtopic.php
#
#-----[ TROUVER ]------------------------------------------
#
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
#
#-----[ AVANT, AJOUTER ]------------------------------------
#
//
// Quick Reply Mod
//
if ( ((!$is_auth['auth_reply']) or ($forum_topic_data['forum_status'] == FORUM_LOCKED) or ($forum_topic_data['topic_status'] == TOPIC_LOCKED)) and ($userdata['user_level'] != ADMIN) )
{
$quick_reply_form = "";
}
else
{
if ($can_watch_topic and $is_watching_topic)
{
$notify_user = 1;
}
else
{
$notify_user = $userdata['user_notify'];
}
$bbcode_uid = $postrow[$total_posts - 1]['bbcode_uid'];
$last_poster = $postrow[$total_posts - 1]['username'];
$last_msg = $postrow[$total_posts - 1]['post_text'];
$last_msg = str_replace(":1:$bbcode_uid", "", $last_msg);
$last_msg = str_replace(":u:$bbcode_uid", "", $last_msg);
$last_msg = str_replace(":o:$bbcode_uid", "", $last_msg);
$last_msg = str_replace(":$bbcode_uid", "", $last_msg);
$last_msg = str_replace("'", "'", $last_msg);
$last_msg = "[QUOTE=\"$last_poster\"]" . $last_msg . "[/QUOTE]";
$quick_reply_form = "
<script language='JavaScript' type='text/javascript'>
function checkForm()
{
formErrors = false;
document.post.message.value = '';
if (document.post.input.value.length < 2) {
formErrors = '" . $lang['Empty_message'] . "';
}
if (formErrors) {
alert(formErrors);
return false;
} else {
if (document.post.quick_quote.checked) {
document.post.message.value = document.post.last_msg.value;
}
document.post.message.value += document.post.input.value;
return true;
}
}
</script>
<form action='".append_sid("posting.$phpEx")."' method='post' name='post' onsubmit='return checkForm(this)'>
<span class='genmed'><b>".$lang["Quick_Reply"].":</b><br />";
if (!$userdata['session_logged_in'])
{
$quick_reply_form .= $lang['Username'] . ": <input class='post' type='text' name='username' size='25' maxlength='25' value='' /><br />";
}
$quick_reply_form .= "<textarea name='input' rows='10' cols='50' wrap='virtual' class='post''></textarea><br />
<input type='checkbox' name='quick_quote' />".$lang["Quick_quote"]."<br />
<input type='checkbox' name='attach_sig' checked='checked' />".$lang["Attach_signature"]."<br />
<input type='hidden' name='mode' value='reply' />
<input type='hidden' name='sid' value='" . $userdata['session_id'] . "' />
<input type='hidden' name='t' value='" . $topic_id . "' />
<input type='hidden' name='message' value='' />
<input type='hidden' name='notify' value=" . $notify_user . " />
<input type='hidden' name='last_msg' value='" . $last_msg . "' />
<input type='submit' name='preview' class='liteoption' value='".$lang['Preview']."' />
<input type='submit' name='post' class='mainoption' value='".$lang["Submit"]."' />
</form></span>";
}
$template->assign_vars(array(
'QUICK_REPLY_FORM' => $quick_reply_form)
);
//
// END Quick Reply Mod
//
#
#-----[ OUVRIR ]------------------------------------------
#
language/lang_french/lang_main.php
#
#-----[ TROUVER ]------------------------------------------
#
//
// That's all Folks!
#
#-----[ AVANT, AJOUTER ]------------------------------------
#
// Quick Reply Mod
$lang['Quick_Reply'] = 'Réponse rapide';
$lang['Quick_quote'] = 'Citer le dernier message';
#
#-----[ OUVRIR ]------------------------------------------
#
templates/subSilver/viewtopic_body.tpl
#
#-----[ TROUVER ]------------------------------------------
#
{S_TOPIC_ADMIN}
#
#-----[ APRES, AJOUTER ]------------------------------------
#
{QUICK_REPLY_FORM}
#
#-----[ SAUVEGARDER/FERMER TOUS LES FICHIERS ]------------------------------------------
#
# EoM
o_O
Ce n'est pas grave si vous ne comprenez pas pour l'instant un traître mot de ce fichier. ^^
Allez, on va se balader un peu : cherchez la ligne : fichier(s) à éditer : (3).
En français, ça donne : Fichier(s) à éditer : (3).
Ça veut dire quoi, ça ? :o
Eh bien ça veut dire que vous allez prendre votre éditeur de texte et suivre à la lettre tout ce que l'on vous dit ici :D ( pour l'éditeur de texte, j'utilise Notepad++ ).
Bon, ici, les fichiers à modifier sont :
viewtopic.php => se trouve dans la racine de votre forum ; lang_main.php => se trouve dans language/lang_french ; viewtopic_body.tpl => se trouve dans templates/Subsilver/ (ou votre thème par défaut).
En lisant ces mots, le bon anglais que je suis ( ^^ ) me dit :
le viewtopic.php va sûrement rajouter un petit truc au topic : la box de réponse rapide !
le lang_main.php va sûrement rajouter quelques mots de plus, comme : Citer, Envoyer, Prévisualisation... !
le viewtopic_body.tpl va probablement changer l'apparence du topic : la box de réponse rapide, encore une fois !
Voici donc les fichiers essentiels pour l'installation de ce mod. ;)
Dans la prochaine sous-partie, on passe au principal, l'installation du mod !
Juste au-dessus, on a vu le fichier install du mod "Quick reply", qui ressemblait à ça :
##############################################################
## MOD Titre: Réponse rapide avec citation
## MOD Auteur: Smartor < [email protected] > (Hoang Ngoc Tu) <lien>http://smartor.is-root.com</lien>
## MOD Traduction: Maya007 < [email protected] > (Alexandra Iannone) <lien>http://www.planete007.fr.tc</lien>
## MOD Description: Ceci ajoutera un cadre de réponse rapide en bas de chaque topic.
## Il sera visible uniquement si l'utilisateur a le droit de poster.
## L'utilisateur pourra citer le dernier message (option supplémentaire).
##
## MOD Version: 1.1.5
##
## Niveau d'installation: Facile
## Temps d'installation: 5 Minutes
##
## Fichier(s) à éditer: (3)
##
## viewtopic.php
## language/lang_french/lang_main.php
## templates/subSilver/viewtopic_body.tpl
##
## Fichier(s) inclu(s): (0)
##
## Aucun.
##
##############################################################
##
## Ce mod est sous licence GPL.
## Notes de l'auteur:
## Selon les lois en vigueur concernant la propriété intellectuelle,
## ce MOD appartient aux auteurs cités plus haut.
##
##############################################################
## Avant d'ajouter ce MOD à votre forum, il vous est fortement conseillé
## d'effectuer une sauvegarde des éléments que vous allez modifier.
##############################################################
#
#-----[ OUVRIR ]------------------------------------------
#
viewtopic.php
#
#-----[ TROUVER ]------------------------------------------
#
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
#
#-----[ AVANT, AJOUTER ]------------------------------------
#
//
// Quick Reply Mod
//
if ( ((!$is_auth['auth_reply']) or ($forum_topic_data['forum_status'] == FORUM_LOCKED) or ($forum_topic_data['topic_status'] == TOPIC_LOCKED)) and ($userdata['user_level'] != ADMIN) )
{
$quick_reply_form = "";
}
else
{
if ($can_watch_topic and $is_watching_topic)
{
$notify_user = 1;
}
else
{
$notify_user = $userdata['user_notify'];
}
$bbcode_uid = $postrow[$total_posts - 1]['bbcode_uid'];
$last_poster = $postrow[$total_posts - 1]['username'];
$last_msg = $postrow[$total_posts - 1]['post_text'];
$last_msg = str_replace(":1:$bbcode_uid", "", $last_msg);
$last_msg = str_replace(":u:$bbcode_uid", "", $last_msg);
$last_msg = str_replace(":o:$bbcode_uid", "", $last_msg);
$last_msg = str_replace(":$bbcode_uid", "", $last_msg);
$last_msg = str_replace("'", "'", $last_msg);
$last_msg = "[QUOTE=\"$last_poster\"]" . $last_msg . "[/QUOTE]";
$quick_reply_form = "
<script language='JavaScript' type='text/javascript'>
function checkForm()
{
formErrors = false;
document.post.message.value = '';
if (document.post.input.value.length < 2) {
formErrors = '" . $lang['Empty_message'] . "';
}
if (formErrors) {
alert(formErrors);
return false;
} else {
if (document.post.quick_quote.checked) {
document.post.message.value = document.post.last_msg.value;
}
document.post.message.value += document.post.input.value;
return true;
}
}
</script>
<form action='".append_sid("posting.$phpEx")."' method='post' name='post' onsubmit='return checkForm(this)'>
<span class='genmed'><b>".$lang["Quick_Reply"].":</b><br />";
if (!$userdata['session_logged_in'])
{
$quick_reply_form .= $lang['Username'] . ": <input class='post' type='text' name='username' size='25' maxlength='25' value='' /><br />";
}
$quick_reply_form .= "<textarea name='input' rows='10' cols='50' wrap='virtual' class='post''></textarea><br />
<input type='checkbox' name='quick_quote' />".$lang["Quick_quote"]."<br />
<input type='checkbox' name='attach_sig' checked='checked' />".$lang["Attach_signature"]."<br />
<input type='hidden' name='mode' value='reply' />
<input type='hidden' name='sid' value='" . $userdata['session_id'] . "' />
<input type='hidden' name='t' value='" . $topic_id . "' />
<input type='hidden' name='message' value='' />
<input type='hidden' name='notify' value=" . $notify_user . " />
<input type='hidden' name='last_msg' value='" . $last_msg . "' />
<input type='submit' name='preview' class='liteoption' value='".$lang['Preview']."' />
<input type='submit' name='post' class='mainoption' value='".$lang["Submit"]."' />
</form></span>";
}
$template->assign_vars(array(
'QUICK_REPLY_FORM' => $quick_reply_form)
);
//
// END Quick Reply Mod
//
#
#-----[ OUVRIR ]------------------------------------------
#
language/lang_french/lang_main.php
#
#-----[ TROUVER ]------------------------------------------
#
//
// That's all Folks!
#
#-----[ AVANT, AJOUTER ]------------------------------------
#
// Quick Reply Mod
$lang['Quick_Reply'] = 'RÚponse rapide';
$lang['Quick_quote'] = 'Citer le dernier message';
#
#-----[ OUVRIR ]------------------------------------------
#
templates/subSilver/viewtopic_body.tpl
#
#-----[ TROUVER ]------------------------------------------
#
{S_TOPIC_ADMIN}
#
#-----[ APRES, AJOUTER ]------------------------------------
#
{QUICK_REPLY_FORM}
#
#-----[ SAUVEGARDER/FERMER TOUS LES FICHIERS ]------------------------------------------
#
# EoM
Analysons maintenant le contenu de ce fichier.
Je vois des [OUVRIR], [APRES, AJOUTER], [TROUVER] et en dessous, je vois des codes... c'est quoi, ce bordel ? :-° (Raah, faut que j'arrête de parler comme ça... :colere2: )
Bon : d'après vous, qu'est-ce que ça peut vouloir dire, par exemple, cette ligne ?
Voilà : ainsi de suite pour installer le mod. Là encore, ce n'était pas très dur puisque le mod était en français, mais dans la prochaine et dernière partie, on va voir les autres fonctions qu'il existe en anglais par exemple. ;)
Précédemment, on a vu comment installer un petit mod, mais je ne vous ai pas montré toutes les formules possibles. ;) Je vais essayer de vous montrer ici les principales, et celles que vous trouverez le plus souvent, qu'elles soient en français, ou bien en anglais.
Allez, on commence :
Citation
#-----[ OPEN ]------------------------------------------
On l'a déjà vu, mais en français, il signifie Open (ouvrir le fichier, donc ^^ ).
Elle, on ne l'a pas encore vue. C'est l'équivalent en français de [APRES, AJOUTER]. Donc vous cherchez la ligne donnée juste avant et après, vous rajoutez le code.
Celle-là, on l'a aussi déjà vu, elle signifie AVANT, AJOUTER en français. ;)
Citation
#-----[ REPLACE WITH ]------------------------------------------
On ne l'a jamais vue. Elle signifie REMPLACER PAR en français. C'est-à-dire que vous cherchez la ligne que l'on vous donne juste au-dessus, et vous la remplacez par la ligne de [ REPLACE WITH ]. ;)
En français : dans la ligne, trouver. C'est-à-dire que dans la ligne que l'on vous a donnée dans le [FIND], vous devrez encore effectuer une recherche.
En français : dans la ligne, après. C'est-à-dire qu'après la ligne précédemment trouvée, vous devrez rajouter le code en dessous sans faire de retour à la ligne ni rien. :)
En français : dans la ligne, avant. C'est-à-dire que vous devrez dans la ligne précédemment trouvée, rajouter AVANT la ligne recherchée, le code qui suit.
En français : dans la ligne, remplacer. Ce qui signifie que vous devez remplacer le bout de ligne par le code donné en dessous. ;)
Et enfin :
Citation
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ # EoM
Ce qui signifie qu'il vous faut sauvegarder tous les fichiers ouverts dans Notepad++ et les fermer, pour ensuite les uploader de nouveau sur votre forum via son FTP. :)
Voilà, voilà : pour tout problème, je suis joignable par MP. ;)
Suite à la demande d'un membre, nous allons voir comment faire une requête SQL lorsque l'on nous demande d'en faire une ! Imaginons que nous ayons un bout de code ressemblant à :
# #-----[ SQL ]------------------------------------------------ # CREATE TABLE `phpbb_logs` ( `logs_id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, `username` varchar(25) NOT NULL, `date` int(11) NOT NULL, `ip` varchar(15) NOT NULL, `nom_hote` varchar(50) NOT NULL, `fai` varchar(50) NOT NULL, `page` varchar(50) NOT NULL, `state` varchar(50) NOT NULL, PRIMARY KEY (`logs_id`) ) ENGINE=MyISAM; CREATE TABLE `phpbb_logs_config` ( `config_name` varchar(255) NOT NULL, `config_value` varchar(255) NOT NULL, PRIMARY KEY (`config_name`) ) ENGINE=MyISAM; CREATE TABLE `phpbb_logs_exclude_ip` ( `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, `ip` varchar(15) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM; INSERT INTO `phpbb_logs_config` VALUES ('disable_admin_in_logs', '0'); INSERT INTO `phpbb_logs_config` VALUES ('logs_pagination', '19'); INSERT INTO `phpbb_logs_config` VALUES ('default_order_log', 'DESC'); INSERT INTO `phpbb_logs_config` VALUES ('disable_logs', '0'); INSERT INTO `phpbb_logs_config` VALUES ('disable_logs_anonymous', '0'); INSERT INTO `phpbb_logs_config` VALUES ('copyright', 'Log connections in Mysql by Elglobo - Version 1.0.6'); INSERT INTO `phpbb_logs_config` VALUES ('prune_enable', '0'); INSERT INTO `phpbb_logs_config` VALUES ('prune_days', '7');
Pour effectuer cette requête, rendez-vous dans phpMyAdmin.
Dans le menu de gauche, cliquez sur le nom de votre base de données, puis, dans le menu du haut, cliquez sur l'onglet SQL. Dans le cadre : Exécuter une ou des requêtes sur la base *****, collez le code SQL fourni dans le fichier d'installation. Cliquez ensuite sur le bouton Exécuter. Une nouvelle page s'affiche vous indiquant que votre requête a été exécutée avec succès : ça y est, la requête SQL est finie ! ;)
Voilà, vous savez installer un mod : maintenant, plus rien ne vous arrête. ^^