SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 238 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 ?

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

  • Mailshot

    16 janvier 2013 – 254 commentaires

    Ce plugin prend en charge l’envoi en nombre d’info-lettres par email. Mailshot permet l’envoi en nombre d’emails au moyen d’un SMTP (ou d’un service externe) dédié à cet effet. Il permet de limiter la cadence d’envoi. Enfin, ce plugin implémente la (...)

  • bigfoot

    16 juin 2015 – 56 commentaires

    Un plugin qui facilite l’utilisation des notes de bas de page en les affichant dans des infobulles à l’aide d’un peu de javascript. Le constat de l’auteur du script : Les notes de bas de page sur le web sont une plaie. Tu dois d’abord essayer de (...)

  • SkelEditor 2.0

    1er mars 2010 – 74 commentaires

    La version remaniée et enrichie du plugin, pour SPIP 2.1, qui vous permet d’éditer votre squelette directement en ligne sans passer dans le FTP Ce plugin vous permet d’éditer les fichiers du squelette courant depuis l’interface privé. Cela peut (...)

  • CKeditor 3.0

    4 octobre 2009 – 1218 commentaires

    CKeditor est l’évolution de l’éditeur WYSIWYG : FCKeditor, avec ce plugin vous pourrez utiliser cet éditeur à la place de l’éditeur de spip tout en laissant le choix à vos auteurs de l’éditeur qu’ils préfèrent utiliser. Attention : cet éditeur WYSIWYG (...)

  • GIS 4

    11 août 2012 – 1344 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)