Dès que l’on pénètre dans le monde SPIP on est souvent confronté aux balises du type #FORMULAIRE_FORUM etc..
A quoi cela sert-il ?
Un formulaire classique est à la base une page html dont les données seront traitées avec du php de manière à remplir les champs d’une table.
Hors sous SPIP, le code php, même s’il est interprété dans une page HTML, n’est pas conseillé pour des raisons évidentes de cache.
Autre chose : Pour des besoins constants, il est parfois nécessaire de faire appel à du php dans le squelette.
Soit s’il s’agit d’une fonction récurrente ,on placera le code dans mes_fonctions et on créera un filtre du style [(#BALISE|mon_filtre)] soit directement en faisant là aussi une simple balise dynamique.
Entrons dans le vif du sujet :
L’exemple du formulaire :
Voyons par exemple un formulaire qui ajoutera un petit quelque chose dans la clé PGP du Rédacteur
Le code du formulaire en HTML
<form action="#SELF" method="POST">
<div><input type="text" name="pgp" value=""/> Votre Ville </div><br/>
<input type="submit" value="Valider" />
</form>Je vous fais grace des feuilles de style et des div et autres span. On obtiendra donc bien ce formulaire :
Ce formulaire sera sauvegardé dans un dossier formulaires sous le nom monform.html.
Appelons maintenant le formulaire avec la balise #MONFORM qui, d’ailleurs, s’occupera du traitement du formulaire. Dans un répertoire balise nous allons créer un fichier php qui s’appellera comme le formulaire soit monform.php
Voici le code :
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
function balise_MONFORM($p) {
return calculer_balise_dynamique($p, 'MONFORM, array('id_auteur'));
}
function balise_MONFORM_dyn($id_auteur) {
return array('formulaires/monform', 0,
);
}
$pgp=$_POST['pgp'];
et la requête pour insérer dans la table spip_auteur le nom de la ville dans la clé pgp de l'auteur
?>
Maintenant dans la partie publique du site si vous placez #MONFORM dans votre squelette vous aurez bien le formulaire ainsi que le traitement du dit formulaire. Inséré dans une boucle AUTEURS vous pouvez en faire ce que vous voulez !
Mais essayez cela par curiosité : une fichier php à placer dans balise que nous nommerons hello.php
function balise_HELLO_dyn() {
echo "Hello World!";
}
?>
Appelez dans votre squelette #HELLO
Vous obtiendrez Hello World !
J’espère que ce petit article vous aidera dans la construction de vos propres balises
Au travail !
Forum de l'article
Créons des balises ! 12 juillet 2008, par Olivier CARETTE
Ton article m’a très intéressé et m’a permis de créer beaucoup de balise pour le plugin que je suis en train de créer. Par contre j’aimerais te soumettre un système pour ajouter des arguments dans une balise :
#BALISE{argument} dans votre squelette
function balise_BALISE($p) {
$argument=interprete_argument_balise(1,$p);
return calculer_balise_dynamique($p, 'MONFORM', array($argument));
}
function balise_BALISE_dyn($argument) {
****votre script php****
return array('formulaires/monform', 0, );
}
Créons des balises ! 5 septembre 2010, par Kirsten
Site à visiter: college term papers
Merci pour l`explication, ça m’a beaucoup aidé !