Le Couteau Suisse est un plugin qui propose d’introduire facilement de simples fonctionnalités supplémentaires à SPIP, et que vous pouvez trouver ici. Le présent article est destiné à tous ceux qui créent leurs propres squelettes et pensent trouver avec ce plugin une amélioration notable de leurs sites.
Le but de cet article est d’indiquer comment mieux associer un jeu de squelettes avec Le Couteau Suisse.
Tous les exemples de code ci-dessous sont à placer dans le fichier mes_options.php que vous trouverez/placerez dans le dossier config/.
Pré-configuration du Couteau Suisse
Une pré-configuration est la mise en place d’un pack permettant en un seul clic de configurer Le Couteau Suisse. Il permettra ensuite de choisir les outils à activer, de définir la valeur de certaines de leurs variables ainsi que certains define() surchargeables.
Voici un exemple qui s’allie avec le squelette "Alternatives" :
- ######## CONFIGURATION COUTEAU SUISSE ########
- // Installation des outils par defaut
- $GLOBALS['cs_installer']['Alternatives']['outils'] =
- 'supprimer_numero|decoupe|sommaire';
- // Installation des variables par defaut
- 'auto_sommaire' => 1,
- 'balise_sommaire' => 1, // ou 0, si on n'utilise pas la balise #CS_SOMMAIRE
- );
- // Compatibilite ascendante avec l'ancien filtre 'decoupe'
- // "Navigation rapide" on aurait prefere "Sommaire", mais pas de traduction
Observez le résultat sur la page de configuration du Couteau Suisse (ecrire/?exec=admin_couteau_suisse), dans le cadre de gauche, sous la mention "Réinitialisations". Un lien cliquable "pour Alternatives" est apparu et vous permet de réinitialiser le plugin, tout en :
- activant les 3 outils suivants :
- Supprimer numéros
- Découper un texte en pages et/ou en onglets
- Un sommaire pour vos articles
- définissant 2 variables suivantes :
- un sommaire systématique dans les articles
- l’utilisation de la balise #CS_SOMMAIRE
- ajoutant la compatibilité avec la contribution de gpl préférant le raccourci "-----".
- remplaçant le titre par défaut "Sommaire" par le terme SPIP traduit dans toutes les langues : "Navigation rapide".
Astuce : Le fichier tmp/couteau-suisse/config.php contient la configuration en cours de votre Couteau Suisse.
Ajouter une lame personnalisée
Il vous est possible d’ajouter à la volée un outil au Couteau Suisse. La syntaxe ressemble à celle utilisée par les outils déjà présents au sein du plugin, et expliquée ici : Le Couteau Suisse pour les développeurs.
Les lames personnalisées apparaissent en italique sur la page de configuration du plugin (ecrire/?exec=admin_couteau_suisse) et doivent être activée comme toutes les autres fournies par défaut.
Voici un premier exemple qui remplace toutes les citations entre (vrais !) guillemets par des italiques simples. Exemple : « une citation » est changé en une citation :
- ############## COUTEAU SUISSE : LAME PERSO #################
- // Installation d'une nouvelle lame personnalisee
- 'nom' => 'Citations en italique',
- 'description' => 'Une lame qui transforme toutes les citations <html>« toto »</html> en simple {italique}.',
- 'categorie' => 'typo-racc',
- 'pipeline:pre_typo' => 'mes_citations_pre_typo',
- );
- // Fonction de remplacement
- function mes_citations_rempl($texte) {
- }
- // Fonction de pipeline
- function mes_citations_pre_typo($texte) {
- // appeler mes_citations_rempl() une fois que certaines balises ont ete protegees
- return cs_echappe_balises('', 'mes_citations_rempl', $texte);
- }
Voici un second exemple qui permet d’offrir un nouveau raccourci à vos rédacteurs pour mettre un texte en évidence :
- ############## COUTEAU SUISSE : LAME PERSO #################
- // Installation d'une nouvelle lame personnalisee
- 'nom' => 'Mise en évidence',
- 'description' => 'Un nouveau raccourci pour mettre un texte en évidence. Syntaxe : [*un texte*]',
- 'auteur' => 'Moi-même',
- 'categorie' => 'typo-racc',
- 'pipeline:pre_typo' => 'mise_evidence_pre_typo',
- 'pipeline:BT_toolbox' => 'mise_evidence_BarreTypo',
- );
- // Fonction de remplacement
- function mise_evidence_rempl($texte) {
- }
- // Fonction de pipeline
- function mise_evidence_pre_typo($texte) {
- // appeler mise_evidence_rempl() une fois que certaines balises ont ete protegees
- return cs_echappe_balises('', 'mise_evidence_rempl', $texte);
- }
- // Fonction indiquant le nouveau raccourci
- function mise_evidence_raccourcis() {
- return 'Mise en évidence : <b>[*texte*]</b>';
- }
- // Aide le Couteau Suisse a calculer la balise #INTRODUCTION
- function mise_evidence_nettoie($texte) {
- }
- $GLOBALS['cs_introduire'][] = 'mise_evidence_nettoie';
- // Fonction qui renvoie une ligne de tableau entre <tr></tr>
- // afin de l'inserer dans la Barre Typo V2, si elle est presente
- function mise_evidence_BarreTypo($tr) {
- return $tr.'<tr><td><a title="Mise en évidence" href="javascript:barre_raccourci(\'[*\',\'*]\',@@champ@@)">Mise en évidence</a></td></tr>';}

