diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 93e7ac54c10c837fafa23c3774c8233722066307..8208a1d74dcb1ee3f249f46b0423ca14a3d97652 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -1634,6 +1634,12 @@ function recuperer_fond($fond, $contexte=array(), $options = array(), $connect=' // (trim etait le 3eme argument, par defaut a true) if (!is_array($options)) $options = array('trim'=>$options); if (!isset($options['trim'])) $options['trim']=true; + + if (isset($contexte['connect'])){ + $connect = ($connect ? $connect : $contexte['connect']); + unset($contexte['connect']); + } + if (isset($options['modele'])) $contexte = creer_contexte_de_modele($contexte); diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index 8229c37d907b75dbd2d69b288e493f15efa6e777..b73c4987d49b98c5c696b453539117a6c47451f5 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -985,14 +985,12 @@ function balise_INCLURE_dist($p) { $_l = 'array(' . join(",\n\t", $_contexte) .')'; if ($flag_env) $_l = "array_merge(\$Pile[0],$_l)"; - $_connect = _q(!$id_boucle ? '' : $p->boucles[$id_boucle]->sql_serveur); - $_options = array(); if (isset($_contexte['ajax'])) $_options[] = "'ajax'=>true"; if ($p->etoile) $_options[] = "'etoile'=>true"; $_options = "array(" . join(',',$_options) . ")"; - $p->code = "recuperer_fond('',\$l = $_l, $_options, $_connect)"; + $p->code = "recuperer_fond('',\$l = $_l, $_options)"; } elseif (!isset($_contexte[1])) { erreur_squelette(_T('zbug_balise_sans_argument', diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 4b2891e7c7434e4577c737b148c9b92cfc3a09e6..d7c7dd7261a89672db986d42047b119f164309eb 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -93,6 +93,15 @@ function argumenter_inclure($params, $rejet_filtres, $descr, &$boucles, $id_bouc } } } + // si pas de connect explicite, on transmet celui de la boucle courante + // + if (!isset($l['connect']) + AND $connect = (!$id_boucle ? '' : $boucles[$id_boucle]->sql_serveur) + AND !in_array($connect,$GLOBALS['exception_des_connect'])){ + $l['connect'] = ($echap?"\'connect\' => ' . argumenter_squelette(":"'connect' => ") + . "'$connect'" . ($echap? ") . '":" "); + } + // Cas particulier de la langue : si {lang=xx} est definie, on // la passe, sinon on passe la langue courante au moment du calcul // sauf si on n'en veut pas diff --git a/ecrire/public/interfaces.php b/ecrire/public/interfaces.php index 1949ad0b3876217ccd5280a9d2b28c4dfae9b767..d0dfef3b4b18496fc03000e9fe7212e8ddd4fbdf 100644 --- a/ecrire/public/interfaces.php +++ b/ecrire/public/interfaces.php @@ -154,6 +154,8 @@ class Polyglotte { global $table_criteres_infixes; $table_criteres_infixes = array('<', '>', '<=', '>=', '==', '===', '!=', '!==', '<>', '?'); +global $exception_des_connect; +$exception_des_connect[] = ''; // ne pas transmettre le connect='' par les inclure // // Globales de description de la base