SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 195 visiteurs en ce moment

Accueil > Documentation > Tutoriaux pour le code de SPIP > Archives tutoriaux code SPIP > La genèse du nouveau compilateur > NouveauCompilo

NouveauCompilo

23 février 2006

2 votes

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 |

Dernière modification de cette page le 31 juillet 2009

Retour en haut de la page

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Champs Extras 3

    16 janvier 2012 – 523 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Réservation d’événements

    16 mars 2015 – 188 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Les crayons

    23 avril 2008 – 815 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 43 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de (...)

  • Recommander

    3 avril 2011 – 16 commentaires

    Ce plugin propose une manière simple de suggérer de recommander par email un article à un ami. Fonction « recommander un article à un ami ». On l’ajoute dans n’importe quel squelette sous la forme : #RECOMMANDERtitre de la page,url de la page,intro (...)

Ça spipe par là