Filtre Note Bulle 1.0 - commentairesFiltre Note Bulle 1.02010-11-16T23:17:35Zhttps://contrib.spip.net/Filtre-Note-Bulle-1-0#comment4370172010-11-16T23:17:35Z<p>Rebonjour,</p>
<p>Je me réponds à moi-même. Je suis tombée sur ce tutoriel que j'ai adapté <a href="http://forum.alsacreations.com/topic.php?fid=1&tid=48309&s=infobulle" class="spip_url spip_out auto" rel="nofollow external">http://forum.alsacreations.com/topic.php?fid=1&tid=48309&s=infobulle</a></p>
<p>Bonne journée</p>Filtre Note Bulle 1.02010-11-16T20:58:20Zhttps://contrib.spip.net/Filtre-Note-Bulle-1-0#comment4370072010-11-16T20:58:20Z<p>Bonjour,</p>
<p>Sur SPIP 2.1, la fonction fait planter SPIP. Je ne sais pa ce qui cause ça. C'est bien dommage, car c'est vraiment un super script, qui à mon avis devrait être intégré dans le core de SPIP.</p>
<p>Pensez-vous le mettre à jour pour la version 2.1<small class="fine d-inline"> </small>?</p>
<p>Merci</p>Filtre Note Bulle 1.02008-09-03T14:43:18Zhttps://contrib.spip.net/Filtre-Note-Bulle-1-0#comment4083892008-09-03T14:43:18Z<p>PS : pour résumer, j'ai juste viré les barres verticales du code dans « Test de l'existence des info-bulles », « Recuperation des toutes les info-bulles presentes dans le texte nettoye » et à la fin : « <code class="spip_code spip_code_inline" dir="ltr">"[[".$textInfoBulleOrig."]]"</code> »</p>
<p>merci.</p>Filtre Note Bulle 1.02008-09-03T14:39:30Zhttps://contrib.spip.net/Filtre-Note-Bulle-1-0#comment4083882008-09-03T14:39:30Z<p>Bonjour, bravo et merci pour cette contrib' bien utile<small class="fine d-inline"> </small>!<br class="autobr">
Une très bonne idée<small class="fine d-inline"> </small>!</p>
<p>J'aimerai savoir s'il était possible de légèrement modifier la fonction pour que cela marche sur toutes les notes spip. C'est à dire pour que l'on ne soit pas obligé d'ajouter de barre verticale dans les raccourcis SPIP.</p>
<p>En générale, les rédacteurs pour qui je travaille se servent de la barre de typo, voir utilisent une macro Word pour SPIP. De plus il y a beaucoup de vieux articles sur le site qu'il faudrait retoucher pour ajouter cette fonction partout.</p>
<p>J'ai essayé de tripoter le code mais n'étant pas très fort en PHP, le résultat n'est pas satisfaisant.<br class="autobr">
Cela ne marche pas sur toutes les notes, certaines disparaissent carrément de l'article.</p>
<p>Merci de me dire où je me suis planté.</p>
<p>Ci dessous, le code de la fonction modifiée par mes soins :</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><?php
/**********************************************************************************************************/
/* Filtre "note_bulle" 1.0 */
/* ---------------------------------------------------------------------------------------------------- */
/* Infos : GPL - 04/08 (c) FredoMkb */
/* Utilisation : #TEXTE*|note_bulle|propre */
/* Usage : Insere des balises "span" qui s'affichent comme info-bulles lors de leur survol */
/* Voir styles Css "notebulle" associes */
/* ---------------------------------------------------------------------------------------------------- */
function note_bulle($texteOrig) {
// Fonction pour creer des info-bulles dans le texte des articles et breves.
// La fonction verifie l'existence des balises ouvrantes "[[|" et fermantes "|]]"
// si c'est le cas, elle les remplace par une balise survolable affichant une info-bulle
// avec tout le contenu des balises, meme s'il est formate en Html. // Test de l'existence des info-bulles. preg_match("#\\[\\[(.*?)\\]\\]#iU", $texteOrig, $testInfoBulle); // Si un des info-bulles existent, alors on genere les balises survolables. if ($testInfoBulle[1] != false) { // On exclu les textes des codes et cadres $texteOrigClean = preg_replace('#< cadre>(.*?)< /cadre>#s','',$texteOrig); $texteOrigClean = preg_replace('#< code>(.*?)< /code>#s','',$texteOrigClean); // Recuperation des toutes les info-bulles presentes dans le texte nettoye. preg_match_all('#\\[\\[(.*?)\\]\\]#iU', $texteOrigClean, $listeOrig); // On place le resultat dans une variable et on initialise les autres variables. $listeInfoBullesOrig = $listeOrig[1]; $lienDebut = '<span class="notebulle" onmouseover="this.childNodes[1].setAttribute(\'title\', \'\');">[['; $lienCentre = ']]<span>'; $lienFin = '</span></span>'; // Boucle sur chaque element de la liste des info-bulles recuperees. foreach ($listeInfoBullesOrig as $textInfoBulleOrig) { $textInfoBulleNew = $lienDebut.$textInfoBulleOrig.$lienCentre.$textInfoBulleOrig.$lienFin; $texteOrig = str_replace("[[".$textInfoBulleOrig."]]", $textInfoBulleNew, $texteOrig); }; }; // Retour du texte modifie. return $texteOrig;
}
/**********************************************************************************************************/
?></code></pre></div>
<p>merci</p>