astuces spip!
Retrouvez dans cette rubrique des astuces pour SPIP comme certains raccourcis typographiques peu connus ou des explications sur les squelettes SPIP.

Les raccourcis spip permettent de rédiger du contenu en insérant des balises spécifiques dans les champs textes lors de la rédaction d’un article, ces balises sont ensuite transformées par spip en code html pour l’affichage public.

Liste avec la puce spip

Rédaction

Résultat


- banane
- citron

Code généré

Liste sans la puce spip

Rédaction

Résultat

  • banane
  • citron

Code généré

Liste numérotée

Rédaction

Résultat

  1. banane
  2. citron

Code généré

Sous-liste

Rédaction

Résultat

  1. légumes
    • carotte
  2. agrumes
    • citron
    • orange

Code généré

Et pour personnaliser les puces des listes, référez vous en css à list-style-type .

Raccourcis wikipedia

Rédaction

Résultat

Code généré

Ecrire du code (php, html) non interprété

Utiliser les balises <cadre> ou <code>

Rédaction

Résultat

ligne de texte
<?php
echo hello world;
?>

autre ligne de texte

Code généré

Ecrire du code html ou css à interpréter

Utiliser la balise<html>

Rédaction

Résultat

vert

Code généré

<style>
<!--
.cssvert{color:green}
-->
</style>

Simple retour à la ligne

Rédaction

Résultat

votre texte
la ligne suivante
la ligne suivante

Code généré

Pour insérer une ligne de paragraphe, sautez une ligne.


Les références SPIP pour les raccourcis typographiques se trouvent dans l’aide en ligne.

Structure de base d’une boucle spip

Mémento d’une structure de boucle spip :
Cet exemple est à réaliser dans les squelettes html de vos pages SPIP.

  1. <Bn>
  2. option avant si réponse
  3. <BOUCLEn>
  4. la boucle
  5. </BOUCLEn>
  6. option après si réponse
  7. </Bn>
  8. option si aucune réponse
  9. <//Bn>

Télécharger

un peu de css pour clarifier l’exemple d’application :

  1. <style>
  2. <!--
  3. .maboucle div{border: 2px solid orange ;padding:10px;}
  4. .maboucle ul{border:2px solid pink;width:40%;}
  5. .maboucle li{padding:10px;}
  6. .maboucle span{color:red;}
  7. .maboucle p{ color : purple ;}
  8. -->
  9. </style>

Télécharger

Exemple d’application de boucle spip

  1. <div class="maboucle">
  2. <p>du texte peut se placer avant la boucle</p>
  3. <Bn>
  4. <div>
  5. Voici tous les articles dont les sous titres sont coucou
  6. <ul>
  7. <BOUCLEn(ARTICLES){soustitre="coucou"}{par titre}>
  8. <li>#TITRE -#SOUSTITRE</li>
  9. </BOUCLEn>
  10. </ul>
  11. </div>
  12. </Bn>
  13. <span>Désolé! aucun article ne correspond à ces critères!</span>
  14. <//Bn>
  15. <p>du texte peut se placer après la boucle</p>
  16. </div>

Télécharger

Résultat si les critères correspondent

du texte peut se placer avant la boucle

Voici tous les articles dont les sous titres sont coucou
  • article abc -coucou
  • article efg -coucou
  • article tuv -coucou

du texte peut se placer après la boucle

Résultat si les critères ne correspondent pas

du texte peut se placer avant la boucle

Désolé ! aucun article ne correspond à ces critères !

du texte peut se placer après la boucle

Mémento pour les critères de boucles ou les balises

Dans vos squelettes, pour séparer les éléments par une une virgule utiliser {","}

  1. <BOUCLE_auteurs(AUTEURS) {id_article} {par nom} {", "}>
  2. [<a href="#URL_AUTEUR">(#NOM)</a>]
  3. </BOUCLE_auteurs>

Télécharger

Pour créer le lien de l’article 12 sans passer par une boucle #URL_ARTICLE{12}

Forcer la réindexation d’un site sous SPIP

Il est possible de forcer la mise à jour de la base des indexs. Cette fonctionnalité est accessible en spip<1.9.2 en lançant une page du répertoire "ecrire" :
http://nom_de_votresite/ecrire/admin_index.php

Cliquez ensuite sur "Cliquez ici pour forcer l’indexation du site" jusqu’à ce que tous les indicateurs soient complètement verts.

En SPIP > 1.9.2 utilisez le plugin Recherche Etendue.

Les infos php du serveur

Pour connaitre les possibilités php du serveur qui héberge votre site comme par exemple quelles sont les librairies de traitement d’images installées, allez sur la page :

  • SPIP<1.9
    http://nom_de_votresite/ecrire/info.php
  • SPIP>1.9
    http://nom_de_votresite/ecrire/?exec=info

Les filtres natifs de SPIP

Les filtres sont des fonctions qui s’appliquent aux balises avec crochets et accolades [(#TEXTE)], [(#URL_ARTICLE)] ... il faut mettre un pipe | (alt + L sur mac) puis le filtre. [(#TEXTE|filtre)]
Il existe dans SPIP des filtres par défaut, mais on peut aussi se servir des fonctions php ou créer ses propres fonctions.

Filtre conditionnel

Pour faire apparaitre le lien hypertexte d’un article même si le titre du lien n’existe pas.

Cocher d’abbord Oui dans (ecrire/?exec=configuration) > Contenu des articles > Lien hypertexte

  1. [sur le web : <a href="#URL_SITE">(#NOM_SITE|!={''}|?{#NOM_SITE,#URL_SITE})</a> ]

Plus court ?

  1. [sur le web : <a href="#URL_SITE">(#NOM_SITE|sinon{#URL_SITE})</a> ]

Filtre conditionnel d’une inclusion

A mettre à l’interieur d’une boucle article !

  1. [(#ENV{id_article}|=={'59'}|?{' ',''})<INCLURE{fond=inc-art59}{id_article}>]

Filtre transformant des paragraphes en simple saut à la ligne

Exemples de filtres personnels

Cryptez vos emails en les laissant visibles !

Le filtre antispamarobase s’ajoute au filtre crypt_mail , il permet aux rédacteurs de rédiger un texte qui contient un email protégé des robots spammeurs.

Préférez toutefois un lien vers la page de l’auteur, en rédaction[écrire un mail à l'auteur->auteur54] ou en dur dans un squelette

<BOUCLE_auteurs(AUTEURS) {id_article} {par nom} {", "}>
<a href="#URL_AUTEUR">Ecrire un mail à l'auteur #NOM</a>
</BOUCLE_auteurs>

L’exemple de contact@elastick.net ici crypté reste visible et actif, ouvrez le code source pour vérifier !

Démonstration du cryptage de mail

Rédaction

Code généré

<a href="m&#97;ilto&#58;&#99;ont&#97;&#99;t&#64;el&#97;sti&#99;k&#46;net" class="spip_url spip_out">contact&#64;el&#97;sti&#99;k.net</a>
  1. /*
  2. * +----------------------------------+
  3. *  Nom du Filtre : antispamarobase        
  4. * +----------------------------------+
  5. *  Date : 4 avril 2005
  6. *  Auteur : ELASTICK.net
  7. * +-------------------------------------+
  8. *  Fonctions de ce filtre :
  9. *  Crypter l arobase jusqu au point suivant dans le champ d un article, d une rubrique etc..
  10. *  sans empecher l affichage a l ecran
  11. *  ni son utilisation par un logiciel de messagerie
  12. * +-------------------------------------+
  13. * utilisation dans un squelette :
  14. * [(#TEXTE|antispamarobase)]
  15. * s’utilise avec crypt_mail (placé au dessus) dans mes_fonctions.php
  16. * a combiner eventuellement avec cryptemail_txt
  17. * [(#TEXTE|cryptemail_txt|antispamarobase)] qui crypte la balise <a href>
  18. *
  19. */
  20.  
  21. function antispamarobase($texte) {
  22.    while (strpos($texte,"ATICI") > 0)  { //!! ATTENTION remplaçer ATICI par un arobase
  23.    $debuarobase = strpos($texte,"ATICI");
  24.    $finarobase = strpos($texte,'.',$debuarobase);
  25.    $cryptarobase = substr($texte,$debuarobase,$finarobase-$debuarobase);
  26.    
  27.    $s= crypt_mail($cryptarobase);
  28.    
  29.    $texte = ereg_replace($cryptarobase, $s, $texte);
  30.       }
  31.       return $texte;
  32.  }  

Télécharger

il faut le faire précéder dans mes_fonctions.php de :

  1. /*
  2. * +----------------------------------+
  3. *  Nom du Filtre : crypt_mail          
  4. * +----------------------------------+
  5.  
  6. *  Date : dimanche 6 juillet 2003
  7. *  Auteur : Jean-Pierre KUNTZ
  8. *    alias Coyote
  9. * +-------------------------------------+
  10. *  Fonctions de ce filtre :
  11. *  Crypter une chaîne de texte (email, URL)
  12. *  sans en empecher l affichage à l ecran
  13. *  ni l’utilisation par un logiciel de messagerie
  14. * +-------------------------------------+
  15. *
  16. * Pour toute suggestion, remarque, proposition d’ajout
  17. * reportez-vous au forum de l’article :
  18. * http://spip-contrib.net/article.php3 ?id_article=197
  19. */
  20.  
  21. function crypt_mail($texte) {
  22.    $s="";
  23.    for ($i=0;$i<strlen($texte);$i++) {
  24.      $s.="&#".ord($texte{$i}).";";
  25.    }
  26.    return $s;
  27. }
  28.  
  29. function cryptemail_txt($texte) {
  30.        while (strpos($texte,"mailto:&quot;</span><span style="color: #009900;">) > 0)  {
  31.         $debemail = strpos($texte,"mailto:&quot;</span><span style="color: #009900;">);
  32.         $finemail = strpos($texte,'"',$debemail);
  33.         $textemail = substr($texte,$debemail,$finemail-$debemail);
  34.  
  35.         $s= crypt_mail($textemail);
  36.  
  37.         $texte = ereg_replace($textemail, $s, $texte);
  38.       }
  39.       return $texte;
  40.           }

Télécharger