Help - Search - Member List - Calendar
Full Version: [Tutoriel] Ajout de boutons sous IPB 2.0
IPBR-FR > Entraide > Mods 2.0.x > BBCodes
LLaumgui
Bonjours, comme vous l’aurez remarqué, IPB 2.x introduit la possibilité d’ajouter du bbCode directement via l’admin (ACP). Or, si les Geeks tapent le bbCode à la main, n’est pas Geek qui veut et avoir des boutons en plus pourrait se révéler utile.

Le but de ce tutorial est donc de vous apprendre à rajouter vos boutons pour les bbCodes de type : [tag]{content}[/tag] (Utilisant la méthode simpletag()) ainsi que les tags plus complexes de type [tag={option}]{content}[/tag]


I. Ajouter le bouton :

Ca se passe dans votre ACP :
Skins & Templates / Skin Manager / Votre skin / Edit Root Skin Template HTML / Post Screen / postbox_buttons


Observons le code d’un bouton déjà existant, le bouton souligner (U) dans notre exemple :
HTML
<input type="button" accesskey="u" value=" U " onclick="simpletag('U')" class="codebuttons" name="U" style="text-decoration: underline;" onmouseover="hstat('under')" />


Explications :
  • Accesskey : Raccourcis clavier : Alt + Accesskey.
  • Value : Texte affiché dans le bouton. Mise en page de ce texte dans style="text-decoration: XXX;".
  • Name : C'est le nom de l’entré <input /> dans le formulaire (<form>).
  • Onmouseover : Aide affichée lors du survole du bouton. Si vous renseignez cette option pensez à lire les remarques, Mais sachez que Matt les a pas mis pour HTML et SQL....
  • onclick="simpletag('X')" : Méthode JavaScript qui affiche le tag (Voir chapitre suivant).
Prenons maintenant l’exemple du tag CENTER dont nous voulons ajouter un bouton. Pour ça, rien de plus simple, ajoutez simplement en dessous du bouton vu précédement :
HTML
<input type="button" accesskey="c" value=" CENTER " onclick="simpletag('CENTER')" class="codebuttons" name="CENTER" onmouseover="hstat('center')" />


Remarques :
  1. Pour les messages privés, pensez aussi à éditer : "Skins & Templates / Skin Manager / Votre skin / Edit Root Skin Template HTML / Post Screen / pm_postbox_buttons".
  2. Les boutons HTML et SQL sont mis en commentaire, pour les afficher, décommentez les. Pour le boutons liste il est caché (type="hidden"), pour l'afficher remplacez par type="button".
  3. Pour ceux qui veulent ajouter l'aide au survole du bouton, et qui ont donc rajouté onmouseover="hstat('center')" dans la balise <input /> : Pensez à donner une valeur à center dans : "Skins & Templates / Skin Manager / Votre skin / Edit Root Skin Template HTML / Post Screen / get_javascript" :
    CODE
    var help_center          = "Center le texte";
    Pour les puristes qui ne veulent pas hardcoder, sachez que le fichier langue correspondant est lang_post.php.



II. Mettre le tag en fonction :

A ce niveau, vous avez un super bouton centrer, mais qui ne marche pas... Normal, il n’est pas activé et la méthode simpletag('') plante.
Pour activer le bouton, rien de plus simple, ouvrez le fichier : jscripts / ipb_bbcode.js.
Ajoutez y simplement votre tag en dessous de :
CODE
var HTML_open = 0;

Ce qui donnerais dans notre exemple (CENTER) :
CODE
var CENTER_open = 0;




III. Tag plus complexes :

Maintenant que la méthode simpletag() n'a plus de secret pour vous on va passer à des chose plus complexe, c'est à dire les tags avec option : [tag={option}]{content}[/tag].
Nous allons donc créer un bouton pour le tag fieldset :
CODE
<fieldset><legend><strong>{option}</strong></legend>{content}</fieldset>

CODE
[fieldset={option}]{content}[/fieldset]


Si vous avez bien suivie la première partie, vous avez le bouton suivant :
HTML
<input type="button" accesskey="f" value=" FIELDSET " onclick="tag_fieldset()" class="codebuttons" name="FIELDSET" style="text-decoration: none;" onmouseover="hstat('FIELDSET')" />


Comme vous le voyez, nous n'utilisons plus simpletag() mais tag_fielset() qu'il reste donc à définir dans ipb_bbcode.js...
Pour cela appuyez vous sur le code de tag_html() par exemple que je vous mets et commente si dessous :
HTML
function tag_url()
{
var FoundErrors = '';

// Première fenêtre où l'on demande de rentrer l'url. text_enter_url est une variable du fichier langue.
var enterURL = prompt(text_enter_url, "http://");

// Deuxième fenêtre où l'on demande de rentrer le nom du lien.
var enterTITLE = prompt(text_enter_url_name, "My Webpage");

// Si erreur trouvée :
if (!enterURL) {
FoundErrors += " " + error_no_url;
}
if (!enterTITLE) {
FoundErrors += " " + error_no_title;
}

if (FoundErrors) {
alert("Error!"+FoundErrors);
return;
}

// Tout est bon !!! Enjoy ;)
doInsert("[URL="+enterURL+"]"+enterTITLE+"[/URL]", "", false);
}


Ce qui nous donne au finale pour notre fieldset :
HTML
function tag_fieldset()
{
var FoundErrors = '';
var enterTITLE = prompt( 'Titre', "Titre");
var enterCONTENT = prompt( 'Contenu', "Contenu du cadre");

if (!enterTITLE) {
FoundErrors += " " + 'Veuillez rentrer un titre';
}
if (!enterCONTENT) {
FoundErrors += " " + 'Veuillez rentrer un contenu';
}

if (FoundErrors) {
alert("Error!"+FoundErrors);
return;
}

doInsert("[fieldset="+enterTITLE+"]"+enterCONTENT+"[/fieldset]", "", false);
}


Remarque : Là encore j'ai hardcodé, mais libre à vous d'utiliser les fichiers langue wink.gif


Liens utiles :CodeBB : Soumission et partage.
BBCodes Persos: Le Tag [pop].
La base de connaissances Invision Power Board.
Reprise de ce tutorial chez moi en présentation tutorial.
Melkendar
Très très clair smile.gif

Un grand merci wub.gif

Epinglé smile.gif
LLaumgui
J'avais déjà posté dans la base de connaissance d'IBF... Mais je trouve que ça complète parfaitement ce forum de soumission de bbCode.

Par contre, je le dis une dernière fois : "Ce tutoriel n'est pas un tutoriel sur comment installer le bouton CENTER et le BOUTON FIELDSET !!! C'est un tutoriel qui permet de rajouter tout bbCode. CENTER et FIELDSET ne sont que des exemples."

Donc allez plus loin que les 2 exemples... Mieux, faites mumuse avec l'HTML logic smile.gif et allez encore plus loin.
Youp3
Merci LLaumgui

J'avais mis un lien vers ton sujet vers ibf-french, mais je vais le modifier pour qu'il pointe ici.
saroumane
Merci et bravo. Pour ma part je ne comprends pas trop mais je m'accroche. Je cherche à ajouter un BBCode pour aligner une image sur la gauche et permettre l'écriture sur la droite puis en dessous d'elle...

Alors déjà faut que j etrouv ele code html d'alignement d'une image sur la gauche...
lolo04
bien utile LLaumgui merci bien wink.gif
Melkendar
S'il vous plaît, évitez ce genre de commentaires - bien que fort appréciés wink.gif - pour éviter de surcharger inutilement les sujets smile.gif
*ares*
perso j'ai du mal a comprendre :S

je suis un noob
Choralien
Pour ajouter les boutons dans la signature il faut aller dans

Skins & Templates / Skin Manager / Votre skin / Edit Root Skin Template HTML / user_control_panel/signature


et ajouter le code
Alexandre7610
J'ai suivi toutes les instructions mais le bouton Center n'a aucun effet sad.gif
Est-ce que quelqu'un pourrait m'aider ?
Merci d'avance

Edit : Il marche maintenant assez bizarre il fallait peut-être attendre un jour le temps que cela s'active blink.gif
Merci pour ce tuto
LLaumgui
Pour le moment ce tutoriel reste 2.0... J'en referais surement une version 2.1 wink.gif.
@po-style
peut ton faire en sorte que le bouton ne soit vue que par les admin ?
Ckarsenti
Quel est l'utilité ? huh.gif
@po-style
l'utilitée serai que comme les admin et les modo sont les seule a pourvoie eciter tout les message du forum

il devrait etre les seule a avoir le bouton fieldset ( car je veut m enservir ce cette facon

En titre du tag ; le pseudo du modo ou de l admin
et encontenue ; la raison de l edition du message

vous voyez ce que je veu dire ?K

c'est pour cela que j aimerai savoir si on peut faite en sorte que ce bouton ne soit vue que par ces deux groupe
AlfredNakache
QUOTE(@po-style @ mardi 11 octobre 2005 à 23:43)
peut ton faire en sorte que le bouton ne soit vue que par les admin ?
*


Oui c'est faisable avec l'HTML Logic je pense...

Tutorial
Ckarsenti
J'avais eu la meme idée que toi avec ce code
HTML
<div id='pminline' style='display:show'>
<table width='500' border='0' cellpadding='0' cellspacing='0' align='center'>
<tr>
<td align='left'><div class='pmnotifytop' style='float:left;width:auto'>Merci de rester poli</div><div class='pmnotifytop' align='right'><font color="#DE4704">X</font></div></td>
</tr><tr><td align='left' id='pmnotifywrap'><table border="0" cellpadding="8" cellspacing="0" summary="" align="center">
<tr><td><br /> Bonjour,
<br /> Je tiens a vous rappeller que vous etes sur un forums, nous souhaitons que vous utilisiez un vocabulaire convenable. <br />
<br /> Merci d'avance,
<br />{content} <br /><br /></td>
</tr>
</table>
</td>
</tr>
</table>
</div>


Le seul hic, si tes membres sont trop curieux, ils decouvriront soit en faisant "citer" sur un de tes avertissements d'edit, soit en cliquant sous les smiley dans "Aide BB code", et donc ils decouvriront la clé du BBCode, et donc pourront l'utiliser... unsure.gif
@po-style
dans ce cas la est ce qu on peut effacer l aide au bbcode?
Fantome
Oui et non.

Oui : Il faut bidouiler les fichiers du forum pour modifier la requete qui récupère les bbcode lors de l'affichage de l'aide. Pour ne pas sélectionner le BBcode en question.

Non : Il faut s'y connaitre un minium en php, mySql et ipb pour faire ce que j'ai dit précédement (ce qui est pas le cas de la majorité des membre ici)
@po-style
ok merci donc je vais laisser tomber cr je fais partie des ces membres en question lol

merci quand meme
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.