Esempio n. 1
0
/**
 * Déterminer le squelette qui sera utilisé pour rendre la page ou le bloc
 * à partir de `$fond` et du `$contetxe`
 *
 * Actuellement tous les squelettes se terminent par `.html`
 * pour des raisons historiques, ce qui est trompeur
 *
 * @param string $fond
 * @param array $contexte
 * @param string $lang
 * @param string $connect
 * @return array
 */
function public_styliser_dist($fond, $contexte, $lang = '', $connect = '')
{
    static $styliser_par_z;
    // s'assurer que le fond est licite
    // car il peut etre construit a partir d'une variable d'environnement
    if (strpos($fond, "../") !== false or strncmp($fond, '/', 1) == 0) {
        $fond = "404";
    }
    // Choisir entre $fond-dist.html, $fond=7.html, etc?
    $id_rubrique = 0;
    // Chercher le fond qui va servir de squelette
    if ($r = quete_rubrique_fond($contexte)) {
        list($id_rubrique, $lang) = $r;
    }
    // trouver un squelette du nom demande
    // ne rien dire si on ne trouve pas,
    // c'est l'appelant qui sait comment gerer la situation
    // ou les plugins qui feront mieux dans le pipeline
    $squelette = trouver_fond($fond, "", true);
    $ext = $squelette['extension'];
    $flux = array('args' => array('id_rubrique' => $id_rubrique, 'ext' => $ext, 'fond' => $fond, 'lang' => $lang, 'contexte' => $contexte, 'connect' => $connect), 'data' => $squelette['fond']);
    if (test_espace_prive() or defined('_ZPIP')) {
        if (!$styliser_par_z) {
            $styliser_par_z = charger_fonction('styliser_par_z', 'public');
        }
        $flux = $styliser_par_z($flux);
    }
    $flux = styliser_par_objets($flux);
    // pipeline styliser
    $squelette = pipeline('styliser', $flux);
    return array($squelette, $ext, $ext, "{$squelette}.{$ext}");
}
Esempio n. 2
0
function public_styliser_dist($fond, $contexte, $lang='', $connect='', $ext='html') {

	// s'assurer que le fond et licite
	// car il peut etre construit a partir d'une variable d'environnement
	if (strpos($fond,"../")!==false OR strncmp($fond,'/',1)==0)
		$fond = "404";
  
	// Choisir entre $fond-dist.html, $fond=7.html, etc?
	$id_rubrique = 0;
	// Chercher le fond qui va servir de squelette
	if ($r = quete_rubrique_fond($contexte))
		list($id_rubrique, $lang) = $r;

	// trouver un squelette du nom demande
	// ne rien dire si on ne trouve pas, 
	// c'est l'appelant qui sait comment gerer la situation
	$base = find_in_path("$fond.$ext");
	
	// supprimer le ".html" pour pouvoir affiner par id_rubrique ou par langue
	$squelette = substr($base, 0, - strlen(".$ext"));

	// pipeline styliser
	$squelette = pipeline('styliser', array(
		'args' => array(
			'id_rubrique' => $id_rubrique,
			'ext' => $ext,
			'fond' => $fond,
			'lang' => $lang,
			'contexte' => $contexte, // le style d'un objet peut dependre de lui meme
			'connect' => $connect
		),
		'data' => $squelette,
	));

	return array($squelette, $ext, $ext, "$squelette.$ext");
}