Créons des balises !

Article publié le mardi 28 août 2007
par Bernard Blazin

Une balise du type #BALISE est bien pratique pour insérer du code php dans une page ou faire un appel à un formulaire. Voyons comment créer une balise tout simplement.

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 :

Votre Ville

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 ! 19 septembre 2007, par ttseo

Bonjour, j’héberge mon site chez free qui interdit la methode POST. Comment puis-je contourner le problème ? merci d’avance

Répondre à ce message

Créons des balises ! 5 octobre 2007, venant de ALamentin-105-1-52-201.w81-248.abo.wanadoo.fr

Tu peux pas les envoyer en GET ?

Répondre à ce message

Example #HELLO 16 janvier 2008, par mmmx

S’il vous plait, nous écrivons avec plus de précision.
Après beaucoup tentés vous finalement il tourne .

Excusées mon français,

Voilà le code :

fichier balise/hello.php

Répondre à ce message

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, );

}

Répondre à ce message

Créons des balises ! 13 juillet 2008, par Bernard Blazin

Oui ! C’est excellent, bravo :)

Tu devrais nous écrire un article là-dessus, plugandspip se ferait une joie de l’accueillir.

Répondre à ce message

Créons des balises ! 5 septembre 2010, par Kirsten

Site à visiter: college term papers

Merci pour l`explication, ça m’a beaucoup aidé !

Répondre à ce message

Répondre à cet article