diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index 3ee98052bf697560d5dcfe9317fc6d7dfe795165..19adc3c5e4aff49fbdc59359f1c806a978de95b3 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -324,7 +324,7 @@ $liste_des_authentifications = array( $spip_version_branche = "2.0.0 dev"; // version des signatures de fonctions PHP // (= numero SVN de leur derniere modif cassant la compatibilite et/ou necessitant un recalcul des squelettes) -$spip_version_code = 12208; +$spip_version_code = 12282; // version de la base SQL (= numero SVN de sa derniere modif) $spip_version_base = 12008; diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index b6a0c5bd16ac6d851489d8275a123d0bfe690fdf..81db3be4b203be2e7722ed83739fe9668412a837 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -295,6 +295,7 @@ function calculer_balise_expose($p, $on, $off) $key = $p->boucles[$b]->primary; $type = $p->boucles[$p->id_boucle]->primary; $desc = $p->boucles[$b]->show; + $connect = sql_quote($p->boucles[$b]->sql_serveur); if (!$key) { erreur_squelette(_T('zbug_champ_hors_boucle', array('champ' => '#EXPOSER')), $b); @@ -311,7 +312,7 @@ function calculer_balise_expose($p, $on, $off) $parent = index_pile($p->id_boucle, 'id_groupe', $p->boucles, $b); } else $parent = "''"; - $p->code = "(calcul_exposer($c, '$type', \$Pile[0], $parent, '$key') ? $on : $off)"; + $p->code = "(calcul_exposer($c, '$type', \$Pile[0], $parent, '$key', $connect) ? $on : $off)"; $p->interdire_scripts = false; return $p; diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php index 66400aed5aa566b7d7c2b66f2167fb1e5a95bfc9..e4a145214dcad15c9d544b6366c9a7414af27449 100644 --- a/ecrire/public/composer.php +++ b/ecrire/public/composer.php @@ -308,29 +308,8 @@ function executer_balise_dynamique($nom, $args, $filtres, $lang, $ligne) { # NB : a l'exception des fonctions pour les balises dynamiques -// http://doc.spip.org/@calculer_hierarchie -function calculer_hierarchie($id_rubrique, $exclure_feuille = false) { - - if (!$id_rubrique = intval($id_rubrique)) - return '0'; - - $hierarchie = array(); - - if (!$exclure_feuille) - $hierarchie[] = $id_rubrique; - - while ($id_rubrique = quete_parent($id_rubrique)) - array_unshift($hierarchie, $id_rubrique); - - if (count($hierarchie)) - return join(',', $hierarchie); - else - return '0'; -} - - // http://doc.spip.org/@calcul_exposer -function calcul_exposer ($id, $prim, $reference, $parent, $type) { +function calcul_exposer ($id, $prim, $reference, $parent, $type, $connect='') { static $exposer = array(); static $ref_precedente =-1; @@ -352,11 +331,12 @@ function calcul_exposer ($id, $prim, $reference, $parent, $type) { } } $exposer[$m][$type] = array(); + $parent = intval($parent); if ($principal) { $exposer[$m][$type][$principal] = true; if ($type == 'id_mot'){ if (!$parent) { - $parent = sql_fetsel('id_groupe','spip_mots',"id_mot=" . $principal); + $parent = sql_fetsel('id_groupe','spip_mots',"id_mot=" . $principal, '','','','',$connect); $parent = $parent['id_groupe']; } if ($parent) @@ -367,12 +347,12 @@ function calcul_exposer ($id, $prim, $reference, $parent, $type) { if ($type == 'id_rubrique') $parent = $principal; if ($type == 'id_article') { - $parent = sql_fetsel('id_rubrique','spip_articles',"id_article=" . $principal); + $parent = sql_fetsel('id_rubrique','spip_articles',"id_article=" . $principal, '','','','',$connect); $parent = $parent['id_rubrique']; } } - $a = split(',',calculer_hierarchie($parent)); - foreach($a as $n) $exposer[$m]['id_rubrique'][$n] = true; + do { $exposer[$m]['id_rubrique'][$parent] = true; } + while ($parent = quete_parent($parent, $connect)); } } } diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php index f90f42361d4d2d6bf3e36e6ba24ca18c0fb1cb08..2f661878ff44f1479361fa76ed362155bfd4b308 100644 --- a/ecrire/public/parametrer.php +++ b/ecrire/public/parametrer.php @@ -169,34 +169,28 @@ function quete_rubrique_fond($contexte) { # retourne le chapeau d'un article, et seulement s'il est publie // http://doc.spip.org/@quete_chapo -function quete_chapo($id_article) { - $chapo= sql_fetsel('chapo', 'spip_articles', array("id_article=".intval($id_article), "statut='publie'")); - return $chapo['chapo']; +function quete_chapo($id_article, $connect) { + return sql_getfetsel('chapo', 'spip_articles', array("id_article=".intval($id_article), "statut='publie'"), '','','','',$connect); } # retourne le parent d'une rubrique // http://doc.spip.org/@quete_parent -function quete_parent($id_rubrique) { +function quete_parent($id_rubrique, $connect='') { if (!$id_rubrique = intval($id_rubrique)) return 0; - $id_parent = sql_fetsel('id_parent, lang','spip_rubriques',"id_rubrique=" . $id_rubrique); - - if ($id_parent['id_parent']!=$id_rubrique) - return intval($id_parent['id_parent']); - else - spip_log("erreur: la rubrique $id_rubrique est son propre parent"); + return intval(sql_getfetsel('id_parent','spip_rubriques',"id_rubrique=" . $id_rubrique, '','','','',$connect)); } # retourne la profondeur d'une rubrique // http://doc.spip.org/@quete_profondeur -function quete_profondeur($id) { +function quete_profondeur($id, $connect='') { $n = 0; while ($id) { $n++; - $id = quete_parent($id); + $id = quete_parent($id, $connect); } return $n; } @@ -204,8 +198,8 @@ function quete_profondeur($id) { # retourne la rubrique d'un article // http://doc.spip.org/@quete_rubrique -function quete_rubrique($id_article) { - return sql_getfetsel('id_rubrique', 'spip_articles',"id_article=" . intval($id_article)); +function quete_rubrique($id_article, $serveur) { + return sql_getfetsel('id_rubrique', 'spip_articles',"id_article=" . intval($id_article), '',array(), '', '', $serveur); } # retourne le fichier d'un document @@ -297,7 +291,7 @@ function public_parametrer_dist($fond, $local='', $cache='', $connect='') { // si le raccourci a un titre il sera pris comme corps du 302 if ($fond == 'article' AND $id_article = intval($local['id_article'])) { - $m = quete_chapo($id_article); + $m = quete_chapo($id_article, $connect); if ($m[0]=='=') { include_spip('inc/texte'); // les navigateurs pataugent si l'URL est vide