Carnet Wiki

NouvelleBoucle

Version 1 — Novembre 2005 — Dan Hetzel — Version initiale

Le nouveau compilateur de Spip, intégré aux versions spip depuis la 1.8, apporte des perspectives inouïes pour le développeur et le webmestre.

[Erreur...4]_

| NouveauCompilo | NouvelleBalise | NouveauCritere | InterfaceEtUsages |


Comment désormais implémenter une nouvelle boucle grâce au nouveau compilo, et la nouvelle syntaxe dans spip.

Désormais avec le nouveau compilateur la balise <BOUCLEn ...> peut s’appliquer non seulement aux tables standards de SPIP (ARTICLES, RUBRIQUES, etc.) mais à toute table accessible par la connexion au serveur SQL et préalablement déclarée au traducteur PHP.

De sorte que s’il existe une table nommée matable1 ayant des champs nom et adresse, on peut écrire dans un squelette :

<BOUCLE_1(matable1)>
 #NOM<br />
 #ADRESSE
</BOUCLE_1>

[Erreur...12][Erreur...13]- la prise en compte de ces tables se fait ensuite dans le fichier inc-index uniquement sur la base de la valeur de la variable globale $tables_principales. Pour déclarer de nouvelles boucles il faut allonger ce tableau. C’est une variable globale composé d’un tableau de tableau de 2 éléments.

[Erreur...15][Erreur...16]

Déclarer une nouvelle table dans SPIP

Prenons un exemple pipo : une table spip_machin contenant 3 colonnes : un identifiant IdMachin, numérique, un libellé Libelle, et un lien vers la table article, histoire d’avoir des trucs un peu tordus.

La suite sur : AutreTableSpip

Déclarer une nouvelle table (non spip, par ex. Spikini) dans SPIP

[Erreur...21][Erreur...22][Erreur...23][Erreur...24]

Déclarer une nouvelle colonne dans une table Spip existante

Avant de se lancer dans des créations de tables, on peut commencer par tripoter les existantes, histoire de se faire la main.
Par exemple pour ajouter des dates de début et fin à un article, pour gérer un agenda :

La suite sur AutreColonnedUneTableSpip

Faire des jonctions entre les tables

Certaines tables, comme pour les mots où les documents peuvent être accédés directement depuis une autre boucle.

Par exemple, on peut utiliser directement le critère id_mot sur une boucle ARTICLES alors qu’il n’y a pas de telle colonne dans la table spip_articles.
SPIP gère automatiquement la jonction entre la table spip_articles et la table spip_mots_articles pour mettre en relation un article et les mots qui lui sont liés.

On peut facilement faire ce genre de chose pour ses tables ajoutées. Imaginons qu’on ajoute une table pour mettre des mots clef sur des auteurs. Il y faut donc faire un lien entre la table spip_mots et la table spip_auteurs. On crée donc une table qui met un id_auteur en relation avec un id_mot :

La suite sur JonctionEntreTables

Déclarer une table SPIP ou non SPIP d’un autre serveur MYSQL

Ca se passe sur la page MultiBase.

Personnaliser la requête de base

[Erreur...36]Voir inc-boucles.php3 et documenter/exemplifier celà.

Exemples :

-  Création de la BOUCLE(SESSIONS) (créer une nouvelle table et des nouvelles balises),
-  Accès par boucle et balises aux Articles non Publiés


voir cette discussion pour mettre la page à jour

| NouveauCompilo | NouvelleBalise | NouveauCritere | InterfaceEtUsages |