Introduction
Le plugin « Le Couteau Suisse » propose d’introduire facilement de simples fonctionnalités supplémentaire à SPIP (que l’on pourra appeler « des outils » ou même « des lames ») sans pour autant alourdir le core. Par exemple : des filtres supplémentaires, des balises pratiques, des facilités typographiques, le contrôle de certaines variables « cachées », etc. Ma constatation est de voir que les utilisateurs (dont moi-même !) font souvent les mêmes installations de plugins dont certains ne font qu’une ligne ou deux. Il devient également plus facile de gérer les différentes variables de SPIP cachées à l’utilisateur lambda. L’idée est partie d’un message sur la liste spip.zone de Pierre Andrews (mes hommages, Pierre !) posté le dimanche 17 décembre 2006 19:16, suite à une plainte d’Olivier G. qui déplorait la création d’un plugin entier autour de l’utilisation d’une simple variable.
Le but est donc de réunir toutes ces fonctionnalités, petites mais pratiques, en un seul plugin et d’ajouter dans l’espace d’administration une page de configuration où il suffira de cocher les outils voulus. Le gain en performances et en clarté est non négligeable : le plugin précompile les fonctionnalités lors de l’installation et permet ensuite une navigation plus fluide. Les débutants qui ne connaissent rien au php, html ou à SPIP, seront les premiers servis dans ce projet. Rien de plus facile pour moi ou pour la plupart d’entre vous d’ajouter une ligne de code qui va bien ... Mais ce n’est pas le cas de tout le monde !!
Attention, un plugin encore mouvant...
Le plugin, bien qu’il soit stable, compatible avec SPIP 1.9x et prêt pour SPIP 2.0, reste encore en mouvance. Après s’être appelé Tweak SPIP, il continue à évoluer et à s’améliorer au fil des bugs découverts. Il convient donc pour l’instant de procéder à des mises à jour régulières. De nouveaux outils peuvent arriver à tout moment !
Dépendance à jQuery
La nouvelle interface de configuration ainsi que quelques outils du plugin requierent la librairie jQuery. Le site officiel (en anglais) est : http://jquery.com/. D’autres informations sont disponibles en français ici : http://www.jquery.info/. Cette librairie de fonctions Javascript a été complètement intégrée dans SPIP à partir de la version 1.92. Pour les versions antérieures, il vous faudra installer un plugin spécifique que vous pouvez télécharger ici : http://files.spip.org/spip-zone/jqu....
Fonctionnalités
Voici un peu en vrac les outils réunis pour l’instant :
| Administration |
|---|
Format des URLs : SPIP offre un choix sur plusieurs jeux d’URLs pour fabriquer les liens d’accès aux pages de votre site. Plus d’infos : http://www.spip.net/fr_article765.html. L’outil « Boîtes privées » vous permet de voir sur la page de chaque objet SPIP l’URL propre associée.
Format des URLs : page, html, propres, propres2, libres, arborescentes, standard, propres_qs.
Rappel : pour utiliser les formats html, propres, propres2, libres ou arborescentes, recopiez le fichier "htaccess.txt" du répertoire de base du site SPIP sous le sous le nom ".htaccess" (attention à ne pas écraser d’autres réglages que vous pourriez avoir mis dans ce fichier) ; si votre site est en "sous-répertoire", vous devrez aussi éditer la ligne "RewriteBase" ce fichier. Les URLs définies seront alors redirigées vers les fichiers de SPIP.
Actions rapides sur les URLs :
- Réinitialisation des URLs stockées dans la base
- Édition en base de l’URL d’un objet spécifique.
Nombreux paramètres de configuration : terminaison des URLs, début des URLs, caractère de séparation, marqueurs dissociant les objets, script d’appel, lettres minuscules, id systématique en suffixe, id systématique en préfixe, etc.
SPIP et le cache…
- Désactiver le cache : Par défaut, SPIP calcule toutes les pages publiques et les place dans le cache afin d’en accélérer la consultation. Désactiver temporairement le cache peut aider au développement du site. Sous SPIP 2.0, quatre valeurs possibles : Usage normal, Cache permanent,
Pas de cache, Contrôle du cache.
Action rapide sur le cache : le vider.
- Valeur du quota : Le cache occupe un certain espace disque et SPIP peut en limiter l’importance. Une valeur vide ou égale à 0 signifie qu’aucun quota ne s’applique.
- Recalculer juste après une modification : Lorsqu’une modification du contenu du site est faite, SPIP invalide immédiatement le cache sans attendre le calcul périodique suivant. Si votre site a des problèmes de performance face à une charge très élevée, vous pouvez cocher « non » à cette option.
- Durée du cache local : Si la balise #CACHE n’est pas trouvée dans vos squelettes locaux, SPIP considère par défaut que le cache d’une page a une durée de vie de 24 heures avant de la recalculer. Afin de mieux gérer la charge de votre serveur, vous pouvez ici modifier cette valeur.
- Durée du cache en mutualisation : Si vous avez plusieurs sites en mutualisation, vous pouvez spécifier ici la valeur par défaut prise en compte par tous les sites locaux (SPIP 2.0).
Dossier du squelette
Modifie le dossier du squelette utilisé. Par exemple : « squelettes/monsquelette ». En laissant la case vide, c’est le squelette original « dist » fourni par SPIP qui sera utilisé.
Paragrapher
Applique (ou non) la fonction SPIP paragrapher() aux textes qui sont dépourvus de paragraphes en insérant des balises <p>.
Type d’interface privée
Sélectionne d’office le type d’interface privée (simplifiée ou avancée) pour tous les rédacteurs déjà existants ou à venir et supprime le bouton correspondant du bandeau des petites icônes (version 1.9.2 maxi).
Allègement de l’interface privée
Désactive le menu de changement rapide de statut d’un article au survol de sa puce colorée. Cela est utile si vous cherchez à obtenir une interface privée la plus dépouillée possible afin d’optimiser les performances client (version 2.0 mini).
Gestion du javascript
Pour gérer le javascript dans les articles, trois modes sont disponibles :
- jamais : le javascript est refusé partout
- défaut : le javascript est signalé en rouge dans l’espace privé
- toujours : le javascript est accepté partout.
Attention : dans les forums, pétitions, flux syndiqués, etc., la gestion du javascript est toujours sécurisée.
Limite la taille des forums
Par défaut les messages de forum ne sont pas limités en taille. Si cet outil est activé, un message d’erreur s’affichera lorsque quelqu’un voudra poster un message d’une taille supérieure à la valeur spécifiée, et le message sera refusé.
Pas de forums anonymes
Incite tous les auteurs de messages publics à remplir (d’au moins d’une lettre !) le champ « Votre nom (ou pseudonyme) :» afin d’éviter les contributions totalement anonymes.
Cette fonctionnalité utilise la librairie jQuery.
Suivi des forums
Un auteur d’article est toujours informé lorsqu’un message est publié dans le forum associé. Mais il est aussi possible d’avertir en plus : tous les participants au forum ou seulement les auteurs de messages en amont.
Pas de stockage IP
Désactive le mécanisme d’enregistrement automatique des adresses IP des visiteurs de votre site par soucis de confidentialité : SPIP ne conservera alors plus aucun numéro IP, ni temporairement lors des visites (pour gérer les statistiques ou alimenter spip.log), ni dans les forums (responsabilité).
Pas de verrouillage de fichiers
Désactive le système de verrouillage de fichiers en neutralisant la fonction PHP flock(). Certains hébergements posent en effet des problèmes graves suite à un système de fichiers inadapté ou à un manque de synchronisation. N’activez pas cet outil si votre site fonctionne normalement.
Site en travaux
Permet d’afficher un message personnalisable pendant une phase de maintenance sur tout le site public.
Boîtes privées - Plus d’informations
Toutes les boîtes décrites ci-dessous apparaissent dans la partie privée.
- Les révisions du Couteau Suisse : un cadre sur la présente page de configuration, indiquant les dernières modifications apportées au code du plugin (Source).
- Les articles au format SPIP : un cadre repliable supplémentaire pour vos articles afin de connaître le code source utilisé par leurs auteurs.
- Les auteurs en stat : un cadre supplémentaires sur la page des auteurs indiquant les 10 derniers connectés et les inscriptions non confirmées. Seuls les administrateurs voient ces informations.
Vous pouvez également définir le nombre maximal d’auteurs à afficher sur le cadre central de cette page.
Liste des webmestres : Un webmestre au sens SPIP est un administrateur ayant accès à l’espace FTP. Par défaut, il est l’administrateur id_auteur=1 du site. Les webmestres ont le privilège de ne plus être obligés de passer par FTP pour valider les opérations sensibles du site, comme la mise à jour de la base de données ou la restauration d’un dump. En tant que webmestre vous-même, vous aurez les droits de modifier cette liste.
La corbeille (SPIP 2.0 mini) : SPIP supprime automatiquement les objets mis au rebuts au bout de 24 heures, en général vers 4 heures du matin, grâce à une tâche « CRON » (lancement périodique et/ou automatique de processus pré-programmés). Vous pouvez grâce à cet outil empêcher ce processus afin de mieux gérer votre corbeille et purger à votre convenance les objets qu’elle contient.
Modération modérée : Permet de modérer la modération des forums publics configurés à priori pour les utilisateurs inscrits. Exemple : Je suis le webmestre de mon site, et je réponds à un message d’un utilisateur, pourquoi devoir valider mon propre message ? Modération modérée le fait pour moi !
| Améliorations Typographiques |
|---|
Belles puces
Remplace les puces « - » (tiret simple) des articles par des listes notées « -* » (traduites en HTML par : <ul><li>…</li></ul>) et dont le style peut être personnalisé par css.
Les exposants - Plus d’Informations
Textes français : améliore le rendu typographique des abréviations courantes, en mettant en exposant les éléments nécessaires. Ainsi, Mme devient Mme et en corrigeant les erreurs courantes 2ème ou 2me, par exemple, deviennent 2e, seule abréviation correcte.
Guillemets typographiques - Plus d’Informations
Remplace automatiquement les guillemets droits (") par les guillemets typographiques de la langue de composition. Le remplacement, transparent pour l’utilisateur, ne modifie pas le texte mais seulement l’affichage final.
Belles URLs - Plus d’Informations
- Liens corrects : SPIP a pour habitude d’insérer un espace avant les points d’interrogation ou d’exclamation, typo française oblige. Voici un outil qui protège le point d’interrogation dans les URLs de vos textes.
- Liens orphelins : Remplace systématiquement toutes les URLs laissées en texte par les utilisateurs (notamment dans les forums) et qui ne sont donc pas cliquables, par des liens hypertextes au format SPIP. Voici un test : www.spip.net est remplacé par http://www.spip.net.
Vous pouvez choisir le type de remplacement :
- basique : sont remplacés les liens du type http://spip.net (tout protocole) ou www.spip.net.
- étendu : sont remplacés en plus les liens du type moi@spip.net, mailto:monmail ou news:mesnews.
Smileys - Plus d’Informations
Remplace tous les smileys écrits « en texte » par l’image souriante correspondante. Outil très utile pour les forums.
Une balise est disponible pour aficher un tableau de smileys dans vos squelettes : #SMILEYS.
MailCrypt - Plus d’Informations
Masque tous les liens de courriels présents dans vos textes en les remplaçant par un lien Javascript permettant quand même d’activer la messagerie du lecteur. Cet outil antispam tente d’empêcher les robots de collecter les adresses électroniques laissées en clair dans les forums ou dans les balises de vos squelettes.
| Raccourcis typographiques |
|---|
Découpe en pages et onglets - Plus d’Informations
Découpe l’affichage public d’un article en plusieurs pages grâce à une pagination automatique. placez simplement dans votre article quatre signes plus consécutifs (++++) à l’endroit qui doit recevoir la coupure.
Si vous utilisez ce séparateur à l’intérieur des balises <onglets> et </onglets> alors vous obtiendrez un jeu d’onglets.
Dans les squelettes : vous avez à votre disposition les nouvelles balises #ONGLETS_DEBUT, #ONGLETS_TITRE et #ONGLETS_FIN.
Blocs multilingues
À l’instar de ce vous pouvez déjà faire dans vos squelettes, cet outil vous permet d’utiliser librement les chaînes de langues (de SPIP ou de vos squelettes) dans tous les contenus de votre site (articles, titres, messages, etc.) à l’aide du raccourci <:chaine :>. La fonction SPIP utilisée est : _T(’un_texte’, $flux). Les arguments sont également supportés.
N’oubliez pas de vérifier que ’un_texte’ est bien défini dans les fichiers de langue.
Décoration - Plus d’Informations
De nouveaux styles (classes ou langues) paramétrables pour vos textes et accessibles grâce à des balises à chevrons personnalisées. Exemple : <mabalise>texte</mabalise> ou : <mabalise/>.
Exemples fournis : <sc>capitales</sc>, <souligne>souligné</souligne>, <barre>barré</barre>, <dessus>dessus</dessus>, <clignote>clignote</clignote> <surgris>gris</surgris> et <surfluo>fluo</surfluo>
Tout en couleurs - Plus d’Informations
Permet d’appliquer facilement des couleurs (toutes éventuellement paramétrables) à tous les textes du site (articles, brèves, titres, forum, ...) en utilisant des balises à crochets (anglais ou français).
Deux exemples identiques : Lorem ipsum [rouge]dolor[/rouge] sit amet et
Lorem ipsum [red]dolor[/red] sit amet.
Chatons
Insère des images (ou chatons pour les tchats) dans tous les textes où apparaît une chaîne du genre :nom. Comme pour les smileys, cet outil remplace les raccourcis en texte par les images du même nom qu’il trouve dans le répertoire plugins/couteau_suisse/img/chatons/ ou squelettes/mon_squelette/img/chatons/.
Filets de Séparation - Plus d’Informations
Permet d’insérer très facilement des filets de séparation personnalisés dans les textes, comme des styles purs ou des images à placer dans le répertoire plugins/couteau_suisse/img/filets.
Blocs Dépliables - Plus d’informations
Vous permet de créer des blocs dont le titre cliquable peut les rendre visibles ou invisibles.
Dans les textes SPIP : les rédacteurs ont à disposition les nouvelles balises <bloc> (ou <invisible>) et <visible> à utiliser dans leurs textes.
Dans les squelettes : vous avez à votre disposition les nouvelles balises #BLOC_TITRE, #BLOC_DEBUT et #BLOC_FIN.
| Affichage public |
|---|
Supprime le numéro
Applique la fonction SPIP supprimer_numero() à l’ensemble des titres, des noms et des types (de mots-clés) du site public, sans que le filtre supprimer_numero soit présent dans les squelettes.
Voici la syntaxe à utiliser dans le cadre d’un site multilingue : 1. <multi>My Title[fr]Mon Titre[de]Mein Titel</multi>.
Force la langue
Force le contexte de langue pour les jeux de squelettes multilingues disposant d’un formulaire ou d’un menu de langues sachant gérer le cookie de langues. Techniquement, cet outil a pour effet :
- de désactiver la recherche du squelette en fonction de la langue de l’objet,
- de désactiver le critère {lang_select} automatique sur les objets classiques (articles, brèves, rubriques etc ... ).
Les blocs multi s’affichent alors toujours dans la langue demandée par le visiteur.
Style des paragraphes
Jusqu’à la version 1.92 de SPIP, les paragraphes html (marqués par la balise <p>) étaient systématiquement affublés du style class="spip". Cet outil vous permet de définir le style de vos paragraphes en fonction de vos feuilles de style.
Activer le validateur xml
Active le validateur xml pour l’espace public tel qu’il est décrit dans la documentation.
Désactive les objets flash
Supprime les objets flash des pages de votre site et les remplace par le contenu alternatif associé. Nécessite le plugin jQuery ou une version de SPIP supérieure à 1.9.2.
SPIP et les liens… externes - Plus d’informations
- Liens externes : permet aux liens externes au site de s’ouvrir dans une nouvelle fenêtre extérieure. Activer cet outil revient à ajouter automatiquement target="_blank" à toutes les balises <a> dotées par SPIP des classes spip_out, spip_url et/ou spip_glossaire. Il est parfois nécessaire d’ajouter l’une de ces classes aux liens du squelette du site (fichiers html) afin d’étendre au maximum cette fonctionnalité.
- Glossaire externe : SPIP permet de relier des mots à leur définition grâce au raccourci typographique [?mot]. Par défaut, le glossaire externe renvoie vers l’encyclopédie libre wikipedia.org. À vous de choisir l’adresse à utiliser. Exemple : SPIP.
Désactive jQuery
Empêche l’installation des fonctions de jQuery dans la partie publique : utile pour alléger les pages ou installer d’autres librairies. jQuery (http://jquery.com/) apporte de nombreuses commodités dans la programmation de Javascript et peut être utilisée par certains plugins. SPIP l’utilise dans sa partie privée.
Sommaire pour les articles - Plus d’informations
Construit automatiquement un sommaire en début d’article afin d’accéder rapidement aux gros titres (balises <h3>Un titre</h3> ou raccourcis SPIP {{{Un autre titre}}}.
Glossaire interne - Plus d’informations
Gestion d’un glossaire interne lié à un groupe de mots-clés nommé « Glossaire » : très utile pour les termes difficiles ou les acronymes. Pour chaque mot, vous avez la possibilité de choisir le nombre maximal de liens créés dans vos textes.
Ancres douces
Offre à votre site public un défilement adouci de la page lorsque le visiteur clique sur un lien pointant vers une ancre : très utile pour éviter de se perdre dans une page complexe ou un texte très long...
Jolis Coins
Permet de modifier facilement l’aspect des coins de vos cadres colorés en partie publique de votre site. Tout est possible, ou presque ! Voyez le résultat sur cette page : http://www.malsup.com/jquery/corner/.
Visiteurs connectés
Offre une noisette pour votre squelette qui affiche le nombre de visiteurs connectés sur le site public : ajoutez simplement <INCLURE{fond=fonds/visiteurs_connectes}> dans vos pages.
| Balises, filtres, critères |
|---|
Orientation des images
Ajoute les critères {portrait}, {carre} et {paysage} dans vos squelettes pour le classement des photos.
Idée d’origine
Version texte
2 filtres pour vos squelettes.
version_texte : extrait le contenu texte d’une page html à l’exclusion de quelques balises élémentaires.
version_plein_texte : extrait le contenu texte d’une page html pour rendre du texte plein.
Balise #INSERT_HEAD
Active #INSERT_HEAD sur tous les squelettes, qu’ils aient ou non cette balise entre <head> et </head>. Grâce à cette option, les plugins pourront insérer du javascript (.js) ou des feuilles de style (.css).
Balise #INTRODUCTION - Plus d’Informations
- Longueur du résumé : vous pouvez préciser (en pourcentage par rapport à la valeur utilisée par défaut) la longueur du texte renvoyé par balise #INTRODUCTION. Une valeur nulle ou égale à 100 ne modifie pas l’aspect de l’introduction et utilise donc les valeurs par défaut suivantes : 500 caractères pour les articles, 300 pour les brèves et 600 pour les forums ou les rubriques.
- Points de suite : par défaut, les points de suite ajoutés au résultat de la balise #INTRODUCTION sont : '  ;(...)’. Cette balise à placer dans les squelettes sert en général à la une ou dans les rubriques afin d’introduire les articles, les brèves, etc.. Vous pouvez donc préciser votre propre chaîne de caractère indiquant à l’utilisateur que le texte tronqué a bien une suite.
- Points de suite cliquables : si la balise #INTRODUCTION est utilisée pour résumer un article, alors le Couteau Suisse peut fabriquer un lien hypertexte sur les points de suite définis ci-dessus afin de mener le lecteur vers le texte original. Par exemple : « Lire la suite de l’article… »
Liens en clair - Plus d’Informations
Met à votre disposition le filtre : ’liens_en_clair’. Votre texte contient probablement des liens hypertexte qui ne sont pas visibles lors d’une impression. Ce filtre ajoute entre crochets la destination de chaque lien cliquable (liens externes ou mails).
Attention : En mode impression (parametre ’cs=print’ dans l’url de la page), cette fonctionnalité est appliquée automatiquement.
Balise #TITRE_PARENT - Plus d’Informations
Au sein d’une boucle, il est courant de vouloir afficher le titre du parent de l’objet en cours. Traditionnellement, il suffirait d’utiliser une seconde boucle, mais cette nouvelle balise #TITRE_PARENT allégera l’écriture de vos squelettes. Le résultat renvoyé est : le titre du groupe d’un mot-clé ou celui de la rubrique parente (si elle existe) de tout autre objet (article, rubrique, brève, etc.).
Notez : Pour les mots-clés, un alias de #TITRE_PARENT est #TITRE_GROUPE. Le traitement SPIP de ces nouvelles balises est similaire à celui de #TITRE.
| Divers |
|---|
Comportements du Couteau Suisse
- Logs : obtenez de nombreux renseignements à propos du fonctionnement du Couteau Suisse dans les fichiers spip.log que l’on peut trouver dans le répertoire :temporaire (/tmp à partir de SPIP v1.9.2)
- Options SPIP en amont : SPIP ordonne les plugins dans un ordre spécifique. Afin d’être sûr que le Couteau Suisse soit en tête et gère en amont certaines options de SPIP, alors cochez cette option. Si les droits de votre serveur le permettent, le fichier config/mes_options.php sera automatiquement modifié pour inclure le fichier tmp/couteau-suisse/mes_spip_options.php.
- Requêtes externes : le Couteau Suisse vérifie régulièrement l’existence d’une version plus récente de son code et informe sur sa page de configuration d’une mise à jour éventuellement disponible. Si les requêtes externes de votre serveur posent des problèmes, alors cochez cette option.
J’espère que la liste pourra s’allonger et gagner en qualité. Cette contrib faite pour vous. N’hésitez pas à l’alimenter : les idées lumineuses et les documentations détaillées sont toujours les bienvenues. Il est par exemple possible de réunir ici la gestion de toutes les variables ou définitions prévues pour mes_options.php ou mes_fonctions.php.
Je me suis permis de réunir tous ces plugins en un seul parce qu’ils ont très peu de lignes de code, qu’ils ne manipulent que le fichier mes_options.php, ou qu’ils n’utilisent qu’un seul pipeline. le Couteau Suisse accepte les fonctionnalités « multi-pipeline », mais sont but est bien sûr de réunir toutes les « petites » améliorations de SPIP qui ne sont pas strictement nécessaires mais utiles au plus grand nombre.
Particularités
Le Couteau Suisse offre un mode utile pour l’impression en plaçant le paramètre "cs=print" dans le lien d’appel de la page. Ce mode est automatiquement activé si les squelettes "print.html", "imprimer.html", "imprimir_articulo.html", "imprimir_breve.html" ou "article_pdf.html" sont utilisés (donc ici : "page=print", "page=imprimer", etc.).
Exemples d’appel :
Dans un navigateur : www.monsite.ici/spip?article999&cs=print.
Dans un squelette : [(#SELF|parametre_url{cs,print})]
En PHP : parametre_url(self(), 'cs', 'print')
En mode impression, trois outils réagissent actuellement :
Découpe en page : l’article est imprimé en intégralité sans découpage (juste un filet discret entre les pages), tout comme les onglets, représentés dans un léger cadre pointillé.
Sommaire automatique : les ancres ne sont pas placées sur les intertitres.
Liens en clair : les liens invisibles (liens externes ou mails) sont affichés entre crochets.
Comme vous pouvez le voir trois paragraphes plus haut, un système de compatibilité a été instauré avec les plugins Imprimir Documento et Article PDF.
Attention : Si votre fichier article.html utilise une balise INCLURE pour traiter le corps de l’article, pensez bien à transmettre les paramètres du Couteau Suisse au fond inclus, sous peine de voir le cache dysfonctionner. En effet, SPIP ne transmettant pas automatiquement les parametres d’url aux fonds inclus, le cache sera le même quelque soit la valeur du paramètre ’cs’.
Voici un exemple d’inclusion que l’on peut faire dans le fichier article.html. Il transmet deux paramètres du Couteau Suisse : ’artpage’ pour la découpe en page des articles et ’cs’ pour avoir accès au mode impression du plugin.
[(#REM) Contenu principal : contenu de l'article ]
<INCLURE{fond=inc-corps-article}{id_article=#ID_ARTICLE}{artpage=#ENV{artpage,1}}{cs=#ENV{cs}}>Installation du Couteau Suisse
Téléchargement : sur la zone [1]
Installation : comme tous les autres plugins. Voir : http://www.spip.net/fr_article3396.html
Configuration : rendez vous sur la page d’administration du plugin en cliquant sur l’icône « Configuration », puis sur l’onglet « Le Couteau Suisse ». Vous arrivez donc ici : ecrire/?exec=admin_couteau_suisse
Mise à jour
Le fichier accessible en téléchargement ci-dessus est régulièrement mis à jour : les petits bugs sont corrigés, des améliorations y sont apportées, de nouveaux outils y sont ajoutés, etc. Il est recommandé de mettre le régulièrement à jour afin de bénéficier des dernières avancées du plugin. Notez bien qu’il faut toujours revalider la page des plugins lorsqu’on met à jour un dossier de plugin. Techniquement, cela permet entre autre de réinitialiser les pipelines et donc les procédures et fonctions utilisées. Ensuite, n’hésitez pas à consulter la page d’administration du plugin lui-même afin de vérifiez vos précédentes options et considérer l’utilité des nouveaux outils éventuellement disponibles.
Un fichier retraçant l’historique n’existe pas actuellement. Je fais appel aux courageuses bonnes volontés qui me lisent à cet instant précis pour cette tâche qui pourrait les intéresser ! Cependant, il vous est possible de consulter les logs de développement ici, ou directement sur la page de configuration du plugin, après avoir activé l’outil : « Les révisions du Couteau Suisse ». Le plugin est en effet développé grâce au système de suivi des version « SVN » [2]. Je cite à ce sujet Alexandra [3] :
La fonction principale d’un système de suivi de versions est de permettre l’édition collaborative et le partage de données. C’est grâce à cet outil que bien des œuvres, des plugins et choses diverses se développent sur spip-zone, où tout le monde peut déposer son bout de code, récuper celui d’un autre, améliorer tel projet commencé, sans que cela ne crée de conflits liés à des modifications simultanées.
Toutes les modifications sont enregistrées sur un serveur unique. Celles-ci sont alors gérées localement sur chaque poste utilisateur par un programme spécifique, qui s’assure que les modifications faites localement ne sont pas incompatibles avec la dernière version en ligne. Il permet aussi à chacun d’effectuer des mises à jour rapides en ne récupérant que les éléments modifiés.
Pour mettre à jour le plugin, la procédure par FTP est en quatre points :
- Supprimez tous les fichiers du dossier
plugins/couteau_suisse/ - Transférez-y les nouveaux fichiers téléchargés sur la zone
- Rendez-vous sur la page de gestion des plugins (ou procédez à son réaffichage) :
ecrire/?exec=admin_plugin - Rendez-vous sur la page de gestion du Couteau Suisse (ou procédez à son réaffichage) :
ecrire/?exec=admin_couteau_suisse
Mise à jour en un clic : voir le paragraphe "Compatibilité avec les squelettes ou d’autres plugins" ci-dessous.
Procédure d’urgence
Si un outil semble incompatible avec son environnement (PHP, SQL, un autre plugin, le squelette, etc.), alors n’hésitez pas à supprimer totalement le répertoire temporaire du plugin : « ecrire/data/couteau-suisse » pour la version 1.91 de SPIP ou « tmp/couteau-suisse » pour les suivantes. Les fichiers se reconstruiront automatiquement.
Il existe aussi un lien permettant de réinitialiser complètement le plugin, en désactivant l’ensemble des outils et en supprimant toutes les variables stockées dans la base de donnée. Voici ce lien : ecrire/?exec=admin_couteau_suisse&cmd=resetall
Vous utiliserez ce lien si une page blanche surgit ou si une erreur empêche le bon fonctionnement de votre site, et cela juste après l’activation d’un outil. A l’installation du plugin, il est donc fortement conseillé d’activer les outils un par un, histoire de repérer les éventuels conflits qui pourraient survenir. le monde PHP évolue, SPIP évolue, .... On n’est jamais trop prudent !
Enfin, après avoir effectué la procédure décrite dans le paragraphe "Dysfonctionnements" ci-dessous sans avoir pu l’appliquer jusqu’au bout, et si vraiment rien n’y fait, alors il suffit de renommer le répertoire plugins/couteau_suisse (ou plugins/auto/couteau_suisse) afin de désactiver le plugin dans son ensemble. Puis, relancez le site avant de refaire une installation propre et complète du plugin. Il est possible que le transfert des fichiers du plugin ait été incomplet, ou que l’erreur ne venait pas du Couteau Suisse...
Quelques tests
Pour les plus curieux et avertis d’entre vous, le Couteau Suisse offre aussi une page de test privée accessible grâce à ce lien : ecrire/?exec=test_couteau_suisse
Et dans tous les cas, le forum ci-dessous est fait pour vous pour les soucis que vous pourriez rencontrer.
Comment piloter la configuration du Couteau Suisse et lui ajouter des lames à la volée...
Ce paragraphe est disponible ici : Le Couteau Suisse à piloter
Quelques informations techniques pour les curieux développeurs
Ce paragraphe est maintenant disponible ici : Le Couteau Suisse pour les développeurs
Compatibilité avec les squelettes ou d’autres plugins
En tout premier lieu, il est déconseillé aux squelettes d’utiliser des balises étoilées (comme #TEXTE*) car elles renvoient le texte brut stocké en base de donnée sans aucun traitement possible. Hors, SPIP laisse la possibilité à un plugin ou un squelette d’appliquer un traitement sur une balise particulière afin de mieux cibler une action donnée sur un objet donné.
Un code de ce genre (balise #TEXTE*) a été détectée dans le squelette Alternatives sur la page article.html. Les outils suivants, bien qu’activés, ne seront donc pas reconnus :
Les découpes et onglets, Le sommaire automatique, Le Glossaire interne, Les corrections automatiques.
Afin de remédier au problème, vous devez remplacer TOUT le code suivant :
[<div id="sommaire">
<h4><:icone_brouteur:></h4>
(#TEXTE*|sommaire_article|propre)
</div>]
[<div class="#EDIT{texte} texte">(#TEXTE*|decouper_en_page{#ID_ARTICLE}|propre|reduire_image{440,0})</div>]par celui-ci :
[<div class="#EDIT{texte} texte">(#TEXTE|reduire_image{440,0})</div>]Pour comprendre les traitements, le meilleur exemple est la suppression du numéro dans les titres. Si vous stockez un titre sous la forme "1. mon titre", vous allez pouvoir ensuite trier vos articles en fonction du titre. Mais si vous ne voulez pas que ce numéro apparaisse sur vos pages publiques, alors deux solutions s’offrent à vous :
soit vous appliquez un filtre partout : [(#TITRE|supprimer_numero)]
soit vous ajoutez un traitement : $table_des_traitements['TITRE'][]= 'typo(supprimer_numero(%s))';
Il faut savoir qu’à ce jour, SPIP permet difficilement (à ce jour) d’agir à plusieurs sur les traitements de balises. Le code ci-dessus écrase obligatoirement le code qu’un plugin aurait pu précédemment tenter d’appliquer.
Certains outils du Couteau Suisse risque donc d’être incompatible avec (entre autres) les plugins suivants :
Table des matières, Pagination articles, Découpe en pages.
L’outil "suppression du numéro des titres" est inutile dans les squelettes suivants (entre autres) :
Alternatives, forum spipBB, multisaisons, techno_blog.
Le Couteau Suisse est compatible avec le Plugin Barre Typographique V2. Il insère un bouton regroupant les raccourcis de certains outils. Ceci est encore en expérimentation.
Mises à jour en un clic
Le Couteau Suisse nécessite des mises à jour régulières. Si vous êtes sous SPIP 1.92x, n’hésitez donc pas à installer le plugin "Chargeur Activateur" que le Couteau Suisse utilise pour offrir un lien de téléchargement automatique sur sa page de config.
Sous SPIP 2.0, ce plugin n’est plus nécessaire. Il vaut mieux utiliser la procédure d’installation automatique offerte par SPIP (page d’administration des plugins) en créant un dossier plugins/auto/ dans votre site, et en utilisant l’une ou l’autre des listes de plugins suivantes :
- http://files.spip.org/spip-zone/paquets.rss.xml.gz
- http://plugins.spip.net/rss-+-selection-2-+
Une fois installé pour la première fois, un lien de mise à jour est disponible sur la page de configuration pour répéter cette opération en un seul clic quand vous le désirerez.
Dysfonctionnements
N’hésitez pas à remonter tout type de dysfonctionnement du plugin, nous essaierons d’y répondre, dans la mesure du possible. Dans un premier temps, tentez quand même de chercher les causes de vos soucis et soyez méthodiques. Le code est gratuit et améliorable ; chacun peut apporter une pierre à l’édifice.
Dans vos messages, soyez précis. Indiquez bien les différentes versions des éléments que vous utilisez : plugin, squelette, SPIP, PHP, etc. Pour débusquer un bug et trouver la source, il faut d’abord isoler le Couteau Suisse en désactivant les autres plugins, puis isoler l’outil défaillant. Désactiver temporairement son squelette et réutiliser le squelette source de SPIP ("dist") peut également donner des informations utiles.
3 moyens de contact :
Les listes de diffusion comme spip.zone, sur gmane.org ;
Le forum ci-après, histoire que tout le monde en profite ;
Mail direct si par hasard vous savez à qui vous adresser, mais pour des données privées.
Avant toute chose, assurez-vous d’avoir :
installé/réinstallé la toute dernière version de vos plugins
supprimé les fichiers tmp/charger_*.php
validé/rechargé la page des plugins (admin_plugin)
supprimé le dossier tmp/couteau-suisse
validé/rechargé la page du couteau suisse (admin_couteau_suisse)
et enfin, vidé le cache de SPIP
Pour mettre les mains dans le cambouis ou glaner quelques infos, n’hésitez pas à consulter et appliquer l’excellent article de Matthieu Marcillaud : http://marcimat.magraine.net/Outils....
Si cette erreur particulère survient : Fatal error : Cannot redeclare execute_pipeline_bt_gadgets() (previously declared in /usr/local/apache/htdocs/xxx/tmp/charger_pipelines.php:xxx) in /usr/local/apache/htdocs/xxx/tmp/charger_pipelines.php on line xxx : prenez soin de mettre à jour tous les plugins concernant la barre typographique, puis supprimez le fichier tmp/charger_pipelines.php.
Débats
A ce sujet, j’ai tenté de lancer les débats suivants :
Un premier débat qui peut être lancé concerne donc la répartition entre les fonctionnalités du core et celles qui peuvent être placées dans ce plugin que l’utilisateur est libre d’installer ou non. Chaque fonctionnalité peut elle aussi être activée ou désactivée par l’utilisateur. SPIP « gonfle » de jour en jour et la souplesse introduite par les plugins peut permettre un gonflage maîtrisé...
Par exemple, un antispam n’est peut-être pas nécessaire dans le core (utilisé aussi en intranet) mais pourrait trouver une meilleure place dans le Couteau Suisse.
Le second débat, c’est celui de savoir ce qu’il faut mettre dans le Couteau Suisseou non ! Doit-il rassembler diverses corrections typographiques et remplacements graphiques ? Doit-il ajouter de nouvelles balises pour les squelettes ? Doit-il ajouter de nouveaux filtres pour ces balises ?
De ceci émerge déjà une première réponse : le Couteau Suisse doit pouvoir contrôler les variables « cachées » de SPIP et habituellement placées dans « mes_options.php ».
Ensuite et à mon sens, les remplacements et améliorations typographiques ont besoin d’un cadre sécurisant unifié. Il est déjà apporté par exemple par les fonctions « monoutil_installe() » et « cs_echappe_balises() » ou les paramètres « version-min » ou « version-max ».
De même, la compilation des traitements favorise un ciblage plus précis des actions sur les différents textes de SPIP.
Enfin, le Couteau Suisse doit également pouvoir assurer une compatibilité sans faille entre tous les outils et avec les différentes versions de SPIP.
Qu’en pensez-vous ?
Wiki
YannX a ouvert pour tous les utilisateurs du Couteau Suisse un carnet Wiki où tout le monde peut déposer ses idées et suggestions. N’hésitez pas, c’est ici.











