Réponse en dessous
Pat a écrit :
b.poiraud a écrit :
Bonjour
Dans ma version précédente de spip, je faisais ceci :
Italiques générées par les guillemets.
Le problème : pouvoir recopier du texte, où il y a déjà des citations, en faisant en sorte que ces citations soient mises en italique.
Concrètement il faut que le signe | « | entraîne l’inclusion de |<i class="spip"> |
et que le signe | » | entraîne l’inclusion de |</i> | pour fermer la mise en italique.
Le couteau suisse peut-il le faire ??
Oui absolument : depuis peu, il est possible d'insérer facilement des lames personnalisées.
Le code ressemblera à celui qui est proposé sur spip-contrib :
[dev] Le Couteau Suisse à piloter - SPIP-Contrib
La ligne de remplacement (non testée !) pourrait être :
return preg_replace(',«\s*(.*?)\s*»,msS', '<i>$1</i>', $texte);
Pat
_______________________________________________
Merci mais ... je suis loin d'avoir compris !
D'abord, oui, je veux remplacer tous les textes qui sont entre guillemets par des italiques.
Et comme j'ai, dans un autre site, des textes très longs avec plein de citations, je ne peux pas utiliser le raccourci spip à chaque fois.
Je voudrais donc que ce soit au-to-ma-ti-que. (et je ne suis peut-être pas la seule dans ce cas).
Ya pas moyen d'avoir une tite-lame pour ça ? Il y en a déjà tellement !
Je crois bien que, si j'essaie moi-même, je n'y arriverai pas . Par exemple :
Faut-il que je mettre ça sans config/ mes_options.php ? :
############## COUTEAU SUISSE : LAME PERSO #################
// Installation d'une nouvelle lame personnalisee
$GLOBALS['mes_outils']['mise_evidence'] = array(
'nom' => 'Mise en évidence',
'description' => 'Un nouveau raccourci pour mettre un texte en évidence.',
'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) {
return preg_replace(',\[\*(.*?)\*\],', '<span style="color:orange;">$1</span>', $texte);
}
// Fonction de pipeline
function mise_evidence_pre_typo($texte) {
if (strpos($texte, '[*')===false) return $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) {
return preg_replace(',\[\*(.*?)\*\],', '$1', $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>';}
##############
ou bien faut-il que je mette tout ce qui est indiqué (en encadré) dans : Le Couteau Suisse pour les développeurs <http://www.spip-contrib.net/Le-Couteau-Suisse-pour-les>\.
et où faut-il mettre la ligne .....
return preg_replace(',«\s*(.*?)\s*»,msS', '<i>$1</i>', $texte);
J'ai bien besoin de lumières, puissance 200 w au moins !
Merci.
Bernadette