Skip to content
Extraits de code Groupes Projets
Valider 19edd676 rédigé par esj's avatar esj
Parcourir les fichiers

Tâche #685, complément de [8004]: les modèles <embNNN...> <imgNNN...> etc sont...

Tâche #685, complément de [8004]: les modèles <embNNN...> <imgNNN...> etc sont eux aussi renumérotés. Un manque néanmoins: le script de fusion applique bien la Regexp générale des modèles, mais considère  toute référence NNN dans un modèle comme désignant un id_document de la table des documents. Messieurs les modeleurs, trouver une structure de données indiquant à quel table fait référence ce numéro, et sus à la ligne 232 de import_insere pour finaliser complétement la chose.

Au passage, mise sous forme de constante de la Regexp des modèles afin d'etre
réutilisée ici. De toutes façons c'était pas super de la construire dynamiquement dans une boucle, située dans une fonction elle-meme souvent appelée. Et le paramètre S est déconseillé dans les Regexp dont le premier caractère est fixe.
parent dd54b95e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -204,9 +204,12 @@ function importe_translate_maj($k, $v)
return $g;
}
define('_RACCOURCI_MODELE_ALL', '/' . _RACCOURCI_MODELE .'/isS');
// http://doc.spip.org/@importe_raccourci
function importe_raccourci($k, $v)
{
if (preg_match_all(_RACCOURCI_LIEN, $v, $m, PREG_SET_ORDER)) {
foreach ($m as $regs) {
// supprimer 'http://' ou 'mailto:'
......@@ -223,6 +226,16 @@ function importe_raccourci($k, $v)
}
}
}
if (preg_match_all(_RACCOURCI_MODELE_ALL, $v, $m, PREG_SET_ORDER)) {
foreach ($m as $regs) {
$g = importe_translate_maj('id_document', $regs[3]);
if ($g != $regs[3]) {
$rac = '<' . $regs[2] . $g . $regs[4] . '>' . $regs[5];
$v = str_replace($regs[0], $rac, $v);
}
}
}
return $v;
}
......
......@@ -1011,7 +1011,7 @@ function traiter_listes ($texte) {
// http://doc.spip.org/@supprime_img
function supprime_img($letexte) {
$message = _T('img_indisponible');
return preg_replace(',<(img|doc|emb)([0-9]+)(\|([^>]*))?'.'>,iS',
return preg_replace(',<(img|doc|emb)([0-9]+)(\|([^>]*))?'.'>,i',
"($message)", $letexte);
}
......@@ -1022,6 +1022,17 @@ function supprime_img($letexte) {
// Si $doublons==true, on repere les documents sans calculer les modeles
// mais on renvoie les params (pour l'indexation par le moteur de recherche)
// http://doc.spip.org/@traiter_modeles
define('_RACCOURCI_MODELE',
'(<([a-z_-]{3,})' # <modele
.'\s*([0-9]*)\s*' # id
.'([|](?:<[^<>]*>|[^>])*)?' # |arguments (y compris des tags <...>)
.'>)' # fin du modele >
.'\s*(<\/a>)?' # eventuel </a>
);
define('_RACCOURCI_MODELE_DEBUT', '/^' . _RACCOURCI_MODELE .'/is');
function traiter_modeles($texte, $doublons=false, $echap='') {
// detecter les modeles (rapide)
if (preg_match_all('/<[a-z_-]{3,}\s*[0-9|]+/iS',
......@@ -1031,15 +1042,7 @@ function traiter_modeles($texte, $doublons=false, $echap='') {
// Recuperer l'appel complet (y compris un eventuel lien)
// $regs : 1 => modele, 2 => type, 3 => id, 4 => params, 5 => a
$a = strpos($texte,$match[0]);
preg_match(
'/^' #debut
.'(<([a-z_-]{3,})' # <modele
.'\s*([0-9]*)\s*' # id
.'([|](?:<[^<>]*>|[^>])*)?' # |arguments (y compris des tags <...>)
.'>)' # fin du modele >
.'\s*(<\/a>)?' # eventuel </a>
.'/isS',
substr($texte, $a), $regs);
preg_match(_RACCOURCI_MODELE_DEBUT, substr($texte, $a), $regs);
if ($regs[5] AND preg_match(
',<a\s[^<>]*>\s*$,i', substr($texte, 0, $a), $r)) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter