SPIP

33
SPIP (www.spip.net) Saïd Radhouani Université de Genève mars 2005

description

Content Management System

Transcript of SPIP

Page 1: SPIP

SPIP (www.spip.net)

Saïd RadhouaniUniversité de Genèvemars 2005

Page 2: SPIP

2

SPIP - Développement collaboratif de sites

Système de Publication sur Internet

Ensemble de fichiers, installés sur votre compte Web Permettent de :

Gérer un site à plusieurs, Mettre en page des articles sans avoir à taper du code HTML, Modifier très facilement la structure d'un site avec un simple

navigateur

Avec un simple navigateur, SPIP permet de “fabriquer” et de tenir un site à jour, grâce à une interface très simple d’utilisation

Page 3: SPIP

3

SPIP - Développement collaboratif de sites

SPIP permet de :

Gérer un site Web de type magazine => composé d’articles et de brèves insérés dans une arborescence de rubriques imbriquées les unes dans les autres

Séparer trois types de tâches : la composition graphique la contribution rédactionnelle via proposition d’articles et

de brèves la gestion éditoriale du site (tâche qui comprend

l’organisation des rubriques, la validation des articles proposés...)

Page 4: SPIP

4

SPIP - Séparation des tâches

Webmaster aspect graphique des pages HTML appelées "squelettes" modification de pages "squelettes" modification de feuilles de style CSS

Éditeurs : organisation du site création/modification de la hiérarchie des rubriques validation des articles

Rédacteurs : rédaction des pages à l’intérieur du site utilisent la hiérarchie de rubriques mais ne peuvent

pas la modifier

Page 5: SPIP

5

Principaux éléments de SPIP - Rubriques

Une rubrique : espace destiné à accueillir des articles, des brèves (équivalent d'un dossier dans le système de fichiers)

Structure de type hiérarchique : rubrique --> sous-rubriques, etc. Structure des rubriques => l’ossature du site elle détermine :

l’interface; le mode de navigation; les relations entre articles et entre brèves...

Rubriques secteurs (ex. 1 & 2)

Page 6: SPIP

6

Principaux éléments de SPIP - Rubriques

pas de structures circulaires -> simplicité d’utilisation

Seules les rubriques actives (qui contiennent au moins un article publié) sont affichées sur le site public

On peut attacher un forum à chaque rubrique

Seuls les administrateurs peuvent créer, modifier ou supprimer des rubriques

Page 7: SPIP

7

Principaux éléments de SPIP - Articles

Composé de plusieurs éléments définits au moment de l’administration du site : un titre, sous-titre, descriptif, text principal, etc...

Équivalent d'une page web

Différents statuts possibles : en cours de rédaction proposé à la publication publié : l’article est publié sur le site public refusé : l’article n’est pas publié

Un article ne peut se trouver que dans une seule rubrique à la fois

On peut attacher un forum à chaque article

Page 8: SPIP

8

Principaux éléments de SPIP - Brèves

Les brèves : des «articles» de moindre importance que les véritables articles

Méthode simple et rapide de publication

Constituées d’un nombre très réduit d’informations : un titre, un texte et un lien hypertexte => idéal pour le suivi de l’actualité, une revue de presse en

ligne, etc.

Gestion plus sommaire que les articles : non signées mise en place très simple : interface réduite, validation d’un

clic

On peut attacher un forum à chaque brève

Page 9: SPIP

9

Position des brèves dans la structure du site

Eviter que les brèves ne fassent double-emploi avec les articles => intégrer uniquement dans les rubriques secteurs

Exemple: brèves dans les rubriques 1 et 2 pas dans leurs sous-rubriques (contrairement aux articles).

=> la présentation de la page des brèves se fait directement en fonction de ces grandes rubriques

Page 10: SPIP

10

Principaux éléments de SPIP – Forums

Par défaut, modérés à postériori : chaque message envoyé par un utilisateur du site est immédiatement publié

Administrateurs : interface qui permet de lire les derniers messages postés et, éventuellement, de les supprimer

Administrateur : modifier le comportement des forums en choisissant : l’absence totale de forums sur son site des forums modérés à priori des forums sur abonnement

Les messages supprimés ne sont pas détruits de la base : mis de côté + adresse IP de l’expéditeur + date et heure de l’envoi

+ forum à usage interne entre les différents auteurs autorisés à écrire

Page 11: SPIP

11

Principaux éléments de SPIP – mots clés

Limitation de SPIP : structure hiérarchique --> un article ne peut appartenir qu’à une seule rubrique

mots-clés offrent => moyen de navigation transversal à l’intérieur du site

Associer des mots-clés à un article => navigation entre différents articles portant sur les mêmes thèmes (en créant des liens)

Les mots-clés n’ont réellement d’intérêt que si chaque mot est associé à plusieurs articles, afin de pouvoir les relier

Seuls les administrateurs peuvent : créer et modifier les mots-clés désactiver l’utilisation des mots-clés (interface « configuration précise)

Si structure des rubriques bien conçue => pas de mots-clés (articles de thèmes similaires se trouvent dans les mêmes rubriques)

Page 12: SPIP

12

Les sites référencés

Un système complet permettant de gérer des listes de liens vers d’autres sites

Il permet de : regrouper ces listes dans des rubriques (avec des articles), ou dans

des rubriques spécifiques dédiées à cet usage ~~ annuaire de liens) attribuer un logo à chaque site attribuer des mots-clés pour chaque site référencé ajouter un descriptif personnalisé pour chaque site

Référencer un nouveau site Bouton « référencer un nouveau site » dans la page de chaque rubrique Méthode «traditionnelle» => indiquer le nom du site, URL, une description

Référencement rapide : indiquer l’URL de la page à référencer et de valider SPIP va récupérer automatiquement le titre de la page et un descriptif

Page 13: SPIP

13

Principaux éléments de SPIP – Sites Syndiqués

Fabriquer automatiquement un fichier standardisé indiquant les dernières publications du site (backend)

Aller récupérer de tels fichiers sur le réseau, et de les inclure dans sa propre navigation

=> Indiquer sur son propre site des listes des dernières publications d’autres sites Lorsque ces sites sont mis à jour, les nouveautés

apparaissent automatiquement sur votre propre site

Les sites syndiqués sont indiqués dans les rubriques (de façon à afficher, à côté de ses propres articles, des articles tirés d’autres sites ayant une thématique similaire)

Demo : http://www.davduf.net/backend.php3

Page 14: SPIP

14

Fonctionnement du site public

Contenu d’un site : stocké dans une base de données MySQL

Présenter le contenu aux visiteurs => il faut : récupérer les données de la base, les organiser les mettre en page, afin de délivrer une page HTML

Mise en page : effectuée au moyen de squelettes qui contiennent des instructions permettant d’indiquer où et comment se placent les données dans la page

Système de cache => stocker chaque page + éviter de provoquer des appels à la base de données à chaque visite

Page 15: SPIP

15

Fonctionnement du site public

Système de publication automatisé => ne pas redéfinir une interface différente en HTML pour chaque page isolée ex. tous les articles bénéficieront de la même interface, le

système placera chaque fois des données différentes

Pour chaque type de document =>deux fichiers : .php3 et .html

Répertoire principal de SPIP => les couples : article.php3 / article.html, rubrique.php3 / rubrique.html, etc.

Ces fichiers peuvent être modifiés et d'autres couples peuvent être créés

Page 16: SPIP

16

Modification de l'apparence du site public

Deux possibilités :

Modifier les feuilles de styles tout en gardant la même structure de pages

ET/OU

Modifier les squelettes pour créer une nouvelle structure de site

Page 17: SPIP

17

Feuilles de style

Les feuilles de styles par défaut sont :

spip_style.cssstyles de basehttp://www.spip.net/fr_article1177.html

typographie.csspolices de caractères, alignement du texte

habillage.cssmise en page des éléments : marges, bordures, éléments

impression.cssutilisée pour l'impression ex. lien hypertexte -> désactiver la couleur + afficher l’URL à la suite

du lien

Page 18: SPIP

18

Squelettes

Leur rôle ~ « modèles » pour la gestion de la mise en page

Des fichiers à l’extension .html

Chaque fichier est associé à un type de page différent : un squelette pour le sommaire, un pour l’affichage des articles, un pour l’affichage des rubriques, etc.

Un squelette contient : du HTML standard définissant l’habillage de la page, Des balises spécifiques à SPIP pour définir quelles

informations vont venir « habiter » cet habillage

Page 19: SPIP

19

Squelettes

Avant d’utiliser un squelette, il faut pouvoir l’appeler : créer à la racine du site un fichier, par exemple "tutoriel.php3"

contenant les lignes suivantes :<?$fond = "tutoriel";$delais = 0;include "inc-public.php3";?>

=> fixer deux variables ($fond et $delais) + appeler le fichier qui déclenche le fonctionnement de SPIP (inc-public.php3)

$fond : nom du fichier qui contient la description de la mise en page (le squelette) Le fichier de description sera contenu dans tutoriel.html (dans $fond,

on n’indique pas la terminaison .html)

$delais : l’âge maximum pour l’utilisation du fichier stocké en CACHE (fixé en secondes)

Page 20: SPIP

20

Squelettes

La base de données : toutes les informations sur les articles, les rubriques, les auteurs, etc.

"fabriquer" le site => extraire certains éléments de cette base à l'aide de boucles, de balises, de critères de sélection et de filtres

Un squelette de page contient : du code HTML des références (appelées balises) aux colonnes des tables de

la base de données

Page 21: SPIP

21

Exemple

Archive.html => HTML : varie en fonction du "contenu" que vous souhaitez afficher

<html><title>Mes archives</title><head></head><body>

<!-- ici s'affiche mes archives --><BOUCLE_archi(ARTICLES){tout}{par titre}>[(#DATE|affdate)<br />]<a href=#URL_ARTICLE">[(#TITRE)<br />]</a></BOUCLE_archi>

</body></html>

=> Afficher "tout" les articles "publiés", triés par date, avec un lien qui mène directement sur la page de l'article dans l'ensemble de votre contenu

Archive.php3 => php: varie en fonction du $fond de son double en .html

<?php$fond = "archive";$delais = 24 * 3600;include ("inc-public.php3");?>

=> Afficher le "$fond" de son double (archive.html)

Page 22: SPIP

22

Boucles

La notion de base du langage de SPIP est la boucle

syntaxe :

<BOUCLEn(TYPE){critère1}{critère2}...{critèrex}>Code HTML + balises SPIP</BOUCLEn>

TYPE : type d’éléments qu'on veut récupérer correspondre obligatoirement à l’un des types prévus dans SPIP

(ARTICLES, RUBRIQUES, AUTEURS, BREVES, etc.)

Page 23: SPIP

23

Boucles

Exemple de fichier squelette « tutoriel.html » :

<BOUCLE_article(ARTICLES){id_article=2}>#TITRE</BOUCLE_article>

Pour l'appeler, utiliser l'url http://nom_site/tutoriel.php3

SPIP va chercher le titre de l’article 2 de la base, et l’ inscrir à la place de #TITRE

Page 24: SPIP

24

Boucles

En ajoutant du HTML et d’autres balises SPIP, on obtient une page plus riche

<BOUCLE_article(ARTICLES){id_article=2}><H1>#TITRE</H1><P>#CHAPO</P><P>écrit par: #LESAUTEURS</P><P align=justify>#TEXTE</BOUCLE_article>

Page 25: SPIP

25

Boucles

Dans l'exemple précédent, le paramètre (numéro d'article) était "codé en dur". Pour faire un squelette qui fonctionne pour n'importe quel article : On remplace {id_article=2} par {id_article}

=> Appel avec une URL qui précise la valeur du paramètre : http://nom_site/tutoriel.php3?id_article=2

Page 26: SPIP

26

Boucles

Boucle faisant la liste de tous les articles :

<BOUCLE_article(ARTICLES)>#TITRE<BR></BOUCLE_article>

Boucle faisant la liste des 10 premiers articles :

<BOUCLE_article(ARTICLES){1,10}>#TITRE<BR></BOUCLE_article>

Page 27: SPIP

27

Boucle avec critères multiples

Afficher les 10 articles les plus récents appartenant à une rubrique :<BOUCLE_article(ARTICLES){id_rubrique}{par date}{inverse}

{1,10}><a href=#URL_ARTICLE>#TITRE</A><BR></BOUCLE_article>

Appel avec l'URL http://nom_site/tutoriel.php3?id_rubrique=1

{id_rubrique} : ne prend que les articles appartenant à la rubrique id_rubrique

{par date}{inverse} : tri par date dans l’ordre décroissant . . .

{1,10} : . . . et prend les 10 premiers résultats

<a href=#URL_ARTICLE>#TITRE</A> va écrire non seulement le titre de l’article mais en plus créer un lien vers cet article

Page 28: SPIP

28

Boucles – éléments conditionnels

<Bn> Code HTML optionnel avant<BOUCLEn(TYPE){critère1}{critère2}...{critèrex}> Code HTML + balises SPIP </BOUCLEn> Code HTML optionnel après</Bn> Code HTML alternatif<//Bn>

Le code optionnel avant n’est affiché que si la boucle contient au moins une réponse

Le code optionnel après n’est affiché que si la boucle contient au moins une réponse

Le code alternatif est affiché à la place de la boucle (et donc également à la place des codes optionnels avant et après) si la boucle n’a trouvé aucune réponse

Page 29: SPIP

29

Boucles imbriquées

Afficher, sur la même page, les éléments de la rubrique elle-même et une liste des articles

<BOUCLE_rubrique(RUBRIQUES){id_rubrique}><H1>#TITRE</H1>

<BOUCLE_article(ARTICLES){id_rubrique}{par date}{inverse}{0,10}>

<a href=#URL_ARTICLE>#TITRE</A><BR></BOUCLE_article>

#TEXTE|justifier</BOUCLE_rubrique>

Appel avec http://nom_site/tutoriel.php3?id_rubrique=1

Page 30: SPIP

30

Boucles – balises et critères de sélection

Pour une liste complète des boucles et des balises existantes, consulter la rubrique

http://www.spip.net/fr_rubrique143.html

Page 31: SPIP

31

Filtres

Les boucles permettent de structurer la page de manière logique, reste à présenter les données de manière esthétique

Les filtres transforment le contenu de la base de données en code HTML plus présentable

Une donnée stockée dans la base se présente comme un bloc, et on peut avoir envie de manipuler la variable correspondante avant de l’afficher à l’écran exemples : justifier, aligner_droite, saison (qui affiche « été »

si la variable est une date comprise entre le 21 juin et le 20 septembre) . . .

Pour utiliser un filtre il faut utiliser la syntaxe :[(#VARIABLE|filtre)]

Page 32: SPIP

32

Filtres

les filtres peuvent être enchaînés[(#DATE_REDAC|saison|majuscules)] affichera "HIVER"

L'utilisation des crochets permet de ne pas afficher un bloc si une balise renvoie une chaîne vide

cf. éléments conditionnels des boucles

Page 33: SPIP

33

Exemples

Voir le tableau des méthodes à utiliser pendant l'écriture d'un article pour ajouter des titres, du texte en gras, en italique, etc...

EPS Académie de Lyon : http://www2.ac-lyon.fr/enseigne/eps/index.php

Éditeur de squelettes : http://www.glums.com/serveur/spip/squelette/

Démo - C-L http://129.194.71.104/spip/ecrire/?bonjour=oui