Valider 5917b920 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Evacuer les fonction de stylisation par rubrique et langue qui vont dans le...

Evacuer les fonction de stylisation par rubrique et langue qui vont dans le plugin squelettes_par_rubrique
http://zone.spip.org/trac/spip-zone/changeset/47207
et correction du calcul de id_rubrique/lang a partir du contexte, qui ne fonctionnait plus correctement, melangeant id_objet et id_rubrique
parent cc641ac1
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -236,9 +236,7 @@ $controler_dates_rss = true;
# note: un pipeline non reference se compile aussi, mais uniquement
# lorsqu'il est rencontre
// http://doc.spip.org/@Tuto-Se-servir-des-points-d-entree
$spip_pipeline = array(
	'styliser' => '||styliser_par_rubrique|styliser_par_langue',
);
$spip_pipeline = array();

# la matrice standard (fichiers definissant les fonctions a inclure)
$spip_matrice = array ();
+7 −66
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -100,71 +100,6 @@ function styliser_par_objets($flux){
	return $flux;
}

/**
 * Options de recherche de squelette par le styliseur, appele par le pipeline 'styliser' :
 * Squelette par rubrique squelette-XX.html ou squelette=XX.html
 * 
 * @param <type> $flux
 * @return <type>
 */
function styliser_par_rubrique($flux) {

	// uniquement si un squelette a ete trouve
	if ($squelette = $flux['data']) {
		$ext = $flux['args']['ext'];

		// On selectionne, dans l'ordre :
		// fond=10
		if ($id_rubrique = $flux['args']['id_rubrique']) {
			$f = "$squelette=$id_rubrique";
			if (@file_exists("$f.$ext"))
				$squelette = $f;
			else {
				// fond-10 fond-<rubriques parentes>
				do {
					$f = "$squelette-$id_rubrique";
					if (@file_exists("$f.$ext")) {
						$squelette = $f;
						break;
					}
				} while ($id_rubrique = quete_parent($id_rubrique));
			}
			// sauver le squelette
			$flux['data'] = $squelette;
		}		
	}
	
	return $flux;
}

/**
 * Options de recherche de squelette par le styliseur, appele par le pipeline 'styliser' :
 * Squelette par langue squelette.en.html
 *
 * @param array $flux
 * @return array
 */
function styliser_par_langue($flux) {

	// uniquement si un squelette a ete trouve
	if ($squelette = $flux['data']) {
		$ext = $flux['args']['ext'];

		// Affiner par lang
		if ($lang = $flux['args']['lang']) {
			$l = lang_select($lang);
			$f = "$squelette.".$GLOBALS['spip_lang'];
			if ($l) lang_select();
			if (@file_exists("$f.$ext")) {
				// sauver le squelette
				$flux['data'] = $f;
			}
		}
	}
	
	return $flux;
}

/**
 * Calcul de la rubrique associee a la requete
 * (selection de squelette specifique par id_rubrique & lang)
@@ -200,10 +135,16 @@ function quete_rubrique_fond($contexte) {
	if (isset($quete[$s]))
		return $quete[$s];

	if (isset($c['id_rubrique']) AND $r = $c['id_rubrique']){
		unset($c['id_rubrique']);
		$c = array('id_rubrique'=>$r) + $c;
	}

	foreach($c as $_id=>$id) {
		if ($id
		  AND $row = quete_parent_lang(table_objet_sql($liste_objets[$_id]),$id)) {
			$lang = isset($row['lang']) ? $row['lang'] : '';
			if ($_id=='id_rubrique' OR (isset($row['id_rubrique']) AND $id=$row['id_rubrique']))
				return $quete[$s] = array ($id, $lang);
		}
	}