Carnet Wiki

CreerSaBalise

Version 2 — Novembre 2006 — i01m-62-35-45-99.d4.clu

_

NouveauCompilo NouvelleBoucle NouveauCritere InterfaceEtUsages

---------------
Voir aussi NouvelleBalise


Rappel : accès direct aux colonnes de la base de donnée

Chaque colonne d’une table déclarée dans le compilo est par défaut directement accessible dans sa boucle comme balise #NOM_COLONNE. Dans l’exemple présenté dans NouvelleBoucle et AutreTableSpip, on pourra donc afficher directement les nouvelles balises #ID_MACHIN, #LIBELLE et #ID_ARTICLE.

Balises dynamiques

Définition de balises personalisées et redéfinition de balises existantes

Pour (re-)définir une balise calculée par le compilateur, il suffit de déclarer une fonction dans mes_fonctions.php3. Le nom de la fonction pour la balise #X doit être balise_X. Si la balise #X existait, elle sera redéfinie.

[Erreur...8]Attention : contrairement à ce qui est écrit dans ce commentaire, la classe CHAMP est maintenant dans le fichier inc-compilo-api.php3.

[Erreur...10]

Exemple

[Erreur...12]

function calcul_URL_SQUELETTE() {
    global $dossier_squelettes;
    return lire_meta('adresse_site').'/'.$dossier_squelettes;
}


[Erreur...14][Erreur...15]Noter que dans la fonction balise_NOM_BALISE, il faut écrire l'appel à la methode PHP entre guillemets, comme ci-dessou :
_ <code>  $a = "lire_meta('adresse_site')"   

<— Comme ça
 $a = lire_meta('adresse_site')     <— Pas comme ça

En fait, la méthode lire_meta(paramètres) sera appelée ultérieurement par le compilo de squelettes SPIP.

Hé oui, quand on veut retourner du code php, on doit retourner une chaîne de caractère contenant le code c’est à dire mettre les «  » autour. Finalement j’ai rien mis dans la fonction balise c’est calcul qui fait tout le boulot.

[Erreur...19]Note à l’attention des autres apprentis sur le tas : le global $dossier_squelettes; est nécessaire parce par défaut en PHP les variables globales ne sont pas visibles de l’intérieur des fonctions.

[Erreur...21]

Balise partiellement cachée

Dans certain cas, on peut vouloir ne pas mettre le résultat d’une balise dans le cache.

Par exemple les balises FORMULAIRE de spip on besoin d’information fournie par le visiteur. Elles ne peuvent donc pas être stoquées dans le cache — puisqu’il est partagé entre tous les utilisateurs jusqu’au prochain recalcul.

[Erreur...25]l’implementation nécessite alors l’utilisation des fonctions
-  calculer_parametre_dynamique (pour l’analyse syntaxique)
-  calculer_liste (pour la production de code)

Quelques fonctions utiles dans l’implementation de nouvelles balises

[Erreur...28]--------

_

NouveauCompilo NouvelleBoucle NouveauCritere InterfaceEtUsages


---------------
Voir aussi NouvelleBalise