La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Lorganisation et le rôle des répertoires et des fichiers de SPIP Cours Squelettes SPIP SPIP 1.9.2.d François Daniel Giezendanner, SEM (Service Ecoles et.

Présentations similaires


Présentation au sujet: "Lorganisation et le rôle des répertoires et des fichiers de SPIP Cours Squelettes SPIP SPIP 1.9.2.d François Daniel Giezendanner, SEM (Service Ecoles et."— Transcription de la présentation:

1 Lorganisation et le rôle des répertoires et des fichiers de SPIP Cours Squelettes SPIP SPIP d François Daniel Giezendanner, SEM (Service Ecoles et Medias) - DIP - Genève, 5 rue des Gazomètres, 1205 CH-Genève Tél: / , - Tél: / , -http://icp.ge.ch/sem/cms-spip/ Cours « Squelettes SPIP » - Mardi 21 avril et Mardi 5 mai 2009, 8h00-18h00

2 Sources webographiques 1. Où placer les fichiers de squelettes ? 2. Principe général 3. Structure générale de spip 4. Installer SPIP 5. Comment réinstaller SPIP si je narrive plus à accéder à lespace privé ? 6. Étendre SPIP 7. Contribuer au développement de SPIP 8. Les fichiers de connexion de SPIP

3 SPIP d François Daniel Giezendanner, SEM (Service Ecoles et Medias) - DIP - Genève, 4-5 Théodore-de-Bèze, 1205 CH-Genève Tél: / , - Tél: / , -http://icp.ge.ch/sem/cms-spip/ Cours « Squelettes SPIP » - Jeudi 15 et vendredi 16 mai 2008, 8h00-18h00 Squelettes SPIP Moteur SPIP Résumé

4 Cf. : Structure générale de spip Racine du site La racine a été complètement vidée et ne contient pratiquement plus que index.php qui redirige sur spip.php, cest maintenant lunique point dentrée de la partie publique du site. inc-public.php3 est un fichier fantôme pour assurer la compatibilité ascendante, il redirige sur spip.php..htaccess optionnel pour lurl rewriting essentiellement. win_png.htc et rien.gif pour assurer la transparence png avec MSIE Lorganisation des répertoires de SPIP et le rôle de ses fichiers Index.php et spip.php

5 Les fichiers de connexion de SPIP (1/3) Les fichiers de connexion de SPIP à la base de donnée portent des noms différents selon les versions utilisées, et sont également placés à différents endroits dans la structure de SPIP. Le dossier /config/ créé à linstallation contient le script de connection à la base de données, connect.php et le script fixant le mode des fichiers créés par le serveur, chmod.php. Cest aussi ici quon place les options universelles du site, mes_options.php Lorganisation des répertoires de SPIP et le rôle de ses fichiers /config/connect.php

6 Les fichiers de connexion de SPIP (2/3) Version Nom de fichier : inc_connect.php3 Emplacement : ecrire/inc_connect.php3 Version Passage de php3 à php Nom de fichier : inc_connect.php Emplacement : ecrire/inc_connect.php Version Changement de nom et déplacement Nom de fichier : connect.php Emplacement : config/connect.php Lorganisation des répertoires de SPIP et le rôle de ses fichiers /config/connect.php

7 Les fichiers de connexion de SPIP (3/3) Que faire ? Une fois que vous avez trouvé le fichier, modifiez la ligne spip_connect_db de manière à ce quelle ressemble à ceci : Lorganisation des répertoires de SPIP et le rôle de ses fichiers /config/connect.php spip_connect_db(mysql1-vip,,utilisateur,motdepasse,nomdelabase)

8 Lors de linstallation de SPIP En cas de grosse erreur (du genre : vous avez oublié votre propre accès au site fréquent au début...), pour «relancer» cette procédure dinstallation, il faut utiliser votre logiciel FTP et effacer les fichiers suivants : /config/connect.php (ou /ecrire/inc-connect.php ou php3 dans danciennes versions).htacces, sil existe (ou /ecrire/.htaccess dans danciennes versions) La connexion suivante dans le dossier « ecrire » relancera alors la procédure de configuration (en réalité, cest labsence de fichier « connect.php » qui provoque le lancement de cette procédure). Lorganisation des répertoires de SPIP et le rôle de ses fichiers /config/connect.php et.htacces

9 Comment réinstaller SPIP si je narrive plus à accéder à lespace privé ? Avec un client FTP (ou par tout autre moyen daccès à votre espace dhébergement), allez dans le dossier config/ récupérez sur votre poste le fichier connect.php puis effacez-le ou changez son nom. Sil existe, effacez aussi le fichier.htaccess. Puis suivez la procédure de configuration standard en visitant ladresse : « Installer SPIP ». Pour la connexion à la base de données, utilisez au besoin lidentifiant et le mot de passe contenus dans lancien fichier connect.php. Historique : Jusquà SPIP 1.9.1, le fichier à effacer sappelait inc-connect.php3 (ou inc-connect.php) et se trouvait dans le dossier ecrire/. Important : cette procédure de réinstallation ne détruit pas la base de données (articles, rubriques, etc.). Elle sert simplement à recréer un accès administrateur au site, et à générer des fichiers dauthentification corrects. Lorganisation des répertoires de SPIP et le rôle de ses fichiers /config/connect.php et.htacces

10 Lorganisation des répertoires de SPIP et le rôle de ses fichiers La racine dune distribution de SPIP comporte essentiellement : Un répertoire ecrire comportant exclusivement des fichiers interprétables côté serveur (PHP et MySQL) : le moteur de SPIP Selon la manière dont SPIP est installé, dautres répertoires peuvent figurer à la racine mais sont vides à linstallation : ils contiendront les données, temporaires ou permanentes, nécessaires à la vie du site. Un fichier spip.php, alias index.php, gérant la compatibilité avec les anciennes versions, chargeant le fichier dinitialisation ecrire/inc_version.php et passant immédiatement la main au script principal ecrire/public.php ; Un répertoire dist comportant exclusivement des fichiers interprétables côté client (HTML, Javascript, feuilles de style, images de différents formats) ainsi que les patrons de mise en page nommés squelettes. Ces squelettes sont interprétés des deux côtés : il sagit de fichiers composés dun format MIME complété de quelques directives SPIP, directives traitées côté serveur afin denvoyer au client un texte purement MIME (la plupart du temps du HTML, mais aussi du RSS, du SVG, du ICS etc).

11 Lorganisation des répertoires de SPIP et le rôle de ses fichiers Un répertoire ecrire comportant exclusivement des fichiers interprétables côté serveur (PHP et MySQL) : le moteur de SPIP Un fichier spip.php, alias index.php, gérant la compatibilité avec les anciennes versions, chargeant le fichier dinitialisation ecrire/inc_version.php et passant immédiatement la main au script principal ecrire/public.php ; Un répertoire dist comportant exclusivement des fichiers interprétables côté client (HTML, Javascript, feuilles de style, images de différents formats) ainsi que les patrons de mise en page nommés squelettes. Ces squelettes sont interprétés des deux côtés : il sagit de fichiers composés dun format MIME complété de quelques directives SPIP, directives traitées côté serveur afin denvoyer au client un texte purement MIME (la plupart du temps du HTML, mais aussi du RSS, du SVG, du ICS etc). SPIP d

12 Lorganisation des répertoires de SPIP et le rôle de ses fichiers Depuis SPIP 1.8, les squelettes de la distribution cest-à-dire ceux fournis en standard à linstallation de SPIP sont regroupés dans le répertoire dist/. Ces fichiers contiennent les informations sur la mise en page par défaut du site et ne doivent pas être modifiés. Vous pouvez examiner le contenu de ce répertoire et partir de ce jeu de squelettes pour adapter la mise en page à vos besoins. Il ne faut surtout pas modifier les fichiers du répertoire dist/, sinon vous risqueriez de perdre toutes vos modifications à chaque mise à jour de SPIP ! Pour éviter cela, faites une copie des fichiers que vous souhaitez modifier, et placez-les dans un autre répertoire, par exemple squelettes/. Où placer les fichiers de squelettes ?

13 dist de SPIP192d Rôles des répertoires de dist et de ses fichiers

14

15

16 dist de SPIP192d Rôles des répertoires de dist et de ses fichiers habillage.css spip_style_visible.css spip_style_print.css style_prive_defaut.css spip_admin.css agenda.css spip_style_invisible.css spip_style.css impression.css habillage.css spip_style_visible.css spip_style_print.css style_prive_defaut.css spip_admin.css agenda.css spip_style_invisible.css spip_style.css impression.css

17 dist de SPIP192d Rôles des répertoires de dist et de ses fichiers 404.html agenda.html agenda_jour.html agenda_mois.html agenda_periode.html agenda_semaine.html article.html auteur.html backend.html backend-breves.html breve.html distrib.html forum.html ical.html jquery.js.html login.html mot.html nouveautes.html plan.html recherche.html rubrique.html site.html sommaire.html sommaire_texte.html style_prive.html

18 dist de SPIP192d Rôles des répertoires de dist et de ses fichiers inc-entete.html inc-forum.html inc-head.html inc-petition.html inc-pied.html inc-rss-item.html inc-rubriques.html inc-entete.html inc-forum.html inc-head.html inc-petition.html inc-pied.html inc-rss-item.html inc-rubriques.html

19 dist de SPIP192d Rôles des répertoires de dist et de ses fichiers spip.png feed.png puce_rtl.gif puce.gif favicon.ico spip.png feed.png puce_rtl.gif puce.gif favicon.ico

20 Lorganisation des répertoires de SPIP et le rôle de ses fichiers Depuis SPIP 1.8, les squelettes personnalisés doivent être rangés dans un répertoire nommé squelettes/ (attention au « s » final !), que vous créerez à la racine de votre site SPIP. Que vous souhaitiez installer un jeu complet de squelettes (pris sur SPIP - Contrib ou ailleurs), ou apporter une légère modification aux squelettes par défaut, placez vos squelettes dans ce répertoire. Ainsi, un utilisateur qui veut créer sa propre mise en page, développera ses propres fichiers article.html, rubrique.html, etc. dans le répertoire squelettes/. Notez bien quil nest pas indispensable de placer un jeu de squelettes complet dans ce répertoire. Pour afficher les pages du site, SPIP cherche les squelettes prioritairement dans le dossier squelettes/ ; si SPIP ny trouve pas un fichier.html qui lui est nécessaire, il ira chercher celui de la distribution dans le dossier dist/. Ainsi, si vous navez placé quun seul fichier dans le dossier squelettes, par exemple article.html, SPIP utilisera ce squelette pour afficher les articles, et ceux de la dist pour toutes les autres pages du site. Où placer les fichiers de squelettes ?

21 Lorganisation des répertoires de SPIP et le rôle de ses fichiers Le dossier squelettes/ est destiné à recevoir tous les fichiers nécessaires à la mise en page dun site. On y rangera donc : Les squelettes, cest-à-dire les fichiers.html avec du code SPIP. Les fichiers inclus dans les squelettes (ainsi que, pour les versions antérieures à SPIP 1.9, leur fichier php3 correspondant) et les modèles (depuis SPIP 1.9). Les formulaires modifiés, de préférence dans un sous-répertoire formulaires/ Les feuilles de style CSS qui produisent lhabillage graphique ; les personnaliser permet en effet de varier, parfois spectaculairement, lhabillage dun site sans intervenir dans les squelettes. Voir : « Mettez-y votre style ! ». Les images utilisées dans les squelettes. Le fichier mes_fonctions.php contenant les filtres et variables de personnalisation propres à ce jeu de squelettes. Les fichiers javascripts. Les fichiers de langue personnalisés (cf. : « Internationaliser les squelettes », méthode des fichiers de langues), de préférence dans un sous-répertoire lang/. Etc... Où placer les fichiers de squelettes ?

22 Lorganisation des répertoires de SPIP et le rôle de ses fichiers Utiliser un autre dossier de squelettes Depuis SPIP 1.5 il est possible de ranger les squelettes dans un répertoire portant le nom de votrechoix, en le déclarant dans le fichier ecrire/mes_options.php, avec la variable de personnalisation $dossier_squelettes, comme expliqué dans la documentation correspondante. SPIP ira chercher les squelettes en priorité dans le répertoire ainsi déclaré. Ceci vous permet, par exemple, dessayer un nouveau jeu de squelettes sans écraser lancien, ou de gérer dynamiquement plusieurs jeux de squelettes. Où placer les fichiers de squelettes ?

23 Lorganisation des répertoires de SPIP et le rôle de ses fichiers Utiliser et/ou créer des squelettes en plugins Depuis SPIP 1.9 il est possible de de créer des squelettes en plugins. Ils sont donc placés dans des répertoires à leur nom (SARKA, Multi-saisons,...), eux-mêmes placés dans le répertoire plugins. Où placer les fichiers de squelettes ?

24 Lorganisation des répertoires de SPIP et le rôle de ses fichiers Utiliser le plugin switcher de squelettes Le Switcher de squelettes Installer le Switcher de squelettes Ce plugin ajoute un formulaire à liste déroulante en javascript sur tous les squelettes de la partie publique du site, permettant de basculer entre les squelettes dist, ceux dun dossier squelettes, et… et lensemble des squelettes contenus dans le répertoire nommé squelettes-test où chaque jeu de squelettes doit être dans un sous-répertoire. Où placer les fichiers de squelettes ?

25 Lorganisation des répertoires de SPIP et le rôle de ses fichiers Utiliser le plugin switcher de squelettes... Pour personnaliser le style par défaut du formulaire, allez dans le fichier switcher_fonctions.php. Pour personnaliser le nom du repertoire de squelettes alternatif, allez dans inc/switcher_config.php et indiquez le nom du répertoire dans : $repertoire_squelettes_alternatifs ='ce_que_vous_voulez'; De même, on peut spécifier que seuls les administrateurs du site auront accès au basculement de squelette en mettant à true la variable suivante, toujours dans inc/switcher_config.php : $afficherSeulementPourLesAdmins=TRUE; Où placer les fichiers de squelettes ?

26 Lorganisation des répertoires de SPIP et le rôle de ses fichiers ACCESSIBILITE Dossier oo : Pour permettre l'accès aux squelettes en version texte de votre site. Ce dossier contient essentiellement un index qui renvoie dans le système standard. Ce type de squelettes est particulièrement recommandé si vous souhaitez faciliter l'accès de votre site aux personnes malvoyantes. Par convention, cette page est accessible par l'adresse oo (deux fois la lettre « o » minuscule), par exemple : Où placer les fichiers de squelettes ?

27 Lorganisation des répertoires de SPIP et le rôle de ses fichiers Priorité des dossiers de squelettes Soyons plus exhaustifs et résumons. Grosso modo, lorsque SPIP doit utiliser un fichier, il le cherche dans différents répertoires dans lordre suivant : 1. Dans la « liste de dossiers » désignés dans la variable $dossier_squelettes, si celle-ci est définie ; 2. Dans le dossier squelettes/ situé à a racine du site ; 3. Puis (depuis SPIP 1.9) dans la « liste des dossiers de plugins installés » dans la variable $plugins ; 4. A la racine du site ; 5. Dans le répertoire dist/ ; 6. Et enfin dans le répertoire ecrire/. « Grosso modo », car à cela sajoutent quelques subtilités, dont un ordre de priorité par fichier de squelette, qui permet des variantes plus fines : par rubrique, par branche ou par langue. Où placer les fichiers de squelettes ?

28 Lorganisation des répertoires de SPIP et le rôle de ses fichiers 81 Type de documents que lon peut télécharger Le répertoire IMG contient les images et documents publiés par les auteurs, ce dossier doit faire l'objet d'une sauvegarde régulière en même temps que celle de la base de données. La table « types_documents » est écrite dans le fichier /ecrire/base/typedoc.php. Elle donne la liste des 81 types documents que lon peut télécharger dans SPIP, à savoir : jpg, png, gif, bmp, tif, aiff, asf, avi, flv, mid, mng, mka, mkv, mov, mp3, mp4, mpg, ogg, qt, ra, ram, rm, svg, swf, wav, wmv, abw, ai, bz2, bin, blend, c, css, csv, deb, doc, djvu, dvi, eps, gz, h, html, kml, kmz, pas, pdf, pgn, ppt, ps, psd, rpm, rtf, sdd, sdw, sit, sxc, sxi, sxw, tex, tgz, torrent, ttf, txt, xcf, xls, xml, zip, odt, ods, odp, odg, odc, odf, odb, odi, odm, ott, ots, otp, otg, Type de documents que lon peut télécharger Le répertoire IMG contient les images et documents publiés par les auteurs, ce dossier doit faire l'objet d'une sauvegarde régulière en même temps que celle de la base de données. La table « types_documents » est écrite dans le fichier /ecrire/base/typedoc.php. Elle donne la liste des 81 types documents que lon peut télécharger dans SPIP, à savoir : jpg, png, gif, bmp, tif, aiff, asf, avi, flv, mid, mng, mka, mkv, mov, mp3, mp4, mpg, ogg, qt, ra, ram, rm, svg, swf, wav, wmv, abw, ai, bz2, bin, blend, c, css, csv, deb, doc, djvu, dvi, eps, gz, h, html, kml, kmz, pas, pdf, pgn, ppt, ps, psd, rpm, rtf, sdd, sdw, sit, sxc, sxi, sxw, tex, tgz, torrent, ttf, txt, xcf, xls, xml, zip, odt, ods, odp, odg, odc, odf, odb, odi, odm, ott, ots, otp, otg,... Où sont placés les documents (à afficher, à télécharger ?

29 Dans le dossier tmp/ sont stockés tous les fichiers temporaires : /cache/ : de caches des pages html affichées pour le site; /dump/ : de sauvegarde de la base de données (import /export); /upload/ : des arborescences de documents disponibles dans l espace privé. /visites/ : relatifs aux statistiques de consultation; *.log : de logs d exécution du site. Le dossier tmp/ peut être vidé à tout moment. Dans le dossier tmp/ sont stockés tous les fichiers temporaires : /cache/ : de caches des pages html affichées pour le site; /dump/ : de sauvegarde de la base de données (import /export); /upload/ : des arborescences de documents disponibles dans l espace privé. /visites/ : relatifs aux statistiques de consultation; *.log : de logs d exécution du site. Le dossier tmp/ peut être vidé à tout moment. Roles des répertoires et fichiers de tmp/

30 Le principe de fonctionnement du cache, de manière simplifiée Par défaut, une page est considérée comme trop vieille au bout de 3600 secondes Une fois que vous aurez compris le langage SPIP, vous pourrez modifier ce délai en vous servant de la balise #CACHE (cf. plus loin).

31 Le principe de fonctionnement du cache, de manière simplifiée Le système de cache permet : de stocker chaque page temporairement et ainsi déviter de provoquer des appels à la base de données à chaque visite.

32 tmp/cache/ est le dossier où sont placés les fichiers créés par le moteur SPIP pour le cache selon l'algorithme précédemment décrit et selon un délai fixé par linstruction #CACHE{86400} (86400 s) placée au début de chaque fichier html du squelette (ici s = 24 h x 3600 s/h). tmp/cache/ est le dossier où sont placés les fichiers créés par le moteur SPIP pour le cache selon l'algorithme précédemment décrit et selon un délai fixé par linstruction #CACHE{86400} (86400 s) placée au début de chaque fichier html du squelette (ici s = 24 h x 3600 s/h). Le principe de fonctionnement du cache, de manière simplifiée On peut aussi écrire linstruction (une balise SPIP) : #CACHE{24 * 3600} ou #CACHE{3 * 24 * 3600} placée au début de chaque squelette rubrique.html, article.html, breve.html, etc. On peut aussi écrire linstruction (une balise SPIP) : #CACHE{24 * 3600} ou #CACHE{3 * 24 * 3600} placée au début de chaque squelette rubrique.html, article.html, breve.html, etc. /cache/

33 Le principe de fonctionnement du cache, de manière simplifiée Vider le cache manuellement : Voir en ligne Le système de cache « construit » et stocke chaque page à des intervalles réguliers fixés par linstruction #CACHE{86400} dans le répertoire tmp/cache/. Il évite ainsi son recalcul à chaque visite d'un utilisateur : La base de données n'est pas sollicitée à chaque visite. La charge sur le serveur est réduite et la vitesse d'affichage des pages très largement accélérée. Le site sous SPIP reste consultable même lorsque la base mySQL est en panne. Le dossier tmp/cache/ peut être vidé à tout moment.

34 Rôles du répertoire ecrire et de ses sous-répertoires Le répertoire ecrire comporte plusieurs sous-répertoires composés de fichiers PHP définissant des fonctions et procédant éventuellement, mais rarement, à une initialisation lors de leur chargement (ces exceptions sont appelées à disparaître).

35 Rôles du répertoire ecrire et de ses sous-répertoires Ce dossier contient maintenant lensemble des fichiers interprétables côté serveur (PHP et MySQL) et ce, aussi bien pour le coté "public" (sous-dossier public/) que pour le coté "privé". (Cf.: Structure générale de spip Le nom de ce dossier est historique, cétait auparavant là où on trouvait le code permettant de modifier le contenu du site. Paradoxalement, cest un dossier maintenant immuable, on "écrira" plus jamais dedans. Dans une installation normale, il ne contient que les scripts livrés par la distribution, il est quasi impératif de ne pas y faire de modification. Son script index.php est le point dentrée de ecrire/, la partie privée du site.

36 Le fichier ecrire/inc_version.php initialise les constantes et les variables globales nécessaires au fonctionnement de SPIP, notamment celles assurant sa portabilité sur les différentes plates-formes. Assez tôt lors de son chargement, il inclut le fichier inc/utils.php, où figurent les fonctions indispensables à SPIP, un fichier hors distribution nommé mes_options.php permettant de moduler cette initialisation sans avoir à modifier le fichier inc_version.php. Rôles du répertoire ecrire et de ses sous-répertoires

37 Le fichier ecrire/public.php, appelé par spip.php, a pour rôle essentiel de délivrer les pages de lespace public, commandées lorsque la requête HTTP comporte (après réécriture éventuelle) le paramètre page. Ce script applique alors le squelette ayant pour nom la valeur de ce paramètre. Il envoie les en-têtes HTTP et le contenu obtenus, gère leurs éventuelles erreurs et lance les tâches de fond à laide de la fonction cron. Contribuer à lespace public de SPIP consiste donc simplement à fournir de nouveaux squelettes, avec éventuellement leurs feuilles de style et leurs images. Rôles du répertoire ecrire et de ses sous-répertoires

38 Le fichier index.php est le fichier central daccès aux formulaires de lespace privé. Il authentifie linternaute, initialise ses données personnelles et applique la fonction charger_fonction à la valeur v du paramètre exec. Cette application a pour effet de charger le fichier homonyme du répertoire exec, dont la fonction principale exec_v_dist est alors invoquée. Celle-ci a la charge de délivrer lintégralité du flux de sortie, y compris les en-têtes HTTP. Il est donc possible détendre Spip simplement en rajoutant un fichier PHP dans un sous répertoire nommé exec dun répertoire figurant dans SPIP_PATH. Rôles du répertoire ecrire et de ses sous-répertoires

39 Le répertoire exec contient exclusivement les fichiers définissant les fonctions directement invocables par le paramètre dURL exec. Le code PHP de ces fichiers ne doit jamais accéder en écriture à la base de données (les exceptions à cette règle sont en voie de disparition). A linverse, il y accède abondamment en lecture afin de vérifier les droits du demandeur et déterminer les données à visualiser. Si lon veut voir SPIP sous larchétype Modèle-Vue- Controleur, les fichiers de exec remplissent le rôle de Controleur. Si lon veut voir SPIP sous larchétype (Print(Eval(Read))) de Lisp, cest la partie Read. A terme, ce répertoire devrait devenir un répertoire de squelettes. Il est demandé aux nouvelles contributions de Spip de penser à cet objectif lors de leur rédactions. Rôles du répertoire ecrire et de ses sous-répertoires

40 Le répertoire action, dont il a déjà été question, contient essentiellement les scripts accédant en écriture à la base de données. Si lon veut voir SPIP sous larchétype Modèle-Vue- Controleur, les fichiers de action remplissent le rôle de Modèle. Si lon veut voir SPIP sous larchétype (Print (Eval(Read))) de Lisp, cest la partie Eval. Là encore, contribuer à SPIP consiste à écrire de tels scripts et à les invoquer par des formulaires construits avec la fonction generer_action_auteur assurant la sécurisation de laccès à ces scripts,... Rôles du répertoire ecrire et de ses sous-répertoires

41 Le répertoire inc, le plus volumineux, contient essentiellement les fonctions construisant les pages de lespace privé renvoyées au client, ces fonctions devant être à terme les filtres utilisés par les fichiers de exec quand ils seront des squelettes. Si lon veut voir SPIP sous larchétype Modèle-Vue-Controleur, les fichiers de inc remplissent le rôle de Vue. Si lon veut voir SPIP sous larchétype (Print(Eval(Read))) de Lisp, cest la partie Print. Toutefois ce répertoire contient également beaucoup de fonctions relevant plutot du Controle et devra donc être réorganisé. La plupart des fichiers de inc sont chargés par lintermédiaire de charger_fonction, et ce sera le cas de tous à terme. Aucune des fonctions de ce répertoire nest censée utiliser echo. Les contributions à SPIP sont appelées à respecter ces règles dès à présent. Rôles du répertoire ecrire et de ses sous-répertoires

42 Le répertoire install contient exclusivement les fonctions nécessaires à linstallation de SPIP. Chaque étape peut-être surchargée ou complétée par dautres, la fonction principale de exec/install.php utilisant ce répertoire selon le même principe que ecrire/index.php avec le répertoire exec. Rôles du répertoire ecrire et de ses sous-répertoires

43 Le répertoire urls contient des fichiers définissant chacun le même jeu de fonctions de réécriture dURL. Il sagit des fonctions calculant, à partir dun index numérique dans une table de la base de données, un signet plus facile à lire et écrire que lappel du script PHP effectivement opéré par le serveur HTTP pour cet index et cette table. Là encore, il suffit de rajouter un fichier dans ce répertoire pour obtenir un nouveau jeu, dont le nom sera affecté à la globale type_urls. Rôles du répertoire ecrire et de ses sous-répertoires

44 Le répertoire lang contient exclusivement des fichiers de données, tableaux indiquant la traduction, pour toutes les langues connues de SPIP, de tous les arguments que la fonction _T, définie dans inc/utils.php, est susceptible de recevoir. Les fichiers sont chargés exclusivement par les fonctions de inc/lang.php. Traduire les fichiers de référence *fr* en donnant un nom conventionnel aux fichiers obtenus suffit à déclarer une nouvelle langue à SPIP. Rôles du répertoire ecrire et de ses sous-répertoires

45 Le répertoire charset contient lui aussi exclusivement des fichiers de données, tableaux permettant de passer dun codage de caractères à un autre (utf, iso, ascii, entités html etc). Ils sont lus exclusivement par les fonctions de inc/charsets.php. Il suffit là encore de rajouter un fichier pour disposer dun nouveau codage, mais SPIP propose tous ceux couramment utilisés, aussi un telle intervention est rarissime. Rôles du répertoire ecrire et de ses sous-répertoires

46 Le répertoire base contient les fonctions dinterfaces entre PHP et la base MySQL installée. Les contributions possibles sont essentiellement le portage vers dautres serveurs de base de données. SPIP na pas été prévu pour cela au départ, aussi linterface pour de telles contributions est encore lacunaire. On regardera néanmoins, malgré son incomplétude, le fichier générique abstract_sql.php, et son application à MySQL dans db_mysql.php si lon veut tenter laventure (des portages partiels ont été réalisés ainsi). Ne doit évidemment figurer aucun code MIME dans ce répertoire. Rôles du répertoire ecrire et de ses sous-répertoires

47 Le répertoire balise contient les fichiers PHP associés aux balises dynamiques de SPIP. Leur nom est homonyme du squelette de dist/formulaires. Compléter lespace public de SPIP par un formulaire F consiste à créer un fichier F.html dans son SPIP_PATH et un fichier F.php dans un sous-répertoire balise de son SPIP_PATH. Le rôle de ce fichier PHP est de réceptionner les saisies demandées par ce formulaire, et éventuellement de ré-afficher celui-ci pour complément en cas de saisies invalides. Cest sans doute le type de contribution à lespace public la plus difficile à réaliser, car la mécanique sous-jacente exige deux passes dexécution de PHP dont il faut bien comprendre les rôles respectifs. Avant que ce mécanisme nexiste, la stratégie de développement de formulaire consistait à écrire des squelettes comportant des instructions PHP. Il est toujours possible de le faire, mais le résultat sera peu efficace car jamais mis en cache ; et il ne dispense pas de comprendre les deux passes de PHP intrinsèques au phénomène. Rôles du répertoire ecrire et de ses sous-répertoires

48 Le répertoire public contient le compilateur des squelettes. Cest une partie du code assez compliquée, mais depuis SPIP 1.8 elle bénéficie dune interface de programmation qui rend ce compilateur totalement extensible sans exiger den comprendre tous les détails. La description la moins incomplète est ici. Rôles du répertoire ecrire et de ses sous-répertoires

49 Le répertoire safehtml est en fait une bibliothèque indépendante de SPIP, fournissant des utilitaires de sécurisation des pages scriptables. Pour contribuer à cette partie, remonter directement à son site. Rôles du répertoire ecrire et de ses sous-répertoires

50 Dernier point : la plupart des fichiers de SPIP sont utilisés via charger_fonction qui charge un fichier et appelle sa fonction homonyme censée y être définie. Il sensuit que le nom dun fichier PHP doit être composé exclusivement de caractères acceptables pour un nom de fonction PHP : on évitera donc le signe moins, le point etc. Rôles du répertoire ecrire et de ses sous-répertoires


Télécharger ppt "Lorganisation et le rôle des répertoires et des fichiers de SPIP Cours Squelettes SPIP SPIP 1.9.2.d François Daniel Giezendanner, SEM (Service Ecoles et."

Présentations similaires


Annonces Google