Le Couteau Suisse

... ou plus de fonctionnalités pour SPIP !

Ce plugin propose d’introduire facilement de simples fonctionnalités supplémentaires à SPIP et qui s’avèrent rapidement indispensables ! Par exemple : le contrôle de nombreuses variables « cachées » de SPIP, des améliorations ou facilités typographiques, des filtres supplémentaires, des balises pratiques, etc.

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 : le contrôle de nombreuses variables SPIP « cachées » ou non documentées, des améliorations ou facilités typographiques, des filtres supplémentaires, des balises pratiques, 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 !!

Un plugin en évolution...

Le plugin, bien qu’il soit stable et compatible avec SPIP v1.9.x/v2.x/v3.x/v4.0/v4.1 [1], reste encore en mouvance. Après s’être appelé [archive] 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 ! Vos petits coups de main et retours d’expériences sont essentiels pour la bonne évolution de ce plugin.

La version du Couteau Suisse pour SPIP v1.91 a été conservée ici : https://files.spip.net/grenier/cout.... Sachez que cette version du plugin n’est désormais plus maintenue, il est préférable que vous mettiez à jour SPIP, vous y gagnerez sous tous les angles. Il en sera très bientôt de même avec SPIP v1.92...

Dépendances

La Couteau Suisse a vocation d’être un plugin totalement indépendant et compatible le plus largement possible avec les différentes versions de SPIP. Dès SPIP v1.9.2 et afin de faciliter grandement la mise en œuvre de ses fonctionnalités, le Couteau Suisse ne nécessite donc l’installation d’aucun autre plugin.

Notez tout de même que :

-  Certains plugins tiers sont reconnus, sans être indispensables. Par exemple, Chargeur Activateur pour SPIP 1.92 ou Porte plume pour SPIP >= 2.x.
-  Certaines lames sont basées sur des fichiers externes dont il convient de bien vérifier le téléchargement lors de l’activation. Exemple d’outils concernés : « Prévisualisation des articles » - « Masquer du contenu » - « Jolis Coins », ...
-  L’interface de configuration ainsi que quelques outils du plugin requièrent 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 : https://files.spip.org/spip-zone/jq....
Sommaire

Fonctionnalités, outils disponibles

Voici un peu en vrac les outils réunis pour l’instant. N’hésitez pas à nous signaler les oublis ou incohérences qui nous auraient échappés dans les tableaux qui suivent :

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 : https://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 proposés : 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.

Nombreux paramètres de configuration : terminaison des URLs, début des URLs, caractère de séparation, longueur maximale, marqueurs dissociant les objets, script d’appel, lettres minuscules, id systématique en suffixe, id systématique en préfixe, minimum de 3 chiffres (pour Google notamment, SPIP 2.0 mini), etc.

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.

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.x, quatre valeurs possibles : Usage normal, Cache permanent,
Pas de cache, Contrôle du cache.

- 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 mini).

- L’extension « Compresseur » présente dans SPIP permet de compacter les différents éléments CSS et Javascript de vos pages et de les placer dans un cache statique. Cela accélère l’affichage du site, et limite le nombre d’appels sur le serveur et la taille des fichiers à obtenir. Quatre option pour régler compression du HEAD : Compacter les CSS / Compacter le Javacript / Ne rien compacter en partie privée / Ne rien compacter du tout (rend caduques les options précédentes).

Action rapide sur le cache : le vider.

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></p>.
Suivi des forums (SPIP 1.9.2 uniquement)
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 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.
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.

Action rapide : purger à votre convenance les objets déclassés.

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 !
Tâches CRON
Permet de visualiser les tâches « CRON » en cours (lancement périodique et/ou automatique de processus pré-programmés) et d’en piloter le fonctionnement
Sommaire Sécurité
(Les outils suivants concernent essentiellement la sécurité de votre site)
Lutte contre le SPAM 
Tente de lutter contre les envois de messages automatiques et malveillants en partie publique. Certains mots, tout comme les balises en clair <a></a>, sont interdits : veuillez inciter vos rédacteurs à utiliser les raccourcis de liens SPIP. La configuration de cet outil antiSPAM vous permet facilement de Lister les séquences interdites et éventuellement de bloquer des adresses IPs.

Action rapide : test interactif de ce filtre (messages et/ou adresses IP) et parcours éventuel de la base de données.

Ecran de sécurité (toutes versions de SPIP)
L’écran de sécurité est un fichier PHP directement téléchargé sur le site officiel de SPIP, qui protège vos sites en bloquant certaines attaques liées à des trous de sécurité.

Outre la sécurité, cet écran a la capacité réglable de moduler les accès des robots d’indexation aux scripts php, de manière à leur dire de « revenir plus tard » lorsque le serveur est saturé.

En cas de mise à jour officielle, actualisez le fichier distant associé afin de bénéficier de la protection la plus récente.

Fichier distant : facilité de mise à jour et gestion des versions.

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.

Mises à jour automatiques - Plus d’informations
Garde un œil sur tous vos plugins. Cet outil vous permet de gérer facilement leurs mises à jour, récupérant notamment le numéro de révision contenu dans le fichier svn.revision et le comparant avec celui trouvé sur zone.spip.org. La liste proposée offre la possibilité de lancer le processus de mise à jour automatique de SPIP sur chacun des plugins préalablement installés dans le dossier plugins/auto/.

Cet outil vous informe également des différentes versions officielles disponibles pour SPIP lui-même.

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.
Citations bien balisées
Afin de respecter les usages en HTML dans les contenus SPIP de votre site (articles, rubriques, etc.), cet outil remplace automatiquement les balises <quote> par des balises <q> quand il n’y a pas de retour à la ligne.
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 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 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.

Limites mémoire
- Taille maximale des images, des logos et des documents. Afin d’alléger la mémoire de votre serveur, SPIP vous permet de limiter les dimensions (hauteur et largeur) et la taille du fichier des images, logos ou documents joints aux divers contenus de votre site. Si un fichier dépasse la taille indiquée, le formulaire enverra bien les données mais elles seront détruites et SPIP n’en tiendra pas compte, ni dans le répertoire IMG/, ni en base de données. Un message d’avertissement sera alors envoyé à l’utilisateur.
Une valeur nulle ou non renseignée correspond à une valeur illimitée.

- Espace maximal réservé aux copies locales (SPIP 2.0 mini). Il s’agit ici l’espace maximal réservé aux fichiers distants que SPIP pourrait télécharger (de serveur à serveur) et stocker sur votre site. La valeur par défaut est de 16 Mo.

- Calculs d’images avec GD. Afin d’éviter un dépassement de mémoire PHP dans le traitement des grandes images par la librairie GD2, SPIP teste les capacités du serveur et peut donc refuser de traiter les trop grandes images. Il est possible de désactiver ce test en définissant manuellement le nombre maximal de pixels supportés pour les calculs. La valeur de 1 000 000 pixels semble correcte pour une configuration avec peu de mémoire. Une valeur nulle ou non renseignée entraînera le test du serveur.

- Qualité de compression (SPIP 2.0 mini). La librairie GD2 permet d’ajuster la qualité de compression des images JPG. Un pourcentage élevé correspond à une qualité élevée.

Sessions anonymes (SPIP 2.1 maxi)
Chaque semaine, cet outil vérifie les sessions anonymes et supprime les fichiers qui sont trop anciens (plus de 2 jours) afin de ne pas surcharger le serveur, notamment en cas de SPAM sur le forum.
Sommaire Interface privée
(Les outils suivants concernent uniquement la partie privée de SPIP)
Type d’interface privée (SPIP 1.9.2 maxi)
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.
Allègement de l’interface privée (SPIP 2.0 mini)
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.
Largeur d’écran
Détermine la largeur d’écran imposée à tous en partie privée. Un écran étroit présentera deux colonnes et un écran large en présentera trois. Le réglage par défaut laisse l’utilisateur choisir, son choix étant stocké dans un cookie. Il est possible aussi de modifier la largeur totale de la page.
Bouton « Visiter »
Remplace l’image du bouton standard « Visiter » (en haut à droite) par le logo du site, s’il existe. Pour définir ce logo, rendez-vous sur la page « Configuration du site » en cliquant sur le bouton « Configuration ».
Page des auteurs
Configure l’apparence de la page des auteurs, en partie privée. Vous pouvez définir :

- le nombre maximal d’auteurs à afficher sur le cadre central de la page des auteurs. Au-delà, une pagination est mise en place.

- Les statuts d’auteurs qui peuvent être listés sur cette page (administrateurs, rédacteurs, visiteurs, etc.)

Réglage des sélecteurs
- Sélecteur de rubrique (brouteur). Permet d’utiliser le sélecteur de rubrique en AJAX à partir d’un nombre configurable de rubriques.
-  Sélection de mots-clefs (SPIP 2.0 mini). Permet d’utiliser un champ de recherche au lieu d’une liste de sélection à partir d’un nombre configurable de mot(s)-clef(s).
-  Sélection d’auteurs (SPIP 2.0 mini). L’ajout d’un auteur se fait par mini-navigateur dans la fourchette suivante :

- Une liste de sélection pour moins de XX auteurs(s).

- Un champ de recherche à partir de YY auteurs(s).

Dans la même rubrique
Définit le nombre d’objets listés dans le cadre nommé « Dans la même rubrique » et présent sur certaines pages de l’espace privé.
Les tris de SPIP
Pour personnaliser la navigation en partie privée et lorsque SPIP le permet, choisissez ici le tri à utiliser pour afficher certains types objets :

- Ordre des articles à l’intérieur des rubriques

- Ordre des groupes dans le formulaire d’ajout de mots-clés

Les propositions de configuration sont basées sur la fonctionnalité SQL ’ORDER BY’. N’utilisez le tri personnalisé que si vous savez ce que vous faites (champs disponibles par exemple pour les articles : id_article, id_rubrique, titre, soustitre, surtitre, statut, date_redac, date_modif, lang, etc.).

Exemples : tri sur la date de modification (ORDER BY date_modif DESC), sur le titre (ORDER BY 0+titre,titre), sur la date de publication (ORDER BY date DESC), etc.

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.

- Les webmestres SPIP  : un cadre dépliable sur la page des auteurs indiquant les administrateurs élevés au rang de webmestre SPIP. Seuls les administrateurs voient ces informations. Si vous êtes webmestre vous-même, voyez aussi l’outil « Liste des webmestres ».

- Les URLs propres  : un cadre dépliable pour chaque objet de contenu (article, rubrique, auteur, …) indiquant l’URL propre associée ainsi que leurs alias éventuels. L’outil « Format des URLs » vous permet une configuration fine des URLs de votre site.

- Les tris d’auteurs  : un cadre dépliable pour les articles contenant plus d’un auteur et permettant simplement d’en ajuster l’ordre d’affichage. Ceci est utile pour placer par exemple l’auteur original ou principal d’un article en toute première position.

Seules les boucles AUTEURS non triées prennent en compte ces réglages.

Prévisualisation des articles (SPIP 2.0 mini, SPIP 2.1 maxi)
Par défaut, SPIP permet de prévisualiser un article dans sa version publique et stylée, mais uniquement lorsque celui-ci a été « proposé à l’évaluation ». Hors cet outil permet aux auteurs de prévisualiser également les articles pendant leur rédaction. Chacun peut alors prévisualiser et modifier son texte à sa guise.

Attention : cette fonctionnalité ne modifie pas les droits de prévisualisation. Pour que vos rédacteurs aient effectivement le droit de prévisualiser leurs articles « en cours de rédaction », vous devez l’autoriser (dans le menu Configuration>Fonctions avancées de l’espace privé).

Sommaire Améliorations typographiques
(Les outils suivants modifient juste l’apparence de vos textes, sans en modifier la source)
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. Un nouveau raccourci est éventuellement proposé (« * ») pour conserver l’accès à cette puce image de SPIP.
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 2e ou 2e, 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 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.

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}}}. Une balise #CS_SOMMAIRE est disponible pour déporter le sommaire dans la page.

Paramètres de configuration : profondeur retenue sur les intertitres, largeur du sommaire (en caractères), création systématique du sommaire (oui/non), jolies ancres.

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 les groupes utilisés, le nombre maximal de liens créés dans vos textes et la technique utilisée (JS ou CSS).

Action rapide : Vérification de la base de données

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 afficher un tableau de smileys dans vos squelettes : #SMILEYS.

Intertitres en image
Transforme tous les intertitres « {{{Mon intertitre}}} » ou « {{{*Mon intertitre}}} » en image typographique paramétrable : taille de la police, couleur de la police, nom du fichier de la police (dossiers polices/), largeur maximale de la ligne de texte, hauteur de la ligne de texte (éq. à line-height), espacement autour du texte (éq. à padding), alignement du texte.
Sauts de ligne automatiques
Applique sur tous vos contenus SPIP (texte d’articles, rubriques, etc.) le filtre |post_autobr qui remplace tous les sauts de ligne simples par un saut de ligne HTML <br />.
Titres typographiés
Active l’application automatique des raccourcis typographiques de SPIP sur toutes les balises #TITRE et apparentées (#NOM pour un auteur, etc.).
Sommaire Raccourcis typographiques
(Les outils suivants introduisent de nouveaux raccourcis pour la rédaction de vos textes)
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.

Sommaire Affichage public
(Les outils suivants modifient juste l’apparence des pages publiques)
Supprime le numéro (obsolète dès SPIP 3.0) 
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.
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.
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 - Plus d’Informations
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. Pour éviter l’insertion d’un paragraphe, ajouter le paramètre {p=0} : <INCLURE{fond=fonds/visiteurs_connectes}{p=0}>
Message d’alerte
Affiche en tête de toutes les pages publiques un bandeau d’alerte pour diffuser le message d’urgence défini par l’utilisateur.

Les balises <multi/> sont recommandées en cas de site multilingue.

Sommaire 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 : '&nbsp;(...)'. 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 (paramètre ’cs=print’ dans l’url de la page par exemple), cette fonctionnalité est appliquée automatiquement.

Balises #TITRE_PARENT/OBJET - 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.

- Si vous êtes sous SPIP 2.0, alors vous avez ici à votre disposition tout un ensemble de balises #TITRE_XXX qui pourront vous donner le titre de l’objet ’xxx’, à condition que le champ ’id_xxx’ soit présent dans la table en cours (#ID_XXX utilisable dans la boucle en cours).

Par exemple, dans une boucle sur (ARTICLES), #TITRE_SECTEUR donnera le titre du secteur dans lequel est placé l’article en cours, puisque l’identifiant #ID_SECTEUR (ou le champ ’id_secteur’) est disponible dans ce cas.

La syntaxe #TITRE_XXX{yy} est également supportée. Exemple : #TITRE_ARTICLE{10} renverra le titre de l’article #10.

Balises #SWITCH #CASE (SPIP 3.1 mini) - Plus d’Informations
Les balises #SWITCH, #CASE et #CASE_DEFAULT, ainsi que le filtre |switchcase, implémentent les contrôles switch/case/default du PHP ou du C.

Ces écritures simplifient grandement la lisibilté de vos squelettes. Exemples :

#SWITCH{#ENV{code_erreur}}
[(#CASE{0}) Tout va bien]
[(#CASE{1}) Attention ?]
[(#CASE{2}) Oups !]
[(#FRUIT|switchcase{
  banane,jaune,
  orange,orange,
  fraise,rouge,
  inconnue
}]

- Après un appel à #SWICH{valeur comparée}, #CASE{valeur calculée} vaut '' (vide) si la valeur calculée est différente de la valeur comparée, et vaut ' ' (espace) en cas d’égalité.

- La valeur testée par le #SWITCH reste disponible grâce à : #GET{_switch_}.

- On ne peut pas emboiter plusieurs #SWITCH dans un même squelette.

Balise #SET étendue - Plus d’Informations
Afin d’alléger les écritures du type #SET{x,#GET{x}|un_filtre}, cet outil vous offre le raccourci suivant : #SET_UN_FILTRE{x}. Le filtre appliqué à une variable passe donc dans le nom de la balise. Exemples : #SET{x,1}#SET_PLUS{x,2} ou #SET{x,avions}#SET_REPLACE{x,ons,ez}.
Trousse à balises - Plus d’Informations
Quelques balises pour faciliter la rédaction de vos squelettes :

- La balise #BOLO/Le modèle <boloxxx> : produit un faux texte d’un maximum de 3000 caractères (« bolo » ou « lorem ipsum ») afin d’aider à la mise au point des pages. L’argument peut préciser le nombre de caractères voulu.

- La balise #CHR : retourne le caractère dont le code ASCII est donné par le paramètre ascii en argument.

- La balise #MAINTENANT/#NOW : renvoie la date et l’heure actuelle (attention cependant au cache de SPIP). L’argument peut en spécifier le format.

- La balise #AUTORISER_SINON_LOGIN : renvoie une page de login si l’autorisation n’est pas donnée au squelette en cours.

Masquer du contenu (SPIP 2.0 mini)
Permet de masquer sur le site public et sans modification particulière de vos squelettes, les contenus (rubriques ou articles) qui ont le mot-clé défini par l’utilisateur. Si une rubrique est masquée, toute sa branche l’est aussi. Pour forcer l’affichage des contenus masqués, il suffit d’ajouter le critère {tout_voir} aux boucles de votre squelette.
Obfusquer des liens
Met à votre disposition le filtre : |obfusquer_liens. L’obfuscation de liens permet d’empêcher les robots des moteurs de recherche de suivre les liens de type <a href=\"page.html\">par ici</a>, sans modifier la navigation. Cela pourra éviter la transmission de pagerank non désiré vers des pages à moindre intérêt, et guider les robots vers des pages plus pertinentes et riches.

En plaçant #FILTRE{obfusquer_liens} dans un squelette, tous les liens seront obfusqués.

Critère « left_join »
Met à votre disposition le critère « left_join » permettant à vos boucles d’utiliser des jointures SQL « LEFT JOIN » à la place des jointures d’intersection « INNER JOIN » que SPIP utilise par défaut.

Les résultats incluront ainsi toutes les entrées de la table principale, qu’il y ait une correspondance ou non dans la table liée.

Voici quelques exemples de syntaxe :

- Sans paramètre, le critère s’applique à toutes les tables liées : <BOUCLE(AUTEURS spip_documents){left_join}...

- Les paramètres (séparés par des espaces) permettent de cibler certaines tables : <BOUCLE(spip_documents_liens documents rubriques){left_join documents}....

- Avec un paramètre « debug », des informations utiles sont affichées (à éviter en mode production) : <BOUCLE(XXX YYY ZZZ){left_join debug}....

Sommaire Développement
(Les outils suivants sont en général utilisés pendant la phase de développement de site)
Site en travaux 
Permet d’afficher un message personnalisable pendant une phase de maintenance sur tout le site public et de choisir le type d’utilisateur autorisés à parcourir le site (public ou privé).

Modèle surchargeable utilisé : fonds/en_travaux.html

Activer le validateur xml
Active le validateur xml pour l’espace public tel qu’il est décrit dans la documentation.
Débogueur de développement
Permet de voir les erreurs PHP à l’écran. Vous pouvez même choisir le niveau d’erreurs d’exécution PHP qui sera affiché si le débogueur est actif, ainsi que l’espace SPIP sur lequel ces réglages s’appliqueront. Utile notamment pour valider la syntaxe de vos pages finales, et résoudre les problèmes d’accessibilité du Web aux déficients visuels.
SPIP et les logs - Plus d’Informations
Configure les différents paramètres pris en compte par SPIP pour la journalisation des événements particuliers du site : rotation des fichiers (nombre et taille), dossier, nom, extension, nombre d’accès par hit, informations supplémentaires, format brut et gravité maximale acceptée.

Cet outil permet également de consulter et/ou supprimer tous les logs du site.

Traductions manquantes
Toutes les chaînes de langue qui ne sont pas internationalisées (donc présentes dans les fichiers lang/*_XX.php) vont apparaître en rouge. Utile pour n’en oublier aucune !
Décalage horaire (PHP 5.1 mini)
Configure le décalage horaire utilisé par les fonctions date/heure et permet notamment d’éviter les avertissements de PHP 5 lorsque ce décalage horaire est indéfini ou invalide.
Profiling - Plus d’Informations
Aide à optimiser les requêtes SQL de vos squelettes ou de vos scripts en traçant les informations correspondant aux requêtes « trop lentes » (MySQL uniquement) ou aux boucles SPIP dépassant un nombre défini de secondes.
Sommaire 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  : d’une part, 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. D’autre part, ce plugin comporte certains outils qui peuvent nécessiter d’importer des librairies distantes.

Si les requêtes externes de votre serveur posent des problèmes ou par souci d’une meilleure sécurité, cochez ces options :

- Les vérifications de versions distantes

- Les outils du Couteau Suisse ayant des fichiers distants

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 rassembler toutes ces petites contributions en un seul plugin parce qu’elles ont très peu de lignes de code, qu’elles ne manipulent par exemple que le fichier mes_options.php, ou alors n’utilisent qu’un seul pipeline. Bien sûr le Couteau Suisse accepte les fonctionnalités « multi-pipeline » et « multi-traitement », mais son but reste de réunir toutes les « petites » améliorations de SPIP qui ne sont pas strictement nécessaires mais bien utiles au plus grand nombre.

Merci à la communauté SPIP ainsi qu’aux différents auteurs et contributeurs (sans ordre) : Vincent Ramos, Maïeul Rouquette, Fil, Arnaud Ventre, Joseph Larmarange, Cédric Morin, Pierre Andrews (Mortimer), IZO, Phil, Jérôme Combaz, Bertrand Marne, Romy Têtue, Aurélien Pierard, FredoMkb, Sylvain, BoOz, Alexis Roussel, Paolo, Pat, Yohann(potter64), Nicolas Hoizey, Piero Wbmstr, etc.

Sommaire

Particularité du « mode impression »

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, quatre 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.
-  Glossaire interne : les mots trouvés sont mis en valeur, mais les fenêtres apparaissant au survol ne sont pas insérées dans le code.

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}}>

Sommaire

Installation du Couteau Suisse

-  Téléchargement : sur la zone [2]
-  Installation : comme tous les autres plugins. Voir : https://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 (http://trac.rezo.net/trac/spip-zone... ou site 174), 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 » [3]. Je cite à ce sujet Alexandra [4] :

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 s’exécute en quatre points :

  1. Supprimez tous les fichiers du dossier plugins/couteau_suisse/
  2. Transférez-y les nouveaux fichiers téléchargés sur la zone
  3. Rendez-vous sur la page de gestion des plugins (ou procédez à son réaffichage) : ecrire/?exec=admin_plugin
  4. Rendez-vous sur la page de gestion du Couteau Suisse (ou procédez à son réaffichage) : ecrire/?exec=admin_couteau_suisse

Mise à jour automatique en un clic : voir le paragraphe "Compatibilité avec les squelettes ou d’autres plugins" ci-dessous.

Outil « Mises à jour automatiques » : Voir l’article « Mise à jour automatique des plugins ».

Procédure d’urgence

Si un outil semble incompatible avec son environnement (PHP, SQL, un autre plugin, le squelette, etc.), ou si une mise à jour du Couteau Suisse provoque une erreur ou une page blanche, votre premier réflexe est de supprimer totalement le répertoire de travail (caches divers et données temporaires) du plugin : « tmp/couteau-suisse » (ou « ecrire/data/couteau-suisse » pour la version 1.91 de SPIP ). Les fichiers se reconstruiront automatiquement et souvent les problèmes se régleront d’eux mêmes. Nous nous excusons par avance de ce désagrément parfois nécessaire pour améliorer, optimiser ou consolider le fonctionnement du plugin.

Pour le pire des cas, il existe 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ées. 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 !

En principe, vous n’avez pas besoin de modifier l’état (actif ou inactif) d’une lame à la main. Mais si le cas se présentait, alors il vous faut l’identifiant de l’outil (certains sont listés ici : [dev] Les autorisations du Couteau Suisse) présent dans sa description. Le lien dont vous avez besoin est celui qui est lancé lorsque vous cliquez sur « Activer » (pour un outil inactif) ou « Désactiver » (pour un outil actif).
Voici comment par exemple basculer l’état de la lame « En Travaux » :
ecrire/?exec=admin_couteau_suisse&cmd=switch&outil=en_travaux

Conseil : si le réglage du plugin vous satisfait pleinement, nous vous recommandons de sauvegarder systématiquement vos configurations en cliquant d’abord sur le lien « Configuration Actuelle » présent sur la page d’administration du Couteau Suisse, en haut à gauche. Cliquez ensuite sur le bouton « Sauver la configuration actuelle ». Un pack de configuration sera alors déposé dans votre fichier « /config/mes_options.php » et pourra être réactivé plus tard. Plus d’information ici : [dev] Le Couteau Suisse à piloter.

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. Les données de configuration sont préservées dans ce cas. 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 (très basique et aujourd’hui un peu obsolète) 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.
Sommaire

Informations techniques

-  Quelques informations techniques pour les curieux développeurs d’outils :
[dev] Le Couteau Suisse : développer un outil

-  Comment piloter la configuration du Couteau Suisse, gérer des packs de configuration et lui ajouter des lames à la volée :
[dev] Le Couteau Suisse à piloter

-  Comment ne pas mettre un Couteau Suisse entre toutes les mains :
[dev] Les autorisations du Couteau Suisse

Sommaire

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 l’ancien 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.

Les barres de rédaction : le Couteau Suisse est compatible avec le Plugin Barre Typographique V2 (SPIP<2.0)> 3117] (SPIP>=2.0). Il insère les raccourcis de certains outils afin de faciliter le travail de vos rédacteurs. Ceci est encore en expérimentation, n’hésitez pas à nous remonter vos remarques. Pour le calcul graphique de certaines icônes, vérifiez que les fonctions GD de votre site sont bien activées (Configuration > Fonctions avancées).

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.x, 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 :
soit l’adresse directe du zip :
- https://files.spip.net/spip-zone/couteau_suisse.zip
soit une liste de plugins, comme par exemple :
- 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.
Sommaire

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 seulement 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é le dossier tmp/couteau-suisse
-  supprimé les fichiers tmp/charger_*.php
-  validé/rechargé la page des plugins (admin_plugin)
-  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....

Lors d’une migration vers SPIP 3.0, il est possible que la page d’administration du Couteau Suisse soit désorganisée ou présente des erreurs. Essayez dans un premier temps d’ajoutez le paramètre « &var_mode=recalcul » à votre URL afin de recalculer les règles de typographie.

Si cette erreur particulère survient (ou simplement une page blanche sous SPIP 1.92) : Fatal error : Cannot redeclare execute_pipeline_bt_gadgets() (previously declared in /[...]/tmp/charger_pipelines.php:xxx) in /[...]/tmp/charger_pipelines.php on line xxx : prenez soin de désactiver ou mettre à jour tous les plugins concernant la barre typographique (BT V2), puis supprimez le fichier tmp/charger_pipelines.php.
Sommaire

Si cette erreur particulère survient (ou simplement une prévisualisation impossible des messages de forum sous SPIP 2.0.9) quand les visiteurs tentent de ’Voir ce message avant de poster’ : : Fatal error : Call to undefined function cs_decoupe() in /[...]/squelettes-dist/formulaires/forum.php(275) : eval()’d code on line 1 :
mettez vite à jour SPIP, version 2.0.10 minimum ! Le fichier fautif sous SPIP 2.0.9 est squelettes-dist/formulaires/forum.php. Il doit être remplacé par celui-ci : http://trac.rezo.net/trac/spip/brow... (téléchargement en bas de page).

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 Suisse ou 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 ?
Sommaire

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 par ici : Carnet Plugin_Couteau_Suisse.

Notes

[1N’hésitez pas à nous faire part du résultat de vos tests

[2Téléchargement du Plugin, liens complémentaires : Récupérer le zip sur l’espace de téléchargement, ou le(s) miroir(s), de spip-zone, cf. rubrique Produits finis

-  Le logo de cet article a été créé par Kavel : http://www.armatronic.com/

-  La version du Couteau Suisse pour SPIP v1.91 du plugin a été conservée ici : https://files.spip.net/grenier/cout...

Discussion

563 discussions

  • Bonjour,

    merci pour ce plugin. Je fonctionne avec des urls en aborescence que je voudrai passer en AMP. Le souci AMP invalide mes pages à cause de l’insertion automatique du <base href="https://www.site.fr/" />. Est-ce qu’il y a moyen d’éviter cet insert ?

    Merci d’avance pour ton aide.

    Répondre à ce message

  • 2

    Bonjour sur un site en Spip 3.2 ?? (de mémoire) et Escal, je viens d’installer la dernière version du couteau suisse et je n’ai plus accès au site (je ne peux donc pas désactiver les plugins pour trouver la raison). J’ai aussi essayé de désactiver une annonce en retirant le mot clé annonce.

    http://ecole-fl.com/

    Le message suivant s’affiche :
    Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension.

    Merci par avance pour toute piste de résolution de ce problème.

    • Bonjour, quel message d’erreur PHP as-tu ?

      Il y a là un petit boulot de débogage à faire... Pour infos : https://www.spip.net/fr_article4453.html

      Pour désactiver un plugin il suffit de renommer son dossier dans plugins/auto/

      Ceci dit, le site semble se comporter normalement en public ?

    • Bonjour,

      Merci pour ton aide.
      En fait c’est revenu à la normale un peu après.
      Je ne sais pas encore pourquoi. Entre-temps j’ai pu accéder a l’espace privé de mon site en utilisant un autre ordinateur (peut-être le cache). J’ai mis à la poubelle l’article dont je ne voulais plus et tout a remarché.

      Je vais regarder tranquillement l’article débogage qui est fondamental.

    Répondre à ce message

  • 2

    Bonjour,
    Depuis le passage en SPIP 4 et notamment SPIP 4.2 la lame Horloge du couteau suisse ne fonctionne plus. Je l’utilisais de cette manière : <horloge|format=l, j F Y - H:i >
    UTC <horloge|zone=GMT0100>
    Une raison à ce dysfonctionnement ?
    Merci.
    Yann

    • En effet, les fonctions SPIP gérant les cookies ont changé...
      La version v1.14.08 du plugin devrait corriger ce problème (afficher la page config du CS, et bien vider les caches SPIP et navigateur).
      Merci pour le retour !

    • Merci pour ta réactivité.
      Yann

    Répondre à ce message

  • 1

    Bonjour,

    Sur un spip 4.2.4 tout neuf, l’installation du couteau suisse s’accompagne de plusieurs lignes rédigées ainsi
    Deprecated : Function autoriser_outil_configurer_dist should returns a boolean instead of integer (casts as boolean). This will trigger fatal error in future versions. in /home/repertoire/site/ecrire/inc/autoriser.php on line 232

    La permutation d’outils crée la page :
    Deprecated : strlen() : Passing null to parameter #1 ($string) of type string is deprecated in /home/repertoire/site/plugins/auto/couteau_suisse/v1.14.4/exec/admin_couteau_suisse.php on line 22
    HTTP 302
    Si votre navigateur n’est pas redirigé, cliquez ici pour continuer.

    J’ai limité les outils à l’écran de sécurité et au site en travaux pour le moment.
    Comment puis-je corriger ce dysfonctionnement (si je le peux) ? A quoi est-il dû ?
    Merci

    Répondre à ce message

  • 7
    Philippe JEANNE

    Bonjour,
    Je note une erreur lorsqu’on cherche à actualiser l’écran de sécurité (Spip 4.1.9 et Php 8.1.16) :
    Fatal error : Uncaught TypeError : autoriser() : Argument #5 ($opt) must be of type array, string given, called in couteau_suisse/v1.14.2/exec/action_rapide.php on line 42 and defined in /home/patrimoiqz/www/ecrire/inc/autoriser.php

    C’est une lame très pratique (vérification + mise jour).
    Merci

    • Callmedams

      Bonjour,
      Même problème pour moi
      SPIP 4.1.9 et PHP 8.0
      Cordialement

    • Bonjour à tous,
      En effet, ce bug est lié aux types désormais imposés par SPIP et PHP. Je m’occupe d’une correction prochaine.
      Pat

    • Bonjour,
      J’espère que vous allez bien.
      Ce problème est-il réglé car je viens de mettre à jour un SPIP en 4,2,4 et couteau suisse en dernière version 1,14,4 et j’ai le même souci.

      Egalement des messages Deprecated : Function autoriser_outil_configurer_dist should returns a boolean instead of integer (casts as boolean). This will trigger fatal error in future versions. in /home/clients/4c92e6d7a7f0ff6b54c4b0fc06e85168/test/idg2/ecrire/inc/autoriser.php on line 232

      en haut de la page de configuration.

      PHP 8,2

      Merci bonne journée à vous

    • Bonjour,
      idem ici, CS désactivé suite au passage de SPIP 3.2 à 4.2, j’ai téléchargé manuellement puis activé via la page de gestion de plugins. En haut de la page de config du CS, j’ai 4 avertissement Deprecated identiques (se terminant par autoriser.php on line 232)

    • Bonjour,
      Je viens de mettre à jour un site vers Spip 4.2.4 (PHP 8.1.22) et je constate aussi ce « deprecated » sur la page d’accueil du CS :
      Deprecated : Function autoriser_outil_configurer_dist should returns a boolean instead of integer (casts as boolean). This will trigger fatal error in future versions. in .../www/ecrire/inc/autoriser.php on line 232
      Bonne journée

    • Stéphanie

      Bonjour,

      Idem pour moi, version de SPIP 4.2.5

      Deprecated : Function autoriser_outil_configurer_dist should returns a boolean instead of integer (casts as boolean). This will trigger fatal error in future versions. in /var/www/html/extra/ecrire/inc/autoriser.php on line 232

      Une correction bientôt prévue ?
      Bonne journée

    • Bonjour, des corrections sont faites (v1.14.06), n’hésitez pas à remonter d’autres comportements inhabituels, SPIP et PHP évoluent ;-)

    Répondre à ce message

  • 2

    Bonjour,
    Upgrade Spip de 4.1.12 vers 4.2.6
    Php 7.4
    Seul plugin : Couteau suisse version 1.14.4
    Message d’erreur : Deprecated: Function autoriser_outil_configurer_dist should returns a boolean instead of integer (casts as boolean). This will trigger fatal error in future versions. in /home/monsitenprod/ecrire/inc/autoriser.php on line 232.

    • Bonjour,
      Idem
      Après une upgrade Spip de 3.2 vers 4.0, puis 4.1, puis 4.2.6
      Php 7.4 puis php 8.1 (php 8.2 entrainait une erreur générale : erreur msyql connexion à la base)
      Couteau suisse en version 1.14.4
      J’ai 4 fois le message d’erreur :

      Deprecated: Function autoriser_outil_configurer_dist should returns a boolean instead of integer (casts as boolean). This will trigger fatal error in future versions. in /home/monsite/ecrire/inc/autoriser.php on line 232

      Si j’active « comportement du couteau suisse », et que je clique sur ce module, j’ai une liste supplémentaire de 8 fois ce même message d’erreur.
      (pas d’erreurs en plus en cliquant sur d’autres modules activés).

      ça semble fonctionner quand même
      merci pour des infos utiles.

    • Effectivement, cette correction est déjà en attente, prévue pour la prochaine version du plugin.
      Merci bcp pour le retour, n’hésite pas à en envoyer d’autres, SPIP et PHP évoluent :-)

    Répondre à ce message

  • 2

    Bonjour,

    Je suis passé à Spip 4.2 et depuis j’ai des erreurs avec les illustrations. Les légendes titre, copyright débordent de la base de l’image et bousculent la mise en page du site en ligne. alors que c’est correct dans la partie privée.

    Pour chercher la raison, j’ai désactivé Le couteau suisse et j’ai obtenu l’avertissement ci-joint.

    C’est un problème parmi d’autres et je ne sais pas ce qui en est la cause.
    Merci pour toute piste et mes excuses par avance si Le couteau suisse est innocent.

    • Bonjour, quelle était la version précédente de SPIP ?
      Il semble que l’avertissement ci-joint est dû à un vieux cache non recalculé après la désactivation du CS.

    • Bonjour,
      Merci pour ta réponse.
      Je suis passé de 3.2.? à 3.2.maximum puis 4.1 et finalement 4.2.
      Je pense qu’il y a plusieurs raisons aux différents problèmes en plus des illustrations, *je n’utilise plus jquery qui n’est pas porté en spip4.2. L‘aide en ligne pour spip affiche seulement les raccourcis typographiques.

    Répondre à ce message

  • 3
    Philippe JEANNE

    Bonjour,
    J’ai migré plusieurs sites vers Spip 4.1.7 et Php 8.1.6, (depuis Spip 3.2.17 en passant par Spip 4.0.9.)
    J’ai préféré désactiver le CS (et d’autres plugins) après des tests en local et tout s’est bien passé. Y compris la réactivation du CS. Je constate un seul warning ;
    Deprecated : basename() : Passing null to parameter #2 ($suffix) of type string is deprecated in .../plugins/auto/couteau_suisse/v1.14.1/cout_utils.php on line 213
    quand je consulte la lame Ecran de sécurité. Cela ne se produit pas avec d’autres lames.
    Merci.

    • Merci pour le retour !
      Quelles lames utilises-tu ?
      Je vais corriger de suite le pb sur basename.

    • Philippe JEANNE

      Sur le site qui en utilise le plus, j’utilise :
      Format des Url
      Ecran de Sécurité (seule lame avec pb)
      Mailcrypt
      Blocs dépliables
      Découpe en onglets
      Balise #Titre_Parent/Objet
      Comportements du CS

    • Philippe JEANNE

      Merci pour la mise à jour.
      Bonne soirée.

    Répondre à ce message

  • Bonjour,
    Spip 3.2.16 vierge via spip-loader (pour réinstallation d’un site sous un autre nom de domaine).
    Uniquement squelettes-dist.
    Pas de textes d’articles dans le site.
    J’active balise #INTRODUCTION. ==> ok
    Je veux les points de suite cliquables ==> et là ça mouline pendant de longues minutes sans vouloir enregistrer ce réglage.
    Si je laisse les points de suite cliquables par défaut à Non ==> enregistrement ok

    Répondre à ce message

  • Christian Frank

    Bonjour et toujours un grand merci pour ce précieux plugin,

    Je viens de mettre à jour notre couteau suisse. Aussi nous voudrions l’utiliser pour des urls arborescentes /dosssier/titre.html . Du coup je rencontre un problème nouveau qui rend invalide nos pages AMP.

    A la suite du « head » s’injecte automatiquement un <base href="url du site">.

    Cette balise n’est pas compatible avec AMP. Comment est-ce que je peux éviter qu’elle n’apparaisse ?

    Merci pour ton aide

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom