Valider 67ecaced rédigé par Fil's avatar Fil
Parcourir les fichiers

la correction sur <INCLURE(){fond=#TITRE}>, qui consistait à rétablir dans ce...

la correction sur <INCLURE(){fond=#TITRE}>, qui consistait à rétablir dans ce cas la bonne référence à la boucle où aller chercher #TITRE (la boucle courante), faisait éclater le cas général du critère {id_rubrique=#_boucle:ID_RUBRIQUE}, car là il faut donner comme référence la boucle englobante... (Paolo)
parent 48f5b9ab
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+4 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -759,9 +759,10 @@ function balise_ENV_dist($p) {
	} else {
		// admet deux arguments : nom de variable, valeur par defaut si vide
		$nom = split(',', $nom, 2);
		$p->code = 'sinon($Pile[0]["' . addslashes($nom[0]) . '"]' .
		  filtres_arglist($nom[1], $p, ',') .
		  ')';
		$p->code = '$Pile[0]["' . addslashes($nom[0]) . '"]';
		if ($nom[1])
			$p->code = 'sinon('. $p->code
			. filtres_arglist($nom[1], $p, ',') . ')';
		$p->statut = 'php';
	}
	return $p;
+10 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -367,7 +367,7 @@ function calculer_critere_DEFAUT($idb, &$boucles, $param, $not) {
			// Valeur de comparaison
			if ($match[3]) {
				if (strtoupper($op) != 'IN') {
					$val = calculer_param_dynamique($match[6], $boucles, $idb);
					$val = calculer_param_dynamique($match[6], $boucles, $boucles[$idb]->id_parent);
					// gestion d'erreur
					if (is_array($val)) erreur_squelette($val);
				}
@@ -603,16 +603,22 @@ function calculer_param_date($date_compare, $date_orig) {
//
// Calculer les parametres
//

// $val = le parametre (exemple : #_boucle:TITRE
// $boucle = le tableau des boucles
// $idb = la boucle de reference :
//   - dans le cas d'un inclure, la boucle courante
//   - dans le cas d'un parametre de boucle, la boucle parente
function calculer_param_dynamique($val, &$boucles, $idb) {
#	if (ereg('^ *\((.*)) *$', $val, $m)) $val = $m[1]; # si on veut (#...)
	if (ereg(NOM_DE_CHAMP . "(\{[^}]*\})?", $val, $regs)) {
#spip_log(serialize($regs)." ($idb)");
		$champ = new Champ;
		$champ->nom_boucle = $regs[2];
		$champ->nom_champ = $regs[3];
		$champ->etoile = $regs[4];
		$champ->fonctions = $regs[5] ? array($regs[5]) : '';
		$champ->id_boucle = $idb;
		$champ->id_mere = $boucles[$idb]->id_parent;
		$champ->boucles = &$boucles;
		$champ = calculer_champ($champ);
		return '" . addslashes(' . $champ . ') . "';
@@ -632,7 +638,7 @@ function calculer_params_dynamiques($liste, &$boucles, $idb) {
	ereg("^ *\(?(.*[^)])\)? *$",$liste, $reg);
	$res = array();
	foreach (split(" *, *", $reg[1]) as $v) {
	  $v = calculer_param_dynamique($v, $boucles, $idb);
	  $v = calculer_param_dynamique($v, $boucles, $boucles[$idb]->id_parent);
	  if (is_array($v)) erreur_squelette($v);
	  if (strpos('0123456789',$v[0]) !== false)
	    $res[] = $v;
@@ -646,7 +652,7 @@ function calculer_params_dynamiques($liste, &$boucles, $idb) {

function simplifie_param_dynamique($val, &$boucles, $idb)
{
	$a = calculer_param_dynamique($val, $boucles, $idb);
	$a = calculer_param_dynamique($val, $boucles, $boucles[$idb]->id_parent);
	if (!ereg('" \. *(.*)\. "', $a, $m)) return $a;
	return $m[1];
}	
+4 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -53,6 +53,9 @@ else {
}
if ($recalcul) $url .= $super."var_mode=recalcul";
else if ($preview) $url .= $super."var_mode=preview";
@header("Location: $url");

// Ne pas masquer cette eventuelle erreur (aide a detecter des lignes vides
// dans inc-urls.php3 ou mes_fonctions/mes_options)
header("Location: $url");

?>
 No newline at end of file