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 > Compilateur de squelette à champs automatiques

Compilateur de squelette à champs automatiques

30 octobre 2003 (Date de rédaction antérieure : 30 octobre 2003). – par Déesse A.

0 vote

Ceci est une archive périmée mais qui reste intéressante, parfois autant pour l’article que les commentaires associés.

Version 3 du compilateur amélliorant les requêtes SQL

Suite au travail posté ici le 16 Octobre pour limiter les requêtes SQL aux champs
effectivement utilisés, voici une nouvelle version du
compilateur de squelettes et ses innovations :

-  tout champ SQL est reconnu comme paramètre d’une boucle SPIP ;

-  les paramètres comme {1,n-1} où n désigne le nombre d’éléments
issus de la requête (voir les spécifications) sont reconnus.

En ce qui concerne le premier point, le principe de base a consisté à extraire du
fichier ecrire/inc_base la description des tables SQL et d’en faire des tableaux PHP
à présent déclarés dans un nouveau fichier nommé écrire/inc_kreate. Ce fichier
est lu par inc_base pour créer les tables SQL comme auparavant, mais est également lu par inc-calcul-squel pour connaître les champs existant dans chaque
table. Ces tableaux remplacent donc les tableaux $rows_* homonymes (qui figuraient dans inc-champ-squel) qui en étaient en fait des versions réduites.
Ainsi, cette nouvelle version du compilateur a pour effet que l’ajout d’un champ
dans une table SQL sera automatiquement répercuté dans l’analyse des paramètres
(entre autres le champ URL_REF que j’avais oublié dans la version précédente).

On peut débrayer cet automatisme en ajoutant des éléments au tableau
$exceptions_des_tables (si les noms des champs et/ou des tables SQL ne sont pas
les homonymes SPIP) ou au
tableau $exceptions_des_champs (si l’on veut implanter un traitement ultra-spécifique
dans l’aiguillage de inc-index-squel malgré l’homonymie). C’est ce qui a été fait
pour les qq cas existants actuellement (par exemple le champ faussement homonyme « LESAUTEURS » , et les synonymes « id_secteur/id_rubrique »
dans la table « breves »). A l’inverse,
les tableaux $contextes et $tables_doublons ont disparu car désormais inutiles.

Cette simplification a débouché sur l’élimination de la plupart des « AS » dans les
requetes SQL ; on peut les remettre éventuellement mais je n’ai pas vu l’intérêt
d’alourdir le code avec une telle gestion dans ce cadre.Le fichier spip_log est un peu plus verbeux lors des créations de tables, afin de repérer
plus facilement une éventuelle faute dans leur déclaration.

Je signale par ailleurs un bizarrerie : les 2 appels à la fonction maj_base attendent de celle-ci un résultat booléen, mais cette fonction ne contient aucun return dans sa définition, et retourne donc toujours faux. Je suis
tombé sur le pb dans mes essais de recréation de la base à l’aide des tableaux PHP,
et je l’ai résolu en rajoutant un « return true » final car je n’ai pas réussi à comprendre
le rôle de ce booléen. Il faudrait tirer ça au clair.

Bonne expérimentation à tous !

P.-S.

Deux bugs repérés par Marc Quinton ( Merci Marc) ont été corrigés, ainsi qu’un autre en ce lundi 27/10. Charger les nouvelles versions des fichiers inc-reqsql, inc-index et inc-calcul-squel, ainsi que inc-text-squel pour étre compatible avec la CVS.

Dernière modification de cette page le 1er octobre 2007

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

  • Dépublie

    13 janvier 2014 – 96 commentaires

    Dépublie des articles à une date prédéfinie, soit automatiquement avec une durée établie au moment du changement de statut en publication, soit manuellement. En préambule il est nécessaire de se souvenir que personne n’apprécie se retrouver sur une (...)

  • Escal-V3 et Escal-V4

    16 février 2012 – 307 commentaires

    Un jeu de squelettes proposant un affichage en 2 ou 3 colonnes avec un large choix de noisettes à insérer ou pas, fortement paramétrable depuis l’espace privé. Présentation A l’instar de sa petite soeur plugin Escal-V2 dont elle reprend toutes les (...)

  • Plugin Modèles media

    25 avril 2011 – 183 commentaires

    Les modèles , et produisent chacun un résultat différent et ce résultat, pour les images, dépend du fait qu’elle soit dans le portfolio ou non. Ce plugin propose une nouvelle série de modèles ayant un comportement unifié et indépendant du mode des (...)

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

    5 novembre 2010 – 50 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 feuilles (...)

  • GIS 4

    11 août 2012 – 1446 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 (...)