Browse Source

Prendre en compte la typographie du plugin orthotypo qui rajoute une espace fine avec une balise small avant le point d'interrogation.

svn/root/tags/v3.1.0
eric@smellup.net 9 years ago
parent
commit
30d826ebb2
  1. 2
      inclure/faq_dl.html
  2. 4
      paquet.xml
  3. 13
      wheels/faq.php

2
inclure/faq_dl.html

@ -1,7 +1,7 @@
<B_faq>
[<h3 class="spip">
[<a class="ancre" href="##ENV{ancre}" name="(#ENV{ancre})" id="#ENV{ancre}"></a>]
(#ENV{titre})
(#ENV**{titre})
</h3>]
<dl class="faq[ (#CONFIG{faq/charger_js}|et{#CONFIG{faq/iconifier_js}}|oui)js]">
<BOUCLE_faq(DATA){source table, #ENV{faq}}{par cle}>

4
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="faq"
categorie="edition"
version="3.0.1"
version="3.0.2"
etat="test"
compatibilite="[3.0.0;3.0.*]"
logo="faq_logo-128.png"
@ -15,7 +15,7 @@
<auteur lien="http://blog.smellup.net">Eric Lupinacci</auteur>
<licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
<copyright>2009-2013</copyright>
<copyright>2009-2014</copyright>
<necessite nom="tw" compatibilite="[0.3.1;[" />

13
wheels/faq.php

@ -6,6 +6,12 @@
if (!defined('_FAQ_REGEXP_INFOS_COMPLEMENTAIRES'))
define('_FAQ_REGEXP_INFOS_COMPLEMENTAIRES', '%([\w-]+:|#)([\w.-]+)(?:\s|$)%Uu');
// Regexp permettant de supprimer les inclusions typographiques d'espace avant le caractère "?" :
// - &nbsp; selon la règle typographique par défaut de SPIP
// - <small class="fine">\xc2\xa0</small> selon la règle typographique du plugin orthotypo
if (!defined('_FAQ_REGEXP_ESPACE_INTERROGATION'))
define('_FAQ_REGEXP_ESPACE_INTERROGATION', '#^(&nbsp;|<small[^?]+)(\?.+)#is');
/**
* Analyse du contenu d'un bloc FAQ inclu entre les marqueurs de début (<faq>) et de fin (</faq>)
@ -79,9 +85,10 @@ function tw_faq($t) {
// - et sinon la réponse comme un descriptif libre de la question précédente.
// Le caractère de question '?' est traité par SPIP et précédés
// d'un '&nbsp;' parfois à cause de la typographie et il faut donc au préalable le supprimer.
if (strpos($texte, '&nbsp;') === 0) {
$texte = substr($texte, 6, strlen($texte)-6);
}
// Si on utilise aussi le plugin OrthoTypo, cette espace fine est remplacée par une espace inclus
// dans une balise <small> qu'il faut aussi traiter.
// Espace par défaut de SPIP
$texte = preg_replace(_FAQ_REGEXP_ESPACE_INTERROGATION, '\\2', $texte);
$premier = substr($texte, 0, 1);
if (($premier != '?')

Loading…
Cancel
Save