Filtre Note Bulle 1.0 - comments Filtre Note Bulle 1.0 2010-11-16T23:17:35Z https://contrib.spip.net/Filtre-Note-Bulle-1-0#comment437017 2010-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.0 2010-11-16T20:58:20Z https://contrib.spip.net/Filtre-Note-Bulle-1-0#comment437007 2010-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?</p> <p>Merci</p> Filtre Note Bulle 1.0 2008-09-03T14:43:18Z https://contrib.spip.net/Filtre-Note-Bulle-1-0#comment408389 2008-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>"[[".$textInfoBulleOrig."]]"</code>”</p> <p>merci.</p> Filtre Note Bulle 1.0 2008-09-03T14:39:30Z https://contrib.spip.net/Filtre-Note-Bulle-1-0#comment408388 2008-09-03T14:39:30Z <p>Bonjour, bravo et merci pour cette contrib' bien utile!<br class='autobr' /> Une très bonne idée!</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 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>