NouveauCompilo

Le nouveau compilateur de SPIP, integré à la version 1.8, apporte des perspectives inouies pour le développeur et le webmestre.

Cette page est dédiée à sa documentation en attendant de lui trouver sa place définitive.

| NouvelleBoucle | NouvelleBalise | NouveauCritere | InterfaceEtUsages | SquelettesDeFormulaires | BaliseSelf | BaliseHTTPVARS | CriteresCalcules | ModeDebug


Où allons nous ?

« La version de SPIP disponible depuis l’été 2004 donne la possibilité d’adresser d’autres bases SQL que celles installées par SPIP au départ. Cette nouveauté repose sur une description des tables SQL par des tableaux PHP selon un format précis utilisé dans le fichier ecrire/inc_serialbase.php3, tous ces tableaux étant des éléments du tableau global $tables_principales. Cette variable permet au compilateur de squelettes de produire des pages HTML de lecture de ces tables, mais à l’inverse on peut les utiliser pour produire des formulaires Web d’écriture de nouvelles entrées. »
(source : La gestion de tables SQL supplémentaires par Deesse A).

Donc :
1. SPIP va permettre de puiser les données (textes) qu’il affiche dans les
pages dans plusieurs base de données MySQL différentes.
De plus, une reflexion est menée (depuis plusieurs mois) en vue d’ouvrir
SPIP à d’autres SGBDR (Postgres...)
2. Il sera possible de générer un formulaire permettant l’entrée des données dans de nouvelles tables.
[->PiiF] « sera » ça veut dire que c’est pour bientôt, ou que c’est dans la « todo » ?

A lire :
-  La gestion de tables SQL supplémentaires par Deesse A.
pour l’instant dans l’espace de rédaction de spip-contrib.


A savoir : et les #EXTRA alors ?

Les champs extra continueront-ils d’être développés parallèlement ou
deviennent-ils tout simplement obsolètes ?

Avis 1 : " Bof ça peut être pratique parfois de ne pas modifier la base pour
distribuer des contribs sans soucis, et d’avoir quand même des
possibilité d’extra ? "

Avis 2 : "A partir du moment où quelqu’un développe et maintient les extras et y
trouve son intérêt, tout en estimant qu’ajouter des champs pose problème, je (fil)
ne vois pas pourquoi on n’intégrerait pas les modifs. Mais j’ai quand même
l’impression que ça va être obsolète : personnellement je n’investirais plus
de temps là-dessus. Ajouter des champs et des tables, c’est pas hyper
sorcier." (Fil).

Avis 3 : ([->PiiF]) Faire un mix des 2 : l’avantage des extra étant la possibilité de les éditer depuis l’interface d’admin, ajouter cette possibilité pour les champs « ajoutés » (c’est à dire les colonnes ajoutées à des tables existantes) permettrait de rendre les champs extra obsolètes sans y perdre.

A lire :
-  ToDoChampsExtra


Déclarer une nouvelle boucle

On peut déclarer sa propre boucle ou etendre une boucle SPIP déjà existante : NouvelleBoucle.

Déclarer une nouvelle syntaxe de boucle SPIP

A faire : décrire la syntaxe qui permet de déclarer un nouveau format de boucle. (noé de naama)

Ajouter un critère

On peut maintenant déclarer son propre NouveauCritere.

Calculer une balise

On peut aussi déclarer sa NouvelleBalise.

Exemples d’utilisation du nouveau compilo :


-  Exemple simple avec une table pour ranger des animaux
-  Création de la BOUCLE(SESSIONS) (créer une nouvelle table et des nouvelles balises),
-  Balsie EXIF : récuperer les informations stoquées dans les images. : affichage des metadata EXIF pour les images JPG et TIFF (création d’une nouvelle balise avec des paramètres),
-  BalisePagination : passer d’un filtre à une balise,
-  BaliseNomSite : dans un forum, afficher un nom de site si seule l’url du site est donnée.
-  Nouveau Critére : trouver les articles (ou autre) similaires


Rapports de tests

j’ai mis au point semi-automatiquement un jeu de test que j’ajoute au CVS.

Il permet :

-  pour les développeurs, de traquer avant un commit les erreurs les plus évidentes (syntaxe PHP fausse, fonctions indéfinies, boucle infinies, page visuellement irrecevables)

-  pour les utilisateurs, de les aider à circonscrire leur problème, et notamment s’il vient de leur squelette ou de Spip.

Pour le moment, ce jeu de test se réduit à un squelette (on ne teste donc que l’espace public) passant en revue toutes (ici se situe l’automatisme) les balises Spip.
Les tests des boucles, des critères et des filtres sont pour l’instant réduit à qq uns, exigés par le test des balises elle-mêmes (par exemple #TOTAL_BOUCLE ne peut etre testé que dans une boucle) ; ça s’améliorera bientot.
Les tests d’inclusion de PHP sont réduit de même et pour la même raison (mais on verra que c’est déjà significatif).

Le squelette s’appelle casse-noisettes.

Attention, effacez vos cookies avant de lancer casse-noisettes.php3, car sinon la balise FORMULAIRE_SITE vous enverra illico dans l’espace privé.

J’espère que vous n’en aurez PAS besoin.

déesse A


Ce qu’il faudrait préciser

-  plusieurs doublons indépendants {doublons machin} et {doublons truc} peuvent être utilisé : voir

-  Plus basique, si j’ai bien compris : il sera donc possible de faire un test dans une boucle du genre {critere = variable_calculée} , alors que jusqu’à la v1.7.2 il est nécessaire de faire {critere = valeur_en_dur}  ?? Merci de confirmer ici. Ce qui simplifierait pas mal l’écriture de certaines boucles, et éviterait de faire appel à des « astuces » ou plutôt des bidouilles...

Aller piocher du contenu dans la base sql du voisin
Il faudrait expliquer ça : figurez vous que désormais une boucle spip peut afficher le contenu d’un site distant. Attention c’est hautement expérimental.

(GuiF) Dans le même ordre d’idée comment sont gérées les différentes variables dans les critères des boucles !!?

Faire référence à une variable liée au contexte d’une boucle
Pour la boucle courante :
— > {critère=#BALISE}
Pour une boucle parente (<BOUCLE0(RUBRIQUES)><BOUCLE1(ARTICLES){id_rubrique}>)
— > {critère=#0:BALISE} (référence une balise de la rubrique, pas de l’article)

Faire référence à une variable _POST ou _GET :
— > {critère=%variablePostGet}

Faire référence à une variable définie par l’utilisateur...
(on a un script php dans le squelette qui fait :

<?php
	$variableSqueletteUtilisateur='toto';
?>
	


— > non, c’est impossible

Faire référence à une variable définie par un INCLURE...
— > ...

-  Expliquer les changements pour mes_fonctions et mes_options


copié-collé à insérer.

FonctionsSurchargeables
boucle_* et critere_*
ont en argument uniquement des objets (et éventuellement des chaines).
Ils sont décrits dans le fichier inc-compilo-api, qui contient aussi
les tables
du compilateur.


| NouvelleBoucle | NouvelleBalise | NouveauCritere | InterfaceEtUsages |

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom