Trousse à Balises : la balise #BOLO et Cie

Dans le couteau suisse

Introduction

Cet outil est une fonctionnalité du plugin « Le Couteau Suisse » que vous pouvez trouver ici : Le Couteau Suisse. Son but est de rassembler quelques balises très utiles dans la rédaction de vos squelettes. Lorsque cela a été possible, la balise proposée a également été déclinée en modèle pour être utilisable à l’intérieur de vos contenus éditoriaux (articles, rubriques, brèves, etc.).

Pour avoir accès à la trousse à balises, il vous faut donc avoir installé ce plugin en suivant la procédure normale d’installation des plugins SPIP.

Ensuite, veuillez activer l’outil « Balises, filtres, critères / Trousse à Balises » en vous rendant sur la page d’administration du plugin en espace privé (Bouton Configuration, et onglet "Le Couteau Suisse").

Du faux texte : la balise #BOLO

Cyril Marion avait proposé une balise #BOLO dans un article. Le but étant de produire un faux texte de type Lorem Ipsum, utile lors de la phase de développement.

La révision 26916 du couteau suisse l’intègre désormais.

La balise #BOLO

Placée dans un squelette, elle produit un faux texte d’environ 3000 caractères (« bolo » ou « lorem ipsum ») afin d’aider à la mise au point des pages.

Elle peut prendre un argument numérique, pour limiter le nombre de caractères de faux texte.

Exemple : #BOLO{300} produira 300 caractères de faux texte.

Bien sûr, cette balise accepte tous les filtres de SPIP. Exemple : [(#BOLO|majuscules)].

Le modèle <boloxxx>

La valeur xxx correspond au nombre de caractères de faux texte. Ce modèle s’insère dans tous les contenus SPIP (articles, rubriques, etc.), pour n’importe quelle zone de texte (chapo, descriptif, texte, etc.).

Exemple : le raccourci <bolo300> insère 300 caractères de faux texte.

La balise #CHR

La notation #CHR{XX}, plus courte est plus explicite, est un équivalent à l’une des deux expressions suivantes :
-  #EVAL{"chr(XX)"}
-  #VAL{XX}|chr

Note : La balise #VAL est introduite par SPIP v2.0, mais le Couteau Suisse l’intègre aussi dans les version antérieures de SPIP.

XX représente le numéro ASCII du caractère à représenter, à l’instar de la fonction chr() du langage PHP. Pour vous repérer, voici la table ASCII des 255 premiers caractères : http://www.asciitable.com/.

Un exemple d’utilisation :

<script type='text/javascript'>/*<!#CHR{91}CDATA#CHR{91}*/
 ma_fonction_js();
/*#CHR{93}[(#CHR{93})]>*/</script>

Voici le code de cette balise :

// La balise #CHR
function balise_CHR_dist($p) {
  if (($v = interprete_argument_balise(1,$p))!==NULL){
    $p->code = "chr(intval($v))";
    $p->type = 'php';
  }
  return $p;
}

Bien sûr, il est superflu de proposer un modèle ici car le langage HTML permet d’insérer facilement n’importe quel caractère grâce à son code ASCII : &#0XX;. Exemple : &#091;.

La balise #MAINTENANT

Cette balise renvoie la date et l’heure actuelle. Attention : si le cache de SPIP est utilisé (fonctionnement normal), le résultat renvoyé est celui du moment du calcul de la page. Pour avoir une horloge en direct, reportez vous à l’article suivant : Une horloge (suisse ?) pour le Couteau.

L’argument facultatif est le format du résultat renvoyé, façon PHP. Par défaut, le format Y-m-d H:i:s est utilisé. Tous les formats utilisables sont détaillés ici : http://php.net/manual/fr/function.d....

Exemples d’utilisation :
-  #MAINTENANT
-  #MAINTENANT{Y-m-d}
-  #MAINTENANT{'Y-m-d H:i'}
-  [(#MAINTENANT|affdate)]

Un alias anglophone de la balise est également proposé par le plugin : la balise #NOW qui s’utilise exactement de la même façon.

Voici le code de cette balise :

// La balise #MAINTENANT
function balise_MAINTENANT_dist($p) {
  $format = sinon(interprete_argument_balise(1,$p), "'Y-m-d H:i:s'");
  $p->code = "date($format)";
  $p->interdire_scripts = false;
  return $p;
}

Notez que les trois expressions suivantes sont équivalentes :
-  #MAINTENANT
-  [(#VAL{Y-m-d H:i:s}|date)]
-  #EVAL{"date('Y-m-d H:i:s')"}

La balise #AUTORISER_SINON_LOGIN

Le raccourci #AUTORISER_SINON_LOGIN{xxx} est équivalent à :

#AUTORISER{xxx}|sinon_interdire_acces{[(#URL_PAGE{login}|parametre_url{url,#SELF,&})]}

Cette balise est pratique pour lancer une demande de login lorsque le squelette demandé n’est pas autorisé.

Exemple qui restreint une page aux rédacteurs logués :
-  #AUTORISER_SINON_LOGIN{ecrire}.

Exemple qui restreint une page aux administrateurs logués :
-  #AUTORISER_SINON_LOGIN{configurer,_plugins}.

Voici le code de cette balise :

// Appelle la balise #AUTORISER et renvoie une demande de login si niet
function balise_AUTORISER_SINON_LOGIN_dist($p) {
  function_exists('balise_AUTORISER')
    ? balise_AUTORISER($p) : balise_AUTORISER_dist($p);
  $p->code = 'sinon_interdire_acces(' . $p->code 
    . ', parametre_url(generer_url_public("login","",false),"url",self(),"&"))';
  return $p;
}

La balise #LESMOTS

En cours de développement.

Discussion

Aucune discussion

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