IPB2.0.x
Le but de cette petite astuce est de permettre l'ajout de code PHP dans le skin.
Fonctionnement d'IPB
Les templates sont stokées dans des fichiers php sous forme de fonction et le code HTML à afficher est contenu dans une chaîne de caractères qui utilise la syntaxe HereDoc(cf. DocPHP) l'avantage de cette syntaxe c'est quelle n'est pas encadré par de guillemets donc il n'y a pas de caractére à échapper.
Exemple de fonction d'un template :
CODE
//===========================================================================
// announcement_wrap
//===========================================================================
function announcement_wrap($announce="") {
global $ibforums;
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<EOF
<tr>
<td class="darkrow1" colspan="8"><b>{$ibforums->lang['announce_start']}</b></td>
</tr>
$announce
EOF;
//--endhtml--//
return $IPBHTML;
}
// announcement_wrap
//===========================================================================
function announcement_wrap($announce="") {
global $ibforums;
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<EOF
<tr>
<td class="darkrow1" colspan="8"><b>{$ibforums->lang['announce_start']}</b></td>
</tr>
$announce
EOF;
//--endhtml--//
return $IPBHTML;
}
Intégration du code PHP
Explication de l'idée
Maintenant que l'on a vue le fonctionnement d'IPB je vais expliquer l'idée qu'on vas mettre en suite en place.
Notre but vas être de fermer la chaine de caractères, d'insérer notre code PHP et enfin de réouvrir la chaîne de caractères pour que le fonctionnement d'IPB ne soit pas altéré.
Application
Pour mettre en pratique cette manipe il suffit d'aller dans la template (dans l'Admin) où l'on souhaite insérer notre code PHP et d'y mettre
CODE
EOF;
//Debut du code PHP
...
votre code
...
//Fin du code PHP
$IPBHTML .= <<<EOF
Puis enregistrer les modifications de votre template et le tour est jouer//Debut du code PHP
...
votre code
...
//Fin du code PHP
$IPBHTML .= <<<EOF
Précaution d'utilisation
Les ligne EOF; et $IPBHTML .= <<<EOF ne doivent rien contenir d'autre.