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

J'igorais qu'il y eut des forcenés du multi dans les formulaires de saisie de...

J'igorais qu'il y eut des forcenés du multi dans les formulaires de saisie de l'espace privé. Retour aux versions précédentes pour ces 3 fichiers, à qq optimisations près imposées par l'espace public qui entend conserver l'avantage acquis.
parent 5de76af3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -810,15 +810,13 @@ function post_autobr($texte, $delim="\n_ ") { ...@@ -810,15 +810,13 @@ function post_autobr($texte, $delim="\n_ ") {
} }
//
// les ci-devant blocs multi sont maintenant traites en amont. // Gestion des blocs multilingues
// garder cette fonction pour de vielles contrib qui l'appelleraient //
function extraire_multi ($letexte) {return $letexte;}
// //
// Selection dans un tableau dont les index sont des noms de langues // Selection dans un tableau dont les index sont des noms de langues
// de la valeur associee a la langue en cours (ci-devant bloc multi) // de la valeur associee a la langue en cours
// //
function multi_trad ($trads) { function multi_trad ($trads) {
...@@ -838,6 +836,55 @@ function multi_trad ($trads) { ...@@ -838,6 +836,55 @@ function multi_trad ($trads) {
else return array_shift($trads); else return array_shift($trads);
} }
// analyse un bloc multi
function extraire_trad ($bloc) {
$lang = '';
while (preg_match("/^(.*?)[\{\[]([a-z_]+)[\}\]]/si", $bloc, $regs)) {
$texte = trim($regs[1]);
if ($texte OR $lang)
$trads[$lang] = $texte;
$bloc = substr($bloc, strlen($regs[0]));
$lang = $regs[2];
}
$trads[$lang] = $bloc;
// faire la traduction avec ces donnees
return multi_trad($trads);
}
// repere les blocs multi dans un texte et extrait le bon
function extraire_multi ($letexte) {
global $flag_pcre;
if (strpos($letexte, '<multi>') === false) return $letexte; // perf
if ($flag_pcre AND preg_match_all("@<multi>(.*?)</multi>@s", $letexte, $regs, PREG_SET_ORDER)) {
while (list(,$reg) = each ($regs)) {
$letexte = str_replace($reg[0], extraire_trad($reg[1]), $letexte);
}
}
return $letexte;
}
// popup des blocs multi dans l'espace prive (a ameliorer)
function ajoute_popup_multi($langue_demandee, $trads, $texte) {
static $num_multi=0;
global $multi_popup;
while (list($lang,$bloc) = each($trads)) {
if ($lang != $langue_demandee)
$survol .= "[$lang] ".supprimer_tags(couper($bloc,20))."\n";
$texte_popup .= "<br /><b>".traduire_nom_langue($lang)."</b> ".ereg_replace("\n+","<br />", supprimer_tags(couper(propre($bloc),200)));
}
if ($survol) {
$num_multi ++;
$texte .= " <img src=\"" . _DIR_IMG_PACK . "langues-modif-12.gif\" alt=\"(multi)\" title=\"$survol\" height=\"12\" width=\"12\" border=\"0\" onclick=\"return openmulti($num_multi)\" />";
$multi_popup .= "textes_multi[$num_multi] = '".addslashes($texte_popup)."';\n";
}
return $texte;
}
// Raccourci ancre [#ancre<-] // Raccourci ancre [#ancre<-]
function avant_propre_ancres($texte) { function avant_propre_ancres($texte) {
$regexp = "|\[#?([^][]*)<-\]|"; $regexp = "|\[#?([^][]*)<-\]|";
......
...@@ -68,6 +68,7 @@ function nettoyer_chapo($chapo){ ...@@ -68,6 +68,7 @@ function nettoyer_chapo($chapo){
// points d'entree de pre- et post-traitement pour propre() et typo() // points d'entree de pre- et post-traitement pour propre() et typo()
function spip_avant_propre ($letexte) { function spip_avant_propre ($letexte) {
$letexte = avant_propre_ancres($letexte); $letexte = avant_propre_ancres($letexte);
$letexte = extraire_multi($letexte);
if (function_exists('avant_propre')) if (function_exists('avant_propre'))
$letexte = avant_propre($letexte); $letexte = avant_propre($letexte);
...@@ -83,6 +84,7 @@ function spip_apres_propre ($letexte) { ...@@ -83,6 +84,7 @@ function spip_apres_propre ($letexte) {
} }
function spip_avant_typo ($letexte) { function spip_avant_typo ($letexte) {
$letexte = extraire_multi($letexte);
$letexte = avant_typo_smallcaps($letexte); $letexte = avant_typo_smallcaps($letexte);
if (function_exists('avant_typo')) if (function_exists('avant_typo'))
...@@ -363,7 +365,7 @@ function couper($texte, $taille=50) { ...@@ -363,7 +365,7 @@ function couper($texte, $taille=50) {
// prendre <intro>...</intro> sinon couper a la longueur demandee // prendre <intro>...</intro> sinon couper a la longueur demandee
function couper_intro($texte, $long) { function couper_intro($texte, $long) {
$texte = (eregi_replace("(</?)intro>", "\\1intro>", $texte)); // minuscules $texte = extraire_multi(eregi_replace("(</?)intro>", "\\1intro>", $texte)); // minuscules
while ($fin = strpos($texte, "</intro>")) { while ($fin = strpos($texte, "</intro>")) {
$zone = substr($texte, 0, $fin); $zone = substr($texte, 0, $fin);
$texte = substr($texte, $fin + strlen("</intro>")); $texte = substr($texte, $fin + strlen("</intro>"));
......
...@@ -73,7 +73,9 @@ function _generer_url_propre($type, $id_objet) { ...@@ -73,7 +73,9 @@ function _generer_url_propre($type, $id_objet) {
// Sinon, creer l'URL // Sinon, creer l'URL
include_ecrire("inc_filtres.php3"); include_ecrire("inc_filtres.php3");
include_ecrire("inc_charsets.php3"); include_ecrire("inc_charsets.php3");
$url = translitteration(corriger_caracteres(supprimer_tags(supprimer_numero($row['titre'])))); $url = translitteration(corriger_caracteres(
supprimer_tags(supprimer_numero(extraire_multi($row['titre'])))
));
$url = @preg_replace(',[[:punct:][:space:]]+,u', ' ', $url); $url = @preg_replace(',[[:punct:][:space:]]+,u', ' ', $url);
// S'il reste des caracteres non latins, utiliser l'id a la place // S'il reste des caracteres non latins, utiliser l'id a la place
if (preg_match(",[^a-zA-Z0-9 ],", $url)) { if (preg_match(",[^a-zA-Z0-9 ],", $url)) {
......
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