SPIP-XMLdoc 144
Traitement de FICHES XML
dans une application construite sur SPIP
Franccedilois HAMONNOfhamonnoclub-internetfr
SPIP-XMLdoc 244
Table des matiegraveres
1 Objectifs 3
2 Utilisation des laquo Fiches XML raquo 421 Inteacutegration agrave SPIP le filtre laquo processXML raquo 4
22 Utilisation du filtre laquo processXML raquo par lrsquoapplication 4
23 Les paramegravetres drsquoenvironnement du filtre laquo processXML raquo 5
24 Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip 7
3 Principes de traitement des laquo Fiches XML raquo 931 Le type dune FICHE XML 9
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquo 9
33 Le contenu dun modegravele de FICHE XML 10
34 Le traitement drsquoune FICHE XML les laquo parsers raquo 11
4 La distribution laquo SPIP ndash XML raquo 1341 Les composants 13
Les fichiers drsquoinstallation 13Les squelettes de lrsquoexemple laquo Devis raquo 13Le filtre laquo processXML raquo et le traitement des fiches XML 15
42 La mise en œuvre de lrsquoinstallation Installer les fichiers 19
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base 20
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo 21
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs25
Balise ltDocumentXMLgt 25
Balise ltCadregt 28
Balise ltTitregt 30
Balise ltnom_champgt 31
Annexe 2 - Exemple de FICHE XML complegravete Description drsquoun projet desolidariteacute 37
SPIP-XMLdoc 344
1 Objectifs
Le package deacutecrit ici srsquoadresse agrave ceux qui souhaitent utiliser SPIP ( httpwwwspipnet ) pour manipuler desobjets (fiches techniques par exemple) dont les attributs (ou champs) ne correspondent pas agrave ceux geacutereacutes parce systegraveme de publication titre sous-titre chapeau texte hellip
Lrsquoobjectif est alors de pouvoir conserver SPIP comme structure daccueil en associant un article ou unerubrique agrave chacun de ces objets
Ceci est possible en utilisant un codage XML de lrsquoobjet (ou plutocirct de ses attributs) cette repreacutesentation delrsquoobjet eacutetant stockeacutee dans le corps drsquoun article ou drsquoune rubrique SPIP qui lui sera associeacute
Le couple SPIP+XML est particuliegraverement performant puisquil allie dune part une gestion globale de lobjeten tant quarticle ou rubrique SPIP hieacuterarchie mots-cleacutes indexation forum hellip et dautre part une gestionapplicative de lobjet en tant quensemble de champs formulaire de saisie affichage et traitementspersonnaliseacutes
NB Pour faciliter la compreacutehension de la suite de ce document au lieu de parler dobjets ayant des attributs ouchamps nous parlerons de Fiches descriptives ou plus simplement de Fiches XML
SPIP-XMLdoc 444
2 Utilisation des laquo Fiches XML raquo
21 Inteacutegration agrave SPIP le filtre laquo processXML raquoLes fiches descriptives seront codeacutees en XML dans le champ laquo Texte raquo dun article ou dune rubrique SPIP enexploitant toutes les fonctionnaliteacutes offertes par SPIP pour classer acceacuteder et rechercher ces articles ourubriques
De plus agrave chaque type de fiche sera associeacute un modegravele qui deacutecrira agrave la fois laffichage et la saisie de chacunde ses champs
Dans la pratique toutes les balises SPIP pouvant avoir un contenu XML pourront ecirctre traiteacutees par le filtreprocessXML
Le traitement de mise en page normalement effectueacute par SPIP sera inhibeacute en faisant suivre le nom de la balisepar une asteacuterisque (cf documentation Spip laquoMise en page Manuel de reacutefeacuterenceraquo Court-circuiter letraitement par Spip)
NB Dans le cas ougrave la balise ne contiendrait pas de code XML la mise en page standard de SPIP (filtre propre) seraeffectueacutee par le filtre processXML
Par exemple Affichage du texte dun article ou drsquoune rubrique
[(TEXTE|processXML)]
Afin drsquoidentifier le traitement agrave effectuer sur le contenu XML drsquoune fiche ce dernier commencera par la baliseXML laquo ltDocumentXMLgt raquo deacutecrite plus loin
ltDocumentXML TypeDocXML=Type_de_fiche Handler=parsergt
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne de la fiche descriptive dun devis ltDocumentXML TypeDocXML=DevisPiscine Handler=FicheXMLgt
NB Si les donneacutees traiteacutees par le filtre processXML ne commencent pas par la balise ltDocumentXMLgt les donneacuteessont retourneacutees agrave SPIP inchangeacutees apregraves application du filtre Spip laquopropreraquo
22 Utilisation du filtre laquo processXML raquo par lrsquoapplication
Le code PHP laquoapplicatifraquo pourra appeler la fonction processXML() pour afficher un document XML contenudans une variable PHP (comme lors de lutilisation du filtre par Spip)
Par exemple $dataHTML = processXML($dataXML) echo $dataHTML
SPIP-XMLdoc 544
23 Les paramegravetres drsquoenvironnement du filtre laquo processXML raquo
Plusieurs variables globales sont utiliseacutees pour controcircler le traitement drsquoune laquo Fiche XML raquo
$xml_TypeFicheXML Le type de la fiche (au choix de lrsquoapplication) $xml_ObjetSpip Lrsquoobjet Spip qui contient ou contiendra la fiche ( =rsquoarticlersquo ou =rsquorubriquersquo ) $xml_ParamsObjetSpip Paramegravetres pour la creacuteation drsquoun nouvel objet Spip contenant la fiche saisie
Syntaxe des formulaires html - Si objet rsquorubriquersquo alors = rsquoid_secteur=xxxampid_rubrique=0rsquo- Si objet rsquoarticlersquo alors = rsquoid_secteur=xxxampid_rubrique=xxxampid_article=0rsquo
Ces variables sont normalement renseigneacutees par le filtre laquo processXML raquo
Exeacutecution du filtre par Spip
Lorsque Spip exeacutecute le filtre laquo processXML raquo ce dernier appelle la proceacutedure laquo setParamsXml() raquo quirenseigne ces variables globales en fonction du contexte en cours
Les variables $xml_ObjetSpip et $xml_ParamsObjetSpip seront renseigneacutees en exploitant le contexte Spip nom du squelette en cours drsquoexeacutecution id de lrsquoarticle ou de la rubrique en cours de traitement et paramegravetresassocieacuteshellip
Le laquo Type de Fiche XML raquo sera le mot-cleacute de lrsquoarticle ou de la rubrique en cours de traitement appartenantau groupe de mots-cleacutes laquo TypeFicheXML raquo
Le laquo Modegravele de Fiche XML raquo agrave traiter sera donneacute par lrsquoarticle Spip ayant le mot-cleacute laquo ModeleFicheXML raquo etayant son SURTITRE=rsquoModeleltType de Fiche XMLgtrsquo (par ex lsquoModeleFicheClientrsquo ou lsquoModeleDevisPiscinersquo)
Rappel Lrsquoarticle ou la rubrique contenant une laquo fiche XML raquo commence toujours par la balise XML ltDocumentXML TypeDocXML=Type_de_fiche XML hellipgt
Renseignement du lien vers la creacuteation drsquoune nouvelle fiche
La proceacutedure laquo setParamsXml($typeFicheXML $id_article_modele) raquo doit ecirctre appeleacutee pour obtenir lrsquourl dulien vers le formulaire de creacuteation drsquoune nouvelle ficheLes paramegravetres (optionnels) sont
$typeFicheXML Type de laquo Fiche XML raquoSi vide sera renseigneacute avec la valeur du mot-cleacute laquo TypeFicheXML raquo associeacute agravelrsquoobjet Spip en cours donneacute par $xml_ObjetSpip
$id_article_modele Id de lrsquoarticle Spip contenant le modegravele agrave traiterSi vide sera lrsquoid de lrsquoarticle de mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo etde laquo SURTITRE=rsquoModelelttype de fiche XMLgtrsquo raquo
$xml_ObjetSpip Objet Spip qui contiendra la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves le squelette encours (cf $PHP_SELF)
SPIP-XMLdoc 644
$xml_ParamsObjetSpip Paramegravetres agrave utiliser pour visualiser la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves la laquo FicheXML raquo en cours si elle existe
Lrsquoappel agrave laquo setParamsXml() raquo renseignera en retour la variable globale $lienNewFicheXML avec lrsquourl rechercheacute
Exemple de code affichant les liens de creacuteation de laquo Devis raquo dans le squelette laquo rubriquehtml raquohellip hellip hellip hellip hellip hellip hellip hellip helliplt mdashRechercher la rubrique agrave traiter ltBOUCLE_principale(RUBRIQUES)id_rubriquedoublonsgtlt php Meacutemoriser le ndeg de la rubrique agrave traiter container et son secteur NB On suppose qursquoelle contient des devishellip et on veut afficher les liens vers de nouveaux devis $id_rub = ID_RUBRIQUE $id_sect = ID_SECTEUR $fiches = array() $i = 0------------------------------------------------------ Rechercher les modegraveles de devis (type de fiche laquo DevisXXXX raquo) Conventions =gt Les modegraveles sont des articles de mot-cleacute laquo ModeleFicheXML raquo =gt Le type de modegravele est dans le surtitre et il est de la forme laquo ModeleDevisXXX raquo =gt Le texte agrave afficher pour le lien est dans le titre =gt Le code XML agrave traiter est dans le texte------------------------------------------------------gt ltBOUCLE_ModelesFiches(ARTICLES)titre_mot=ModeleFicheXMLgtlt php $modele = SURTITRE if ( strpos(_$modele _ModeleDevis)==1 ) $modele commence par lsquoModeleDevisrsquo $typeFiche = substr($modele strpos($modele Modele ) $typeFiche=rsquoDevisXXXXrsquo $fiches[$i][texte] = [(TITRE|texte_script)] Conserver le laquo titre raquo du modegravele
Renseigner les variables drsquoenvironnement pour laquo setparamsXML() raquo $xml_ObjetSpip = article Les devis seront dans des articles $xml_ParamsObjetSpip = id_rubrique=$id_rubampid_secteur=$id_sectampid_article=0 setParamsXML($typeFiche ID_ARTICLE) Renseigner le lien $lienNewFicheXML
Renseigner les liens pour la creacuteation de fiches $fiches[$i][lien] = $lienNewFicheXML $i++ Fin if ( strpos(_$modele _ModeleDevis)==1 )gt ltBOUCLE_ModelesFichesgthellip hellip hellip hellip hellip hellip hellip hellip hellipltphp foreach ($fiches as $fiche) Balayer les liens meacutemoriseacutes Afficher les liensgt ltA HREF=lt=$fiche[lien]gt gt lt=$fiche[texte]gt ltAgt ltBR gtltphp gthellip hellip hellip hellip hellip hellip hellip hellip hellip
SPIP-XMLdoc 744
24 Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip
Des modegraveles drsquoimportation respectant la syntaxe (xml aussi) des exportations de la base reacutealiseacutees par Spipsont utiliseacutes pour importer les objets Spip (rubrique article mots-cleacutes hellip) associeacutes agrave une laquo Fiche XML raquo
Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip ainsi que la sauvegarde de ses modifications sont reacutealiseacutees par laproceacutedure laquo importObjectIntoSpip($objetAppli $attributs $pathToImportDir) raquo appeleacutee avec lesparamegravetres suivants
$objetAppli Objet applicatif agrave creacuteer ou mettre agrave jour =gt Les modegraveles dimportation seront trouveacutes - via la variable globale $import_$objetAppli - ou dans le fichier $pathToImportDirimport_$objetAppli_StdxmlNB La variable globale $import_$objetAppli donnera la liste des fichiersimport_xxxxml du reacutepertoire $pathToImportDir qui devront ecirctre traiteacutes pourreacutealiser lrsquoimportation de lrsquoobjet applicatif
$attributs Tableau associatif contenant la valeur de chaque laquo champ raquo de la laquo Fiche XML raquo $attributs[ltchampgt] = ltvaleur champgtLes champs lsquoltchampgtrsquo preacutesents dans les modegraveles drsquoimportation seront remplaceacutespar $attributs[ltchampgt] avant de donner ce modegravele agrave traiter agrave la proceacutedure Spipdrsquoimportation (cf import_objet() )
$pathToImportDir Chemin relatif au site vers le reacutepertoire contenant les modegraveles drsquoimportationCe paramegravetre est optionnel si vide il sera renseigneacute avec la valeur du paramegravetrePathToImportModels de la table MySQL laquo spip_params_appli raquo Si ce dernierparamegravetre est vide alors $pathToImportDir = rsquoToolsModeles_importrsquo
NB La proceacutedure utilise aussi la variable globale laquo $userId raquo donnant lrsquoid de lrsquoauteur Spip identifieacute
Avant importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera la valeur des attributs suivants srsquoilsne sont pas deacutejagrave renseigneacutes
bull $attributs[Heure] = lthh mm ssgt 135723bull $attributs[DateJour] = ltaaaa-mm-jjgt 2002-01-15bull $attributs[Date] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateRedac] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateFr] = ltjjmmaaaagt 15012002bull $attributs[lsquoid_auteurrsquo] = $userId id de lrsquoauteur Spip identifieacutebull $attributs[idAuteurModif] = $userId si creacuteation drsquoune nouvelle fiche
et pour chaque mots-cleacutes laquo ltmotgt raquo existant bull $attributs[id_mot_ltmotgt ] = ltid du mot-cleacutegtbull $attributs[id_groupe_ltmotgt ] = ltid du groupe contenant le mot-cleacutegtbull $attributs[nom_groupe_ltmotgt ] = lttype du mot-cleacutegt
Pour effectuer lrsquoimportation la proceacutedure laquo importObjectIntoSpip() raquo remplacera dans chaque modegraveledrsquoimportation agrave traiter les chaicircnes lsquoxxxrsquo par la valeur de lrsquoattribut $attributs[lsquoxxxrsquo] puis appelera laproceacutedure Spip import_objet() avec ce modegravele en paramegravetre
SPIP-XMLdoc 844
Apregraves importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera pour le 1er objet importeacute dans Spipla valeur des attributs suivants
bull $attributs[first_objetSpip] = rubrique ou article ou bull $attributs[first_id_rubrique] ou $attributs[first_id_article] ou bull $attributs[id_rubrique] ou $attributs[id_article] ou
et retournera une valeur lsquovraiersquo si lrsquoimportation srsquoest bien passeacute En cas drsquoerreur la variable globale$errNouvelleFiche contiendra le message drsquoerreur
SPIP-XMLdoc 944
3 Principes de traitement des laquo Fiches XML raquo
31 Le type dune FICHE XMLOn peut ecirctre ameneacute agrave geacuterer plusieurs types de fiches par exemple fiche Document fiche Client ficheFournisseur hellipLe type dune fiche sera donneacute par lattribut TypeDocXml de la balise XML ltDocumentXMLgt
Par exemple Introduction de la fiche descriptive drsquoun client par ltDocumentXML TypeDocXML=FicheClientgt
Par exemple Introduction de la fiche descriptive drsquoun devis par ltDocumentXML TypeDocXML=DevisPiscinegt
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquoLe traitement drsquoune fiche XML sera controcircleacute par un laquo modegravele de fiche XML raquo et sera effectueacute par deslaquo parsers raquo XML
Un laquo modegravele de fiche XML raquo et les laquo parsers raquo associeacutes sont speacutecifiques agrave un type de fiche XML
A chaque type de fiche XML sera associeacute un couple de laquo parsers raquo XML chargeacutes de geacuteneacuterer le codeHTML neacutecessaire pour visualiser le contenu drsquoune fiche ou pour preacutesenter le formulaire de saisie modification de cette ficheChaque laquo parser raquo est composeacute drsquoun ensemble de proceacutedures prenant en charge les traitements agraveeffectuer sur chaque balise XML de la fiche Lors de son ouverture Sur son contenu Lors de sa fermeture
Chaque parser agrave utiliser est identifieacute par l lsquoattribut Handler de la balise XML ltDocumentXMLgt Dans la fiche cet attribut identifie le laquo parser raquo agrave utiliser pour traiter la valeur des diffeacuterents
champs de la fiche Dans le laquo modegravele de fiche XML raquo cet attribut identifie le laquo parser raquo agrave utiliser pour afficher la fiche
et le formulaire associeacute Regravegle de nommage Si le laquo parser raquo de la fiche XML est laquo xxx raquo celui de son modegravele doit ecirctre
laquo Modelexxx raquo
Le couple de parsers geacuteneacuteriques par deacutefaut est laquo Handler=FicheXML raquo pour la fiche laquo Handler=ModeleFicheXML raquo pour son modegravele
NB Les 2 laquo parsers raquo sont donc toujours utiliseacutes quel que soit le contexte
A chaque type de fiche XML sera associeacute un laquo modegravele de fiche XML raquo qui sera interpreacuteteacute par leparser Ce modegravele deacutecrit le code HTML agrave geacuteneacuterer ainsi que les eacuteventuels traitements agrave effectuer pourchaque balise XML de la fiche Dans le cas de lrsquoaffichage du contenu de la fiche le modegravele deacutecrit la mise en page de la fiche Dans le cas de la preacutesentation du formulaire de saisie ou de modification drsquoune fiche le mecircme modegravele
deacutecrit la mise en page du formulaire et les valeurs par deacutefaut des diffeacuterents champs Regravegle de nommage Si le type de la fiche XML est laquo yyy raquo celui de son modegravele doit ecirctre
laquo Modeleyyy raquo
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 244
Table des matiegraveres
1 Objectifs 3
2 Utilisation des laquo Fiches XML raquo 421 Inteacutegration agrave SPIP le filtre laquo processXML raquo 4
22 Utilisation du filtre laquo processXML raquo par lrsquoapplication 4
23 Les paramegravetres drsquoenvironnement du filtre laquo processXML raquo 5
24 Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip 7
3 Principes de traitement des laquo Fiches XML raquo 931 Le type dune FICHE XML 9
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquo 9
33 Le contenu dun modegravele de FICHE XML 10
34 Le traitement drsquoune FICHE XML les laquo parsers raquo 11
4 La distribution laquo SPIP ndash XML raquo 1341 Les composants 13
Les fichiers drsquoinstallation 13Les squelettes de lrsquoexemple laquo Devis raquo 13Le filtre laquo processXML raquo et le traitement des fiches XML 15
42 La mise en œuvre de lrsquoinstallation Installer les fichiers 19
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base 20
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo 21
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs25
Balise ltDocumentXMLgt 25
Balise ltCadregt 28
Balise ltTitregt 30
Balise ltnom_champgt 31
Annexe 2 - Exemple de FICHE XML complegravete Description drsquoun projet desolidariteacute 37
SPIP-XMLdoc 344
1 Objectifs
Le package deacutecrit ici srsquoadresse agrave ceux qui souhaitent utiliser SPIP ( httpwwwspipnet ) pour manipuler desobjets (fiches techniques par exemple) dont les attributs (ou champs) ne correspondent pas agrave ceux geacutereacutes parce systegraveme de publication titre sous-titre chapeau texte hellip
Lrsquoobjectif est alors de pouvoir conserver SPIP comme structure daccueil en associant un article ou unerubrique agrave chacun de ces objets
Ceci est possible en utilisant un codage XML de lrsquoobjet (ou plutocirct de ses attributs) cette repreacutesentation delrsquoobjet eacutetant stockeacutee dans le corps drsquoun article ou drsquoune rubrique SPIP qui lui sera associeacute
Le couple SPIP+XML est particuliegraverement performant puisquil allie dune part une gestion globale de lobjeten tant quarticle ou rubrique SPIP hieacuterarchie mots-cleacutes indexation forum hellip et dautre part une gestionapplicative de lobjet en tant quensemble de champs formulaire de saisie affichage et traitementspersonnaliseacutes
NB Pour faciliter la compreacutehension de la suite de ce document au lieu de parler dobjets ayant des attributs ouchamps nous parlerons de Fiches descriptives ou plus simplement de Fiches XML
SPIP-XMLdoc 444
2 Utilisation des laquo Fiches XML raquo
21 Inteacutegration agrave SPIP le filtre laquo processXML raquoLes fiches descriptives seront codeacutees en XML dans le champ laquo Texte raquo dun article ou dune rubrique SPIP enexploitant toutes les fonctionnaliteacutes offertes par SPIP pour classer acceacuteder et rechercher ces articles ourubriques
De plus agrave chaque type de fiche sera associeacute un modegravele qui deacutecrira agrave la fois laffichage et la saisie de chacunde ses champs
Dans la pratique toutes les balises SPIP pouvant avoir un contenu XML pourront ecirctre traiteacutees par le filtreprocessXML
Le traitement de mise en page normalement effectueacute par SPIP sera inhibeacute en faisant suivre le nom de la balisepar une asteacuterisque (cf documentation Spip laquoMise en page Manuel de reacutefeacuterenceraquo Court-circuiter letraitement par Spip)
NB Dans le cas ougrave la balise ne contiendrait pas de code XML la mise en page standard de SPIP (filtre propre) seraeffectueacutee par le filtre processXML
Par exemple Affichage du texte dun article ou drsquoune rubrique
[(TEXTE|processXML)]
Afin drsquoidentifier le traitement agrave effectuer sur le contenu XML drsquoune fiche ce dernier commencera par la baliseXML laquo ltDocumentXMLgt raquo deacutecrite plus loin
ltDocumentXML TypeDocXML=Type_de_fiche Handler=parsergt
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne de la fiche descriptive dun devis ltDocumentXML TypeDocXML=DevisPiscine Handler=FicheXMLgt
NB Si les donneacutees traiteacutees par le filtre processXML ne commencent pas par la balise ltDocumentXMLgt les donneacuteessont retourneacutees agrave SPIP inchangeacutees apregraves application du filtre Spip laquopropreraquo
22 Utilisation du filtre laquo processXML raquo par lrsquoapplication
Le code PHP laquoapplicatifraquo pourra appeler la fonction processXML() pour afficher un document XML contenudans une variable PHP (comme lors de lutilisation du filtre par Spip)
Par exemple $dataHTML = processXML($dataXML) echo $dataHTML
SPIP-XMLdoc 544
23 Les paramegravetres drsquoenvironnement du filtre laquo processXML raquo
Plusieurs variables globales sont utiliseacutees pour controcircler le traitement drsquoune laquo Fiche XML raquo
$xml_TypeFicheXML Le type de la fiche (au choix de lrsquoapplication) $xml_ObjetSpip Lrsquoobjet Spip qui contient ou contiendra la fiche ( =rsquoarticlersquo ou =rsquorubriquersquo ) $xml_ParamsObjetSpip Paramegravetres pour la creacuteation drsquoun nouvel objet Spip contenant la fiche saisie
Syntaxe des formulaires html - Si objet rsquorubriquersquo alors = rsquoid_secteur=xxxampid_rubrique=0rsquo- Si objet rsquoarticlersquo alors = rsquoid_secteur=xxxampid_rubrique=xxxampid_article=0rsquo
Ces variables sont normalement renseigneacutees par le filtre laquo processXML raquo
Exeacutecution du filtre par Spip
Lorsque Spip exeacutecute le filtre laquo processXML raquo ce dernier appelle la proceacutedure laquo setParamsXml() raquo quirenseigne ces variables globales en fonction du contexte en cours
Les variables $xml_ObjetSpip et $xml_ParamsObjetSpip seront renseigneacutees en exploitant le contexte Spip nom du squelette en cours drsquoexeacutecution id de lrsquoarticle ou de la rubrique en cours de traitement et paramegravetresassocieacuteshellip
Le laquo Type de Fiche XML raquo sera le mot-cleacute de lrsquoarticle ou de la rubrique en cours de traitement appartenantau groupe de mots-cleacutes laquo TypeFicheXML raquo
Le laquo Modegravele de Fiche XML raquo agrave traiter sera donneacute par lrsquoarticle Spip ayant le mot-cleacute laquo ModeleFicheXML raquo etayant son SURTITRE=rsquoModeleltType de Fiche XMLgtrsquo (par ex lsquoModeleFicheClientrsquo ou lsquoModeleDevisPiscinersquo)
Rappel Lrsquoarticle ou la rubrique contenant une laquo fiche XML raquo commence toujours par la balise XML ltDocumentXML TypeDocXML=Type_de_fiche XML hellipgt
Renseignement du lien vers la creacuteation drsquoune nouvelle fiche
La proceacutedure laquo setParamsXml($typeFicheXML $id_article_modele) raquo doit ecirctre appeleacutee pour obtenir lrsquourl dulien vers le formulaire de creacuteation drsquoune nouvelle ficheLes paramegravetres (optionnels) sont
$typeFicheXML Type de laquo Fiche XML raquoSi vide sera renseigneacute avec la valeur du mot-cleacute laquo TypeFicheXML raquo associeacute agravelrsquoobjet Spip en cours donneacute par $xml_ObjetSpip
$id_article_modele Id de lrsquoarticle Spip contenant le modegravele agrave traiterSi vide sera lrsquoid de lrsquoarticle de mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo etde laquo SURTITRE=rsquoModelelttype de fiche XMLgtrsquo raquo
$xml_ObjetSpip Objet Spip qui contiendra la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves le squelette encours (cf $PHP_SELF)
SPIP-XMLdoc 644
$xml_ParamsObjetSpip Paramegravetres agrave utiliser pour visualiser la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves la laquo FicheXML raquo en cours si elle existe
Lrsquoappel agrave laquo setParamsXml() raquo renseignera en retour la variable globale $lienNewFicheXML avec lrsquourl rechercheacute
Exemple de code affichant les liens de creacuteation de laquo Devis raquo dans le squelette laquo rubriquehtml raquohellip hellip hellip hellip hellip hellip hellip hellip helliplt mdashRechercher la rubrique agrave traiter ltBOUCLE_principale(RUBRIQUES)id_rubriquedoublonsgtlt php Meacutemoriser le ndeg de la rubrique agrave traiter container et son secteur NB On suppose qursquoelle contient des devishellip et on veut afficher les liens vers de nouveaux devis $id_rub = ID_RUBRIQUE $id_sect = ID_SECTEUR $fiches = array() $i = 0------------------------------------------------------ Rechercher les modegraveles de devis (type de fiche laquo DevisXXXX raquo) Conventions =gt Les modegraveles sont des articles de mot-cleacute laquo ModeleFicheXML raquo =gt Le type de modegravele est dans le surtitre et il est de la forme laquo ModeleDevisXXX raquo =gt Le texte agrave afficher pour le lien est dans le titre =gt Le code XML agrave traiter est dans le texte------------------------------------------------------gt ltBOUCLE_ModelesFiches(ARTICLES)titre_mot=ModeleFicheXMLgtlt php $modele = SURTITRE if ( strpos(_$modele _ModeleDevis)==1 ) $modele commence par lsquoModeleDevisrsquo $typeFiche = substr($modele strpos($modele Modele ) $typeFiche=rsquoDevisXXXXrsquo $fiches[$i][texte] = [(TITRE|texte_script)] Conserver le laquo titre raquo du modegravele
Renseigner les variables drsquoenvironnement pour laquo setparamsXML() raquo $xml_ObjetSpip = article Les devis seront dans des articles $xml_ParamsObjetSpip = id_rubrique=$id_rubampid_secteur=$id_sectampid_article=0 setParamsXML($typeFiche ID_ARTICLE) Renseigner le lien $lienNewFicheXML
Renseigner les liens pour la creacuteation de fiches $fiches[$i][lien] = $lienNewFicheXML $i++ Fin if ( strpos(_$modele _ModeleDevis)==1 )gt ltBOUCLE_ModelesFichesgthellip hellip hellip hellip hellip hellip hellip hellip hellipltphp foreach ($fiches as $fiche) Balayer les liens meacutemoriseacutes Afficher les liensgt ltA HREF=lt=$fiche[lien]gt gt lt=$fiche[texte]gt ltAgt ltBR gtltphp gthellip hellip hellip hellip hellip hellip hellip hellip hellip
SPIP-XMLdoc 744
24 Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip
Des modegraveles drsquoimportation respectant la syntaxe (xml aussi) des exportations de la base reacutealiseacutees par Spipsont utiliseacutes pour importer les objets Spip (rubrique article mots-cleacutes hellip) associeacutes agrave une laquo Fiche XML raquo
Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip ainsi que la sauvegarde de ses modifications sont reacutealiseacutees par laproceacutedure laquo importObjectIntoSpip($objetAppli $attributs $pathToImportDir) raquo appeleacutee avec lesparamegravetres suivants
$objetAppli Objet applicatif agrave creacuteer ou mettre agrave jour =gt Les modegraveles dimportation seront trouveacutes - via la variable globale $import_$objetAppli - ou dans le fichier $pathToImportDirimport_$objetAppli_StdxmlNB La variable globale $import_$objetAppli donnera la liste des fichiersimport_xxxxml du reacutepertoire $pathToImportDir qui devront ecirctre traiteacutes pourreacutealiser lrsquoimportation de lrsquoobjet applicatif
$attributs Tableau associatif contenant la valeur de chaque laquo champ raquo de la laquo Fiche XML raquo $attributs[ltchampgt] = ltvaleur champgtLes champs lsquoltchampgtrsquo preacutesents dans les modegraveles drsquoimportation seront remplaceacutespar $attributs[ltchampgt] avant de donner ce modegravele agrave traiter agrave la proceacutedure Spipdrsquoimportation (cf import_objet() )
$pathToImportDir Chemin relatif au site vers le reacutepertoire contenant les modegraveles drsquoimportationCe paramegravetre est optionnel si vide il sera renseigneacute avec la valeur du paramegravetrePathToImportModels de la table MySQL laquo spip_params_appli raquo Si ce dernierparamegravetre est vide alors $pathToImportDir = rsquoToolsModeles_importrsquo
NB La proceacutedure utilise aussi la variable globale laquo $userId raquo donnant lrsquoid de lrsquoauteur Spip identifieacute
Avant importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera la valeur des attributs suivants srsquoilsne sont pas deacutejagrave renseigneacutes
bull $attributs[Heure] = lthh mm ssgt 135723bull $attributs[DateJour] = ltaaaa-mm-jjgt 2002-01-15bull $attributs[Date] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateRedac] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateFr] = ltjjmmaaaagt 15012002bull $attributs[lsquoid_auteurrsquo] = $userId id de lrsquoauteur Spip identifieacutebull $attributs[idAuteurModif] = $userId si creacuteation drsquoune nouvelle fiche
et pour chaque mots-cleacutes laquo ltmotgt raquo existant bull $attributs[id_mot_ltmotgt ] = ltid du mot-cleacutegtbull $attributs[id_groupe_ltmotgt ] = ltid du groupe contenant le mot-cleacutegtbull $attributs[nom_groupe_ltmotgt ] = lttype du mot-cleacutegt
Pour effectuer lrsquoimportation la proceacutedure laquo importObjectIntoSpip() raquo remplacera dans chaque modegraveledrsquoimportation agrave traiter les chaicircnes lsquoxxxrsquo par la valeur de lrsquoattribut $attributs[lsquoxxxrsquo] puis appelera laproceacutedure Spip import_objet() avec ce modegravele en paramegravetre
SPIP-XMLdoc 844
Apregraves importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera pour le 1er objet importeacute dans Spipla valeur des attributs suivants
bull $attributs[first_objetSpip] = rubrique ou article ou bull $attributs[first_id_rubrique] ou $attributs[first_id_article] ou bull $attributs[id_rubrique] ou $attributs[id_article] ou
et retournera une valeur lsquovraiersquo si lrsquoimportation srsquoest bien passeacute En cas drsquoerreur la variable globale$errNouvelleFiche contiendra le message drsquoerreur
SPIP-XMLdoc 944
3 Principes de traitement des laquo Fiches XML raquo
31 Le type dune FICHE XMLOn peut ecirctre ameneacute agrave geacuterer plusieurs types de fiches par exemple fiche Document fiche Client ficheFournisseur hellipLe type dune fiche sera donneacute par lattribut TypeDocXml de la balise XML ltDocumentXMLgt
Par exemple Introduction de la fiche descriptive drsquoun client par ltDocumentXML TypeDocXML=FicheClientgt
Par exemple Introduction de la fiche descriptive drsquoun devis par ltDocumentXML TypeDocXML=DevisPiscinegt
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquoLe traitement drsquoune fiche XML sera controcircleacute par un laquo modegravele de fiche XML raquo et sera effectueacute par deslaquo parsers raquo XML
Un laquo modegravele de fiche XML raquo et les laquo parsers raquo associeacutes sont speacutecifiques agrave un type de fiche XML
A chaque type de fiche XML sera associeacute un couple de laquo parsers raquo XML chargeacutes de geacuteneacuterer le codeHTML neacutecessaire pour visualiser le contenu drsquoune fiche ou pour preacutesenter le formulaire de saisie modification de cette ficheChaque laquo parser raquo est composeacute drsquoun ensemble de proceacutedures prenant en charge les traitements agraveeffectuer sur chaque balise XML de la fiche Lors de son ouverture Sur son contenu Lors de sa fermeture
Chaque parser agrave utiliser est identifieacute par l lsquoattribut Handler de la balise XML ltDocumentXMLgt Dans la fiche cet attribut identifie le laquo parser raquo agrave utiliser pour traiter la valeur des diffeacuterents
champs de la fiche Dans le laquo modegravele de fiche XML raquo cet attribut identifie le laquo parser raquo agrave utiliser pour afficher la fiche
et le formulaire associeacute Regravegle de nommage Si le laquo parser raquo de la fiche XML est laquo xxx raquo celui de son modegravele doit ecirctre
laquo Modelexxx raquo
Le couple de parsers geacuteneacuteriques par deacutefaut est laquo Handler=FicheXML raquo pour la fiche laquo Handler=ModeleFicheXML raquo pour son modegravele
NB Les 2 laquo parsers raquo sont donc toujours utiliseacutes quel que soit le contexte
A chaque type de fiche XML sera associeacute un laquo modegravele de fiche XML raquo qui sera interpreacuteteacute par leparser Ce modegravele deacutecrit le code HTML agrave geacuteneacuterer ainsi que les eacuteventuels traitements agrave effectuer pourchaque balise XML de la fiche Dans le cas de lrsquoaffichage du contenu de la fiche le modegravele deacutecrit la mise en page de la fiche Dans le cas de la preacutesentation du formulaire de saisie ou de modification drsquoune fiche le mecircme modegravele
deacutecrit la mise en page du formulaire et les valeurs par deacutefaut des diffeacuterents champs Regravegle de nommage Si le type de la fiche XML est laquo yyy raquo celui de son modegravele doit ecirctre
laquo Modeleyyy raquo
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 344
1 Objectifs
Le package deacutecrit ici srsquoadresse agrave ceux qui souhaitent utiliser SPIP ( httpwwwspipnet ) pour manipuler desobjets (fiches techniques par exemple) dont les attributs (ou champs) ne correspondent pas agrave ceux geacutereacutes parce systegraveme de publication titre sous-titre chapeau texte hellip
Lrsquoobjectif est alors de pouvoir conserver SPIP comme structure daccueil en associant un article ou unerubrique agrave chacun de ces objets
Ceci est possible en utilisant un codage XML de lrsquoobjet (ou plutocirct de ses attributs) cette repreacutesentation delrsquoobjet eacutetant stockeacutee dans le corps drsquoun article ou drsquoune rubrique SPIP qui lui sera associeacute
Le couple SPIP+XML est particuliegraverement performant puisquil allie dune part une gestion globale de lobjeten tant quarticle ou rubrique SPIP hieacuterarchie mots-cleacutes indexation forum hellip et dautre part une gestionapplicative de lobjet en tant quensemble de champs formulaire de saisie affichage et traitementspersonnaliseacutes
NB Pour faciliter la compreacutehension de la suite de ce document au lieu de parler dobjets ayant des attributs ouchamps nous parlerons de Fiches descriptives ou plus simplement de Fiches XML
SPIP-XMLdoc 444
2 Utilisation des laquo Fiches XML raquo
21 Inteacutegration agrave SPIP le filtre laquo processXML raquoLes fiches descriptives seront codeacutees en XML dans le champ laquo Texte raquo dun article ou dune rubrique SPIP enexploitant toutes les fonctionnaliteacutes offertes par SPIP pour classer acceacuteder et rechercher ces articles ourubriques
De plus agrave chaque type de fiche sera associeacute un modegravele qui deacutecrira agrave la fois laffichage et la saisie de chacunde ses champs
Dans la pratique toutes les balises SPIP pouvant avoir un contenu XML pourront ecirctre traiteacutees par le filtreprocessXML
Le traitement de mise en page normalement effectueacute par SPIP sera inhibeacute en faisant suivre le nom de la balisepar une asteacuterisque (cf documentation Spip laquoMise en page Manuel de reacutefeacuterenceraquo Court-circuiter letraitement par Spip)
NB Dans le cas ougrave la balise ne contiendrait pas de code XML la mise en page standard de SPIP (filtre propre) seraeffectueacutee par le filtre processXML
Par exemple Affichage du texte dun article ou drsquoune rubrique
[(TEXTE|processXML)]
Afin drsquoidentifier le traitement agrave effectuer sur le contenu XML drsquoune fiche ce dernier commencera par la baliseXML laquo ltDocumentXMLgt raquo deacutecrite plus loin
ltDocumentXML TypeDocXML=Type_de_fiche Handler=parsergt
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne de la fiche descriptive dun devis ltDocumentXML TypeDocXML=DevisPiscine Handler=FicheXMLgt
NB Si les donneacutees traiteacutees par le filtre processXML ne commencent pas par la balise ltDocumentXMLgt les donneacuteessont retourneacutees agrave SPIP inchangeacutees apregraves application du filtre Spip laquopropreraquo
22 Utilisation du filtre laquo processXML raquo par lrsquoapplication
Le code PHP laquoapplicatifraquo pourra appeler la fonction processXML() pour afficher un document XML contenudans une variable PHP (comme lors de lutilisation du filtre par Spip)
Par exemple $dataHTML = processXML($dataXML) echo $dataHTML
SPIP-XMLdoc 544
23 Les paramegravetres drsquoenvironnement du filtre laquo processXML raquo
Plusieurs variables globales sont utiliseacutees pour controcircler le traitement drsquoune laquo Fiche XML raquo
$xml_TypeFicheXML Le type de la fiche (au choix de lrsquoapplication) $xml_ObjetSpip Lrsquoobjet Spip qui contient ou contiendra la fiche ( =rsquoarticlersquo ou =rsquorubriquersquo ) $xml_ParamsObjetSpip Paramegravetres pour la creacuteation drsquoun nouvel objet Spip contenant la fiche saisie
Syntaxe des formulaires html - Si objet rsquorubriquersquo alors = rsquoid_secteur=xxxampid_rubrique=0rsquo- Si objet rsquoarticlersquo alors = rsquoid_secteur=xxxampid_rubrique=xxxampid_article=0rsquo
Ces variables sont normalement renseigneacutees par le filtre laquo processXML raquo
Exeacutecution du filtre par Spip
Lorsque Spip exeacutecute le filtre laquo processXML raquo ce dernier appelle la proceacutedure laquo setParamsXml() raquo quirenseigne ces variables globales en fonction du contexte en cours
Les variables $xml_ObjetSpip et $xml_ParamsObjetSpip seront renseigneacutees en exploitant le contexte Spip nom du squelette en cours drsquoexeacutecution id de lrsquoarticle ou de la rubrique en cours de traitement et paramegravetresassocieacuteshellip
Le laquo Type de Fiche XML raquo sera le mot-cleacute de lrsquoarticle ou de la rubrique en cours de traitement appartenantau groupe de mots-cleacutes laquo TypeFicheXML raquo
Le laquo Modegravele de Fiche XML raquo agrave traiter sera donneacute par lrsquoarticle Spip ayant le mot-cleacute laquo ModeleFicheXML raquo etayant son SURTITRE=rsquoModeleltType de Fiche XMLgtrsquo (par ex lsquoModeleFicheClientrsquo ou lsquoModeleDevisPiscinersquo)
Rappel Lrsquoarticle ou la rubrique contenant une laquo fiche XML raquo commence toujours par la balise XML ltDocumentXML TypeDocXML=Type_de_fiche XML hellipgt
Renseignement du lien vers la creacuteation drsquoune nouvelle fiche
La proceacutedure laquo setParamsXml($typeFicheXML $id_article_modele) raquo doit ecirctre appeleacutee pour obtenir lrsquourl dulien vers le formulaire de creacuteation drsquoune nouvelle ficheLes paramegravetres (optionnels) sont
$typeFicheXML Type de laquo Fiche XML raquoSi vide sera renseigneacute avec la valeur du mot-cleacute laquo TypeFicheXML raquo associeacute agravelrsquoobjet Spip en cours donneacute par $xml_ObjetSpip
$id_article_modele Id de lrsquoarticle Spip contenant le modegravele agrave traiterSi vide sera lrsquoid de lrsquoarticle de mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo etde laquo SURTITRE=rsquoModelelttype de fiche XMLgtrsquo raquo
$xml_ObjetSpip Objet Spip qui contiendra la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves le squelette encours (cf $PHP_SELF)
SPIP-XMLdoc 644
$xml_ParamsObjetSpip Paramegravetres agrave utiliser pour visualiser la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves la laquo FicheXML raquo en cours si elle existe
Lrsquoappel agrave laquo setParamsXml() raquo renseignera en retour la variable globale $lienNewFicheXML avec lrsquourl rechercheacute
Exemple de code affichant les liens de creacuteation de laquo Devis raquo dans le squelette laquo rubriquehtml raquohellip hellip hellip hellip hellip hellip hellip hellip helliplt mdashRechercher la rubrique agrave traiter ltBOUCLE_principale(RUBRIQUES)id_rubriquedoublonsgtlt php Meacutemoriser le ndeg de la rubrique agrave traiter container et son secteur NB On suppose qursquoelle contient des devishellip et on veut afficher les liens vers de nouveaux devis $id_rub = ID_RUBRIQUE $id_sect = ID_SECTEUR $fiches = array() $i = 0------------------------------------------------------ Rechercher les modegraveles de devis (type de fiche laquo DevisXXXX raquo) Conventions =gt Les modegraveles sont des articles de mot-cleacute laquo ModeleFicheXML raquo =gt Le type de modegravele est dans le surtitre et il est de la forme laquo ModeleDevisXXX raquo =gt Le texte agrave afficher pour le lien est dans le titre =gt Le code XML agrave traiter est dans le texte------------------------------------------------------gt ltBOUCLE_ModelesFiches(ARTICLES)titre_mot=ModeleFicheXMLgtlt php $modele = SURTITRE if ( strpos(_$modele _ModeleDevis)==1 ) $modele commence par lsquoModeleDevisrsquo $typeFiche = substr($modele strpos($modele Modele ) $typeFiche=rsquoDevisXXXXrsquo $fiches[$i][texte] = [(TITRE|texte_script)] Conserver le laquo titre raquo du modegravele
Renseigner les variables drsquoenvironnement pour laquo setparamsXML() raquo $xml_ObjetSpip = article Les devis seront dans des articles $xml_ParamsObjetSpip = id_rubrique=$id_rubampid_secteur=$id_sectampid_article=0 setParamsXML($typeFiche ID_ARTICLE) Renseigner le lien $lienNewFicheXML
Renseigner les liens pour la creacuteation de fiches $fiches[$i][lien] = $lienNewFicheXML $i++ Fin if ( strpos(_$modele _ModeleDevis)==1 )gt ltBOUCLE_ModelesFichesgthellip hellip hellip hellip hellip hellip hellip hellip hellipltphp foreach ($fiches as $fiche) Balayer les liens meacutemoriseacutes Afficher les liensgt ltA HREF=lt=$fiche[lien]gt gt lt=$fiche[texte]gt ltAgt ltBR gtltphp gthellip hellip hellip hellip hellip hellip hellip hellip hellip
SPIP-XMLdoc 744
24 Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip
Des modegraveles drsquoimportation respectant la syntaxe (xml aussi) des exportations de la base reacutealiseacutees par Spipsont utiliseacutes pour importer les objets Spip (rubrique article mots-cleacutes hellip) associeacutes agrave une laquo Fiche XML raquo
Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip ainsi que la sauvegarde de ses modifications sont reacutealiseacutees par laproceacutedure laquo importObjectIntoSpip($objetAppli $attributs $pathToImportDir) raquo appeleacutee avec lesparamegravetres suivants
$objetAppli Objet applicatif agrave creacuteer ou mettre agrave jour =gt Les modegraveles dimportation seront trouveacutes - via la variable globale $import_$objetAppli - ou dans le fichier $pathToImportDirimport_$objetAppli_StdxmlNB La variable globale $import_$objetAppli donnera la liste des fichiersimport_xxxxml du reacutepertoire $pathToImportDir qui devront ecirctre traiteacutes pourreacutealiser lrsquoimportation de lrsquoobjet applicatif
$attributs Tableau associatif contenant la valeur de chaque laquo champ raquo de la laquo Fiche XML raquo $attributs[ltchampgt] = ltvaleur champgtLes champs lsquoltchampgtrsquo preacutesents dans les modegraveles drsquoimportation seront remplaceacutespar $attributs[ltchampgt] avant de donner ce modegravele agrave traiter agrave la proceacutedure Spipdrsquoimportation (cf import_objet() )
$pathToImportDir Chemin relatif au site vers le reacutepertoire contenant les modegraveles drsquoimportationCe paramegravetre est optionnel si vide il sera renseigneacute avec la valeur du paramegravetrePathToImportModels de la table MySQL laquo spip_params_appli raquo Si ce dernierparamegravetre est vide alors $pathToImportDir = rsquoToolsModeles_importrsquo
NB La proceacutedure utilise aussi la variable globale laquo $userId raquo donnant lrsquoid de lrsquoauteur Spip identifieacute
Avant importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera la valeur des attributs suivants srsquoilsne sont pas deacutejagrave renseigneacutes
bull $attributs[Heure] = lthh mm ssgt 135723bull $attributs[DateJour] = ltaaaa-mm-jjgt 2002-01-15bull $attributs[Date] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateRedac] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateFr] = ltjjmmaaaagt 15012002bull $attributs[lsquoid_auteurrsquo] = $userId id de lrsquoauteur Spip identifieacutebull $attributs[idAuteurModif] = $userId si creacuteation drsquoune nouvelle fiche
et pour chaque mots-cleacutes laquo ltmotgt raquo existant bull $attributs[id_mot_ltmotgt ] = ltid du mot-cleacutegtbull $attributs[id_groupe_ltmotgt ] = ltid du groupe contenant le mot-cleacutegtbull $attributs[nom_groupe_ltmotgt ] = lttype du mot-cleacutegt
Pour effectuer lrsquoimportation la proceacutedure laquo importObjectIntoSpip() raquo remplacera dans chaque modegraveledrsquoimportation agrave traiter les chaicircnes lsquoxxxrsquo par la valeur de lrsquoattribut $attributs[lsquoxxxrsquo] puis appelera laproceacutedure Spip import_objet() avec ce modegravele en paramegravetre
SPIP-XMLdoc 844
Apregraves importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera pour le 1er objet importeacute dans Spipla valeur des attributs suivants
bull $attributs[first_objetSpip] = rubrique ou article ou bull $attributs[first_id_rubrique] ou $attributs[first_id_article] ou bull $attributs[id_rubrique] ou $attributs[id_article] ou
et retournera une valeur lsquovraiersquo si lrsquoimportation srsquoest bien passeacute En cas drsquoerreur la variable globale$errNouvelleFiche contiendra le message drsquoerreur
SPIP-XMLdoc 944
3 Principes de traitement des laquo Fiches XML raquo
31 Le type dune FICHE XMLOn peut ecirctre ameneacute agrave geacuterer plusieurs types de fiches par exemple fiche Document fiche Client ficheFournisseur hellipLe type dune fiche sera donneacute par lattribut TypeDocXml de la balise XML ltDocumentXMLgt
Par exemple Introduction de la fiche descriptive drsquoun client par ltDocumentXML TypeDocXML=FicheClientgt
Par exemple Introduction de la fiche descriptive drsquoun devis par ltDocumentXML TypeDocXML=DevisPiscinegt
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquoLe traitement drsquoune fiche XML sera controcircleacute par un laquo modegravele de fiche XML raquo et sera effectueacute par deslaquo parsers raquo XML
Un laquo modegravele de fiche XML raquo et les laquo parsers raquo associeacutes sont speacutecifiques agrave un type de fiche XML
A chaque type de fiche XML sera associeacute un couple de laquo parsers raquo XML chargeacutes de geacuteneacuterer le codeHTML neacutecessaire pour visualiser le contenu drsquoune fiche ou pour preacutesenter le formulaire de saisie modification de cette ficheChaque laquo parser raquo est composeacute drsquoun ensemble de proceacutedures prenant en charge les traitements agraveeffectuer sur chaque balise XML de la fiche Lors de son ouverture Sur son contenu Lors de sa fermeture
Chaque parser agrave utiliser est identifieacute par l lsquoattribut Handler de la balise XML ltDocumentXMLgt Dans la fiche cet attribut identifie le laquo parser raquo agrave utiliser pour traiter la valeur des diffeacuterents
champs de la fiche Dans le laquo modegravele de fiche XML raquo cet attribut identifie le laquo parser raquo agrave utiliser pour afficher la fiche
et le formulaire associeacute Regravegle de nommage Si le laquo parser raquo de la fiche XML est laquo xxx raquo celui de son modegravele doit ecirctre
laquo Modelexxx raquo
Le couple de parsers geacuteneacuteriques par deacutefaut est laquo Handler=FicheXML raquo pour la fiche laquo Handler=ModeleFicheXML raquo pour son modegravele
NB Les 2 laquo parsers raquo sont donc toujours utiliseacutes quel que soit le contexte
A chaque type de fiche XML sera associeacute un laquo modegravele de fiche XML raquo qui sera interpreacuteteacute par leparser Ce modegravele deacutecrit le code HTML agrave geacuteneacuterer ainsi que les eacuteventuels traitements agrave effectuer pourchaque balise XML de la fiche Dans le cas de lrsquoaffichage du contenu de la fiche le modegravele deacutecrit la mise en page de la fiche Dans le cas de la preacutesentation du formulaire de saisie ou de modification drsquoune fiche le mecircme modegravele
deacutecrit la mise en page du formulaire et les valeurs par deacutefaut des diffeacuterents champs Regravegle de nommage Si le type de la fiche XML est laquo yyy raquo celui de son modegravele doit ecirctre
laquo Modeleyyy raquo
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 444
2 Utilisation des laquo Fiches XML raquo
21 Inteacutegration agrave SPIP le filtre laquo processXML raquoLes fiches descriptives seront codeacutees en XML dans le champ laquo Texte raquo dun article ou dune rubrique SPIP enexploitant toutes les fonctionnaliteacutes offertes par SPIP pour classer acceacuteder et rechercher ces articles ourubriques
De plus agrave chaque type de fiche sera associeacute un modegravele qui deacutecrira agrave la fois laffichage et la saisie de chacunde ses champs
Dans la pratique toutes les balises SPIP pouvant avoir un contenu XML pourront ecirctre traiteacutees par le filtreprocessXML
Le traitement de mise en page normalement effectueacute par SPIP sera inhibeacute en faisant suivre le nom de la balisepar une asteacuterisque (cf documentation Spip laquoMise en page Manuel de reacutefeacuterenceraquo Court-circuiter letraitement par Spip)
NB Dans le cas ougrave la balise ne contiendrait pas de code XML la mise en page standard de SPIP (filtre propre) seraeffectueacutee par le filtre processXML
Par exemple Affichage du texte dun article ou drsquoune rubrique
[(TEXTE|processXML)]
Afin drsquoidentifier le traitement agrave effectuer sur le contenu XML drsquoune fiche ce dernier commencera par la baliseXML laquo ltDocumentXMLgt raquo deacutecrite plus loin
ltDocumentXML TypeDocXML=Type_de_fiche Handler=parsergt
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne de la fiche descriptive dun devis ltDocumentXML TypeDocXML=DevisPiscine Handler=FicheXMLgt
NB Si les donneacutees traiteacutees par le filtre processXML ne commencent pas par la balise ltDocumentXMLgt les donneacuteessont retourneacutees agrave SPIP inchangeacutees apregraves application du filtre Spip laquopropreraquo
22 Utilisation du filtre laquo processXML raquo par lrsquoapplication
Le code PHP laquoapplicatifraquo pourra appeler la fonction processXML() pour afficher un document XML contenudans une variable PHP (comme lors de lutilisation du filtre par Spip)
Par exemple $dataHTML = processXML($dataXML) echo $dataHTML
SPIP-XMLdoc 544
23 Les paramegravetres drsquoenvironnement du filtre laquo processXML raquo
Plusieurs variables globales sont utiliseacutees pour controcircler le traitement drsquoune laquo Fiche XML raquo
$xml_TypeFicheXML Le type de la fiche (au choix de lrsquoapplication) $xml_ObjetSpip Lrsquoobjet Spip qui contient ou contiendra la fiche ( =rsquoarticlersquo ou =rsquorubriquersquo ) $xml_ParamsObjetSpip Paramegravetres pour la creacuteation drsquoun nouvel objet Spip contenant la fiche saisie
Syntaxe des formulaires html - Si objet rsquorubriquersquo alors = rsquoid_secteur=xxxampid_rubrique=0rsquo- Si objet rsquoarticlersquo alors = rsquoid_secteur=xxxampid_rubrique=xxxampid_article=0rsquo
Ces variables sont normalement renseigneacutees par le filtre laquo processXML raquo
Exeacutecution du filtre par Spip
Lorsque Spip exeacutecute le filtre laquo processXML raquo ce dernier appelle la proceacutedure laquo setParamsXml() raquo quirenseigne ces variables globales en fonction du contexte en cours
Les variables $xml_ObjetSpip et $xml_ParamsObjetSpip seront renseigneacutees en exploitant le contexte Spip nom du squelette en cours drsquoexeacutecution id de lrsquoarticle ou de la rubrique en cours de traitement et paramegravetresassocieacuteshellip
Le laquo Type de Fiche XML raquo sera le mot-cleacute de lrsquoarticle ou de la rubrique en cours de traitement appartenantau groupe de mots-cleacutes laquo TypeFicheXML raquo
Le laquo Modegravele de Fiche XML raquo agrave traiter sera donneacute par lrsquoarticle Spip ayant le mot-cleacute laquo ModeleFicheXML raquo etayant son SURTITRE=rsquoModeleltType de Fiche XMLgtrsquo (par ex lsquoModeleFicheClientrsquo ou lsquoModeleDevisPiscinersquo)
Rappel Lrsquoarticle ou la rubrique contenant une laquo fiche XML raquo commence toujours par la balise XML ltDocumentXML TypeDocXML=Type_de_fiche XML hellipgt
Renseignement du lien vers la creacuteation drsquoune nouvelle fiche
La proceacutedure laquo setParamsXml($typeFicheXML $id_article_modele) raquo doit ecirctre appeleacutee pour obtenir lrsquourl dulien vers le formulaire de creacuteation drsquoune nouvelle ficheLes paramegravetres (optionnels) sont
$typeFicheXML Type de laquo Fiche XML raquoSi vide sera renseigneacute avec la valeur du mot-cleacute laquo TypeFicheXML raquo associeacute agravelrsquoobjet Spip en cours donneacute par $xml_ObjetSpip
$id_article_modele Id de lrsquoarticle Spip contenant le modegravele agrave traiterSi vide sera lrsquoid de lrsquoarticle de mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo etde laquo SURTITRE=rsquoModelelttype de fiche XMLgtrsquo raquo
$xml_ObjetSpip Objet Spip qui contiendra la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves le squelette encours (cf $PHP_SELF)
SPIP-XMLdoc 644
$xml_ParamsObjetSpip Paramegravetres agrave utiliser pour visualiser la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves la laquo FicheXML raquo en cours si elle existe
Lrsquoappel agrave laquo setParamsXml() raquo renseignera en retour la variable globale $lienNewFicheXML avec lrsquourl rechercheacute
Exemple de code affichant les liens de creacuteation de laquo Devis raquo dans le squelette laquo rubriquehtml raquohellip hellip hellip hellip hellip hellip hellip hellip helliplt mdashRechercher la rubrique agrave traiter ltBOUCLE_principale(RUBRIQUES)id_rubriquedoublonsgtlt php Meacutemoriser le ndeg de la rubrique agrave traiter container et son secteur NB On suppose qursquoelle contient des devishellip et on veut afficher les liens vers de nouveaux devis $id_rub = ID_RUBRIQUE $id_sect = ID_SECTEUR $fiches = array() $i = 0------------------------------------------------------ Rechercher les modegraveles de devis (type de fiche laquo DevisXXXX raquo) Conventions =gt Les modegraveles sont des articles de mot-cleacute laquo ModeleFicheXML raquo =gt Le type de modegravele est dans le surtitre et il est de la forme laquo ModeleDevisXXX raquo =gt Le texte agrave afficher pour le lien est dans le titre =gt Le code XML agrave traiter est dans le texte------------------------------------------------------gt ltBOUCLE_ModelesFiches(ARTICLES)titre_mot=ModeleFicheXMLgtlt php $modele = SURTITRE if ( strpos(_$modele _ModeleDevis)==1 ) $modele commence par lsquoModeleDevisrsquo $typeFiche = substr($modele strpos($modele Modele ) $typeFiche=rsquoDevisXXXXrsquo $fiches[$i][texte] = [(TITRE|texte_script)] Conserver le laquo titre raquo du modegravele
Renseigner les variables drsquoenvironnement pour laquo setparamsXML() raquo $xml_ObjetSpip = article Les devis seront dans des articles $xml_ParamsObjetSpip = id_rubrique=$id_rubampid_secteur=$id_sectampid_article=0 setParamsXML($typeFiche ID_ARTICLE) Renseigner le lien $lienNewFicheXML
Renseigner les liens pour la creacuteation de fiches $fiches[$i][lien] = $lienNewFicheXML $i++ Fin if ( strpos(_$modele _ModeleDevis)==1 )gt ltBOUCLE_ModelesFichesgthellip hellip hellip hellip hellip hellip hellip hellip hellipltphp foreach ($fiches as $fiche) Balayer les liens meacutemoriseacutes Afficher les liensgt ltA HREF=lt=$fiche[lien]gt gt lt=$fiche[texte]gt ltAgt ltBR gtltphp gthellip hellip hellip hellip hellip hellip hellip hellip hellip
SPIP-XMLdoc 744
24 Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip
Des modegraveles drsquoimportation respectant la syntaxe (xml aussi) des exportations de la base reacutealiseacutees par Spipsont utiliseacutes pour importer les objets Spip (rubrique article mots-cleacutes hellip) associeacutes agrave une laquo Fiche XML raquo
Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip ainsi que la sauvegarde de ses modifications sont reacutealiseacutees par laproceacutedure laquo importObjectIntoSpip($objetAppli $attributs $pathToImportDir) raquo appeleacutee avec lesparamegravetres suivants
$objetAppli Objet applicatif agrave creacuteer ou mettre agrave jour =gt Les modegraveles dimportation seront trouveacutes - via la variable globale $import_$objetAppli - ou dans le fichier $pathToImportDirimport_$objetAppli_StdxmlNB La variable globale $import_$objetAppli donnera la liste des fichiersimport_xxxxml du reacutepertoire $pathToImportDir qui devront ecirctre traiteacutes pourreacutealiser lrsquoimportation de lrsquoobjet applicatif
$attributs Tableau associatif contenant la valeur de chaque laquo champ raquo de la laquo Fiche XML raquo $attributs[ltchampgt] = ltvaleur champgtLes champs lsquoltchampgtrsquo preacutesents dans les modegraveles drsquoimportation seront remplaceacutespar $attributs[ltchampgt] avant de donner ce modegravele agrave traiter agrave la proceacutedure Spipdrsquoimportation (cf import_objet() )
$pathToImportDir Chemin relatif au site vers le reacutepertoire contenant les modegraveles drsquoimportationCe paramegravetre est optionnel si vide il sera renseigneacute avec la valeur du paramegravetrePathToImportModels de la table MySQL laquo spip_params_appli raquo Si ce dernierparamegravetre est vide alors $pathToImportDir = rsquoToolsModeles_importrsquo
NB La proceacutedure utilise aussi la variable globale laquo $userId raquo donnant lrsquoid de lrsquoauteur Spip identifieacute
Avant importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera la valeur des attributs suivants srsquoilsne sont pas deacutejagrave renseigneacutes
bull $attributs[Heure] = lthh mm ssgt 135723bull $attributs[DateJour] = ltaaaa-mm-jjgt 2002-01-15bull $attributs[Date] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateRedac] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateFr] = ltjjmmaaaagt 15012002bull $attributs[lsquoid_auteurrsquo] = $userId id de lrsquoauteur Spip identifieacutebull $attributs[idAuteurModif] = $userId si creacuteation drsquoune nouvelle fiche
et pour chaque mots-cleacutes laquo ltmotgt raquo existant bull $attributs[id_mot_ltmotgt ] = ltid du mot-cleacutegtbull $attributs[id_groupe_ltmotgt ] = ltid du groupe contenant le mot-cleacutegtbull $attributs[nom_groupe_ltmotgt ] = lttype du mot-cleacutegt
Pour effectuer lrsquoimportation la proceacutedure laquo importObjectIntoSpip() raquo remplacera dans chaque modegraveledrsquoimportation agrave traiter les chaicircnes lsquoxxxrsquo par la valeur de lrsquoattribut $attributs[lsquoxxxrsquo] puis appelera laproceacutedure Spip import_objet() avec ce modegravele en paramegravetre
SPIP-XMLdoc 844
Apregraves importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera pour le 1er objet importeacute dans Spipla valeur des attributs suivants
bull $attributs[first_objetSpip] = rubrique ou article ou bull $attributs[first_id_rubrique] ou $attributs[first_id_article] ou bull $attributs[id_rubrique] ou $attributs[id_article] ou
et retournera une valeur lsquovraiersquo si lrsquoimportation srsquoest bien passeacute En cas drsquoerreur la variable globale$errNouvelleFiche contiendra le message drsquoerreur
SPIP-XMLdoc 944
3 Principes de traitement des laquo Fiches XML raquo
31 Le type dune FICHE XMLOn peut ecirctre ameneacute agrave geacuterer plusieurs types de fiches par exemple fiche Document fiche Client ficheFournisseur hellipLe type dune fiche sera donneacute par lattribut TypeDocXml de la balise XML ltDocumentXMLgt
Par exemple Introduction de la fiche descriptive drsquoun client par ltDocumentXML TypeDocXML=FicheClientgt
Par exemple Introduction de la fiche descriptive drsquoun devis par ltDocumentXML TypeDocXML=DevisPiscinegt
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquoLe traitement drsquoune fiche XML sera controcircleacute par un laquo modegravele de fiche XML raquo et sera effectueacute par deslaquo parsers raquo XML
Un laquo modegravele de fiche XML raquo et les laquo parsers raquo associeacutes sont speacutecifiques agrave un type de fiche XML
A chaque type de fiche XML sera associeacute un couple de laquo parsers raquo XML chargeacutes de geacuteneacuterer le codeHTML neacutecessaire pour visualiser le contenu drsquoune fiche ou pour preacutesenter le formulaire de saisie modification de cette ficheChaque laquo parser raquo est composeacute drsquoun ensemble de proceacutedures prenant en charge les traitements agraveeffectuer sur chaque balise XML de la fiche Lors de son ouverture Sur son contenu Lors de sa fermeture
Chaque parser agrave utiliser est identifieacute par l lsquoattribut Handler de la balise XML ltDocumentXMLgt Dans la fiche cet attribut identifie le laquo parser raquo agrave utiliser pour traiter la valeur des diffeacuterents
champs de la fiche Dans le laquo modegravele de fiche XML raquo cet attribut identifie le laquo parser raquo agrave utiliser pour afficher la fiche
et le formulaire associeacute Regravegle de nommage Si le laquo parser raquo de la fiche XML est laquo xxx raquo celui de son modegravele doit ecirctre
laquo Modelexxx raquo
Le couple de parsers geacuteneacuteriques par deacutefaut est laquo Handler=FicheXML raquo pour la fiche laquo Handler=ModeleFicheXML raquo pour son modegravele
NB Les 2 laquo parsers raquo sont donc toujours utiliseacutes quel que soit le contexte
A chaque type de fiche XML sera associeacute un laquo modegravele de fiche XML raquo qui sera interpreacuteteacute par leparser Ce modegravele deacutecrit le code HTML agrave geacuteneacuterer ainsi que les eacuteventuels traitements agrave effectuer pourchaque balise XML de la fiche Dans le cas de lrsquoaffichage du contenu de la fiche le modegravele deacutecrit la mise en page de la fiche Dans le cas de la preacutesentation du formulaire de saisie ou de modification drsquoune fiche le mecircme modegravele
deacutecrit la mise en page du formulaire et les valeurs par deacutefaut des diffeacuterents champs Regravegle de nommage Si le type de la fiche XML est laquo yyy raquo celui de son modegravele doit ecirctre
laquo Modeleyyy raquo
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 544
23 Les paramegravetres drsquoenvironnement du filtre laquo processXML raquo
Plusieurs variables globales sont utiliseacutees pour controcircler le traitement drsquoune laquo Fiche XML raquo
$xml_TypeFicheXML Le type de la fiche (au choix de lrsquoapplication) $xml_ObjetSpip Lrsquoobjet Spip qui contient ou contiendra la fiche ( =rsquoarticlersquo ou =rsquorubriquersquo ) $xml_ParamsObjetSpip Paramegravetres pour la creacuteation drsquoun nouvel objet Spip contenant la fiche saisie
Syntaxe des formulaires html - Si objet rsquorubriquersquo alors = rsquoid_secteur=xxxampid_rubrique=0rsquo- Si objet rsquoarticlersquo alors = rsquoid_secteur=xxxampid_rubrique=xxxampid_article=0rsquo
Ces variables sont normalement renseigneacutees par le filtre laquo processXML raquo
Exeacutecution du filtre par Spip
Lorsque Spip exeacutecute le filtre laquo processXML raquo ce dernier appelle la proceacutedure laquo setParamsXml() raquo quirenseigne ces variables globales en fonction du contexte en cours
Les variables $xml_ObjetSpip et $xml_ParamsObjetSpip seront renseigneacutees en exploitant le contexte Spip nom du squelette en cours drsquoexeacutecution id de lrsquoarticle ou de la rubrique en cours de traitement et paramegravetresassocieacuteshellip
Le laquo Type de Fiche XML raquo sera le mot-cleacute de lrsquoarticle ou de la rubrique en cours de traitement appartenantau groupe de mots-cleacutes laquo TypeFicheXML raquo
Le laquo Modegravele de Fiche XML raquo agrave traiter sera donneacute par lrsquoarticle Spip ayant le mot-cleacute laquo ModeleFicheXML raquo etayant son SURTITRE=rsquoModeleltType de Fiche XMLgtrsquo (par ex lsquoModeleFicheClientrsquo ou lsquoModeleDevisPiscinersquo)
Rappel Lrsquoarticle ou la rubrique contenant une laquo fiche XML raquo commence toujours par la balise XML ltDocumentXML TypeDocXML=Type_de_fiche XML hellipgt
Renseignement du lien vers la creacuteation drsquoune nouvelle fiche
La proceacutedure laquo setParamsXml($typeFicheXML $id_article_modele) raquo doit ecirctre appeleacutee pour obtenir lrsquourl dulien vers le formulaire de creacuteation drsquoune nouvelle ficheLes paramegravetres (optionnels) sont
$typeFicheXML Type de laquo Fiche XML raquoSi vide sera renseigneacute avec la valeur du mot-cleacute laquo TypeFicheXML raquo associeacute agravelrsquoobjet Spip en cours donneacute par $xml_ObjetSpip
$id_article_modele Id de lrsquoarticle Spip contenant le modegravele agrave traiterSi vide sera lrsquoid de lrsquoarticle de mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo etde laquo SURTITRE=rsquoModelelttype de fiche XMLgtrsquo raquo
$xml_ObjetSpip Objet Spip qui contiendra la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves le squelette encours (cf $PHP_SELF)
SPIP-XMLdoc 644
$xml_ParamsObjetSpip Paramegravetres agrave utiliser pour visualiser la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves la laquo FicheXML raquo en cours si elle existe
Lrsquoappel agrave laquo setParamsXml() raquo renseignera en retour la variable globale $lienNewFicheXML avec lrsquourl rechercheacute
Exemple de code affichant les liens de creacuteation de laquo Devis raquo dans le squelette laquo rubriquehtml raquohellip hellip hellip hellip hellip hellip hellip hellip helliplt mdashRechercher la rubrique agrave traiter ltBOUCLE_principale(RUBRIQUES)id_rubriquedoublonsgtlt php Meacutemoriser le ndeg de la rubrique agrave traiter container et son secteur NB On suppose qursquoelle contient des devishellip et on veut afficher les liens vers de nouveaux devis $id_rub = ID_RUBRIQUE $id_sect = ID_SECTEUR $fiches = array() $i = 0------------------------------------------------------ Rechercher les modegraveles de devis (type de fiche laquo DevisXXXX raquo) Conventions =gt Les modegraveles sont des articles de mot-cleacute laquo ModeleFicheXML raquo =gt Le type de modegravele est dans le surtitre et il est de la forme laquo ModeleDevisXXX raquo =gt Le texte agrave afficher pour le lien est dans le titre =gt Le code XML agrave traiter est dans le texte------------------------------------------------------gt ltBOUCLE_ModelesFiches(ARTICLES)titre_mot=ModeleFicheXMLgtlt php $modele = SURTITRE if ( strpos(_$modele _ModeleDevis)==1 ) $modele commence par lsquoModeleDevisrsquo $typeFiche = substr($modele strpos($modele Modele ) $typeFiche=rsquoDevisXXXXrsquo $fiches[$i][texte] = [(TITRE|texte_script)] Conserver le laquo titre raquo du modegravele
Renseigner les variables drsquoenvironnement pour laquo setparamsXML() raquo $xml_ObjetSpip = article Les devis seront dans des articles $xml_ParamsObjetSpip = id_rubrique=$id_rubampid_secteur=$id_sectampid_article=0 setParamsXML($typeFiche ID_ARTICLE) Renseigner le lien $lienNewFicheXML
Renseigner les liens pour la creacuteation de fiches $fiches[$i][lien] = $lienNewFicheXML $i++ Fin if ( strpos(_$modele _ModeleDevis)==1 )gt ltBOUCLE_ModelesFichesgthellip hellip hellip hellip hellip hellip hellip hellip hellipltphp foreach ($fiches as $fiche) Balayer les liens meacutemoriseacutes Afficher les liensgt ltA HREF=lt=$fiche[lien]gt gt lt=$fiche[texte]gt ltAgt ltBR gtltphp gthellip hellip hellip hellip hellip hellip hellip hellip hellip
SPIP-XMLdoc 744
24 Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip
Des modegraveles drsquoimportation respectant la syntaxe (xml aussi) des exportations de la base reacutealiseacutees par Spipsont utiliseacutes pour importer les objets Spip (rubrique article mots-cleacutes hellip) associeacutes agrave une laquo Fiche XML raquo
Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip ainsi que la sauvegarde de ses modifications sont reacutealiseacutees par laproceacutedure laquo importObjectIntoSpip($objetAppli $attributs $pathToImportDir) raquo appeleacutee avec lesparamegravetres suivants
$objetAppli Objet applicatif agrave creacuteer ou mettre agrave jour =gt Les modegraveles dimportation seront trouveacutes - via la variable globale $import_$objetAppli - ou dans le fichier $pathToImportDirimport_$objetAppli_StdxmlNB La variable globale $import_$objetAppli donnera la liste des fichiersimport_xxxxml du reacutepertoire $pathToImportDir qui devront ecirctre traiteacutes pourreacutealiser lrsquoimportation de lrsquoobjet applicatif
$attributs Tableau associatif contenant la valeur de chaque laquo champ raquo de la laquo Fiche XML raquo $attributs[ltchampgt] = ltvaleur champgtLes champs lsquoltchampgtrsquo preacutesents dans les modegraveles drsquoimportation seront remplaceacutespar $attributs[ltchampgt] avant de donner ce modegravele agrave traiter agrave la proceacutedure Spipdrsquoimportation (cf import_objet() )
$pathToImportDir Chemin relatif au site vers le reacutepertoire contenant les modegraveles drsquoimportationCe paramegravetre est optionnel si vide il sera renseigneacute avec la valeur du paramegravetrePathToImportModels de la table MySQL laquo spip_params_appli raquo Si ce dernierparamegravetre est vide alors $pathToImportDir = rsquoToolsModeles_importrsquo
NB La proceacutedure utilise aussi la variable globale laquo $userId raquo donnant lrsquoid de lrsquoauteur Spip identifieacute
Avant importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera la valeur des attributs suivants srsquoilsne sont pas deacutejagrave renseigneacutes
bull $attributs[Heure] = lthh mm ssgt 135723bull $attributs[DateJour] = ltaaaa-mm-jjgt 2002-01-15bull $attributs[Date] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateRedac] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateFr] = ltjjmmaaaagt 15012002bull $attributs[lsquoid_auteurrsquo] = $userId id de lrsquoauteur Spip identifieacutebull $attributs[idAuteurModif] = $userId si creacuteation drsquoune nouvelle fiche
et pour chaque mots-cleacutes laquo ltmotgt raquo existant bull $attributs[id_mot_ltmotgt ] = ltid du mot-cleacutegtbull $attributs[id_groupe_ltmotgt ] = ltid du groupe contenant le mot-cleacutegtbull $attributs[nom_groupe_ltmotgt ] = lttype du mot-cleacutegt
Pour effectuer lrsquoimportation la proceacutedure laquo importObjectIntoSpip() raquo remplacera dans chaque modegraveledrsquoimportation agrave traiter les chaicircnes lsquoxxxrsquo par la valeur de lrsquoattribut $attributs[lsquoxxxrsquo] puis appelera laproceacutedure Spip import_objet() avec ce modegravele en paramegravetre
SPIP-XMLdoc 844
Apregraves importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera pour le 1er objet importeacute dans Spipla valeur des attributs suivants
bull $attributs[first_objetSpip] = rubrique ou article ou bull $attributs[first_id_rubrique] ou $attributs[first_id_article] ou bull $attributs[id_rubrique] ou $attributs[id_article] ou
et retournera une valeur lsquovraiersquo si lrsquoimportation srsquoest bien passeacute En cas drsquoerreur la variable globale$errNouvelleFiche contiendra le message drsquoerreur
SPIP-XMLdoc 944
3 Principes de traitement des laquo Fiches XML raquo
31 Le type dune FICHE XMLOn peut ecirctre ameneacute agrave geacuterer plusieurs types de fiches par exemple fiche Document fiche Client ficheFournisseur hellipLe type dune fiche sera donneacute par lattribut TypeDocXml de la balise XML ltDocumentXMLgt
Par exemple Introduction de la fiche descriptive drsquoun client par ltDocumentXML TypeDocXML=FicheClientgt
Par exemple Introduction de la fiche descriptive drsquoun devis par ltDocumentXML TypeDocXML=DevisPiscinegt
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquoLe traitement drsquoune fiche XML sera controcircleacute par un laquo modegravele de fiche XML raquo et sera effectueacute par deslaquo parsers raquo XML
Un laquo modegravele de fiche XML raquo et les laquo parsers raquo associeacutes sont speacutecifiques agrave un type de fiche XML
A chaque type de fiche XML sera associeacute un couple de laquo parsers raquo XML chargeacutes de geacuteneacuterer le codeHTML neacutecessaire pour visualiser le contenu drsquoune fiche ou pour preacutesenter le formulaire de saisie modification de cette ficheChaque laquo parser raquo est composeacute drsquoun ensemble de proceacutedures prenant en charge les traitements agraveeffectuer sur chaque balise XML de la fiche Lors de son ouverture Sur son contenu Lors de sa fermeture
Chaque parser agrave utiliser est identifieacute par l lsquoattribut Handler de la balise XML ltDocumentXMLgt Dans la fiche cet attribut identifie le laquo parser raquo agrave utiliser pour traiter la valeur des diffeacuterents
champs de la fiche Dans le laquo modegravele de fiche XML raquo cet attribut identifie le laquo parser raquo agrave utiliser pour afficher la fiche
et le formulaire associeacute Regravegle de nommage Si le laquo parser raquo de la fiche XML est laquo xxx raquo celui de son modegravele doit ecirctre
laquo Modelexxx raquo
Le couple de parsers geacuteneacuteriques par deacutefaut est laquo Handler=FicheXML raquo pour la fiche laquo Handler=ModeleFicheXML raquo pour son modegravele
NB Les 2 laquo parsers raquo sont donc toujours utiliseacutes quel que soit le contexte
A chaque type de fiche XML sera associeacute un laquo modegravele de fiche XML raquo qui sera interpreacuteteacute par leparser Ce modegravele deacutecrit le code HTML agrave geacuteneacuterer ainsi que les eacuteventuels traitements agrave effectuer pourchaque balise XML de la fiche Dans le cas de lrsquoaffichage du contenu de la fiche le modegravele deacutecrit la mise en page de la fiche Dans le cas de la preacutesentation du formulaire de saisie ou de modification drsquoune fiche le mecircme modegravele
deacutecrit la mise en page du formulaire et les valeurs par deacutefaut des diffeacuterents champs Regravegle de nommage Si le type de la fiche XML est laquo yyy raquo celui de son modegravele doit ecirctre
laquo Modeleyyy raquo
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 644
$xml_ParamsObjetSpip Paramegravetres agrave utiliser pour visualiser la future ficheSi cette variable globale est vide elle sera renseigneacutee drsquoapregraves la laquo FicheXML raquo en cours si elle existe
Lrsquoappel agrave laquo setParamsXml() raquo renseignera en retour la variable globale $lienNewFicheXML avec lrsquourl rechercheacute
Exemple de code affichant les liens de creacuteation de laquo Devis raquo dans le squelette laquo rubriquehtml raquohellip hellip hellip hellip hellip hellip hellip hellip helliplt mdashRechercher la rubrique agrave traiter ltBOUCLE_principale(RUBRIQUES)id_rubriquedoublonsgtlt php Meacutemoriser le ndeg de la rubrique agrave traiter container et son secteur NB On suppose qursquoelle contient des devishellip et on veut afficher les liens vers de nouveaux devis $id_rub = ID_RUBRIQUE $id_sect = ID_SECTEUR $fiches = array() $i = 0------------------------------------------------------ Rechercher les modegraveles de devis (type de fiche laquo DevisXXXX raquo) Conventions =gt Les modegraveles sont des articles de mot-cleacute laquo ModeleFicheXML raquo =gt Le type de modegravele est dans le surtitre et il est de la forme laquo ModeleDevisXXX raquo =gt Le texte agrave afficher pour le lien est dans le titre =gt Le code XML agrave traiter est dans le texte------------------------------------------------------gt ltBOUCLE_ModelesFiches(ARTICLES)titre_mot=ModeleFicheXMLgtlt php $modele = SURTITRE if ( strpos(_$modele _ModeleDevis)==1 ) $modele commence par lsquoModeleDevisrsquo $typeFiche = substr($modele strpos($modele Modele ) $typeFiche=rsquoDevisXXXXrsquo $fiches[$i][texte] = [(TITRE|texte_script)] Conserver le laquo titre raquo du modegravele
Renseigner les variables drsquoenvironnement pour laquo setparamsXML() raquo $xml_ObjetSpip = article Les devis seront dans des articles $xml_ParamsObjetSpip = id_rubrique=$id_rubampid_secteur=$id_sectampid_article=0 setParamsXML($typeFiche ID_ARTICLE) Renseigner le lien $lienNewFicheXML
Renseigner les liens pour la creacuteation de fiches $fiches[$i][lien] = $lienNewFicheXML $i++ Fin if ( strpos(_$modele _ModeleDevis)==1 )gt ltBOUCLE_ModelesFichesgthellip hellip hellip hellip hellip hellip hellip hellip hellipltphp foreach ($fiches as $fiche) Balayer les liens meacutemoriseacutes Afficher les liensgt ltA HREF=lt=$fiche[lien]gt gt lt=$fiche[texte]gt ltAgt ltBR gtltphp gthellip hellip hellip hellip hellip hellip hellip hellip hellip
SPIP-XMLdoc 744
24 Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip
Des modegraveles drsquoimportation respectant la syntaxe (xml aussi) des exportations de la base reacutealiseacutees par Spipsont utiliseacutes pour importer les objets Spip (rubrique article mots-cleacutes hellip) associeacutes agrave une laquo Fiche XML raquo
Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip ainsi que la sauvegarde de ses modifications sont reacutealiseacutees par laproceacutedure laquo importObjectIntoSpip($objetAppli $attributs $pathToImportDir) raquo appeleacutee avec lesparamegravetres suivants
$objetAppli Objet applicatif agrave creacuteer ou mettre agrave jour =gt Les modegraveles dimportation seront trouveacutes - via la variable globale $import_$objetAppli - ou dans le fichier $pathToImportDirimport_$objetAppli_StdxmlNB La variable globale $import_$objetAppli donnera la liste des fichiersimport_xxxxml du reacutepertoire $pathToImportDir qui devront ecirctre traiteacutes pourreacutealiser lrsquoimportation de lrsquoobjet applicatif
$attributs Tableau associatif contenant la valeur de chaque laquo champ raquo de la laquo Fiche XML raquo $attributs[ltchampgt] = ltvaleur champgtLes champs lsquoltchampgtrsquo preacutesents dans les modegraveles drsquoimportation seront remplaceacutespar $attributs[ltchampgt] avant de donner ce modegravele agrave traiter agrave la proceacutedure Spipdrsquoimportation (cf import_objet() )
$pathToImportDir Chemin relatif au site vers le reacutepertoire contenant les modegraveles drsquoimportationCe paramegravetre est optionnel si vide il sera renseigneacute avec la valeur du paramegravetrePathToImportModels de la table MySQL laquo spip_params_appli raquo Si ce dernierparamegravetre est vide alors $pathToImportDir = rsquoToolsModeles_importrsquo
NB La proceacutedure utilise aussi la variable globale laquo $userId raquo donnant lrsquoid de lrsquoauteur Spip identifieacute
Avant importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera la valeur des attributs suivants srsquoilsne sont pas deacutejagrave renseigneacutes
bull $attributs[Heure] = lthh mm ssgt 135723bull $attributs[DateJour] = ltaaaa-mm-jjgt 2002-01-15bull $attributs[Date] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateRedac] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateFr] = ltjjmmaaaagt 15012002bull $attributs[lsquoid_auteurrsquo] = $userId id de lrsquoauteur Spip identifieacutebull $attributs[idAuteurModif] = $userId si creacuteation drsquoune nouvelle fiche
et pour chaque mots-cleacutes laquo ltmotgt raquo existant bull $attributs[id_mot_ltmotgt ] = ltid du mot-cleacutegtbull $attributs[id_groupe_ltmotgt ] = ltid du groupe contenant le mot-cleacutegtbull $attributs[nom_groupe_ltmotgt ] = lttype du mot-cleacutegt
Pour effectuer lrsquoimportation la proceacutedure laquo importObjectIntoSpip() raquo remplacera dans chaque modegraveledrsquoimportation agrave traiter les chaicircnes lsquoxxxrsquo par la valeur de lrsquoattribut $attributs[lsquoxxxrsquo] puis appelera laproceacutedure Spip import_objet() avec ce modegravele en paramegravetre
SPIP-XMLdoc 844
Apregraves importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera pour le 1er objet importeacute dans Spipla valeur des attributs suivants
bull $attributs[first_objetSpip] = rubrique ou article ou bull $attributs[first_id_rubrique] ou $attributs[first_id_article] ou bull $attributs[id_rubrique] ou $attributs[id_article] ou
et retournera une valeur lsquovraiersquo si lrsquoimportation srsquoest bien passeacute En cas drsquoerreur la variable globale$errNouvelleFiche contiendra le message drsquoerreur
SPIP-XMLdoc 944
3 Principes de traitement des laquo Fiches XML raquo
31 Le type dune FICHE XMLOn peut ecirctre ameneacute agrave geacuterer plusieurs types de fiches par exemple fiche Document fiche Client ficheFournisseur hellipLe type dune fiche sera donneacute par lattribut TypeDocXml de la balise XML ltDocumentXMLgt
Par exemple Introduction de la fiche descriptive drsquoun client par ltDocumentXML TypeDocXML=FicheClientgt
Par exemple Introduction de la fiche descriptive drsquoun devis par ltDocumentXML TypeDocXML=DevisPiscinegt
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquoLe traitement drsquoune fiche XML sera controcircleacute par un laquo modegravele de fiche XML raquo et sera effectueacute par deslaquo parsers raquo XML
Un laquo modegravele de fiche XML raquo et les laquo parsers raquo associeacutes sont speacutecifiques agrave un type de fiche XML
A chaque type de fiche XML sera associeacute un couple de laquo parsers raquo XML chargeacutes de geacuteneacuterer le codeHTML neacutecessaire pour visualiser le contenu drsquoune fiche ou pour preacutesenter le formulaire de saisie modification de cette ficheChaque laquo parser raquo est composeacute drsquoun ensemble de proceacutedures prenant en charge les traitements agraveeffectuer sur chaque balise XML de la fiche Lors de son ouverture Sur son contenu Lors de sa fermeture
Chaque parser agrave utiliser est identifieacute par l lsquoattribut Handler de la balise XML ltDocumentXMLgt Dans la fiche cet attribut identifie le laquo parser raquo agrave utiliser pour traiter la valeur des diffeacuterents
champs de la fiche Dans le laquo modegravele de fiche XML raquo cet attribut identifie le laquo parser raquo agrave utiliser pour afficher la fiche
et le formulaire associeacute Regravegle de nommage Si le laquo parser raquo de la fiche XML est laquo xxx raquo celui de son modegravele doit ecirctre
laquo Modelexxx raquo
Le couple de parsers geacuteneacuteriques par deacutefaut est laquo Handler=FicheXML raquo pour la fiche laquo Handler=ModeleFicheXML raquo pour son modegravele
NB Les 2 laquo parsers raquo sont donc toujours utiliseacutes quel que soit le contexte
A chaque type de fiche XML sera associeacute un laquo modegravele de fiche XML raquo qui sera interpreacuteteacute par leparser Ce modegravele deacutecrit le code HTML agrave geacuteneacuterer ainsi que les eacuteventuels traitements agrave effectuer pourchaque balise XML de la fiche Dans le cas de lrsquoaffichage du contenu de la fiche le modegravele deacutecrit la mise en page de la fiche Dans le cas de la preacutesentation du formulaire de saisie ou de modification drsquoune fiche le mecircme modegravele
deacutecrit la mise en page du formulaire et les valeurs par deacutefaut des diffeacuterents champs Regravegle de nommage Si le type de la fiche XML est laquo yyy raquo celui de son modegravele doit ecirctre
laquo Modeleyyy raquo
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 744
24 Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip
Des modegraveles drsquoimportation respectant la syntaxe (xml aussi) des exportations de la base reacutealiseacutees par Spipsont utiliseacutes pour importer les objets Spip (rubrique article mots-cleacutes hellip) associeacutes agrave une laquo Fiche XML raquo
Lrsquoimportation drsquoune laquo Fiche XML raquo dans Spip ainsi que la sauvegarde de ses modifications sont reacutealiseacutees par laproceacutedure laquo importObjectIntoSpip($objetAppli $attributs $pathToImportDir) raquo appeleacutee avec lesparamegravetres suivants
$objetAppli Objet applicatif agrave creacuteer ou mettre agrave jour =gt Les modegraveles dimportation seront trouveacutes - via la variable globale $import_$objetAppli - ou dans le fichier $pathToImportDirimport_$objetAppli_StdxmlNB La variable globale $import_$objetAppli donnera la liste des fichiersimport_xxxxml du reacutepertoire $pathToImportDir qui devront ecirctre traiteacutes pourreacutealiser lrsquoimportation de lrsquoobjet applicatif
$attributs Tableau associatif contenant la valeur de chaque laquo champ raquo de la laquo Fiche XML raquo $attributs[ltchampgt] = ltvaleur champgtLes champs lsquoltchampgtrsquo preacutesents dans les modegraveles drsquoimportation seront remplaceacutespar $attributs[ltchampgt] avant de donner ce modegravele agrave traiter agrave la proceacutedure Spipdrsquoimportation (cf import_objet() )
$pathToImportDir Chemin relatif au site vers le reacutepertoire contenant les modegraveles drsquoimportationCe paramegravetre est optionnel si vide il sera renseigneacute avec la valeur du paramegravetrePathToImportModels de la table MySQL laquo spip_params_appli raquo Si ce dernierparamegravetre est vide alors $pathToImportDir = rsquoToolsModeles_importrsquo
NB La proceacutedure utilise aussi la variable globale laquo $userId raquo donnant lrsquoid de lrsquoauteur Spip identifieacute
Avant importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera la valeur des attributs suivants srsquoilsne sont pas deacutejagrave renseigneacutes
bull $attributs[Heure] = lthh mm ssgt 135723bull $attributs[DateJour] = ltaaaa-mm-jjgt 2002-01-15bull $attributs[Date] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateRedac] = ltaaaa-mm-jjgt lthh mm ssgtbull $attributs[DateFr] = ltjjmmaaaagt 15012002bull $attributs[lsquoid_auteurrsquo] = $userId id de lrsquoauteur Spip identifieacutebull $attributs[idAuteurModif] = $userId si creacuteation drsquoune nouvelle fiche
et pour chaque mots-cleacutes laquo ltmotgt raquo existant bull $attributs[id_mot_ltmotgt ] = ltid du mot-cleacutegtbull $attributs[id_groupe_ltmotgt ] = ltid du groupe contenant le mot-cleacutegtbull $attributs[nom_groupe_ltmotgt ] = lttype du mot-cleacutegt
Pour effectuer lrsquoimportation la proceacutedure laquo importObjectIntoSpip() raquo remplacera dans chaque modegraveledrsquoimportation agrave traiter les chaicircnes lsquoxxxrsquo par la valeur de lrsquoattribut $attributs[lsquoxxxrsquo] puis appelera laproceacutedure Spip import_objet() avec ce modegravele en paramegravetre
SPIP-XMLdoc 844
Apregraves importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera pour le 1er objet importeacute dans Spipla valeur des attributs suivants
bull $attributs[first_objetSpip] = rubrique ou article ou bull $attributs[first_id_rubrique] ou $attributs[first_id_article] ou bull $attributs[id_rubrique] ou $attributs[id_article] ou
et retournera une valeur lsquovraiersquo si lrsquoimportation srsquoest bien passeacute En cas drsquoerreur la variable globale$errNouvelleFiche contiendra le message drsquoerreur
SPIP-XMLdoc 944
3 Principes de traitement des laquo Fiches XML raquo
31 Le type dune FICHE XMLOn peut ecirctre ameneacute agrave geacuterer plusieurs types de fiches par exemple fiche Document fiche Client ficheFournisseur hellipLe type dune fiche sera donneacute par lattribut TypeDocXml de la balise XML ltDocumentXMLgt
Par exemple Introduction de la fiche descriptive drsquoun client par ltDocumentXML TypeDocXML=FicheClientgt
Par exemple Introduction de la fiche descriptive drsquoun devis par ltDocumentXML TypeDocXML=DevisPiscinegt
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquoLe traitement drsquoune fiche XML sera controcircleacute par un laquo modegravele de fiche XML raquo et sera effectueacute par deslaquo parsers raquo XML
Un laquo modegravele de fiche XML raquo et les laquo parsers raquo associeacutes sont speacutecifiques agrave un type de fiche XML
A chaque type de fiche XML sera associeacute un couple de laquo parsers raquo XML chargeacutes de geacuteneacuterer le codeHTML neacutecessaire pour visualiser le contenu drsquoune fiche ou pour preacutesenter le formulaire de saisie modification de cette ficheChaque laquo parser raquo est composeacute drsquoun ensemble de proceacutedures prenant en charge les traitements agraveeffectuer sur chaque balise XML de la fiche Lors de son ouverture Sur son contenu Lors de sa fermeture
Chaque parser agrave utiliser est identifieacute par l lsquoattribut Handler de la balise XML ltDocumentXMLgt Dans la fiche cet attribut identifie le laquo parser raquo agrave utiliser pour traiter la valeur des diffeacuterents
champs de la fiche Dans le laquo modegravele de fiche XML raquo cet attribut identifie le laquo parser raquo agrave utiliser pour afficher la fiche
et le formulaire associeacute Regravegle de nommage Si le laquo parser raquo de la fiche XML est laquo xxx raquo celui de son modegravele doit ecirctre
laquo Modelexxx raquo
Le couple de parsers geacuteneacuteriques par deacutefaut est laquo Handler=FicheXML raquo pour la fiche laquo Handler=ModeleFicheXML raquo pour son modegravele
NB Les 2 laquo parsers raquo sont donc toujours utiliseacutes quel que soit le contexte
A chaque type de fiche XML sera associeacute un laquo modegravele de fiche XML raquo qui sera interpreacuteteacute par leparser Ce modegravele deacutecrit le code HTML agrave geacuteneacuterer ainsi que les eacuteventuels traitements agrave effectuer pourchaque balise XML de la fiche Dans le cas de lrsquoaffichage du contenu de la fiche le modegravele deacutecrit la mise en page de la fiche Dans le cas de la preacutesentation du formulaire de saisie ou de modification drsquoune fiche le mecircme modegravele
deacutecrit la mise en page du formulaire et les valeurs par deacutefaut des diffeacuterents champs Regravegle de nommage Si le type de la fiche XML est laquo yyy raquo celui de son modegravele doit ecirctre
laquo Modeleyyy raquo
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 844
Apregraves importation la proceacutedure laquo importObjectIntoSpip() raquo renseignera pour le 1er objet importeacute dans Spipla valeur des attributs suivants
bull $attributs[first_objetSpip] = rubrique ou article ou bull $attributs[first_id_rubrique] ou $attributs[first_id_article] ou bull $attributs[id_rubrique] ou $attributs[id_article] ou
et retournera une valeur lsquovraiersquo si lrsquoimportation srsquoest bien passeacute En cas drsquoerreur la variable globale$errNouvelleFiche contiendra le message drsquoerreur
SPIP-XMLdoc 944
3 Principes de traitement des laquo Fiches XML raquo
31 Le type dune FICHE XMLOn peut ecirctre ameneacute agrave geacuterer plusieurs types de fiches par exemple fiche Document fiche Client ficheFournisseur hellipLe type dune fiche sera donneacute par lattribut TypeDocXml de la balise XML ltDocumentXMLgt
Par exemple Introduction de la fiche descriptive drsquoun client par ltDocumentXML TypeDocXML=FicheClientgt
Par exemple Introduction de la fiche descriptive drsquoun devis par ltDocumentXML TypeDocXML=DevisPiscinegt
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquoLe traitement drsquoune fiche XML sera controcircleacute par un laquo modegravele de fiche XML raquo et sera effectueacute par deslaquo parsers raquo XML
Un laquo modegravele de fiche XML raquo et les laquo parsers raquo associeacutes sont speacutecifiques agrave un type de fiche XML
A chaque type de fiche XML sera associeacute un couple de laquo parsers raquo XML chargeacutes de geacuteneacuterer le codeHTML neacutecessaire pour visualiser le contenu drsquoune fiche ou pour preacutesenter le formulaire de saisie modification de cette ficheChaque laquo parser raquo est composeacute drsquoun ensemble de proceacutedures prenant en charge les traitements agraveeffectuer sur chaque balise XML de la fiche Lors de son ouverture Sur son contenu Lors de sa fermeture
Chaque parser agrave utiliser est identifieacute par l lsquoattribut Handler de la balise XML ltDocumentXMLgt Dans la fiche cet attribut identifie le laquo parser raquo agrave utiliser pour traiter la valeur des diffeacuterents
champs de la fiche Dans le laquo modegravele de fiche XML raquo cet attribut identifie le laquo parser raquo agrave utiliser pour afficher la fiche
et le formulaire associeacute Regravegle de nommage Si le laquo parser raquo de la fiche XML est laquo xxx raquo celui de son modegravele doit ecirctre
laquo Modelexxx raquo
Le couple de parsers geacuteneacuteriques par deacutefaut est laquo Handler=FicheXML raquo pour la fiche laquo Handler=ModeleFicheXML raquo pour son modegravele
NB Les 2 laquo parsers raquo sont donc toujours utiliseacutes quel que soit le contexte
A chaque type de fiche XML sera associeacute un laquo modegravele de fiche XML raquo qui sera interpreacuteteacute par leparser Ce modegravele deacutecrit le code HTML agrave geacuteneacuterer ainsi que les eacuteventuels traitements agrave effectuer pourchaque balise XML de la fiche Dans le cas de lrsquoaffichage du contenu de la fiche le modegravele deacutecrit la mise en page de la fiche Dans le cas de la preacutesentation du formulaire de saisie ou de modification drsquoune fiche le mecircme modegravele
deacutecrit la mise en page du formulaire et les valeurs par deacutefaut des diffeacuterents champs Regravegle de nommage Si le type de la fiche XML est laquo yyy raquo celui de son modegravele doit ecirctre
laquo Modeleyyy raquo
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 944
3 Principes de traitement des laquo Fiches XML raquo
31 Le type dune FICHE XMLOn peut ecirctre ameneacute agrave geacuterer plusieurs types de fiches par exemple fiche Document fiche Client ficheFournisseur hellipLe type dune fiche sera donneacute par lattribut TypeDocXml de la balise XML ltDocumentXMLgt
Par exemple Introduction de la fiche descriptive drsquoun client par ltDocumentXML TypeDocXML=FicheClientgt
Par exemple Introduction de la fiche descriptive drsquoun devis par ltDocumentXML TypeDocXML=DevisPiscinegt
32 Le traitement drsquoune FICHE XML Modegravele et laquo parsers raquoLe traitement drsquoune fiche XML sera controcircleacute par un laquo modegravele de fiche XML raquo et sera effectueacute par deslaquo parsers raquo XML
Un laquo modegravele de fiche XML raquo et les laquo parsers raquo associeacutes sont speacutecifiques agrave un type de fiche XML
A chaque type de fiche XML sera associeacute un couple de laquo parsers raquo XML chargeacutes de geacuteneacuterer le codeHTML neacutecessaire pour visualiser le contenu drsquoune fiche ou pour preacutesenter le formulaire de saisie modification de cette ficheChaque laquo parser raquo est composeacute drsquoun ensemble de proceacutedures prenant en charge les traitements agraveeffectuer sur chaque balise XML de la fiche Lors de son ouverture Sur son contenu Lors de sa fermeture
Chaque parser agrave utiliser est identifieacute par l lsquoattribut Handler de la balise XML ltDocumentXMLgt Dans la fiche cet attribut identifie le laquo parser raquo agrave utiliser pour traiter la valeur des diffeacuterents
champs de la fiche Dans le laquo modegravele de fiche XML raquo cet attribut identifie le laquo parser raquo agrave utiliser pour afficher la fiche
et le formulaire associeacute Regravegle de nommage Si le laquo parser raquo de la fiche XML est laquo xxx raquo celui de son modegravele doit ecirctre
laquo Modelexxx raquo
Le couple de parsers geacuteneacuteriques par deacutefaut est laquo Handler=FicheXML raquo pour la fiche laquo Handler=ModeleFicheXML raquo pour son modegravele
NB Les 2 laquo parsers raquo sont donc toujours utiliseacutes quel que soit le contexte
A chaque type de fiche XML sera associeacute un laquo modegravele de fiche XML raquo qui sera interpreacuteteacute par leparser Ce modegravele deacutecrit le code HTML agrave geacuteneacuterer ainsi que les eacuteventuels traitements agrave effectuer pourchaque balise XML de la fiche Dans le cas de lrsquoaffichage du contenu de la fiche le modegravele deacutecrit la mise en page de la fiche Dans le cas de la preacutesentation du formulaire de saisie ou de modification drsquoune fiche le mecircme modegravele
deacutecrit la mise en page du formulaire et les valeurs par deacutefaut des diffeacuterents champs Regravegle de nommage Si le type de la fiche XML est laquo yyy raquo celui de son modegravele doit ecirctre
laquo Modeleyyy raquo
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1044
Par exemple Premiegravere ligne de la fiche descriptive dun utilisateur
ltDocumentXML TypeDocXML=FicheUser Handler=FicheXMLgt
Premiegravere ligne du modegravele associeacute ltDocumentXML TypeDocXML=ModeleFicheUser Handler=ModeleFicheXMLgt
33 Le contenu dun modegravele de FICHE XMLUn modegravele de fiche XML va deacutecrire chaque champ (attribut) de la fiche La description devra donner lesinformations neacutecessaires tant agrave laffichage du champ quagrave sa saisie dans un formulaire
Un modegravele de fiche XML aura la structure suivante (la description complegravete de tous les attributs possibles estdonneacutee en annexe)
NB Dans la description ci-dessous les balises XML et leurs attributs sont en gras les attributs en gras sont choisis par le deacuteveloppeur dans une liste imposeacutee les mots en italique ou en gras-italique sont choisis librement par le deacuteveloppeur seuls ont eacuteteacute mentionneacutes les principaux attributs associeacutes aux diffeacuterentes valeurs de lrsquoattribut laquo TypeInput raquo
ltDocumentXML TypeDocXML=Fichegt
ltCadre Titre=titre du groupe de champs gt
ltnomChampDeTypeTexte Label= texteDsFormulaire InputOblig= TypeInput=TexteCmt =cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextegt
ltnomChampDeTypeTextArea Label= texteDsFormulaire InputOblig= TypeInput=TextAreaNbLignes=nbLignesBoite Cmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeTextAreagt
ltTitre Titre=titre sans cadre associeacute gt
ltnomChampDeTypeSelect Label=texteDsFormulaire InputOblig= TypeInput=SelectTable=spip_table ChpValOption=champTable champTable champTable ChpTxtOption=champTable Test1=critegravereCmt=cmtDsFormulaire
gt Valeur par deacutefaut du champltnomChampDeTypeSelectgt
ltCadregt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1144
34 Le traitement drsquoune FICHE XML les laquo parsers raquoLe traitement drsquoun document XML fait appel au parser XML fourni par PHP Ce parser est principalementcomposeacute de proceacutedures appeleacutees lors du parcours du document pour chaque entreacutee contenu et fin de baliserencontreacutes
Le traitement drsquoune laquo fiche XML raquo est reacutealiseacute par 2 laquo parsers raquo dont les proceacutedures permettront de geacuteneacuterer lecode neacutecessaire agrave lrsquoaffichage de la fiche ou du formulaire associeacute
NB Pour plus drsquoinformation sur lrsquoutilisation du parser et des proceacutedures associeacutees voir la documentation PHP
Les 2 laquo parsers raquo associeacutes au type de fiche Primetype_de_fichePrime sont donneacutes par les fichiers laquo DocXML_type_de_fichephp raquoet laquo DocXML_Modeletype_de_fichephp raquo
Chacun de ces fichiers contient la deacutefinition des proceacutedures de traitement appeleacutees lors de lrsquoanalyse de lalaquo fiche XML raquo
laquo DocXML_type_de_fichephp raquo fournit les proceacutedures bull type_de_fiche_startElementHandler() Ouverture drsquoune balise XMLbull type_de_fiche_characterDataHandler() Contenu drsquoune balise XMLbull type_de_fiche_endElementHandler() Fermeture drsquoune balise XML
laquo DocXML_Modeletype_de_fichephp raquo fournit les proceacutedures bull Modeletype_de_fiche_startElementHandler()bull Modeletype_de_fiche_characterDataHandler()bull Modeletype_de_fiche_endElementHandler()
Pour ecirctre exact le filtre laquo processXML raquo fournit agrave un laquo parser raquo commun agrave tout document XML ses propresproceacutedures de traitement des balises XML Ce sont ces proceacutedures communes qui vont appeler les proceacuteduresspeacutecifiques associeacutees au type de fiche traiteacutee
Lors de lrsquoanalyse drsquoune laquo fiche XML raquo le fonctionnement du filtre laquo processXML raquo est le suivant
bull La balise ltDocumentXMLgt est rechercheacutee au deacutebut du texte agrave traiterSi elle nrsquoest pas trouveacutee on applique le filtre laquo propre raquo au texte et on retourne le reacutesultat
bull Un parser PHP est initialiseacute et activeacute sur le texte agrave traiter (proceacutedures communes)
bull La 1egravere balise ouvrante rencontreacutee (ltDocumentXMLgt) est soumise agrave la proceacutedure communelaquo startElementHandler raquo qui analyse ses attributs (TypeDocXML et Handler) et les transmet aux autresproceacutedures communes laquo characterDataHandler raquo et laquo endElementHandler raquo par la suite tout appel agrave lrsquounedes proceacutedures commune sera relayeacutee agrave la proceacutedure speacutecifique du handler speacutecifieacute
bull Dans le cas du traitement drsquoun laquo modegravele de fiche XML raquo chaque balise rencontreacutee est traiteacutee par lesproceacutedures speacutecifiques au type de fiche Le code HTML adeacutequat est geacuteneacutereacute et les valeurs par deacutefaut desbalises sont sauvegardeacutees
bull Dans le cas du traitement drsquoune laquo fiche XML raquo
La 1egravere balise ouvrante (ltDocumentXMLgt) est traiteacutee par la proceacutedure speacutecifiquelaquo type_de_fiche_startElementHandler raquo qui va drsquoabord reacute-activer le filtre laquo processXML raquo sur lemodegravele associeacute (appel reacute-entrant du filtre avec un 2egraveme paramegravetre laquo type_de_fiche raquo)
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1244
Le modegravele agrave traiter sera alors rechercheacute drsquoabord dans le fichier laquo ToolsModeles_fichesXMLmodeletype_de_fichexml raquopuis si ce fichier nrsquoexiste pas dans le texte de lrsquoarticle Spip ayant les caracteacuteristiques suivantes
bull laquo Surtitre=rsquoModeletype_de_fichersquo raquobull Mot-cleacute laquo TypeArticle=rsquoModeleFicheXMLrsquo raquo
Toutes les balises du modegravele sont alors traiteacutees par le laquo parser raquo associeacute tel que deacutecrit ci-dessus (1er
cas Traitement drsquoun laquo modegravele de fiche XML raquo)
Le modegravele ayant eacuteteacute traiteacute la proceacutedure laquo type_de_fiche_startElementHandler raquo termine sonttraitement et lrsquoanalyse de la fiche se poursuit (les valeurs de chaque balise sont sauvegardeacutees)
Lorsque la balise fermante ltDocumentXMLgt marquant la fin de la fiche est traiteacutee par la proceacutedurelaquo type_de_fiche_endElementHandler raquo les valeurs des balises de la fiche sont renseigneacutees dans lecode geacuteneacutereacute par le traitement du modegravele puis ce dernier est retourneacute agrave lrsquoappelant du filtre
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1344
4 La distribution laquo SPIP ndash XML raquo
41 Les composantsLa distribution est composeacutee de la preacutesente documentation lsquoSPIP-XMLpdfrsquo et drsquoune archive lsquoSpip-XMLziprsquodont les fichiers doivent ecirctre extraits dans le reacutepertoire contenant le site sous Spip
Les fichiers livreacutes (et leurs reacutepertoires) peuvent ecirctre regroupeacutes en 3 familles bull Les fichiers drsquoinstallation (voir leur utilisation dans le chapitre laquo Mise en œuvre raquo)bull Les squelettes utiliseacutes dans lrsquoexemple drsquoapplication laquo Devis raquobull Le filtre laquo processXML raquo et les proceacutedures associeacutees au traitement des fiches XML
Les fichiers drsquoinstallation
install_Spip-XMLphp Fichier agrave exeacutecuter apregraves extraction de lrsquoarchive laquo Spip-XMLzip raquo
Reacutepertoire laquo Install_SPIP-XML raquo Reacutepertoire creacuteeacute par lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo
bull install_MotsClesphp Deacutefinition des mots-cleacutes Spip utiliseacutes par le package laquo SPIP-XML raquoNB Fichier appeleacute par le fichiers drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull install_Modelesphp Deacutefinition des modegraveles de laquo Fiches XML raquo utiliseacutes dans cette documentation etutiliseacutes par lrsquoexemple drsquoutilisation laquo Devis raquoraquoNB Fichier appeleacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull spip_params_applisql Structure et donneacutees de la table MySQL lsquoltpreacutefixe des tablesgt_params_applirsquocontenant les paramegravetres du package laquo SPIP-XML raquo (et de lrsquoapplication)NB Ce fichier est exploiteacute par le fichier drsquoinstallation lsquoinstall_Spip-XMLphprsquo
bull Reacutepertoires laquo Modifs_SPIP_xxx raquo Fichiers modifieacutes dans SPIP Version xxxChacun de ces reacutepertoires correspond agrave une version de Spip - Modifs_Spip_1465 eacutedition 1465 de Spip 14 - Modifs_Spip_1604 eacutedition 1604 de Spip 16NB Voir lrsquoutilisation de ces reacutepertoires dans le chapitre laquo Mise en œuvre raquo
Les squelettes de lrsquoexemple laquo Devis raquo
affLienIdentificationphp3 Squelette agrave inclure lagrave ougrave on veut afficher un lien vers une identification SpipCe lien active un popup nommeacute laquo loginSpip raquo et y affiche le squelette laquo loginphp3 raquo (cf login-xmlhtml ci-dessous)Voir un exemple drsquoutilisation de ce squelette dans lrsquoexemple laquo Devis raquo
loginphp3 Activation du squelette laquo loginhtml raquo
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1444
login-xmlhtml Squelette associeacute agrave laquo loginphp3 raquo (agrave renommer laquo loginhtml raquo)Ce squelette ouvert dans un popup nommeacute laquo loginSpip raquo permet agrave lrsquointernaute de srsquoidentifier (laquo auteur raquoconnu de Spip)Si lrsquointernaute est deacutejagrave identifieacute ce popup lui permet de se deacuteconnecter ou srsquoil est laquo administrateur nonrestreint raquo drsquoacceacuteder agrave lrsquoespace priveacute de Spip (ouvert alors dans une fenecirctre seacutepareacutee)Apregraves identification ou deacuteconnexion la fenecirctre ayant activeacute le popup est rafraicircchie par appel au fichierlaquo refreshLoginOpenerphp raquo
Une fois lrsquoutilisateur identifieacute la fonction booleacuteenne laquo adminRubrique(ltid_rubriquegt) raquo (deacutefinie via le fichierlaquoToolsparamsAppliphp raquo) permet de savoir srsquoil administre une rubrique donneacutee (voir un exempledrsquoutilisation dans le squelette laquo affLiensNewFichesXML raquo ci-dessous)
NB Ce squelette est compatible avec son utilisation par lrsquoespace priveacute de Spip
refreshLoginOpenerphp Activeacute par laquo login-xmlhtml raquo pour rafraicircchir la fenecirctre ayant ouvert le popupdrsquoidentification SpipLe rafraichissement permet de modifier lrsquoaffichage de la fenecirctre si celle-ci exploite le fait que lrsquoutilisateursrsquoest identifieacute ou non
affLiensNewFichesXMLphp3 Activation du squelette laquo affLiensNewFichesXMLhtml raquo
affLiensNewFichesXMLhtml Squelette agrave inclure lagrave ougrave on veut afficher les liens vers les formulaires decreacuteation de nouvelles laquo Fiches XML raquo associeacutees agrave la rubrique en cours
Dans ce squelette une fiche est dite laquo associeacutee raquo agrave une rubrique si son type contient - le contenu de la variable globale laquo $xml_TypeFicheXML raquo si celle-ci est non-vide - ou le mot-cleacute de type laquo TypeRubriqueXML raquo de la rubrique
Par exemple si $xml_TypeFicheXML=rsquoDevisrsquo ou si la rubrique a le mot-cleacute TypeRubriqueXML=rsquoDevisrsquo cesquelette affichera les liens vers le formulaire de creacuteation de fiches de type laquo DevisPiscine raquo oulaquo mon_Devis_a_moi raquohellipNB En fait on recherchera les modegraveles de fiche lsquoModelehellipDevishelliprsquo
rubrique-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo rubriquehtml raquo)Crsquoest une version de laquo rubrique-disthtml raquo montrant une utilisation du XML dans SpipCe squelette affiche un lien vers une identification laquo Spip raquo par inclusion du squelettelaquo affLienIdentification raquo puis si lrsquoutilisateur est administrateur de la rubrique en cours ou drsquoune de sesparents (cf fonction laquo adminRubrique(id_rubrique) raquo affiche les liens vers les formulaires de creacuteation desfiches associeacutees agrave la rubrique par inclusion du squelette laquo affLiensNewFichesXML raquoNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo rubrique-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquoNB Ce squelette gegravere aussi une redirection vers le squelette deacutesigneacute par lrsquoeacuteventuel mot-cleacute de typelaquo Squelette raquo et il nrsquoaffiche pas de liens vers des rubriques ou articles ayant le mot-cleacute laquo Dummy raquo oulaquo ModeleFicheXML raquo
article-xmlhtml Squelette livreacute pour lrsquoexemple drsquoutilisation laquo Devis raquo (agrave renommer laquo articlehtml raquo)Crsquoest une version de laquo article-disthtml raquo montrant lrsquoutilisation du XML dans SpipOn a simplement ajouteacute lrsquoappel au filtre laquo processXML raquo lors du traitement du lsquoTEXTErsquo de lrsquoarticleNB Les lignes ajouteacutees ou modifieacutees par rapport agrave laquo article-disthtml raquo sont identifieacutees par lecommentaire lsquo XML rsquo
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1544
Le filtre laquo processXML raquo et le traitement des fiches XML
fonctionsXmlphp Filtre laquo processXML raquo et interface avec les parsersLe filtre laquo processXML raquo est utiliseacute pour traiter le contenu XML drsquoun objet SPIP (typiquement un articleou une rubrique) Ce fichier contient aussi lrsquoensemble des fonctions neacutecessaires au fonctionnement desparsers deacutecrits ci-dessous
Exemple drsquoutilisation [(TEXTE|processXML)]
DocXml_FicleXmlphp Parser XML par deacutefautCe parser traite une laquo Fiche XML raquo Il active le parser traitant le modegravele de la fiche et renseigne lesvaleurs des diffeacuterents champs dans le code html visualisant la fiche ou le formulaire associeacute
DocXml_ModeleFicleXmlphp Parser XML par deacutefautCe parser traite un modegravele de laquo Fiche XML raquo et geacutenegravere le code html visualisant une fiche et le formulaireassocieacute
nouvelleFichephp Importation drsquoune nouvelle fiche dans SpipCe fichier est activeacute par la soumission du formulaire de creacuteation modification drsquoune fiche
mes_fonctionsphp Filtres diversNB Ce fichier appelle laquo ToolsparamsAppliphp raquo et laquo mes_fonctionsAppliphp raquo
mes_fonctions-xmlphp3 Simple inclusion du fichier laquo mes_fonctionsphp raquo (agrave renommer laquo mes_fonctionsphp3 raquo)NB Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans le site y reporter simplement lrsquoinclusion du fichierlsquomes_fonctionsphprsquo
mes_fonctionsAppliphp Proceacutedures et filtres utiliseacutees lors du traitement des fichesEn particulier ce fichier deacutefinit
- Le filtre laquo balisesXML raquo qui convertit les balises drsquoune laquo Fiche XML raquo en un tableau associatif Notez que seules les valeurs sont retourneacutees et que les attributs des balises ne sont pas disponibles
Exemple drsquoutilisation lt $tableau = balisesXML( lsquo[(TEXTE|texte_script)]rsquo ) gt On a alors $tableau[ltbalisegt] = ltvaleur_balisegt
- La proceacutedure laquo importObjectIntoSpip( objetAppli attributs ) raquo qui prend en charge lrsquoimportation drsquoun objet applicatif de type laquo objetAppli raquo et dont les attributs seront donneacutes par le tableau associatif laquo attributs raquo Une variable globale laquo $import_ltobjetAppligt raquo devra ecirctre deacutefinie (par exemple dans le fichier ToolsparamsAppliphp) elle contiendra la seacutequence des fichiers drsquoimportation Spip eacuteleacutementaires agrave traiter (cf reacutepertoire ToolsModeles_import deacutecrit ci-dessous) Cette fonction retourne laquo vrai raquo si lrsquoobjet a eacuteteacute importeacute dans la base Spip retourne le texte explicatif de lrsquoerreur sinon Si lrsquoimportation a eacuteteacute effectueacutee le tableau laquo attributs raquo contiendra en plus au retour
$attributs[first_objetSpip] =gt rubrique ou article ou (i-e type du 1er objet Spip creacuteeacute) $attributs[ first_id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute $attributs[ id_$attributs[first_objetSpip] ] =gt id du 1er objet Spip creacuteeacute
Exemple drsquoutilisation
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1644
Supposons le code suivant $attributs = array( id_rubrique =gt 0 id_secteur =gt $idSecteur id_parent =gt $idRubrique TitreRubrique =gt $TitreRubrique DescriptionRubrique =gt $DescriptionRubrique TexteRubrique =gt $TexteRubrique ) importObjectIntoSpip(RubPrivee $attributs)
Si le fichier laquo ToolsparamsAppliphp raquo deacutefinit la variable globale $GLOBALS[import_RubPrivee] = import_Rubrique_Stdxml import_Mot_Privexml
alors lrsquoappel ci-dessus agrave la fonction laquo importObjectIntoSpip raquo creacuteera une rubrique Spip - avec le mot-cleacute laquo Prive raquo (qui devra preacuteexister dans Spip) - et dont le titre la description hellip seront renseigneacutes avec les variables utiliseacutees dans le code pris en exemple NB Le fichier import_Mot_Privexml devra ecirctre creacuteeacute en prenant comme exemple les fichiers lsquoToolsModeles_importimport_Mot_xxxxmlrsquo
Autres exemples drsquoutilisation Voir les fichiers drsquoinstallation du package laquo SPIP-XML raquo
- install_Spip-XMLphp - Install_SPIP-XMLinstall_Modelesphp
- Install_SPIP-XMLinstall_MotsClesphp
Reacutepertoire laquo Ressources raquo
Ce reacutepertoire contiendra les fichiers eacuteventuellement chargeacutes via le champ drsquoune laquo Fiche XML raquoCf la proceacutedure laquo getUploadedFile raquo dans le fichier laquo ToolsgetUploadedFilephp raquo ainsi que le paramegravetrelaquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo
Reacutepertoire laquo icones raquo
Ce reacutepertoire contient des icocircneshellip dont certaines sont utiliseacutees par ce package
Reacutepertoire laquo Tools raquo
bull paramsAppliphp Paramegravetres de lapplicationCrsquoest dans ce fichier que devront ecirctre deacutefinies les variables globales laquo import_lttype_de_fichegt raquodonnant les modegraveles drsquoimportation dans Spip (voir le paragraphe laquo Mise en œuvre raquo ci-dessous)Ce fichier inclut les fichiers laquo paramsSpipphp raquo et laquo paramsXMLphp raquo
bull paramsSpipphp Paramegravetres associeacutes agrave lutilisation de Spip par lapplicationCe fichier deacutefinit la proceacutedure laquo adminRubrique( $id_rubrique ) raquo qui retourne la valeurbooleacuteenne laquo vrai raquo si lrsquointernaute est identifieacute comme connu de Spip avec les droits
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1744
drsquoadministration de la rubrique laquo $id_rubrique raquo ou de lrsquoune de ses parents
Ce fichier renseigne la variable globale $userIdentified Vrai si lrsquointernaute est connu de Spip
Si lrsquointernaute est connu de Spip alors ce fichier renseigne aussi les variables globales $userId Identifiant interne de Spip (id_auteur) $userName $userLogin $userEmail Informations connues de Spip $userRights Droits de lrsquointernaute dans l lsquoespace priveacute de Spip =rsquoadminrsquo =rsquoadminRestreintrsquo =rsquoredacteurrsquo ou =rsquoforumrsquo
bull paramsXmlphp Ce fichier deacutefinit la proceacutedure laquo setParamsXML( $typeFicheXML $id_article_modele ) raquoqui renseigne les diffeacuterentes variables globales neacutecessaires au traitement des fiches XML
Les paramegravetres drsquoappel de cette fonction sont $typeFicheXML Type de la fiche agrave traiter Si vide le type sera donneacute - par la variable globale $xml_TypeFicheXML - ou par le mot-cleacute de type laquo TypeFicheXML raquo de la rubrique ou de lrsquoarticle en cours
$id_article_modele Ndeg de larticle Spip contenant le modegravele de la fiche agrave traiterSi vide sera renseigneacute en recherchant larticle
- de mot-cleacute ModeleFicheXML- et de surtitre Modelelttype_de_fichegt
bull getUploadedFilephp Ce fichier deacutefinit la proceacutedure laquo getUploadedFile( hellip ) raquo utiliseacutee lors de lacreacuteation ou modification drsquoune fiche XML dont lrsquoun des champs est un fichier agrave charger sur leserveurNB Seules certaines extensions sont autoriseacutees (txt csv pdf doc xls jpg jpeg gif ziptar gz z)NB Le paramegravetre laquo PathToRessources raquo de la table MySQL laquo spip_appli_params raquo donne lechemin relatif au site vers le reacutepertoire ougrave seront rangeacutes les fichiers chargeacutes (deacutefautlaquo Ressources raquo)
bull sitecss Feuille de style appeleacutee dans les squelettes distribueacutes (en plus de spip_stylecss)
bull utiljs Variables et proceacutedures JavaScript (utiliseacute pour les dimensions de la fenecirctre de login)
bull classeDebugphp Support aux moyens de debug inteacutegreacutes au code php
bull Reacutepertoire laquo ToolsModeles_fiches_XML raquo
Ce reacutepertoire rassemble les modegraveles de fiches (reacutepertoire par deacutefaut sinon les modegraveles defiches sont dans le reacutepertoire dont le chemin relatif au site est donneacute par le paramegravetrelaquo PathToModelsXML raquo de la table MySQL laquo spip_appli_params raquo)
NB Mecircme si les fichiers sont utiliseacutes agrave la place des articles Spip ces derniers doivent exister(mot-cleacute titre et surtitre renseigneacutes) avec un texte contenant une balise ltDocumentXMLgt sanscontenu mais avec ses attributs laquo TypeDocXML raquo et laquo Handler raquo correctement renseigneacutes
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1844
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
bull Reacutepertoire laquo ToolsModeles_import raquo
Ce reacutepertoire rassemble les fichiers contenant les modegraveles drsquoimportation des objets Spip(reacutepertoire par deacutefaut sinon les modegraveles drsquoimportation sont dans le reacutepertoire dont le cheminrelatif au site est donneacute par le paramegravetre laquo PathToImportModels raquo de la table MySQLlaquo spip_appli_params raquo)
NB Ce reacutepertoire par deacutefaut accueillera les modegraveles livreacutes avec le package
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 1944
42 La mise en œuvre de lrsquoinstallation Installer les fichiers
Installation du package laquo Spip-XML raquo
Commencez par installer et configurer Spip dans un reacutepertoire que nous appellerons ici laquo SiteSpip raquo
Ensuite extrayez lrsquoarchive laquo Spip-XMLzip raquo dans ce reacutepertoire (ou dans le reacutepertoire drsquoun site existant baseacutesur Spip)
Modifications des fichiers Spip
Le reacutepertoire laquo Install_SPIP-XML raquo creacuteeacute agrave la base de votre site lors de lrsquoextraction de lrsquoarchive laquo Spip-XMLzip raquo contient des reacutepertoires laquo Modifs_SPIP_vvvv raquo donnant les 3 fichiers Spip qui doivent remplacerceux existant de mecircme nom
- inc-loginphp3 - ecrireinc_importphp3
- ecrireinc_textephp3
Pour installer les laquo bons raquo fichiers visualisez le fichier laquo ecrireinc_versionphp3 raquo pour connaicirctre la versionlaquo vvvv raquo de la base (donneacutee par lrsquoaffectation de la variable laquo $spip_version raquo vers la ligne 150 du fichier)
Par exemple helliphelliphellip version de la base$spip_version = 1604
version de spip$spip_version_affichee = 16helliphelliphellip =gt version 1604
Si lrsquoun des reacutepertoires laquo Install_SPIP-XMLModifs_SPIP_vvvv raquo correspond agrave la version de Spip installeacutee dansvotre site (lsquoInstall_SPIP-XMLModifs_SPIP_1604rsquo dans lrsquoexemple ci-dessus) copiez son contenu dans lereacutepertoire laquo SiteSpip raquo (les fichiers modifieacutes remplaceront automatiquement mais avec votre accord lesfichiers existants de mecircme nom)
Sinon choisissez le reacutepertoire le mieux adapteacute agrave votre version de Spip (i-e la version anteacuterieure la pluslaquo proche raquo) visualisez les modifications introduites dans les fichiers Spip (les lignes modifieacutees sont identifieacuteespar la chaicircne laquo XML raquo) et reportez manuellement ces modifications dans les fichiers de mecircme nompreacutesents dans votre site
Renommage des squelettes et fichiers livreacutes
Pour utiliser le package Si le fichier lsquomes_fonctionsphp3rsquo existe deacutejagrave dans votre site ajoutez agrave sa fin lrsquoinstruction php
include lsquomes_fonctionsphprsquo Sinon renommez le fichier lsquomes_fonctions-xmlphp3rsquo en lsquomes_fonctionsphp3rsquo
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2044
Pour activer lrsquoexemple laquo Devis raquo livreacute avec le package renommez les squelettes suivants (ou reportez leurcontenu dans les fichiers existants)
- article-xmlhtml =gt articlehtml- rubrique-xmlhtml =gt rubriquehtml- login-xmlhtml =gt loginhtml
43 La mise en œuvre de lrsquoinstallation Mettre agrave jour la base
Une fois lrsquoarchive installeacutee et les fichiers Spip modifieacutes exeacutecutez le programme drsquoinstallation en tapant lrsquourlsuivante dans votre navigateur
httplturl_de_votre_sitegtinstall_Spip-XMLphp
Les actions suivantes sont effectueacutees
Creacuteation des groupes de mots-cleacutes utiliseacutes par le packageCreacuteation de la table MySQL laquo spip_appli_params raquo si elle nrsquoexiste pas deacutejagraveNB Lrsquoeacuteventuel preacutefixe des tables de votre site sera pris en compteNB Cette table contient des paramegravetres qui deviendront des variables globales en particulier $PathToModelsXML $PathToImportModels
- Creacuteation des groupes de mots-cleacutes utiliseacutes par le package
- Copie des modegraveles drsquoimportation non preacutesents dans le reacutepertoire donneacute par le paramegravetrelaquo PathToImportModels raquo de la table laquo spip_appli_params raquo (si non vide et diffeacuterent delsquoToolsModeles_importrsquo)
- Copie des modegraveles de fiches non preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquode la table laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo)
- Creacuteation de la rubrique laquo Modegraveles de Fiches XML raquo et creacuteation des articles deacutefinissant les modegravelespreacutesents dans le reacutepertoire lsquoToolsModeles_fiches_XMLrsquo (seule balise ltDocumentXMLgt silaquo PathToModelsXml raquo est renseigneacute)
- Creacuteation des articles contenant les modegraveles de fichesNB Les modegraveles deacutejagrave preacutesents dans le reacutepertoire donneacute par le paramegravetre laquo PathToModelsXml raquo de latable laquo spip_appli_params raquo (si non vide et diffeacuterent de lsquoToolsModeles_fiches_XMLrsquo) ne sont pas creacuteeacutes oumis-agrave-jour
- Creacuteation de la rubrique laquo Test du package Spip-XML raquo et de la sous-rubrique laquo Reacutediger des devis raquo(exemple drsquoutilisation)
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2144
44 La mise en œuvre de lrsquoinstallation Activer lrsquoexemple laquo Devis raquo
Visualisez votre site (httplturl_de_votre_sitegt)
Srsquoil eacutetait vierge voici ce qui srsquoaffichera (les copies drsquoeacutecran correspondent agrave Spip 1604)
Affichez la rubrique laquo Reacutediger des devis raquo
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2244
Activez le lien laquo Identifiez-vous raquo Le popup suivant srsquoaffiche
Apregraves avoir entreacute le login et le mot de passe qui vous donne accegraves agrave lrsquoespace priveacute de Spip les fenecirctresdeviennent
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2344
Activez le lien laquo Reacutediger un devis pour une piscine raquo le formulaire srsquoaffiche (avec les champs laquo Nom raquo etlaquo Email raquo renseigneacutes avec les paramegravetres de Spip)
Apregraves renseignement du formulaire et enregistrement la page ayant activeacute le formulaire est re-afficheacutee
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2444
Si vous cliquez sur le nom du devis sa fiche srsquoaffiche et si vous ecirctes laquo identifieacutee raquo un lien vous permet de lamodifier
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2544
Annexe 1 ndash Modegravele de FICHE XML Syntaxe des balises et de leurs attributs
Balise ltDocumentXMLgt
Cette balise contient la totaliteacute de la laquo fiche XML raquo et doit ecirctre le contenu inteacutegral drsquoune balise Spip(typiquement texte drsquoun article ou drsquoune rubrique)
Attributs
TypeDocXML=PrimeModeletype_de_fichePrimeIdentifie le type de fiche auquel est associeacute le modegravele
Une fiche de ce type commencera par la balise ltDocumentXML TypeDocXML=Primetype_de_fichePrime gtAu type de fiche Primetype_de_fichePrime devra correspondre une variable globale
laquo $import_type_de_fiche raquo donnant la seacutequence des fichiers drsquoimportation agrave traiter pourimporter la fiche dans Spip $import_type_de_fiche = lsquofichier1xml fichier2xmlhellip fichierkxmlrsquo
NB Ces fichiers sont attendus dans le reacutepertoire laquo ToolsModeles_import raquo Les variables laquo $import_type_de_fiche raquo sont deacutefinies dans le fichier
laquo ToolsparamsAppliphp raquo Lrsquoimportation dans Spip de la fiche est assureacutee par le fichier laquo nouvelleFichephp raquo activeacute
suite agrave la validation du formulaire de saisie modification drsquoune fiche
Handler=PrimeModeleparserPrimeIdentifie le parser agrave utiliser pour geacuteneacuterer le code HTML drsquoaffichage de la fiche et du formulaireassocieacute agrave la fiche agrave traiterRappel Celle-ci commencera par la balise ltDocumentXML Handler=PrimeparserPrime hellip gt
FormatType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage de la ficheSyntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation par deacutefaut des champs dans le cas de lrsquoaffichage du formulaireSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Html_TitreCode html par deacutefaut agrave afficher avant les titres Ce code sera inseacutereacute avant chaque titre produitpar une balise ltCadregt ou ltTitregt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2644
Par exemple Html_Titre=sectBR sect geacutenegraverera le code html ltBR gt
Class_TitreStyle par deacutefaut agrave utiliser pour lrsquoaffichage des titres (cf balises ltCadregt et ltTitregt )Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
Class_LabelStyle par deacutefaut agrave utiliser pour lrsquoaffichage du libelleacute des champsSyntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champsSyntaxe Class_ Valeur =Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle par deacutefaut agrave utiliser pour lrsquoaffichage de la valeur des champs dans les formulairesDeacutefaut Lrsquoattribut Class_ValeurSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle par deacutefaut agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie des champsSyntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
WidthLargeur des encadrements eacuteventuelsDeacutefaut 40 caractegraveresSyntaxe Attribut laquo WIDTH raquo de la balise html ltTABLEgt
BorderEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregtSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
BorderFormEpaisseur par deacutefaut agrave utiliser pour les balises ltCadregt lors de lrsquoaffichage du formulaireDeacutefaut 1 pixelSyntaxe Attribut laquo BORDER raquo de la balise html ltTABLEgt
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute des champsDeacutefaut Alignement agrave droite des libelleacutesSyntaxe AlignLabels=Right
AlignLabels=Left
DefautNbCarsNombre de caractegraveres par deacutefaut dans les boites de dialogue permettant la saisie des champs detype lsquotextersquoSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
TraitementIndicateurs par deacutefaut controcirclant le traitement des champs Les indicateurs speacutecifieacutes icisrsquoappliqueront agrave tous les champs de la ficheSyntaxe
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2744
Traitement=NoAffVide Ne pas afficher les lignes (vides) dun champ vide
Evnt_event_jsEvegravenement JavaScript agrave inclure dans la balise html ltFORMgtSyntaxe Code JavaScript
laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltFORMgt
Exemple Evnt_onSubmit=if(thisNbSacsvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10))return false
NB Le nom du formulaire html est lttype de fiche XML gt
Exemple de balise ltDocumentXMLgt
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || thisNomRubriquevaluesubstring(05)==Nom d) crarr alert(Nom du projet absent)return false FormatForm=Vertical Format=Horizontal AlignLabels=left Class_Titre=titre3 Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG SRC=imagesfiletmauvegif WIDTH=100 HEIGHT=9sectsectBR sect Border=0 Width=100 Traitement=NoAffVide gt helliphelliphellip ltDocumentXML gt
On trouvera par exemple dans un feuille de style les classes suivantes
titre3 font-weightbold font-size12px text-aligncenter
txtbleunuitAtxtbleunuitAtxtbleunuitvisitedAtxtbleunuitlinkAtxtbleunuitactive font-family Arial Helvetica sans-seriffont-size 12pxfont-style normalfont-weight normalcolor 09005Dtext-decoration none
txtbleunuitsmallitalicAtxtbleunuitsmallitalic
font-family Arial Helvetica sans-seriffont-size 10pxfont-style italicfont-weight normalcolor 09005Dtext-decoration none
txtmauveptit font-family Arial Helvetica sans-serif font-size 11px font-style normal font-weight normal color 9696D2 text-decoration none
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2844
Balise ltCadregtCette balise active lrsquoencadrement de lrsquoaffichage associeacute aux champs qursquoelle contient
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
BorderEpaisseur du cadre en pixelsDeacutefaut Lrsquoattribut laquo Border raquo de la balise ltDocumentXMLgt Syntaxe
Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
BorderFormEpaisseur du cadre dans le cas du formulaire (en pixels)Deacutefaut Lrsquoattribut laquo BorderForm raquo de la balise en cours
puis lrsquoattribut laquo BorderForm raquo de la balise ltDocumentXMLgtpuis lrsquoattribut laquo Border raquo de la balise en cours
Syntaxe Border=Primen Prime avec n en pixelsSi n=0 alors il nrsquoy aura pas de cadre visible
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 2944
Exemple de balise ltCadregt
ltCadre Titre=Le projet Border=1 Traitement=NoAffgt
ltChamp1gthellipltChamp1gtltChamp2gthellipltChamp2gtltChamp3gthellipltChamp3gt
ltCadregt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3044
Balise ltTitregtCette balise affiche un titre
Attributs
TitreIdentifie le texte agrave afficher pour introduire les champs contenus dans cette baliseSyntaxe Titre=PrimeTexte agrave afficher Prime
Html_TitreCode html agrave afficher avant le titreDeacutefaut Lrsquoattribut laquo Html_Titre raquo de la balise ltDocumentXMLgt Syntaxe Html_Titre=Primecode html Prime
Les caractegraveres lsquoltrsquo et lsquogtrsquo doivent ecirctre remplaceacutes par le caractegravere lsquosectrsquo
Class_TitreStyle agrave utiliser pour lrsquoaffichage du titreDeacutefaut Lrsquoattribut laquo Class_Titre raquo de la balise ltDocumentXMLgt Syntaxe Class_Titre=Primeclasse deacutefinie dans une feuille de style Prime
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes sans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur
Les indicateurs possibles sont NoAffInForm Ne pas afficher le titre dans le formulaireNoAff Ne pas afficher le titre dans la fiche
Exemple de balise ltTitregt
ltTitre Titre=Le projet Html_Titre=sectHR SIZE=rsquo1rsquo WIDTH=rsquo80rsquo sect Traitement=NoAffgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3144
Balise ltnom_champgtCette balise dont le nom est libre introduit les paramegravetres de traitement drsquoun champ (attributs)
Attributs communs agrave tous les types de champs
LabelLibelleacute du champSyntaxe Label=PrimeLibelleacute Prime
AlignLabelsAlignement par deacutefaut agrave utiliser pour le libelleacute du champDeacutefaut Lrsquoattribut laquo AlignLabels raquo de la balise ltDocumentXMLgt sinon laquo agrave droite raquoSyntaxe AlignLabels=PrimeLeft Prime
AlignLabels=PrimeRight Prime
FormatType de preacutesentation du champ dans le cas de lrsquoaffichage de la ficheDeacutefaut Lrsquoattribut laquo Format raquo de la balise ltDocumentXMLgt Syntaxe
Format=Horizontal Le libelleacute du champ et sa valeur sont sur la mecircme ligneFormat=Vertical Le libelleacute du champ est sur une ligne la valeur est sur une autre ligne
FormatFormType de preacutesentation du champ dans le cas de lrsquoaffichage du formulaireDeacutefaut Lrsquoattribut laquo FormatForm raquo de la balise ltDocumentXMLgt
puis lrsquoattribut laquo Format raquo de la balise en coursSyntaxe
FormatForm=Horizontal Le libelleacute du champ sa valeur et le commentaire associeacute sontsur la mecircme ligne (cf tableau html)
FormatForm=Vertical Le libelleacute du champ et le commentaire associeacute sont sur uneligne la valeur est sur une autre ligne
Class_LabelStyle agrave utiliser pour lrsquoaffichage du libelleacute du champDeacutefaut Lrsquoattribut laquo Class_Label raquo de la balise ltDocumentXMLgt Syntaxe Class_Label=Primeclasse deacutefinie dans une feuille de style Prime
Class_ValeurStyle agrave utiliser pour lrsquoaffichage de la valeur du champDeacutefaut Lrsquoattribut laquo Class_Valeurraquo de la balise ltDocumentXMLgt Syntaxe Class_Valeur=Primeclasse deacutefinie dans une feuille de style Prime
Class_Valeur_FormStyle agrave utiliser pour lrsquoaffichage de la valeur du champ dans le formulaireDeacutefaut Lrsquoattribut laquo Class_Valeur_Form raquo de la balise ltDocumentXMLgt
puis lrsquoattribut Class_Valeur de la balise en coursSyntaxe Class_Valeur_Form=Primeclasse deacutefinie dans une feuille de style Prime
Class_CmtStyle agrave utiliser pour lrsquoaffichage du commentaire associeacute agrave la saisie du champ
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3244
Syntaxe Class_Cmt=Primeclasse deacutefinie dans une feuille de style Prime
TypeInputType de dialogue pour la saisie et par voie de conseacutequence type de valeur du champDans le cas de lrsquoaffichage du formulaire un dialogue deacutependant de cet attribut sera geacuteneacutereacute pourla saisie du champDe mecircme lrsquoaffichage du champ dans une fiche deacutependra de cet attributSyntaxe
TypeInput=Texte =gt La valeur du champ est une chaicircne de caractegraveres sur 1 ligneTypeInput=Textarea =gt La valeur du champ est une chaicircne de caractegraveres sur n lignesTypeInput=Date =gt La valeur du champ est une chaicircne contenant une dateTypeInput=Select =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=SelectM =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput= Select+ =gt La valeur du champ est une chaicircne choisie parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput= SelectM+ =gt La valeur du champ est n chaicircnes choisies parmi plusieurs ou une
chaicircne speacutecifieacutee par lrsquoutilisateurTypeInput=Radio =gt La valeur du champ est une chaicircne choisie parmi plusieursTypeInput=Checkbox =gt La valeur du champ est n chaicircnes choisies parmi plusieursTypeInput=File =gt La valeur du champ est le nom drsquoun fichier agrave teacuteleacutecharger
InputObligIndicateur speacutecifiant si le renseignement du champ agrave une valeur non vide est obligatoireSi un champ obligatoire nrsquoest pas renseigneacute par lrsquoutilisateur celui-ci sera preacutevenu et le formulairene sera pas transmisDeacutefaut Champ optionnel Syntaxe InputOblig=PrimeTexte agrave afficher apregraves le libelleacute du champ Prime =gt le renseignement du champ
est alors obligatoireInputOblig=Prime Prime (espace) =gt champ obligatoire sans indicationInputOblig=PrimePrime (chaine vide) =gt champ optionnel
Exemple InputOblig=Prime Prime =gt affichage drsquoune asteacuterisque apregraves le libelleacute du champ obligatoire
TraitementIndicateurs controcirclant le traitement du cadreAttention Les indicateurs speacutecifieacutes dans lrsquoattribut laquo Traitement raquo de la balise ltDocumentXMLgt
seront aussi traiteacutesSyntaxe Traitement=indicateur_1 indicateur_2 hellip indicateur_k
Les indicateurs possibles sont NoAffInForm Ne pas afficher lentreacutee dans le formulaire (=gt input hidden)NoAff Ne pas afficher lentreacutee dans la ficheNoAffLabelInForm Ne pas afficher le libelleacute du champ dans le formulaireNoAffLabel Ne pas afficher le libelleacute du champ dans la ficheNoAffVide Ne pas afficher les lignes (vides) dun champ videInitDate Initialiser la date par deacutefaut (aaaa-mm-jj hhmmss)InitDateFr Initialiser la date par deacutefaut (jjmmaaaa)Url Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlSansNom Forcer louverture du lien associeacute dans une nouvelle fenecirctreUrlRubrique Creacuteer un lien vers une rubriqueMailTo Creacuteer un lien vers la messagerie
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3344
AddHiddenIndicateur activant la creacuteation drsquoun champ laquo cacheacute raquo (i-e non visible par lrsquoutilisateur) Ce champcacheacute et nommeacute est alors accessible par du code JavaScript (cf lrsquo attribut ltEvnt_xxxgt deacutecritesci-apregraves)Syntaxe AddHidden=nom du champ cacheacute NB La syntaxe AddHidden=1 est eacutequivallente agrave AddHidden=nom du champ XMLExemple AddHidden=NbSacs
oultNbSacsgt helliphelliphelliphellip AddHidden=1 helliphelliphelliphellipltNbSacsgt
Evnt_ltevent_jsgtEvegravenement JavaScript agrave inclure dans la balise html ltINPUTgt geacuteneacutereacute pour ce champSyntaxe Code JavaScript laquo event_js raquo est un eacuteveacutenement JavaScript de la balise html ltINPUTgtExemple Evnt_onFocus=if( thisvalue ) thisvalue=rsquo1rsquo Valeur min
Evnt_onBlur=if( thisvalue || thisvaluegt10) crarr alert(lsquoNombre de sacs trop important (max=10)) crarr
thisvalue=10 return false
Utiliseacute avec lrsquoattribut laquo AddHidden=nomCacheacute raquo on trouve souvent le code suivant permettantde garder accessible la valeur du champ en cours
Evnt_onFocus=thisvalue=documentlttypeFicheXmlgtltnomCacheacutegtvalue Evnt_onBlur=documentlttypeFicheXmlgtltnomCacheacutegtvalue=thisvalue
Drsquoautre champs peuvent alors acceacuteder agrave la valeur ainsi sauvegardeacutee de mecircme cette valeur peutecirctre traiteacutee avant lrsquoenvoi du formulaire (cf attribut laquo Evnt_event_js raquo de la baliseltDocumentXMLgt )
NB Le nom du formulaire html est lttype de fiche XML gt
FiltreFiltre agrave exeacutecuter avant drsquoafficher la valeur du champSyntaxe Filtre=Prime proceacutedure_1proceacutedure_2 hellip proceacutedure_k Prime
NB Les proceacutedures doivent ecirctre deacutefinies dans le fichier de code laquo mes_fonctionsphp3 raquo
CmtCommentaire explicitant la saisie du champSyntaxe Cmt=Prime texte Prime
TypoSpipIndicateur activant lrsquoaffichage drsquoune image supportant un lien vers lrsquoaide en ligne de SpipSyntaxe TypoSpip=Prime xxx Prime
Lrsquoimage est fournie par le fichier laquo iconesaidexxxgif raquo Le lien est afficheacute apregraves lecommentaire eacuteventuel
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3444
Attributs speacutecifiques aux champs de TypeInputTexte ou Textarea
TypeInput=PrimeTextePrime Texte sur 1 ligneTypeInput=PrimeTextareaPrime Texte sur plusieurs lignes
NB Les raccourcis Spip de mise en page sont exploitables
NbCaracteresTaille de la boite de saisie du champ (TypeInput=rsquoTextersquo ou lsquoTextarearsquo)Deacutefaut Lrsquoattribut laquo DefautNbCarsraquo de la balise ltDocumentXMLgt ou 83 si format vertical ou 60si format horizontalSyntaxe Attribut laquo SIZE raquo de la balise html ltINPUTgt
Attributs speacutecifiques aux champs de TypeInputRadio ou Checkbox
TypeInput=PrimeRadioPrime Choix drsquoune valeur parmi plusieursTypeInput=PrimeCheckboxPrime Choix drsquoune ou plusieurs valeurs
LabelsChoix possibles pour la valeur du champSyntaxe Labels=Primechoix_1choix_2 hellip choix_k Prime
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3544
Attributs speacutecifiques aux champs de TypeInputSelect ou Select+ ou SelectM ou SelectM+
TypeInput=PrimeSelectPrimeChoix drsquoune valeur parmi plusieursTypeInput=PrimeSelect+Prime Choix drsquoune valeur parmi plusieurs ou creacuteation drsquoun nouveau choix
possibleTypeInput=PrimeSelectMPrime Choix drsquoune ou de plusieurs valeursTypeInput=PrimeSelectM+Prime Choix drsquoune ou de plusieurs valeurs ou creacuteation drsquoun nouveau choix
possible
DefautTexteTexte afficheacute par deacutefaut dans la boite de seacutelectionSyntaxe DefautTexte=Primetexte Prime
TableTable Spip dont les enregistrements fourniront les choix agrave propose dans la boite de seacutelectionSyntaxe Table=Primespip_xxxxx Prime
Table=Primespip_xxxxx as yyyy PrimeExemple Table=Primespip_rubriques as rubriques Prime
ChIdNom de la cleacute primaire agrave utiliser dans la tableNB Sa valeur sera associeacutee agrave la seacutelectionSyntaxe ChId=Primenom de la cleacute primaire Prime
ChpTxtNom du champ de la table qui donnera le texte agrave afficher pour la seacutelectionSyntaxe ChTxt=Primenom du champ Prime
ChpValOptionNom du(des) champ(s) de la table qui donneront la valeur associeacutee agrave la seacutelectionNB La valeur associeacutee la seacutelection sera laquo ltvaleur de ChIdgtltvaleurs des champs ChpValOptiongt raquoSyntaxe ChValOption=Primenom_1nom_2hellip Prime
TableWhereNom de la table utiliseacutee pour lrsquoeacuteventuelle clause laquo where raquo de la requecircte SQLSyntaxe TableWhere=Primespip_xxxxx Prime
TableWhere=Primespip_xxxxx as yyyy PrimeTableWhere=Primespip_xxxxx spip_yyyyy as zzzz Prime
Exemple TableWhere=Primespip_mots as mots spip_mots_rubriques as lien_mots Prime
ChpWhereEventuelle clause laquo where raquo de la requecircte SQLSyntaxe ChpWhere =Primeexpression logique SQL adhoc PrimeExemple ChpWhere=Primerubriquestitre like spip Prime
ChpClasstEventuelle clause laquo order raquo de la requecircte SQLSyntaxe ChpClasst =Primeexpression SQL adhoc Prime
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3644
Exemple ChpClasst=Primerubriquestitre rubriquesdate Prime
Exemple de balise avec TypeInput=PrimeSelectPrime
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot spip_mots AS mots ChpWhere=rubriquesid_parent=0 AND rubriquesid_rubrique=lien_motid_rubrique AND crarr lien_motid_mot=motsid_mot AND motstitre=Partenaire AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
Affichage du champ laquo Partenaires raquo dans le formulaire
Affichage du champ laquo Partenaires raquo dans la fiche
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3744
Annexe 2 - Exemple de FICHE XML complegraveteDescription drsquoun projet de solidariteacute
( cf httpjuniorsolidariteorg )
A titre drsquoexemple nous deacutecrirons ici la fiche descriptive drsquoun projet de solidariteacute geacutereacute par le sitelaquo httpjuniorsolidariteorg raquo site entiegraverement construit avec Spip
La description de chaque champ dans le modegravele estlisteacutee accompagneacutee drsquoune vue du champ dans leformulaire de creacuteationmodification drsquoune fichelaquo Projet raquo ainsi que drsquoune vue du champ tel qursquoil sepreacutesente lors de lrsquoaffichage drsquoune fiche
NB Le modegravele de fiche deacutecrit ci-dessous est livreacute agravetitre drsquoexemple dans la distribution du package laquo SPIP-XML raquo
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3844
Modegravele de fiche laquo Projet raquo - Fiche et formulaire associeacutes
ltDocumentXML TypeDocXML=ModeleFicheProjet Handler=ModeleFicheXML Evnt_onSubmit=if(thisNomRubriquevalue || crarr thisNomRubriquevaluesubstring(05)==Nom d)crarr alert(Nom du projet absent)return false Class_Titre=h3Spip FormatForm=Vertical Format=Horizontal AlignLabels=left Traitement=NoAffVide Class_Label=txtmauveptit Class_Valeur=txtbleunuit Class_Valeur_Form=txtbleunuit Class_Cmt=txtbleunuitsmallitalic DefautNbCars=40 Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sectsectBR sect Border=0 Width=100gt
ltTitre_1_ Titre=Le projet Traitement=NoAff gt
ltNomRubrique Label=Nom du projet Traitement=NoAff InputOblig= TypeInput=Texte AddHidden=1 Filtre=supprimer_numero Evnt_onFocus= crarr if(thisvalue || thisvaluesubstring(05)==Nom d) crarr thisvalue= Evnt_onBlur=crarr documentFicheProjetNomRubriquevalue=thisvalue gtltNomRubriquegt
ltCourteDescription Label=Courte description du projet Traitement=NoAff InputOblig= TypeInput=TextArea TypoSpip=Mauve Cmt=Pour le caracteacuteriser dans les listes de projets gtltCourteDescriptiongt
ltTitre_2_ Titre=Objectifs Traitement=NoAffInForm Html_Titre=sectIMG SRC=imagesfiletmauvegif crarr WIDTH=100 HEIGHT=9sectsectBR sect gt
ltObjectifsProjet Label=Objectifs du projet Traitement=NoAffLabel InputOblig= TypeInput=TextArea TypoSpip=Mauve gtltObjectifsProjetgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 3944
ltTitre_3_ Titre=Activiteacutes Traitement=NoAffInForm gt
ltActivitesProjet Label=Activiteacutes envisageacutees Traitement=NoAffLabel InputOblig= TypeInput=TextArea Format=Vertical TypoSpip=Mauve Class_Valeur=txtbleunuit gtltActivitesProjetgt
ltTitre_4_ Titre=Proposeacute par Traitement=NoAffInForm gt
ltPartenaires Label=Proposeacuteampampnbsppar Traitement=NoAffLabelUrlRubrique InputOblig= TypeInput=SelectM AlignLabels=left DefautTexte=Seacutelectionnez les partenaires Table=spip_rubriques AS rubriques ChpId=rubriquesid_rubrique ChpTxt=rubriquestitre ChpValOption=rubriquestitre TableWhere=spip_mots_rubriques AS lien_mot crarr spip_mots AS mots ChpWhere=rubriquesid_parent=0 crarr AND rubriquesid_rubrique=lien_motid_rubrique crarr AND lien_motid_mot=motsid_mot crarr AND motstitre=Partenaire crarr AND rubriquesstatut=publie FiltreApresImport=liensProjetPartenaires gtltPartenairesgt
ltSiteWebProjet Label=Preacutesentation deacutetailleacutee du projet Format=Vertical InputOblig= TypeInput=Texte FiltreFromInput=verifUrl Traitement=UrlSansNom Evnt_onFocus=if(thisvaluesubstring(03)==) crarr thisvalue=http gt ougrave trouver des informations compleacutementaires ltSiteWebProjetgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 4044
ltTitre_5_ Titre=Contact gt
ltNomContact Label=Nom Traitement=NoAffLabel InputOblig= TypeInput=Texte Evnt_onFocus=thisvalue= gtPreacutenom Nom ltNomContactgt
ltFonctionContact Label=Fonction Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltFonctionContactgt
ltEmailContact Label=Email Traitement=NoAffLabelMailTo InputOblig= TypeInput=Texte gtltEmailContactgt
ltTelContact Label=NsectSUPsectossectSUPsect teacutelfax Traitement=NoAffLabel InputOblig= TypeInput=Texte gtltTelContactgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 4144
ltTitre_6_ Titre=Indexation (mots-cleacutes) Traitement=NoAff gt ltVsObjectifs Label=Objectifs InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_objectifs ChpId=id_index_objectif ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsObjectifsgt
ltVsActivites Label=Activiteacutes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_activites ChpId=id_index_activite ChpTxt=titre ChpValOption=titre ChpClasst=classt Traitement=NoAff gtltVsActivitesgt
ltVsClasses Label=Classes InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_classes ChpId=id_index_classe ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsClassesgt
ltVsPopulation Label=Population viseacutee InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_populations ChpId=id_index_population ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPopulationgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 4244
Table MySQL laquo spip_appli_index_champgeos raquo (le preacutefixe des tables Spip est laquo cc raquo)
ltVsPortee Label=Champ geacuteographique InputOblig= AlignLabels=left TypeInput=SelectM DefautTexte=autre Table=spip_appli_index_champgeos ChpId=id_index_champgeo ChpTxt=titre ChpValOption=titre Traitement=NoAff gtltVsPorteegt
ltTitre_99_ Html_Titre=sectBR sectsectIMG crarr SRC=imagesfiletmauvegif WIDTH=100 crarr HEIGHT=9sect sectBR sect sect=$lienAvApsect gt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 4344
Squelette laquo rubriquehtml raquo Affichage des paramegravetres drsquoindexation du projet dans un calque seacutepareacute
lt-------------------------- INDEXATION PROJET -------------------------gtlt Afficher les paramegravetres de classement des projets if($Entite==Projet) gt [(TEXTE|affIndexation)]lt Fin if($Entite==Projet)
Filtre laquo affIndexation raquo Affichage des paramegravetres drsquoindexation du projet
function affIndexation($data)
global $attributsModele Renseigneacute par lrsquoutilisation du filtre laquo processXML raquo
Reacutecupeacuterer les valeurs des balises Xml de la fiche $valeursFiche = balisesXML($data) foreach($valeursFiche as $index=gt$value)
Ne traiter que les balises Vs non vides if(strpos(_$indexVs)=1 || $value) continue $outData = lttd bgcolor=DDDDF9 class=txtbreves width=180gt ltspan class=txtbrevesboldgt $attributsModele[$index][Label] ltspangtltbr gt ltsmallgtrsquo $values = explode( $value) foreach($values as $value) if ($value) $outData = noNumero($value)ltbrgt
$outData = ltsmallgt lttdgt Fin foreach($valeursFiche as $index=gt$value) return $outData
Fin function affIndexation($data)
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
SPIP-XMLdoc 4444
Contenu de la fiche laquo Projet raquo utiliseacutee pour les images ci-dessus
ltDocumentXML TypeDocXML=FicheProjet Handler=FicheXMLgt
ltNomRubriquegtCahiers - CrayonsltNomRubriquegt
ltCourteDescriptiongtOpeacuteration peacutedagogique et humanitaire de collecte de fonds pour offrir agrave une eacutecole du Sud-Est asiatique dumateacuteriel scolairesectNLsectltCourteDescriptiongt
ltObjectifsProjetgtMobiliser les eacutelegraveves pour quils reacutecoltent une somme drsquoargent si modeste soit-elle qursquoils enverront agrave une eacutecoledu Cambodge de Thaiumllande du Vietnam des Philippines ou du LaoshellipsectNLsectsectNLsectCrsquoest pour les eacutecoliers loccasion de deacutecouvrir cette vaste reacutegion de notre planegravete et de mieux connaicirctre des modes devie totalement diffeacuterents du leur sectNLsectsectNLsectTous srsquoinstruisent comprennent mieux ce monde ndash qui leur appartiendra- drsquoautres reacutealisent simplement la chanceqursquoils ont de pouvoir suivre reacuteguliegraverement des cours dans une laquo vraie raquo eacutecolehellipsectNLsectsectNLsectIls restent ensuite souvent en contact avec leurs nouveaux amis par des envois de lettres de photos de leur reacutegion ou desimples dessins Et les petits cambodgiens vietnamiens thaiumllandais laotiens ou philippins eacuteprouveront la mecircme joie agrave deacutecouvrircet eacutetrange univers qursquoest pour eux lrsquoEuropeltObjectifsProjetgt
ltActivitesProjetgtServices rendus fabrication et vente drsquoobjets eacuteconomies reacutealiseacutees sur leur argent de poche tous les moyenssont utiliseacutes pour reacuteunir la somme avec laquelle leurs petits camarades drsquoAsie pourront acheter les fameux cahiers et crayonssectNLsectsectNLsectComment organiser une Opeacuteration Cahiers-Crayons Comment se deacuteroule-t-elle sectNLsect- La dureacutee deux mois environ entre preacuteparation et reacutealisationsectNLsect- Lrsquoanimation preacutesentation drsquoun projet par un repreacutesentant de lrsquoAssociation projection drsquoun diaporama ou drsquoundocumentaire videacuteosectNLsect- Les moyens fourniture de documentation par lrsquoAssociation revues affiches tracts guide du parrainagehellipsectNLsect- Le deacuteroulement motivation des enfants avec lrsquoaide de leurs professeurs Mise en place de lrsquoopeacuteration agrave reacutealisersectNLsect- Quelques temps apregraves lrsquoopeacuteration les enfants recevront des remerciements venant directement desbeacuteneacuteficiairesltActivitesProjetgt
ltPartenairesgt48Enfants du MeacutekongltPartenairesgt
ltSiteWebProjetgthttpwwwenfantsdumekongcomsiteevtoc000001htmltSiteWebProjetgt
ltNomContactgt ltNomContactgt
ltFonctionContactgtltFonctionContactgt
ltEmailContactgt enfantsdumekongcomltEmailContactgt
ltTelContactgtTeacutel - Fax ltTelContactgt
ltVsObjectifsgt1La scolarisation lalphabeacutetisation9Le deacuteveloppementltVsObjectifsgt
ltVsActivitesgt9Collecter des fonds2Informer3Monter un spectacle7ParrainerltVsActivitesgt
ltVsClassesgt1CP et CE2CM36egraveme et 5egraveme44egraveme et 3egraveme5LyceacuteeltVsClassesgt
ltVsPopulationgt1EnfantsltVsPopulationgt
ltVsPorteegt3InternationalltVsPorteegt
lteditDategt2003-06-12 193941lteditDategtltuserNamegtNathalieltuserNamegtltuserEmailgtnathalienavarrojuniorsolidariteorgltuserEmailgt
ltDocumentXMLgt
Top Related