Ejemplo n.º 1
0
/**
 * Affichage du formulaire de selection de la composition
 *
 * @param array $flux
 * @return array
 */
function compositions_affiche_milieu($flux){
	$e = trouver_objet_exec($flux['args']['exec']);
	$objets = compositions_objets_actives();
	if (in_array($e['type'],$objets)
	  AND $e['edition']===false){
		$type = $e['type'];
		if ($id = $flux['args'][$e['id_table_objet']]) {
			$config = (isset($GLOBALS['meta']['compositions']) ? unserialize($GLOBALS['meta']['compositions']) : array());
			$aut = autoriser('styliser',$type,$id);
			if ((!isset($config['masquer_formulaire']) OR $config['masquer_formulaire'] != 'oui' OR $aut)
				AND (
					($c=compositions_lister_disponibles($type) AND is_array(reset($c)))
					OR ($type == 'rubrique' AND (!isset($config['tout_verrouiller']) OR $config['tout_verrouiller'] != 'oui'))
				  )
				) {
				$ids = 'formulaire_editer_composition_objet-' . "$type-$id";
				$texte = recuperer_fond(
					'prive/editer/compositions',
					array(
						'type'=>$type,
						'id'=>$id,
					)
				);

				if (($p = strpos($flux['data'],'<!--affiche_milieu-->'))!==false)
					$flux['data'] = substr_replace($flux['data'],$texte,$p,0);
				else
					$flux['data'] .= $texte;
			}
		}
	}

	return $flux;
}
Ejemplo n.º 2
0
/**
 * Ecrire dans une meta la liste des objets qui sont sous le regime des
 * compositions
 * La fonction est appelee
 * - lors de la stylisation si la meta n'est pas encore definie
 * - a chaque fois qu'on selectionne un composition dans l'espace prive
 * - si var_mode=recalcul
 * On est sur ainsi que toute nouvelle composition selectionnee est dedans
 * Si une composition est retiree du file system sans etre deselectionnee
 * l'erreur sera evitee par la verification d'existence au moment de styliser
 *
 * @param array $liste
 */
function compositions_cacher($liste=null){
	// lister les compositions vraiment utilisees
	if (!is_array($liste)){
		include_spip('compositions_fonctions');
		$liste = compositions_lister_disponibles('',false);
	}
	// lister les objets dont on a active la composition dans la configuration
	$config = compositions_objets_actives();

	$liste = array_intersect($config,array_keys($liste));
	ecrire_meta('compositions_types',implode(',',$liste));
	spip_log('compositions: maj des compositions_types ['.$GLOBALS['meta']['compositions_types'].']');
}