Créer un upload d'images sur un forum phpbb3
Tout n'est pas essentiel ici, j'ai pêché un peu partout mais le principal est là, je pense améliorer le code, aussi.
Non seulement, on a un bouton d'upload mais en plus, on a un onglet en plus à coté de options.
Les expressions mises sous cette forme [{EXPRESSION}] sont à adapter selon votre serveur et/ou forum.
Bien sûr je vous invite à conserver les fichiers de base, soit en les sauvegardant, soit en les renommant.
Pratiquement tout se joue dans le répertoire style/[{VOTRE THEME}]/templates.
Ajout du bouton
A la fin du fichier styles/[{VOTRE THEME}]/template/posting_buttons.html, après
<!-- END custom_tags -->
On ajoute :
<input type="button" class="button2" name="uploadkegtux" id="uploadkegtux" value="{L_UPLOAD_KEGTUX}" onclick="upload_kegtux();" title="Upload d'images" />
Cet emplacement est important puisque c'est là que sera placée le bouton que nous venons d'ajouter dans le panel, vous pouvez donc le placer avant le bouton de couleur, ou avant l'édition de texte. J'ai choisi de le placer à la fin, même après les bbcodes ajoutés normalement.
Gardons en mémoire que nous avons ajouter une variable (le texte du bouton) : {UPLOAD_KEGTUX}
Ajout de l'affichage du upload
Toujours dans le même fichier (posting_buttons), à la suite de
colorPalette('h', 15, 10);
// ]]>
</script>
</dd>
</dl>
</div>
On met ceci :
<div id="uploadkegtux" style="display: none;">
<dl style="clear: left;">
<dt><label for="subject">Upload d'images :</label></dt>
<dd>
<script type="text/javascript">
// <![CDATA[
function upload_kegtux()
{
dE('uploadkegtux');
e = document.getElementById('uploadkegtux');
}
// ]]>
</script>
<iframe name="KegTux" class="panel" allowtransparency="true" src="/[{VOTRE RÉPERTOIRE DE FORUM}]/styles/[{VOTRE THEME}]/template/upload.php" scrolling="no" frameborder="0" width="450" height="90" />Script Kegtux </iframe>
</dd>
</dl>
</div>
Cela affiche le panel d'upload exactement comme le bouton de couleur de police.
Pour l'instant, c'est une iframe (le js, c'est pas encore mon truc, donc pour intégrer un script php, je suis passer par là), mais je compte bien un jour réussir à l'intégrer entièrement au phpbb.
Ajout de l'onglet
Ouvrez le fichier styles/[{VOTRE THEME}]/template/posting_editor.html.
Cherchez
<!-- IF not S_PRIVMSGS and not S_SHOW_DRAFTS and not $SIG_EDIT eq 1 -->
<div id="tabs">
<ul>
<li id="options-panel-tab" class="activetab"><a href="#tabs" onclick="subPanels('options-panel'); return false;"><span>{L_OPTIONS}</span></a></li>
<!-- IF S_SHOW_ATTACH_BOX --><li id="attach-panel-tab"><a href="#tabs" onclick="subPanels('attach-panel'); return false;"><span>{L_ADD_ATTACHMENT}</span></a></li><!-- ENDIF -->
Ajoutez
<li id="kegtux-panel-tab"><a href="#tabs" onclick="subPanels('kegtux-panel'); return false;"><span>{L_UPLOAD_KEGTUX}</span></a></li>
Toujours dans /styles/[{VOTRE THEME}]/template/posting_buttons.html, cherchez:
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
Remplacez par:
var panels = new Array('options-panel', 'attach-panel', 'poll-panel', 'kegtux-panel');
Ouvrez /styles/[{VOTRE THEME}]/template/posting_layout.html et cherchez:
<!-- IF S_SHOW_ATTACH_BOX --><!-- INCLUDE posting_attach_body.html --><!-- ENDIF -->
Ajoutez à la suite :
<!-- INCLUDE posting_kegtux_body.html -->
Enfin, ajoutez un fichier posting_kegtux_body.html rédigé comme ceci :
<div class="panel bg3" id="kegtux-panel">
<div class="inner"><span class="corners-top"><span></span></span>
<iframe name="Kegtux" allowtransparency="true" src="[{CHEMIN DU FORUM}]/styles/[{VOTRE_THEME}]/template/upload.php" scrolling="no" frameborder="0" width="800" height="130">Script à Roger</iframe>
<span class="corners-bottom"><span></span></span></div>
</div>
Le fichier de langue
C'est ici que nous allons ajouter le texte qui remplace le {UPLOAD_KEGTUX} du début.
Conserver l'ordre alphabétique et inscrivez :
'UPLOAD_KEGTUX' => 'Téléchargement d’images',
This script is not securised !
Valix
Conclusion
Je prévois tout même de mieux intégrer ce script au phpbb afin de le diffuser un peu plus.