SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 124 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

  • Html5up Strongly Typed

    1er décembre 2017 – commentaires

    Html5up Strongly Typed est un jeu de squelettes, dont l’habillage peut convenir à tout type de site web : blog, webzine, etc..... Il vient en « surcharge » des squelettes de la Distribution SPIP. Voir à ce sujet « Où placer les fichiers de squelettes  (...)

  • Nettoyer la médiathèque

    28 mai 2014 – 67 commentaires

    Ce plugin est intéressant dans l’un des cas suivants : Vous avez un site SPIP avec une version inférieure à la 1.9.2 et vous voulez le monter de version ; Vous avez un site depuis une version inférieure à SPIP 1.9.2 ; Vous voulez faire le ménage des (...)

  • Slick

    17 mai 2017 – 27 commentaires

    Intégration à SPIP du carrousel Slick : https://kenwheeler.github.io/slick/ Fonctions de Slick Son utilisation permet d’afficher une liste d’éléments défilants, en l’occurrence ici une série de photographies. Par les configurations proposées, il est (...)

  • Mailsubscribers

    16 janvier 2013 – 385 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes de (...)

  • oEmbed

    4 décembre 2013 – 140 commentaires

    C’est quoi ce truc ? oEmbed est un protocole ouvert qui permet d’insérer le contenu d’une page web dans une autre page. Le contenu inséré peut être de plusieurs types : photo, vidéo, URL ou extrait HTML. L’échange d’information a lieu entre un site (...)