'; $contexte['nouveau'] = oui; $contexte['_objets_avec_compos'] = $GLOBALS['compositions_exec']; if(defined('_NOIZETIER_COMPOSITIONS_TYPE_PAGE') AND _NOIZETIER_COMPOSITIONS_TYPE_PAGE) $contexte['_objets_avec_compos'][''] = 'page'; } } } else{ $contexte['editable'] = false; } return $contexte; } function formulaires_editer_composition_noizetier_verifier($id, $nouveau){ $erreurs = array(); foreach(array('type','compo','nom') as $champ) { if (!_request($champ)) { $erreurs[$champ] = _T('noizetier:formulaire_obligatoire'); } } // On vérifie, dans le cas d'une nouvelle composition que $compo n'est pas déjà pris (compo du noizetier ou compo existante). // On vérifie aussi que $compo ne contient ni espace, ni tiret, ni if (_request('nouveau')=='oui' AND _request('compo')) { include_spip('inc/noizetier'); $type = _request('type'); $compo = _request('compo'); $liste_pages = noizetier_lister_pages(); if (is_array($liste_pages[$type.'-'.$compo])) $erreurs['compo'] = _T('noizetier:formulaire_identifiant_deja_pris'); if (preg_match('#^[a-z0-9_]+$#',$compo)==0) $erreurs['compo'] = _T('noizetier:formulaire_erreur_format_identifiant'); } return $erreurs; } function formulaires_editer_composition_noizetier_traiter($id, $nouveau){ include_spip('inc/autoriser'); $retours = array(); if (autoriser('configurer', 'noizetier')){ $nouveau = ($nouveau == 'oui') ? true : false; $noizetier_compositions = unserialize($GLOBALS['meta']['noizetier_compositions']); $type = _request('type'); $compo = _request('compo'); // Au cas où on n'a pas encore configuré de compositions if (!is_array($noizetier_compositions)) $noizetier_compositions = array(); $noizetier_compositions[$type][$compo] = array( 'nom' => _request('nom'), 'description' => _request('description'), 'icon' => _request('icon') ); ecrire_meta('noizetier_compositions',serialize($noizetier_compositions)); $retours['message_ok'] = _T('noizetier:formulaire_composition_mise_a_jour'); // S'il s'agit d'une nouvelle composition, on la préremplie avec la config de la page mère if ($nouveau) { include_spip('base/abstract_sql'); $config_mere = sql_allfetsel( 'rang, type, composition, bloc, noisette, parametres', 'spip_noisettes', 'type='.sql_quote($type).' AND composition=""' ); if (count($config_mere)>0) { foreach($config_mere as $cle => $noisette) $config_mere[$cle]['composition'] = $compo; sql_insertq_multi('spip_noisettes',$config_mere); } } // Si on est dans l'espace privé, on redirige vers la liste des compos if (_request('exec') == 'noizetier_composition_editer') $retours['redirect'] = generer_url_ecrire('noizetier_compositions'); } $retours['editable'] = true; return $retours; } ?>