function cfg_pre_traiter_cfg_id($nom, &$cfg) { // lorsque c'est un champ de type multi que l'on modifie // et si l'identifiant a change, il faut soit le copier, soit de deplacer // // pour ca, on compare le hidden name='cfg_id' aux champs editables // qui ont la classe css 'cfg_id' if ($cfg->champs_id) { $new_id = implode('/', array_map('_request', $cfg->champs_id)); if ($new_id != $cfg->param->cfg_id) { // si c'est un deplacement, on efface if (!_request('_cfg_copier')) { // et ne pas perdre les valeurs suite a l'effacement dans ce cas precis $vals = $cfg->val; $cfg->effacer(); $cfg->val = $vals; } $cfg->param->cfg_id = $new_id; // recreer un depot avec le nouvel identifiant // (sinon les requetes ne creent pas les bons 'where') $cfg_depot = cfg_charger_classe('cfg_depot', 'inc'); $cfg->depot = new $cfg_depot($cfg->param->depot, $cfg->params); // recharger le formulaire avec le nouvel identifiant (sinon les parametres // <!-- param=valeur --> de formulaires qui contienent // #ENV{cfg_id} ou #ENV{id} ne sont pas a jour) $cfg->formulaire(); } } return $cfg; }
function exec_cfg_dist($class = null) { include_spip('inc/filtres'); $cfg = cfg_charger_classe('cfg', 'inc'); $config =& new $cfg($nom = sinon(_request('cfg'), ''), $cfg_id = sinon(_request('cfg_id'), '')); // traitements du formulaire poste $config->traiter(); // // affichages // include_spip("inc/presentation"); if (!$config->autoriser()) { echo $config->acces_refuse(); exit; } pipeline('exec_init', array('args' => array('exec' => 'cfg'), 'data' => '')); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page($config->get_boite(), 'cfg', $config->get_nom()); echo "<br /><br /><br />\n"; echo gros_titre(sinon($config->get_titre(), _T('cfg:configuration_modules')), '', false); echo $config->barre_onglets(); // colonne gauche echo debut_gauche('', true); // si un formulaire cfg est demande if ($s = $config->descriptif()) { echo debut_boite_info(true) . $s . fin_boite_info(true); } echo pipeline('affiche_gauche', array('args' => array('exec' => 'cfg'), 'data' => '')); echo creer_colonne_droite('', true); echo pipeline('affiche_droite', array('args' => array('exec' => 'cfg'), 'data' => '')); // affichage des messages envoyes par cfg if ($s = $config->messages()) { echo debut_boite_info(true) . $s . fin_boite_info(true); } // affichage des liens if ($s = $config->liens()) { echo debut_boite_info(true) . $s . fin_boite_info(true); } if ($s = $config->liens_multi()) { echo debut_boite_info(true) . $s . fin_boite_info(true); } echo debut_droite("", true); // centre de la page if ($config->get_presentation() == 'auto') { echo debut_cadre_trait_couleur('', true, '', $config->get_boite()); echo $config->formulaire(); echo fin_cadre_trait_couleur(true); } else { echo $config->formulaire(); } // pied echo fin_gauche() . fin_page(); }
function formulaires_cfg_traiter_dist($cfg = "", $cfg_id = "") { $cfg_formulaire = cfg_charger_classe('cfg_formulaire', 'inc'); $config =& new $cfg_formulaire($cfg, $cfg_id); if ($config->verifier()) { $config->traiter(); } $message = join('<br />', $config->messages['message_ok']); //return $message; // retourner simplement un message, le formulaire ne sera pas resoumis return array(true, $message); // forcer l'etat editable du formulaire et retourner le message }
function cfg_depot_dist($depot = 'metapack', $params = array()) { if (!isset($params['param'])) { $p = cfg_charger_classe('cfg_params'); $params['param'] = new $p(); } include_spip('cfg/depots/' . $depot); if (class_exists($class = 'cfg_depot_' . $depot)) { $this->depot =& new $class($params); } else { die("CFG ne trouve pas le dépot {$depot}"); } $this->version = $this->depot->version; $this->nom = $depot; }
function cfg_header_prive($flux) { if (!_request('cfg') || !_request('exec') == 'cfg') { return $flux; } // Ajout des css de cfg (uniquement balise arbo pour l'instant) dans le header prive $flux .= '<link rel="stylesheet" href="' . _DIR_PLUGIN_CFG . 'css/cfg.css" type="text/css" media="all" />'; include_spip('inc/filtres'); $cfg_formulaire = cfg_charger_classe('cfg_formulaire', 'inc'); $config =& new $cfg_formulaire(sinon(_request('cfg'), ''), sinon(_request('cfg_id'), '')); if ($config->param->head) { $flux .= "\n" . $config->param->head; } return $flux; }
function formulaires_cfg_charger_dist($cfg = "", $cfg_id = "") { if (!$cfg) { return false; } // ici, on a le nom du fond cfg... // on recupere donc les parametres du formulaire. $cfg_formulaire = cfg_charger_classe('cfg_formulaire', 'inc'); $config =& new $cfg_formulaire($cfg, $cfg_id); $valeurs = array('_cfg_fond' => 'fonds/cfg_' . $cfg, '_cfg_nom' => $cfg, 'id' => $cfg_id, '_cfg_' => $config->creer_hash_cfg('cfg')); // il faut passer les noms des champs (input et consoeurs) de CFG dans l'environnement // pour pouvoir faire #ENV{nom_du_champ} if (is_array($config->val)) { foreach ($config->val as $nom => $val) { $valeurs[$nom] = $val; } } // return $valeurs; // retourner simplement les valeurs return array(true, $valeurs); // forcer l'etat editable du formulaire et retourner les valeurs }
function cfg_charger_depot($args) { list($depot, $args) = explode('::', $args, 2); // si un seul argument, il faut trouver le depot if (!$args) { $args = $depot; if ($args[0] == '~') { $depot = 'tablepack'; } elseif ((list($head, $body) = explode('/', $args, 2)) && strpos($head, ':') !== false) { $depot = 'tablepack'; } else { if (count(explode('/', $args)) > 1) { $depot = 'metapack'; } else { $depot = 'meta'; } } } $d = cfg_charger_classe('cfg_depot'); $depot = new $d($depot); $depot->charger_args($args); return $depot; }
function formulaires_cfg_verifier_dist($cfg = "", $cfg_id = "") { $cfg_formulaire = cfg_charger_classe('cfg_formulaire', 'inc'); $config =& new $cfg_formulaire($cfg, $cfg_id); $err = array(); if (!$config->verifier() && ($e = $config->messages)) { if (isset($e['message_refus'])) { $err['message_erreur'] = $e['message_refus']; } else { if (count($e['erreurs'])) { $err = $e['erreurs']; } if (count($e['message_erreur'])) { $err['message_erreur'] = join('<br />', $e['message_erreur']); } if (count($e['message_ok'])) { $err['message_ok'] = join('<br />', $e['message_ok']); } } } // si c'est vide, modifier sera appele, sinon le formulaire sera resoumis return $err; }
function cfg_dist($nom, $cfg_id = '', $opt = array()) { $cfg_formulaire = cfg_charger_classe('cfg_formulaire', 'inc'); $this->form =& new $cfg_formulaire($nom, $cfg_id, $opt); }
function charger() { $ok = true; // si pas de fichier, rien a charger if (!$this->vue) { return false; } // lecture de la vue (fond cfg) // il s'agit de recuperer le contenu du fichier $fichier = find_in_path($nom = 'fonds/cfg_' . $this->vue . '.html'); if (!lire_fichier($fichier, $this->controldata)) { $ok = false; $this->messages['message_erreur'][] = _T('cfg:erreur_lecture', array('nom' => $nom)); } // recherche et stockage des parametres de cfg $this->recuperer_parametres(); // recherche et stockage des noms de champs de formulaire if ($err = $this->recuperer_noms_champs()) { $ok = false; $this->messages['message_erreur'][] = $err; } // charger les champs particuliers si existants $this->actionner_extensions('pre_charger'); // creer le storage et lire les valeurs $this->param->depot = strtolower(trim($this->param->depot)); $cfg_depot = cfg_charger_classe('cfg_depot', 'inc'); $this->depot = new $cfg_depot($this->param->depot, $this->params); $ok &= $this->lire(); // charger les champs particuliers si existants $this->actionner_extensions('charger'); return $ok; }