Sites Web : Programmer avec SPIP

Publié le vendredi 27 février 2009

⇒ https://programmer.spip.org/

SPIP est un système de publication et une plateforme de développement. Après un rapide tour d’horizon de SPIP, nous décrirons son fonctionnement (…)

Articles syndiqués tirés de ce site

Authentification http
Août 2024, par JLuc
Lorsque le mécanisme d’authentification HTTP Basic du serveur a authentifié l’utilisateur courant, alors les variables PHP $_SERVER[’PHP_AUTH_USER’] et $_SERVER[’PHP_AUTH_PW’] sont définies et valent son identifiant et mot de passe http. SPIP vérifie alors si ces valeurs correspondent au login (…)
API de gestion des objets éditoriaux (editer_objet)
Mai 2024, par cerdic, JLuc
L’ajout, la modification et la publication des instances d’objets éditoriaux sont simplifiés par une interface de programmation (ou API) constituée de 3 fonctions génériques qui peuvent servir pour manipuler tous les objets de SPIP. Insérer Une nouvelle instance d’un objet éditorial est créée (…)
API de gestion de la file des travaux
Mai 2024, par cerdic, JLuc
SPIP intègre nativement une interface de programmation (ou API) de gestion de file de travaux (« job queue »). Elle permet de programmer des tâches à exécuter dans le futur, ou simplement le plus tôt possible mais sans faire attendre l’utilisateur. Les travaux programmés sont à tout moment (…)
API de gestion des liaisons (editer_liens)
Mai 2024, par cerdic, JLuc
SPIP 3 introduit une gestion générique des tables de liens d’un objet avec n’importe quel autre objet. Table de lien Les liens sont structurellement non symétriques : il partent d’un objet source pour aller vers n’importe quel objet destination. Pour être associable en tant que source, un (…)
API de gestion des autorisations (autoriser)
Mai 2024, par cerdic, JLuc
L’interface de programmation (API) « autoriser » introduite dans SPIP permet de gérer finement les autorisations données à un auteur d’effectuer une action sur un objet. Vérifier une autorisation La vérification d’une autorisation se fait par un appel de la forme : php (…)
API de déclaration d’objets éditoriaux
Mai 2024, par cerdic, JLuc, _Eric_
La création de nouveaux objets éditoriaux est simplifiée par une interface de programmation (ou API) déclarative [1] qui permet à SPIP de construire de façon automatisée une grande partie de l’interface d’édition de ces objets. La déclaration d’un nouvel objet éditorial se fait via le pipeline (…)
Créer un critère pour une jointure
Juillet 2023, par JLuc
Il est également possible de définir un critère pour forcer une jointure. - Liaisons entre tables (jointures)
Personnaliser les couleurs de l’espace privé
Juin 2023, par JLuc
La page de configuration des préférences de l’utilisateur connecté propose de choisir les couleurs utilisées pour l’interface privée parmi un ensemble de jeux de couleurs. Les couleurs proposées sont définies dans ecrire/inc/couleurs.php. On peut surcharger ce fichier à volonté, mais il sera en (…)
libeller_logo
Juin 2023, par JLuc
Définir le label du formulaire de choix d’un logo pour un certain type d’objet. - Liste des pipelines
Cache des boucles DATA
Avril 2023, par JLuc
Comme indiqué dans la documentation de la boucle DATA, le critère datacache XX permet de fixer une durée de cache (en secondes), et datacache 0 annule la mise en cache des résultats de la boucle. Quand ce paramètre n’est pas spécifié : – Quand le paramètre de source est une URL (ie : source (…)
formulaire_receptionner
Mars 2023, par RastaPopoulos
Faire des choses avant la vérification d’un formulaire CVT. - Liste des pipelines
Filtre |media_determine_autolien
Janvier 2023, par JLuc
Ce filtre détermine si un document image doit s’insérer dans le html avec un lien ou non — ce lien, lorsque présent, permet de voir ce document en plus grand dans une mediabox. Exemple d’usage, dans une boucle DOCUMENTS : [(#SETautolien,#MEDIA|media_determine_autolien#EXTENSION,#LARGEUR,#HAUTEUR,#I
calculer_rubriques
Octobre 2022, par JLuc
Modifier la manière avec laquelle est automatiquement calculé le statut et la date de mise à jour d’une rubrique. - Liste des pipelines / calculer_rubriques
Formulaire de configuration
Octobre 2022, par cam.lafit
Un plugin peut nécessiter des éléments de configuration. SPIP propose un système automatique pour proposer un tel formulaire de gestion. - Développer des plugins
quete_logo_objet
Septembre 2022, par JLuc
Voir la page « API des logos ». - Liste des pipelines
Auto-documentation sur code.spip.net
Janvier 2022, par JLuc, Matthieu Marcillaud
En complément à ce site https://programmer.spip.net, à la documentation de spip.net et à celles des plugins sur contrib.spip.net, le site https://code.spip.net fourni une documentation du code de spip et de certains plugins, générée de manière automatisée à partir des commentaires phpDoc trouvés (…)
Images temporaires, images permanentes et fichiers de contrôle
Janvier 2022, par cerdic, denisb
Les filtres de traitements d’image créent pour arriver au résultat souhaité des images intermédiaires si plusieurs filtres d’images sont enchaînés. Seule la dernière image est conservée. Cet article explique le principe de ce fonctionnement qui s’appuie sur les fichiers de contrôle (.src) pour (…)
Le PHPDoc dans le code source
Janvier 2022, par Matthieu Marcillaud
Le code source de SPIP utilise le format PHPDoc pour documenter ses fonctions et ses fichiers. Nous décrivons ici les usages. - Documenter le code
Optimisation du cache, pipelines recuperer_fond et affichage_final
Décembre 2021, par cerdic, JLuc
Le pipeline affichage_final est un peu, pour une page complète, l’équivalent du pipeline recuperer_fond pour une inclusion. Mais il y a quelques différences par rapport au cache et à l’accès au contexte. Inclusion et pipeline recuperer_fond La fonction recuperer_fond() produit d’abord le (…)
produire_fond_statique
Octobre 2021, par JLuc
Produire un cache statique à partir de l’évaluation d’un squelette SPIP. - Cache
Blocs ajax et ajaxReload
Septembre 2021, par JLuc
Forcer le rechargement d’une partie de la page, par exemple à l’issue de la validation d’un formulaire. Lorsqu’on veut forcer le rechargement d’un autre bloc que le bloc courant, alors ce bloc doit lui-même être inclu en ajax, et il faut ensuite utiliser la fonction javascript ajaxReload. - Ajax (…)
Balise #LARGEUR_ECRAN
Août 2021, par JLuc
La balise #LARGEUR_ECRAN définit la largeur de l’écran dans l’espace privé. Elle reçoit un unique argument qui est un nom de classe CSS, et initialise la variable globale $GLOBALS[’largeur_ecran’] avec cette valeur. Pour l’utiliser dans une page particulière de l’espace privé, il faut aussi (…)
Personnaliser les CSS de l’espace privé
Août 2021, par JLuc, tcharlss
Lorsqu’un plugin veut personnaliser, modifier ou enrichir les styles de l’espace privé, il doit définir un fichier squelette définissant les CSS requises et nommé prive/style_prive_plugin_[prefixeplugin].html (ou [prefixeplugin] est le préfixe du plugin). Ce fichier squelette doit déclarer un (…)
Les icônes SVG dans SPIP
Août 2021, par erational, JLuc
Ce document propose quelques recommandations pour les éléments graphiques (icônes SVG) utilisées dans l’interface SPIP. Nommage Pour un plugin, on garde la compatibilité SPIP 3 / SPIP 4 en gardant les versions PNG pour SPIP 3 et la version SVG pour SPIP 4 dans le même dossier : Les versions PNG (…)
Filtres |icone, |icone_horizontale, |icone_verticale, |icone_base
Juillet 2021, par JLuc
Ces filtres s’appliquent dans l’espace privé sur une url et renvoient un lien précédé d’une icone, avec une classe et une fonction. - Créer des pages dans l’espace privé / icone_verticale, icone_horizontale, icone, icone_base
Fonction include_fichiers_fonctions()
Mars 2021, par JLuc
Quand on a besoin d’un filtre dans le php, la fonction include_fichiers_fonctions permet d’inclure le fichier mes_fonctions.php du site et tous les fichiers xxx_fonctions.php des plugins. Elle est nécessaire lorsque ces fichiers de fonction n’ont pas déjà été appelés. Cette fonction est (…)
Fonction spip_affiche_mot_de_passe_masque()
Mars 2021, par JLuc
Ne pas afficher les mots de passe est une mesure de sécurité élémentaire. Toutefois, dans certains environnement de coopération, donner une visibilité partielle sur les mots de passe facilite beaucoup l’assistance aux utilisateurs, pour les personnes devant les aider. La fonction (…)
Fonction queue_lancer_url_http_async
Mars 2021, par JLuc
À partir de SPIP 4.0, la fonction queue_lancer_url_http_async appelle une url via un hit http, sans attendre le résultat. Pour cela, elle utilise prioritairement la fonction fsockopen si elle est disponible sur le serveur, pour appeler l’url via un socket en asynchrone. Sinon elle fait appel à (…)
trig_trace_query
Février 2021, par JLuc
[1] Lorsque la constante _DEBUG_TRACE_QUERIES est définie et vaut true, le pipeline trig_trace_query reçoit chaque requête SQL et permet de la tracer Le pipeline reçoit un argument en tableau, avec les index suivants : ’query’ : la requête ’start’ : le timestamp de début ’end’ : le timestamp (…)
Les pipelines de l’espace privé
Février 2021, par tcharlss
Présentation visuelle des pipelines permettant d’ajouter ou de modifier du contenu dans l’espace privé. - Les pipelines
all
Février 2021, par JLuc
Fonctions appelées sur tous les pipelines à des fin de debugging. - Liste des pipelines / all, 4.0
declarer_filtres_squelettes
Octobre 2019, par JLuc
Ce pipeline est le pendant en php de la balise #FILTREunfiltre. - Liste des pipelines / declarer_filtres_squelettes, FILTRE
declarer_tables_objets_sql
Juin 2019, par JLuc
Ce pipeline sert à déclarer la structure SQL des tables objets. Il permet également de déclarer leurs exceptions. - Liste des pipelines / declarer_tables_objets_surnoms, declarer_tables_objets_sql
Architecture Z dans le privé
Juin 2019, par YannX
Depuis SPIP 3, les pages de l’espace privé sont écrites en squelettes et noisettes selon l’architecture Z. Il est donc préférable de créer une page appelée par ?exec=nom au moyen des trois noisettes suivantes : prive/squelettes/contenu/nom.html prive/squelettes/navigation/nom.html (…)
Architecture Z dans le privé
Juin 2019, par YannX
Depuis SPIP 3, les pages de l’espace privé sont écrites en squelettes, découpés en différents répertoires dans prive/squelettes. Il est donc préférable pour créer une page appelée par ?exec=nom, d’utiliser les squelettes suivants : prive/squelettes/contenu/nom.html (…)
formulaire_fond
Mars 2019, par JLuc
Modifier le code HTML d’un formulaire. - Liste des pipelines / formulaire_fond, albums
Le fichier _administrations des plugins
Mars 2019, par JLuc
Pour leur fonctionnement propre, certains plugins nécessitent de nouveaux champs dans les tables SPIP, ou de nouvelles tables, ou des enregistrements particuliers dans celles-ci. Il est fréquent, par exemple, qu’un plugin enregistre sa configuration dans la table spip_meta. C’est le rôle de la (…)
API des logos
Février 2019, par tcharlss
Une API pour manipuler les logos - Étendre SPIP / quete_logo_objet, LOGO_ARTICLE, chercher_logo
formulaire_admin
Juin 2018, par peetdu
Contrôler l’affichage de la balise #FORMULAIRE_ADMIN - Liste des pipelines / 3.0
post_edition
Février 2016, par tcharlss
Agir après l’enregistrement des données lors de l’édition d’un élément éditorial. - Liste des pipelines / post_edition
post_edition
Février 2016, par tcharlss
Agir après l’enregistrement des données lors de l’édition d’un élément éditorial. - Liste des pipelines / post_edition
pre_edition
Février 2016, par tcharlss
Ajouter ou modifier des contenus avant l’enregistrement des données lors de l’édition d’un élément éditorial. - Liste des pipelines / pre_edition
pre_edition
Février 2016, par tcharlss
Ajouter ou modifier des contenus avant l’enregistrement des données lors de l’édition d’un élément éditorial. - Liste des pipelines / pre_edition
post_edition_lien
Janvier 2014, par ladnet
Ce pipeline s’exécute après l’insertion, la modification ou la supression d’éléments dans les tables de liens (la table ’spip_auteurs_liens’ par exemple). Il permet donc d’effectuer des actions post edition. Le pipeline transmet le nom de la table de liaison, le type de l’objet source, (…)
post_edition_lien
Janvier 2014, par ladnet
Ce pipeline s’exécute après l’insertion, la modification ou la supression d’éléments dans les tables de liens (la table ’spip_auteurs_liens’ par exemple). Il permet donc d’effectuer des actions post edition. Le pipeline transmet le nom de la table de liaison, le type de l’objet source, (…)
Surcharger un filtre
Janvier 2014, par RastaPopoulos
Les filtres, que l’on utilise pour modifier le résultat d’une balise, ont un chargement particulier par rapport aux autres fonctions surchargeables de SPIP. En effet, il est possible à la fois d’utiliser n’importe quelle fonction PHP, mais aussi de déclarer explicitement qu’une fonction est un (…)
Surcharger un filtre
Janvier 2014, par RastaPopoulos
Les filtres, que l’on utilise pour modifier le résultat d’une balise, ont un chargement particulier par rapport aux autres fonctions surchargeables de SPIP. En effet, il est possible à la fois d’utiliser n’importe quelle fonction PHP, mais aussi de déclarer explicitement qu’une fonction est un (…)
Donner une autorisation exceptionnelle
Décembre 2012, par RastaPopoulos
Il arrive qu’on ait besoin de faire une action qui sera soumise à autorisation pour un auteur qui normalement n’en a pas le droit. Cela peut se produire, par exemple, dans le cas d’une action programmée qui sera alors exécutée anonymement. Dans ce cas, il existe un mécanisme via la fonction (…)
Donner une autorisation exceptionnelle
Décembre 2012, par RastaPopoulos
Il arrive qu’on ait besoin de faire une action qui sera soumise à autorisation pour un auteur qui normalement n’en a pas le droit. Cela peut se produire, par exemple, dans le cas d’une action programmée qui sera alors exécutée anonymement. Dans ce cas, il existe un mécanisme via la fonction (…)
Donner une autorisation exceptionnelle
Décembre 2012, par RastaPopoulos
Il arrive qu’on ait besoin de faire une action qui sera soumise à autorisation pour un auteur qui normalement n’en a pas le droit. Cela peut se produire, par exemple, dans le cas d’une action programmée qui sera alors exécutée anonymement. Dans ce cas, il existe un mécanisme via la fonction (…)
jqueryui_plugins
Juin 2012, par b_b
Ajouter des modules de la libraire jQuery UI - Liste des pipelines / INSERT_HEAD, JavaScript, JQuery, jqueryui_plugins
jqueryui_plugins
Juin 2012, par b_b
Ajouter des modules de la libraire jQuery UI - Liste des pipelines / INSERT_HEAD, JavaScript, JQuery, jqueryui_plugins
jqueryui_plugins
Juin 2012, par b_b
Ajouter des modules de la libraire jQuery UI - Liste des pipelines / INSERT_HEAD, JavaScript, JQuery, jqueryui_plugins
post_insertion
Novembre 2010, par Mark Baber
Perform an action after insertion of a new record in the database. - 120. Pipeline details
post_insertion
Octobre 2010, par Matthieu Marcillaud
Effectuer une action après l’insertion d’un nouvel élément en base. - Liste des pipelines / 2.1, post_edition
post_insertion
Octobre 2010, par Matthieu Marcillaud
Effectuer une action après l’insertion d’un nouvel élément en base. - Liste des pipelines / 2.1, post_insertion, objet_associer
post_insertion
Octobre 2010, par Matthieu Marcillaud
Effectuer une action après l’insertion d’un nouvel élément en base. - Liste des pipelines / 2.1, post_insertion, objet_associer
libelle_association_mots
Octobre 2010, par Mark Baber
Add to the list of object names that can be linked to a keyword group. - 120. Pipeline details / Mots objets, libelle_association_mots
afficher_nombre_objets_associes_a
Octobre 2010, par Mark Baber
Add information to the private interface about the number of elements linked to objects. - 120. Pipeline details / Agenda, afficher_nombre_objets_associes_a
objet_compte_enfants
Octobre 2010, par Mark Baber
Count the children of an object. - 120. Pipeline details / Polyhiérarchie, objet_compte_enfants
The book
Octobre 2010, par Mark Baber
Hard copy version You can order a hard copy of the book « Programming with SPIP » on the printing site called Lulu. The current versions offered are spiral-bound because that makes the book more useful if it remains open easily at a given page. Commander le livre chez Lulu PDF version We also (…)
libelle_association_mots
Septembre 2010, par Matthieu Marcillaud
Compléter la liste des noms d’objets que l’on peut lier à un groupe de mots. - Liste des pipelines / Mots objets, libelle_association_mots
libelle_association_mots
Septembre 2010, par Matthieu Marcillaud
Compléter la liste des noms d’objets que l’on peut lier à un groupe de mots. - Liste des pipelines / Mots objets, libelle_association_mots
libelle_association_mots
Septembre 2010, par Matthieu Marcillaud
Compléter la liste des noms d’objets que l’on peut lier à un groupe de mots. - Liste des pipelines / Mots objets, libelle_association_mots
afficher_nombre_objets_associes_a
Septembre 2010, par Matthieu Marcillaud
Compléter les informations de nombre d’éléments liés à des objets dans l’interface privée. - Liste des pipelines / Agenda, afficher_nombre_objets_associes_a
afficher_nombre_objets_associes_a
Septembre 2010, par Matthieu Marcillaud
Compléter les informations de nombre d’éléments liés à des objets dans l’interface privée. - Liste des pipelines / Agenda, afficher_nombre_objets_associes_a
afficher_nombre_objets_associes_a
Septembre 2010, par Matthieu Marcillaud
Compléter les informations de nombre d’éléments liés à des objets dans l’interface privée. - Liste des pipelines / Agenda, afficher_nombre_objets_associes_a
objet_compte_enfants
Septembre 2010, par RastaPopoulos
Compter les enfants d’un objet. - Liste des pipelines / Polyhiérarchie, objet_compte_enfants
objet_compte_enfants
Septembre 2010, par RastaPopoulos
Compter les enfants d’un objet. - Liste des pipelines / Polyhiérarchie, objet_compte_enfants
objet_compte_enfants
Septembre 2010, par RastaPopoulos
Compter les enfants d’un objet. - Liste des pipelines / Polyhiérarchie, objet_compte_enfants
Definition
Mai 2010, par Mark Baber
A pipeline is used to make one of SPIP’s standard functions perform different or additional functionality by passing it custom-made functions that will be automatically triggered at the right times. Declaration within a plugin Any plugin can use any existing pipeline. To do so, it declares it (…)
Le livre
Mai 2010, par Matthieu Marcillaud
Version papier Vous pouvez commander une version papier du livre « Programmer avec SPIP » sur le site de l’imprimeur Lulu. L’exemplaire proposé est à spirale, pratique lorsqu’on veut le garder ouvert à une page souhaitée. Commander le livre chez Lulu Version PDF Nous mettons à disposition (…)
Le livre
Mai 2010, par Matthieu Marcillaud
Version papier Vous pouvez commander une version papier du livre « Programmer avec SPIP » sur le site de l’imprimeur Lulu. L’exemplaire proposé est à spirale, pratique lorsqu’on veut le garder ouvert à une page souhaitée. http://www.lulu.com/product/item/pr… Version PDF Nous mettons à (…)
Critères optionnels avec opérateurs
Avril 2010, par Matthieu Marcillaud
Un cas particulier des critères optionnels est que l’on peut utiliser des opérateurs sous certaines conditions. Il faut que la valeur testée dans l’environnement porte le même nom que le critère tel que le critère X dans : X ?operateur #ENVX. Tous les opérateurs peuvent s’appliquer, il suffit (…)
Critères optionnels avec opérateurs
Avril 2010, par Matthieu Marcillaud
Un cas particulier des critères optionnels est que l’on peut utiliser des opérateurs sous certaines conditions. Il faut que la valeur testée dans l’environnement porte le même nom que le critère tel que le critère X dans : X ?operateur #ENVX. Tous les opérateurs peuvent s’appliquer, il suffit (…)
sql_in_select
Avril 2010, par Matthieu Marcillaud
Effectue un sql_in sur le résultat d’un sql_select. - API SQL / sql_in_select
sql_in_select
Avril 2010, par Matthieu Marcillaud
Effectue un sql_in sur le résultat d’un sql_select. - API SQL / sql_in_select
sql_in
Avril 2010, par Matthieu Marcillaud
Construit un appel à l’opérande IN. - API SQL / Tickets, sql_in
sql_in
Avril 2010, par Matthieu Marcillaud
Construit un appel à l’opérande IN. - API SQL / Tickets, sql_in
sql_date_proche
Avril 2010, par Matthieu Marcillaud
Retourne une expression de calcul de date - API SQL / sql_date_proche
sql_date_proche
Avril 2010
Retourne une expression de calcul de date - API SQL / sql_date_proche
sql_quote
Avril 2010, par Matthieu Marcillaud
Protège une chaine. - API SQL / sql_quote
sql_quote
Avril 2010
Protège une chaine. - API SQL / sql_quote
sql_hex
Avril 2010, par Matthieu Marcillaud
Retourne une expression numérique d’une chaine hexadécimale - API SQL / sql_hex
sql_version
Avril 2010, par Matthieu Marcillaud
Retourne la version du gestionnaire de base de données - API SQL / sql_version
sql_query
Avril 2010, par Matthieu Marcillaud
Exécute une requête donnée. - API SQL / sql_query
sql_repair
Avril 2010, par Matthieu Marcillaud
Répare une table endomagée. - API SQL / sql_repair
sql_optimize
Avril 2010, par Matthieu Marcillaud
Optimise une table donnée. - API SQL / sql_optimize
sql_explain
Avril 2010, par Matthieu Marcillaud
Explicite comment le serveur SQL va traiter une requête - API SQL / sql_explain
sql_errno
Avril 2010, par Matthieu Marcillaud
Retourne le numéro de la dernière erreur SQL - API SQL / sql_errno
sql_error
Avril 2010, par Matthieu Marcillaud
Retourne la dernière erreur SQL - API SQL / sql_error
sql_multi
Mars 2010, par Matthieu Marcillaud
Extrait un contenu multilingue. - API SQL / par, Polyglotte, Grappes, sql_multi
sql_create_base
Mars 2010, par Matthieu Marcillaud
Crée une base de donnée - API SQL / 2.1, sql_create_base, _DIR_DB
sql_create
Mars 2010, par Matthieu Marcillaud
Crée une table selon le schéma indiqué. - API SQL / sql_create
alertes_auteur
Mars 2010, par RastaPopoulos
Ajouter des alertes à l’auteur connecté dans l’espace privé. - Liste des pipelines / 2.1, alertes_auteur
sql_showtable
Mars 2010, par Matthieu Marcillaud
Retourne une description de la table. - API SQL / trouver_table, sql_showtable
trouver_table
Mars 2010, par Matthieu Marcillaud
Donne la description d’une table SQL. - Fonctions à connaître / table_objet_sql, Champs Extras 2, trouver_table
sql_alltable
Mars 2010, par Matthieu Marcillaud
Retourne un tableau des tables SQL présentes - API SQL
sql_showbase
Mars 2010, par Matthieu Marcillaud
Retourne une ressource de la liste des tables - API SQL / sql_showbase, sql_alltable
sql_drop_view
Mars 2010, par Matthieu Marcillaud
Supprime une vue. - API SQL / sql_drop_view
sql_create_view
Mars 2010, par Matthieu Marcillaud
Crée une vue - API SQL / sql_get_select, sql_create_view
sql_drop_table
Mars 2010, par Matthieu Marcillaud
Supprime une table ! - API SQL / Géographie, sql_drop_table
sql_replace_multi
Mars 2010, par Matthieu Marcillaud
Insérer ou remplacer plusieurs entrées. - API SQL / sql_replace_multi
sql_replace
Mars 2010, par Matthieu Marcillaud
Insère ou modifie une entrée - API SQL / sql_replace
sql_delete
Mars 2010, par Matthieu Marcillaud
Supprime des éléments. - API SQL / sql_delete
post_typo
Mars 2010, par Matthieu Marcillaud
Modifier le texte après les traitements typographiques - Liste des pipelines / Typo Guillemets, post_typo, corriger_typo
pre_typo
Mars 2010, par Matthieu Marcillaud
Modifier le texte avant les traitements typographiques - Liste des pipelines / propre, typo, pre_typo, Enluminures Typographiques, corriger_typo
sql_updateq
Mars 2010, par Matthieu Marcillaud
Actualise un contenu (et protège les données). - API SQL / sql_updateq, modifier_contenu
sql_update
Mars 2010, par Matthieu Marcillaud
Met à jour un enregistrement. - API SQL / sql_update
sql_insertq_multi
Mars 2010, par Matthieu Marcillaud
Permet d’insérer plusieurs lignes en une opération. - API SQL / Polyhiérarchie, sql_insertq_multi
sql_insertq
Mars 2010, par Matthieu Marcillaud
Insérer du contenu (protégé automatiquement). - API SQL / pre_insertion, sql_insertq, insert_article
sql_insert
Mars 2010, par Matthieu Marcillaud
Insérer du contenu - API SQL / sql_insert, sql_insertq
sql_free
Mars 2010, par Matthieu Marcillaud
Libère une ressource - API SQL / sql_free
sql_count
Mars 2010, par Matthieu Marcillaud
Compte le nombre de ligne d’une ressource de sélection - API SQL / sql_count
sql_selectdb
Mars 2010, par Matthieu Marcillaud
Sélectionne la base de données demandée. - API SQL / sql_selectdb
sql_listdbs
Mars 2010, par Matthieu Marcillaud
Listes les bases de données disponibles sur une connexion donnée - API SQL / sql_listdbs
sql_seek
Mars 2010, par Matthieu Marcillaud
Place une ressource de sélection sur le numéro de ligne désigné. - API SQL / sql_seek
sql_getfetsel
Mars 2010, par Matthieu Marcillaud
Récupère l’unique colonne demandée de la première ligne d’une sélection. - API SQL / sql_getfetsel, Job Queue
sql_fetsel
Mars 2010, par Matthieu Marcillaud
Sélectionne et retourne la première ligne des résultats. - API SQL / sql_fetsel
sql_allfetsel
Mars 2010, par Matthieu Marcillaud
Retourne un tableau de l’ensemble des résultats d’une sélection - API SQL / Contact avancé, sql_allfetsel
sql_fetch_all
Mars 2010, par Matthieu Marcillaud
Retourne un tableau de tous les résultats - API SQL / sql_fetch_all, sql_allfetsel
sql_fetch
Mars 2010, par Matthieu Marcillaud
Retourne une ligne d’une ressource de sélection - API SQL / sql_select, sql_fetch, calculer_rubriques_publiees, Contact avancé
sql_alter
Mars 2010, par Matthieu Marcillaud
Modifier la structure d’une table SQL - API SQL / Composition, maj_tables, sql_alter, Menus, TradRub
sql_countsel
Mars 2010, par Matthieu Marcillaud
Compter un nombre de résultat - API SQL / Notations, sql_countsel
sql_get_select
Mars 2010, par Matthieu Marcillaud
Retourne la requête de sélection - API SQL / sql_select, Bonux, sql_get_select, sql_in
sql_select
Mars 2010, par Matthieu Marcillaud
Sélectionne des contenus - API SQL / sql_select, sql_fetch
sql_set_charset
Mars 2010, par Matthieu Marcillaud
Demande d’utiliser le codage indiqué. - API SQL
sql_get_charset
Mars 2010, par Matthieu Marcillaud
Demande si un codage de nom donné est disponible sur le serveur. - API SQL
Éléments communs
Mars 2010, par Matthieu Marcillaud
Paramètres et options systématiques. - API SQL
sql_serveur
Mars 2010, par Matthieu Marcillaud
Fonction principale et transparente de l’API - API SQL / sql_serveur
Traducteur de blabla
Mars 2010, par Matthieu Marcillaud
Cet autre exemple simple va créer un petit formulaire demandant à un service externe de traduire un contenu qui lui est envoyé. Le résultat sera affiché sous le texte saisi. Le formulaire sera nommé « traduire_blabla » et pourra donc être appelé dans un squelette par la balise (…)
Calcul de quantième
Mars 2010, par Cyril Marion
Cet exemple court va permettre de calculer et d’afficher le quantième (le numéro d’un jour dans l’année) à partir d’une date saisie dans un formulaire. Ce formulaire sera nommé « calculer_quantieme » et pourra donc être appelé dans un squelette par #FORMULAIRE_CALCULER_QUANTIEME ou dans le texte (…)
Pipeline
Mars 2010, par Matthieu Marcillaud
Le terme pipeline employé dans SPIP est à considérer au sens UNIX. Le pipeline exécute une série de fonctions dont le résultat de l’une sert d’argument à la suivante. De cette manière, chaque fonction d’un pipeline peut utiliser les données qui lui sont transmise, les modifier ou les utiliser, (…)
#INSERT_HEAD_CSS
Mars 2010, par Matthieu Marcillaud
Balise d’insertion de CSS dans le pour des plugins. - Des balises à connaître / INSERT_HEAD, 2.1, INSERT_HEAD_CSS, insert_head_css
insert_head_css
Mars 2010, par Matthieu Marcillaud
Ajouter des CSS dans l’espace public - Liste des pipelines / INSERT_HEAD, Porte Plume, 2.1, INSERT_HEAD_CSS, insert_head_css
formulaire_traiter
Mars 2010, par Matthieu Marcillaud
Modifier le tableau retourné par la fonction traiter d’un formulaire CVT ou effectuer des traitements supplémentaires. - Liste des pipelines / Licence, formulaire_traiter, lire_config, sql_updateq
AJAX
Mars 2010, par Matthieu Marcillaud
Le terme AJAX, accronyme de « Asynchronous JavaScript and XML », désigne un ensemble de technologies utilisées pour créer des interactions clients / serveur asynchrones. Ces constructions, qui permettent de faire transiter au retour du serveur uniquement une partie de la page (ou de quoi (…)
Traitement sans AJAX
Mars 2010, par RastaPopoulos
Si un formulaire est appelé en AJAX mais qu’il redirige sur une autre page à la fin du traitement, cela oblige à des contorsions Javascript (gérées par SPIP) pour capturer la redirection et renvoyer effectivement le navigateur sur une autre URL au retour de la réponse. Lorsqu’une redirection est (…)
Effectuer des traitements
Mars 2010, par RastaPopoulos
Lorsque la fonction de vérification ne renvoie aucune erreur, le formulaire passe alors à la fonction traiter(). C’est dans celle-ci qu’il faudra effectuer les opérations voulues avec les données issues du formulaire (envoi par courriel, modification de la base de données, etc.). La fonction (…)
formulaire_verifier
Février 2010, par Matthieu Marcillaud
Modifier le tableau retourné par la fonction verifier d’un formulaire CVT. - Liste des pipelines / Formulaires, OpenID, CVT, Vérifier (CVT), formulaire_verifier
trig_supprimer_objets_lies
Février 2010, par Matthieu Marcillaud
Supprimer des liaisons d’objets au moment de la suppression d’un objet - Liste des pipelines / Forum, 2.1, trig_supprimer_objets_lies
optimiser_base_disparus
Février 2010, par Matthieu Marcillaud
Nettoyer des éléments orphelins dans la base de données - Liste des pipelines / Forum, 2.1, optimiser_base_disparus
compter_contributions_auteur
Février 2010, par Matthieu Marcillaud
Compter les contributions d’un auteur - Liste des pipelines / Forum, 2.1, compter_contributions_auteur
pre_insertion
Février 2010, par Matthieu Marcillaud
Ajouter des contenus par défaut au moment d’une insertion dans la base de données - Liste des pipelines / Forum, 2.1, pre_insertion
rubrique_encours
Février 2010, par Matthieu Marcillaud
Ajouter du contenu dans l’espace « Proposés à publication » des rubriques - Liste des pipelines / Forum, 2.1, rubrique_encours
afficher_fiche_objet
Février 2010, par Matthieu Marcillaud
Ajouter du contenu dans la vue des objets éditoriaux - Liste des pipelines / Forum, 2.1, afficher_fiche_objet
afficher_config_objet
Février 2010, par Matthieu Marcillaud
Ajouter des éléments dans un cadre de configuration des objets éditoriaux - Liste des pipelines / Forum, 2.1, afficher_config_objet
… et les autres
Février 2010, par Matthieu Marcillaud
Ceux qui restent à documenter - Liste des pipelines
tmp
Février 2010, par Matthieu Marcillaud
Fichiers temporaires et de cache - Les différents répertoires
squelettes-dist
Février 2010, par Matthieu Marcillaud
Jeu de squelettes par défaut - Les différents répertoires
squelettes
Février 2010, par Matthieu Marcillaud
Personnalisations des fichiers et squelettes. - Les différents répertoires
prive/images
Février 2010, par Matthieu Marcillaud
Images de l’espace privé - prive
prive/vignettes
Février 2010, par Matthieu Marcillaud
Icônes des extensions de documents - prive
prive/transmettre
Février 2010, par Matthieu Marcillaud
Squelettes en rapport avec les export CSV - prive
prive/stats
Février 2010, par Matthieu Marcillaud
Squelettes en rapport avec les statistiques - prive
prive/rss
Février 2010, par Matthieu Marcillaud
Squelettes générant les RSS du suivi éditorial dans l’espace privé - prive
prive/modeles
Février 2010, par Matthieu Marcillaud
Modèles de base fournis par SPIP - prive / Modeles
prive/javascript
Février 2010, par Matthieu Marcillaud
Scripts Javascript - prive / JavaScript, JQuery
prive/infos
Février 2010, par Matthieu Marcillaud
Squelettes des cadres d’information des objets de l’espace privé - prive
prive/formulaires
Février 2010, par Matthieu Marcillaud
Formulaires d’édition des objets éditoriaux - prive
prive/editer
Février 2010, par Matthieu Marcillaud
Squelettes qui appellent les formulaires d’édition des objets - prive
prive/contenu
Février 2010, par Matthieu Marcillaud
Squelette de vue des objets dans l’interface privée - prive
plugins
Février 2010, par Matthieu Marcillaud
Répertoire des plugins - Les différents répertoires / Plugins
local
Février 2010, par Matthieu Marcillaud
Stockage des caches d’images, CSS et Javascript - Les différents répertoires / Cache
lib
Février 2010, par Matthieu Marcillaud
Librairies externes ajoutées par des plugins - Les différents répertoires / Librairies externes
IMG
Février 2010, par Matthieu Marcillaud
Stockage des documents du site - Les différents répertoires
config
Février 2010, par Matthieu Marcillaud
Identifiants de connexion à la base de donnée et options du site. - Les différents répertoires
extensions
Février 2010, par Matthieu Marcillaud
Répertoire de plugins non désactivables - Les différents répertoires / 2.1
ecrire/xml
Février 2010, par Matthieu Marcillaud
Parseur et vérificateur de XML - ecrire
ecrire/urls
Février 2010, par Matthieu Marcillaud
Jeux d’écriture d’URL - ecrire / URL
ecrire/typographie
Février 2010, par Matthieu Marcillaud
Correction typographiques - ecrire / Typographie, typo
ecrire/req
Février 2010, par Matthieu Marcillaud
Pilotes de bases de données - ecrire / Bases de données
ecrire/public
Février 2010, par Matthieu Marcillaud
Compilateur et gestion du cache - ecrire / Cache, Compilateur
ecrire/plugins
Février 2010, par Matthieu Marcillaud
Concerne l’installation et la gestion des plugins - ecrire / Plugins, 2.1
ecrire/notifications
Février 2010, par Matthieu Marcillaud
Fonctions de notifications et contenus des mails de notifications - ecrire / 2.1, Notifications
ecrire/maj
Février 2010, par Matthieu Marcillaud
Procédures de mises à jour - ecrire
ecrire/lang
Février 2010, par Matthieu Marcillaud
Fichiers de localisation (langue) - ecrire / Chaîne de langue
ecrire/install
Février 2010, par Matthieu Marcillaud
Procédure d’installation de SPIP - ecrire / Installation
ecrire/inc
Février 2010, par Matthieu Marcillaud
Librairies et APIs diverses. - ecrire
ecrire/charsets
Février 2010, par Matthieu Marcillaud
Traducteurs d’encodages de caractères. - ecrire / Charset
ecrire/base
Février 2010, par Matthieu Marcillaud
API en relation avec la base de données et déclaration des tables SQL. - ecrire / Bases de données
ecrire/configuration
Février 2010, par Matthieu Marcillaud
Éléments de configuration de l’espace privé de SPIP. - ecrire / Configurations
ecrire/genie
Février 2010, par Matthieu Marcillaud
Tâches périodiques pour le génie (cron). - ecrire
prive/exec
Février 2010, par Matthieu Marcillaud
Vue des pages dans l’espace privé (en squelettes SPIP) - prive
ecrire/exec
Février 2010, par Matthieu Marcillaud
Vue des pages dans l’espace privé (au format PHP). - ecrire
ecrire/balise
Février 2010, par Matthieu Marcillaud
Déclarations des balises dynamiques et des balises génériques. - ecrire / Balise
ecrire/auth
Février 2010, par Matthieu Marcillaud
Gérer l’authentification des utilisateurs. - ecrire
Liste des répertoires
Février 2010, par Matthieu Marcillaud
Nom Description config Identifiants de connexion à la base de donnée et options du site. ecrire/action Gérer les actions affectant les contenus de la base de données. ecrire/auth Gérer l’authentification des utilisateurs. ecrire/balise Déclarations des balises dynamiques et des balises (…)
ecrire/action
Février 2010, par Matthieu Marcillaud
Gérer les actions affectant les contenus de la base de données. - ecrire / Actions
taches_generales_cron
Février 2010, par Matthieu Marcillaud
Assigner des tâches périodiques - Liste des pipelines / taches_generales_cron, Cron, purger_repertoire
delete_statistiques
Février 2010, par Matthieu Marcillaud
Trigger au moment d’un effacement des tables de statistiques. - Liste des pipelines / Statistiques, delete_statistiques
delete_tables
Février 2010, par Matthieu Marcillaud
Trigger au moment d’un effacement de la base de donnée. - Liste des pipelines / delete_tables
header_prive
Février 2010, par Matthieu Marcillaud
Ajouter des contenus dans le privé. - Liste des pipelines / JavaScript, CSS, header_prive, Notations, Open Layers
afficher_contenu_objet
Février 2010, par Matthieu Marcillaud
Modifier ou compléter la vue d’un objet dans l’interface privée. - Liste des pipelines / afficher_contenu_objet, Métadonnées Photos
lister_tables_noerase
Février 2010, par Matthieu Marcillaud
Liste des tables à ne pas vider avant d’une restauration. - Liste des pipelines / 2.1, Restauration, lister_tables_noerase
lister_tables_noimport
Février 2010, par Matthieu Marcillaud
Liste des tables SQL à ne pas importer. - Liste des pipelines / 2.1, lister_tables_noimport, Restauration
lister_tables_noexport
Février 2010, par Matthieu Marcillaud
Liste des tables SQL à ne pas sauvegarder - Liste des pipelines / Sauvegardes, Géographie, lister_tables_noexport
configurer_liste_metas
Février 2010, par Matthieu Marcillaud
Ce pipeline permet de compléter (ou de modifier) les valeurs par défaut des paramètres de configurations de SPIP. Il reçoit en paramètre un tableau de couples « nom / valeur » et le retourne. Ce pipeline est appelé dans ecrire/inc/config.php : return pipeline(’configurer_liste_metas’, (…)
affichage_entetes_final
Février 2010, par Matthieu Marcillaud
Modifier les entêtes des pages envoyées - Liste des pipelines / 2.1, Statistiques, Statistiques, affichage_entetes_final, Entêtes de page
definir_session
Février 2010, par Matthieu Marcillaud
Définir les paramètres distinguant les caches par visiteur - Liste des pipelines / Cache, FaceBook Login, Sessions, Forms & Tables, definir_session, spip_session
declarer_url_objets
Janvier 2010, par Matthieu Marcillaud
Permettre des URL standard sur un nouvel objet éditorial - Liste des pipelines / 2.1, URL, declarer_url_objets, generer_url_entite, Grappes, URL_
Cache des chemins
Janvier 2010, par Matthieu Marcillaud
SPIP utilise différents dossiers pour rechercher les fichiers qui lui sont nécessaires. Lire à ce sujet La notion de chemin. Lorsqu’il cherche un fichier via la fonction find_in_path — fonction qui sert de base à include_spip, charger_fonction, recuperer_fond, aux inclusions de squelettes ou à (…)
Configurer le cache
Janvier 2010, par Matthieu Marcillaud
Différents paramètres permettent de gérer plus finement le cache des pages de SPIP. Durée du cache Il est inutile de renseigner pour chaque squelette SPIP une durée de cache en utilisant la balise #CACHE. Cette balise est utile pour définir une durée de validité différente de la valeur par (…)
Actualisation du cache
Janvier 2010, par Matthieu Marcillaud
Lors d’une utilisation normale de SPIP, avec des visites, des nouveaux articles publiés, le cache et l’actualisation des données est correctement géré. Par défaut (mais des plugins pourraient modifier ce comportement), dès que SPIP a connaissance de modifications des contenus éditoriaux dans la (…)
Cache des traitements d’image
Janvier 2010, par Matthieu Marcillaud
SPIP dispose d’une librairie de filtres graphiques permettant par défaut de pouvoir redimensionner des images facilement. Ces fonctions sont définies dans ecrire/filtres_images_mini.php. L’extension « Filtres Images et Couleurs » active par défaut offre de nombreux autres filtres, comme créer (…)
Caches CSS et Javascript
Janvier 2010, par Matthieu Marcillaud
L’extension « Compresseur » présente dans SPIP permet de compacter les différents éléments CSS et Javascript pour limiter le nombre d’appels sur le serveur et la taille des fichiers à obtenir. Cette compression est active par défaut dans l’espace privé, désactivable via la constante (…)
Cache des plugins
Janvier 2010, par Matthieu Marcillaud
Des fichiers de cache spécifiques aux plugins sont aussi créés dans tmp/ ou dans tmp/cache/. plugin_xml.cache Le résultat de l’analyse des différents fichiers plugin.xml est mis en cache dans le fichier tmp/plugin_xml_cache.gz. Ce fichier est recréé lors de l’écriture de la liste des plugins (…)
Cache SQL
Janvier 2010, par Matthieu Marcillaud
SPIP met en cache certains éléments de la base de données pour éviter des appels intempestifs au serveur SQL et pour que l’affichage des pages publiques déjà en cache puisse fonctionner même si le serveur de base de donnée est indisponible. Deux caches sont ainsi créés. Cache des métas Le (…)
Cache des pages
Janvier 2010, par Matthieu Marcillaud
Un second niveau de cache est celui des pages demandées par les visiteurs du site. Leur résultat est sauvegardé, dans les répertoires tmp/cache/0 à f/ avec une durée de validité. Ces fichiers sont répartis dans plusieurs dossiers car dans un seul, leur nombre pourrait devenir trop important et (…)
Cache des squelettes
Janvier 2010, par Matthieu Marcillaud
Il existe différents caches dans SPIP, d’autres pouvant aussi être fournis par des plugins tel que « Mémoïsation », « Fastcache » ou encore « Cache Cool ». Un des caches essentiels est celui des squelettes : le résultat de la compilation d’un squelette, donc le code PHP généré, est mis en cache (…)
Cache
Janvier 2010, par Gabriel Filion, Matthieu Marcillaud
Un cache est un stockage qui sert à accélérer l’accès aux données. - Glossaire / Cache
declarer_tables_interfaces
Janvier 2010, par Matthieu Marcillaud
Déclarer des informations tierces sur les tables SQL (alias, traitements, jointures, …) - Liste des pipelines / table_des_traitements, _TRAITEMENT_TYPO, _TRAITEMENT_RACCOURCIS, Jointures, declarer_tables_interfaces, Agenda, Chats, Forms & (…)
Récursivité
Novembre 2009, par Matthieu Marcillaud
En programmation, on appelle « récursion » un algorithme (un code informatique) qui s’exécute lui-même. On parle aussi d’« auto-référence ». Les fonctions PHP peuvent s’appeler récursivement, comme ci-dessous une fonction qui somme les x premiers entiers (juste pour l’exemple, car (…)
Paramètre
Novembre 2009, par Matthieu Marcillaud
Les « paramètres » d’une fonction, c’est à dire ce qu’elle reçoit quand on l’appelle, sont décrit dans sa déclaration. Cette déclaration peut préciser le type de valeur attendue (entier, tableau, chaîne de caractères…), une valeur par défaut, et surtout indique le nom de la variable où est (…)
Argument
Novembre 2009, par Matthieu Marcillaud
On appelle « argument » en programmation le contenu envoyé lors de l’appel d’une fonction. Des fonctions peuvent utiliser plusieurs arguments. Les arguments envoyés peuvent être issus de calculs. On différenciera les « arguments » (ce qui est envoyé) des « paramètres » (ce que reçoit la (…)
Adapter tous ses squelettes en une seule opération
Octobre 2009, par Matthieu Marcillaud
Grâce à des points d’entrées spécifiques, il est possible d’agir simplement sur l’ensemble de ses squelettes pour modifier le comportement d’un type de boucle particulier, en utilisant le pipeline pre_boucle. Pour chaque boucle RUBRIQUES, quelque soit le squelette, cacher le secteur 8 : /** * (…)
Afficher un formulaire d’édition, si autorisé
Octobre 2009, par Matthieu Marcillaud
Des balises spéciales #AUTORISER permettent de gérer finement l’accès à certains contenus, à certains formulaires. Ci dessous, si le visiteur a des droits de modifications sur l’article, afficher un formulaire pour l’éditer, qui, une fois validé, retourne sur la page de l’article en question : (…)
#VAL
Octobre 2009, par Matthieu Marcillaud
Retourne une valeur - Des balises à connaître
#SESSION_SET
Octobre 2009, par Matthieu Marcillaud
Définir des variables de session - Des balises à connaître
#SESSION
Octobre 2009, par Matthieu Marcillaud
Récupère une information de session - Des balises à connaître
#SELF
Octobre 2009, par Matthieu Marcillaud
Retourne l’URL de la page courante - Des balises à connaître
#REM
Octobre 2009, par Matthieu Marcillaud
Mettre un commentaire dans le code - Des balises à connaître
#NOTES
Octobre 2009, par Matthieu Marcillaud
Afficher les notes crées avec le raccourcis SPIP - Des balises à connaître
#MODELE
Octobre 2009, par Matthieu Marcillaud
Insère un modèle de mise en page - Des balises à connaître
#LESAUTEURS
Octobre 2009, par Matthieu Marcillaud
Afficher les auteurs d’un article - Des balises à connaître
#LANG_DIR
Octobre 2009, par Matthieu Marcillaud
Retourner le sens d’écriture - Des balises à connaître
#LANG
Octobre 2009, par Matthieu Marcillaud
Obtenir le code de langue - Des balises à connaître
#INTRODUCTION
Octobre 2009, par Matthieu Marcillaud
Afficher une introduction - Des balises à connaître
#INSERT_HEAD
Octobre 2009, par Matthieu Marcillaud
Balise d’insertion de scripts dans le pour SPIP ou des plugins - Des balises à connaître
#INCLURE
Octobre 2009, par Matthieu Marcillaud
Inclure un squelette - Des balises à connaître
#GET
Octobre 2009, par Matthieu Marcillaud
Récupérer une valeur stockée par #GET - Des balises à connaître
#SET
Octobre 2009, par Matthieu Marcillaud
Stocker une valeur, récupérable avec #GET - Des balises à connaître
#EXPOSE
Octobre 2009, par Matthieu Marcillaud
Mettre en évidence l’élément en cours de lecture (dans une liste, un menu) - Des balises à connaître
#EVAL
Octobre 2009, par Matthieu Marcillaud
Évaluer une expression via PHP - Des balises à connaître
#ENV
Octobre 2009, par Matthieu Marcillaud
Récupérer une variable dans l’environnement - Des balises à connaître
#EDIT
Octobre 2009, par Matthieu Marcillaud
Éditer du contenu (avec le plugin « crayons ») - Des balises à connaître
#DESCRIPTIF_SITE_SPIP
Octobre 2009, par Matthieu Marcillaud
Retourner le descriptif du site - Des balises à connaître
#CHEMIN
Octobre 2009, par Matthieu Marcillaud
Retrouver l’adresse d’un fichier - Des balises à connaître
#CACHE
Octobre 2009, par Matthieu Marcillaud
Définir la durée du cache - Des balises à connaître
#AUTORISER
Octobre 2009, par Matthieu Marcillaud
Tester des autorisations - Des balises à connaître
Contenu d’un fichier exec (squelette)
Octobre 2009, par Matthieu Marcillaud, RastaPopoulos
L’appel dans l’espace privé d’une page ?exec=nom charge automatiquement un squelette placé dans prive/exec/nom.html. Dans la majorité des cas, il est recommandé d’utiliser cette méthode plutôt qu’un fichier PHP. L’objectif est que l’espace privé de SPIP soit lui aussi écrit en squelette, donc (…)
Liens AJAX
Octobre 2009, par Matthieu Marcillaud
Outre les inclusions contenant une pagination, il est possible de spécifier des liens à recharger en AJAX en ajoutant dessus la classe CSS ajax. /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .spip2.spip2 .imp (…)
Forcer la langue selon le visiteur
Septembre 2009, par Matthieu Marcillaud
Le paramètre forcer_lang Le formulaire #MENU_LANG stocke la langue choisie dans un cookie. Ce cookie peut donc être employé pour réafficher le site dans la langue qu’il avait choisit. Une des manières d’y arriver est de définir la variable globale forcer_lang dans un fichier d’options. /** * (…)
Definition
Septembre 2009, par Gilles Vincent
Pipelines are provided by SPIP to allow your plugin to ‘hook into’ SPIP code ; that is, to call functions in your plugin at specific moments, and thereby set your plugin in motion. The declaration file plugin.xml of the plugin must contain these lines : pluginPrefix pipelineName cfg_pipeline.php (…)
List of current pipelines
Septembre 2009, par Gilles Vincent
The default pipelines defined in SPIP are listed in the file ecrire/inc_version.php. However, plugins could create new ones. There are several types of pipelines : some of them deal with typographical modifications, others deal with databases modifications, or pages display in the private area, (…)
find_in_path
Septembre 2009, par Gilles Vincent
The function find_in_path() returns the path of a function. This function is searched for in the « SPIP path ». It takes 1 or 2 arguments : name or relative path of a file (with its extension) eventually, the directory where it is stored. /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 (…)
body_prive
Septembre 2009, par Matthieu Marcillaud
Insérer du contenu après dans l’espace privé. - Liste des pipelines
pre_liens
Septembre 2009, par Matthieu Marcillaud
Traiter les raccourcis typographiques relatifs aux liens - Liste des pipelines
recuperer_fond
Septembre 2009, par Matthieu Marcillaud
Modifie le résultat de compilation d’un squelette - Liste des pipelines
En bref
Septembre 2009, par Matthieu Marcillaud
Voici un résumé des pipelines de SPIP : Nom Description accueil_encours Ajouter du contenu au centre de la page d’accueil. accueil_gadget Ajouter des raccourcis en haut du contenu de la page d’accueil. accueil_informations Informer sur les statistiques des objets éditoriaux sur la page (…)
ajouter_onglets
Septembre 2009, par Matthieu Marcillaud
Ajouter des onglets dans les pages de l’espace privé. - Liste des pipelines
ajouter_boutons
Septembre 2009, par Matthieu Marcillaud
Ajouter des boutons dans le menu de l’espace privé. - Liste des pipelines
autoriser
Septembre 2009, par Matthieu Marcillaud
Charger des fonctions d’autorisations. - Liste des pipelines
affiche_enfants
Septembre 2009, par Matthieu Marcillaud
Modifier ou compléter le contenu des listes présentant les enfants d’un objet dans l’espace privé - Liste des pipelines
affiche_hierarchie
Septembre 2009, par Matthieu Marcillaud
Modifier le code HTML du fil d’ariane de l’espace privé. - Liste des pipelines
affiche_gauche
Septembre 2009, par Matthieu Marcillaud
Ajouter du contenu dans la colonne « gauche » de l’espace privé. - Liste des pipelines
affiche_droite
Septembre 2009, par Matthieu Marcillaud
Ajouter du contenu dans la colonne « droite » de l’espace privé. - Liste des pipelines
affichage_final
Septembre 2009, par Matthieu Marcillaud
Effectue des traitements juste avant l’envoi des pages publiques. - Liste des pipelines
accueil_informations
Septembre 2009, par Matthieu Marcillaud
Informer sur les statistiques des objets éditoriaux sur la page d’accueil. - Liste des pipelines
accueil_gadget
Septembre 2009, par Matthieu Marcillaud
Ce pipeline permet d’ajouter des liens en haut du contenu de la page d’accueil de l’espace privé, dans le cadre qui liste différentes actions possibles (créer une rubrique, un article, une brève…). /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ (…)
Notes sur cette documentation
Septembre 2009, par Matthieu Marcillaud
Licence et libertés Cette documentation, fruit de longues heures d’écriture, est une somme de connaissances issue de la communauté SPIP. Tout ce travail est distribué sous licence libre Creative Commons - Paternité - Partage des Conditions Initiales à l’Identique (cc-by-sa). Vous pouvez utiliser (…)
accueil_encours
Septembre 2009, par Matthieu Marcillaud
Ce pipeline permet d’ajouter du contenu au centre de la page d’accueil de l’espace privé, par exemple pour afficher les nouveaux articles proposés à publication. /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.php (…)
Vérifier les valeurs soumises
Août 2009, par Matthieu Marcillaud
La fonction verifier() permet d’analyser les valeurs postées et de retourner éventuellement des erreurs de saisie. Pour cela, la fonction retourne un tableau associatif « champ » / « message d’erreur » pour les champs incriminés, ainsi éventuellement qu’un message d’erreur plus général pour (…)
Mentions Légales
Août 2009, par Matthieu Marcillaud
Contenus et droits de reproduction Tout le contenu du site est distribué sous licence libre Creative Commons - Paternité - Partage des Conditions Initiales à l’Identique (cc-by-sa). Vous pouvez utiliser ces textes quelque soit l’usage (y compris commercial), les modifier et les redistribuer à (…)
editer_contenu_objet
Août 2009, par Matthieu Marcillaud
Ce pipeline est appelé au moment de l’affichage d’un formulaire d’édition d’un objet de SPIP. Il permet de modifier le contenu HTML du formulaire. Ce pipeline est appelé comme paramètre de chargement d’un formulaire CVT : /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (…)
Pipelines au chargement
Août 2009, par Matthieu Marcillaud
formulaire_charger Ce pipeline permet de modifier le tableau de valeurs renvoyées par la fonction charger d’un formulaire. Il est décrit dans le chapitre sur les pipelines : formulaire_charger paramètre _pipeline Ce paramètre permet de modifier code HTML envoyé en le faisant traverser un (…)
Autres options de chargement
Août 2009, par Matthieu Marcillaud
Différents autres paramètres spéciaux peuvent être envoyés dans le formulaire lors de son chargement pour modifier son comportement d’origine : message_ok, message_erreur Le message de succès est en principe fournit par la fonction traiter ; le message d’erreur par la fonction verifier ou (…)
formulaire_charger
Août 2009, par Matthieu Marcillaud
Le pipeline formulaire_charger permet de modifier le tableau de valeurs envoyé par la fonction charger d’un formulaire CVT. Il reçoit en argument le nom du formulaire ainsi que les paramètres transmis au formulaire dans les fonctions charger, verifier et traiter. Il retourne le tableau des (…)
Autoriser ou non l’affichage du formulaire
Août 2009, par Matthieu Marcillaud
Le formulaire est affiché par défaut, cependant il est possible de restreindre cet affichage en fonction d’autorisations données. Deux possibilités : soit on ne veut pas du tout afficher le formulaire, on retourne alors false : /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (…)
Charger les valeurs du formulaire
Août 2009, par Matthieu Marcillaud
La fonction charger() permet d’indiquer quels champs doivent être récupérés lorsque le formulaire est soumis et permet aussi de définir les valeurs par défaut de ces champs. Cette fonction renvoie tout simplement un tableau associatif « nom du champ » / « valeur par défaut » : /** * GeSHi (c) (…)
Passage d’arguments aux fonctions CVT
Août 2009, par Matthieu Marcillaud
Les fonctions charger(), verifier() et traiter() ne reçoivent par défaut aucun argument. /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.php .imp font-weight : bold ; color : red ; .php.php .kw1 color : #b1b100 ; (…)
Overriding a file
Mai 2009, par Thomas Sutton
One of the first possibilities to modify SPIP’s behaviour is to copy one of its files from ecrire/ into a folder with higher priority — a plug-in or squelettes/ folder, for example — while preserving the folder hierarchy. Thus, one could modify the way in which SPIP manages the cache by copying (…)
Overloading a _dist function
Mai 2009, par Thomas Sutton
Many of the functions in SPIP are designed to be overridden. These functions have the extension “_dist” in their name. All the balises (“tags”), boucles (“loops”), and criteres (“criteria”) are named like this and can thus be overridden by declaring (perhaps in the file mes_fonctions.php) the (…)
Declaring new functions
Mai 2009, par Thomas Sutton
The “_fonctions” files are loaded automatically by SPIP, but — unlike the “_options” files — only when it needs to evaluate a template to generate a new page. These files make it possible, for example, to define new filters that can be used in templates. If you create a (…)
Declaring options
Mai 2009, par Thomas Sutton
When a visitor requests a page (whether or not it is in the cache), SPIP carries out a number of actions, one of which is to load the “options” files. In these files we can, for example, define new constants or modify global variables that control the way SPIP operates. These options can be (…)
Templates or plug-ins ?
Mai 2009, par Thomas Sutton
Use the "squelettes" folder The squelettes/ folder allows to store all the files required for the operation of your site and of its graphic design : templates (or “squelettes”, images, javascript and css files, php libraries, …). Or create a plug-in A plug-in, stored in a folder like (…)
The concept of path
Mai 2009, par Thomas Sutton
SPIP uses a large number of functions and templates, contained in various folders. When a script needs to open a file to load a function or to read a template, SPIP will search for it in one of a number of folders. The first matching file found in one of these will be loaded and used. The (…)
Affichage conditionnel
Avril 2009, par Matthieu Marcillaud
Les fonctions charger() ou traiter() peuvent indiquer dans leur réponse que le formulaire est éditable ou non. Cela se traduit par la réception d’un paramètre editable dans le squelette, qui peut servir à masquer ou non le formulaire (mais pas les messages d’erreur ou de réussite). Il s’utilise (…)
Expliquer les saisies
Avril 2009, par Matthieu Marcillaud
Il est souvent nécessaire de donner une explication pour remplir correctement une saisie de formulaire. SPIP propose une écriture pour cela, à insérer comme classe CSS dans une balise : explication permet d’écrire une explication plus détaillée que le label du champ souhaité attention met en (…)
Champs radio et checkbox
Avril 2009, par Matthieu Marcillaud
Pour afficher des listes d’éléments de type radio ou checkbox, une syntaxe est proposée en encadrant les éléments d’une . Cette écriture permet d’avoir le bouton avant le label, d’avoir la liste radio en horizontal (via CSS). /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (…)
Séparations par fieldset
Avril 2009, par Matthieu Marcillaud
Lorsqu’un formulaire possède de nombreux champs, on sépare généralement celui-ci en différents blocs nommés fieldset en HTML. Comme précédemment, une écriture est proposée pour de tels blocs, toujours s’appuyant sur des listes ul/li : /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny (…)
Gerer le retour d’erreurs
Avril 2009, par Matthieu Marcillaud
La fonction verifier() du formulaire peut retourner des erreurs si les champs soumis ne sont pas corrects ; nous le verrons plus tard. Pour afficher ces erreurs dans le HTML du formulaire, des classes CSS et un nommage est proposé : En tête du formulaire, des erreurs (ou des messages de (…)
Afficher le formulaire
Avril 2009, par Matthieu Marcillaud
Un fichier formulaires/joli.html s’appelle dans un squelette par #FORMULAIRE_JOLI qui affiche alors le formulaire. Le HTML du formulaire suit une écriture standard pour tous les formulaires SPIP. Les champs du formulaire sont encadrés dans une liste d’éléments ul/li. /** * GeSHi (c) 2004 - 2007 (…)
Loops with missing tables
Avril 2009, par Thomas Sutton
When we ask SPIP to use a table which does not exist it displays an error on the page. These error messages help administrators to fix problems with the site, but other users get to see them as well. Sometimes, we don’t care if a table is missing and want to ignore it silently, for example if (…)
Recursive loops
Avril 2009, par Thomas Sutton
When a site has many sub-sections, or many forum messages, it often uses recursive loops. This makes it possible to display identical elements very easily. In programming, an algorithm (a data-processing code) which calls itself described as being « recursive ». Here, a recursive loop (n), (…)
Nested loops
Avril 2009, par Thomas Sutton
It is often useful to nest loops within each other to display more complicated elements. Nesting loops in this way makes it possible to use values from the first, outer, loop as selection criteria for the second, inner, loop. Here, we list all of the articles contained in the first two sections (…)
The syntax of loops
Avril 2009, par Thomas Sutton
A loop specifies both a database table from which to extract information as well the criteria for selection. /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .spip2.spip2 font-family:monospace ; .spip2.spip2 .imp (…)
jquery_plugins
Mars 2009, par Matthieu Marcillaud
Ce pipeline permet d’ajouter très simplement dans les pages publiques et privées du site des script JavaScript, appliqués sur toutes les pages. Ce pipeline reçoit et retourne un tableau d’adresses de fichiers à insérer et est appelé comme suit : /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - (…)
styliser
Mars 2009, par Matthieu Marcillaud
Ce pipeline, introduit en SPIP 2.0.6, permet de modifier la façon dont SPIP cherche les squelettes utilisés pour générer une page. Il est possible par exemple, d’aiguiller vers un squelette spécifique en fonction d’une rubrique donnée. Ce pipeline est appelé comme suit : /** * GeSHi (c) 2004 - (…)
declarer_tables_objets_surnoms
Janvier 2009, par Matthieu Marcillaud
Il permet d’indiquer la relation entre le type d’objet et sa correspondance SQL. Par défaut, un ’s’ de pluriel est ajouté (l’objet ’article’ donne une table SQL ’articles’). Le pipeline reçoit un tableau des correspondances de SPIP. Appel du pipeline : /** * GeSHi (c) 2004 - 2007 Nigel McNie, (…)
affiche_milieu
Janvier 2009, par Matthieu Marcillaud
Ce pipeline permet d’ajouter du contenu sur les pages exec/ de SPIP, après le contenu prévu au centre de la page. Il est appelé comme ceci : /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.php font-family:monospace (…)
Installer des librairies externes
Janvier 2009, par Matthieu Marcillaud
Les plugins peuvent aussi demander à télécharger des librairies externes dont ils dépendent. Cela nécessite plusieurs choses : une déclaration spécifique dans le fichier plugin.xml, et la présence d’un répertoire /lib accessible en écriture à la racine de SPIP dans lequel sera téléchargée la (…)
Gestion des dépendances
Janvier 2009, par Matthieu Marcillaud
Les plugins peuvent indiquer qu’ils dépendent de certaines conditions pour fonctionner. Deux attributs indiquent cela : necessite et utilise. Dans le premier cas, la dépendance est forte : un plugin qui nécessite quelque chose (une certaine version de SPIP ou d’un plugin) ne pourra pas s’activer (…)
Définir des onglets
Janvier 2009, par Matthieu Marcillaud
Déclarer des onglets pour les pages exec des l’espace privé reprend exactement la même syntaxe que les bouton. Le nom du parent par contre est obligatoire et correspond à un paramètre transmis dans la fonction d’appel de l’onglet dans le fichier exec : /** * GeSHi (c) 2004 - 2007 Nigel McNie, (…)
Définir des boutons
Janvier 2009, par Matthieu Marcillaud
Pour ajouter des boutons dans l’espace privé il suffit de renseigner un attribut bouton dans le fichier plugin.xml, de la sorte : /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .xml.xml font-family:monospace ; .xml.xml (…)
Utiliser les pipelines
Janvier 2009, par Matthieu Marcillaud
Pour utiliser les pipelines de SPIP ou d’un plugin, il faut explicitement déclarer son utilisation dans le fichier plugin.xml : /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .xml.xml font-family:monospace ; .xml.xml (…)
plugin.xml, attributs courants
Janvier 2009, par Matthieu Marcillaud
Options et fonctions Les fichiers d’options et de fonctions d’un plugin sont déclarés directement dans le fichier plugin.xml, avec les attributs options et fonctions : /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ (…)
plugin.xml minimum
Janvier 2009, par Matthieu Marcillaud
Le fichier plugin.xml doit être créé à la racine de votre plugin. Il contient la description de celui-ci et permet de définir certaines actions. Le minimum pourrait être cela (les caractères fallacieux sont échappés) : /** * GeSHi (c) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (…)
L’Opérateur « ! »
Janvier 2009, par Matthieu Marcillaud
Les critères conditionnels de négation simple, effectués sur des champs extérieurs à la table (des champs créant une jointure sur une autre table - voir le chapitre consacré) ne font pas toujours ce que l’on suppose au premier abord. Ainsi le critère titre_mot !=rose sélectionne, sur une boucle (…)
Revenir en haut