Example #1
0
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;
}
Example #2
0
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();
}
Example #3
0
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
}
Example #4
0
 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&eacute;pot {$depot}");
     }
     $this->version = $this->depot->version;
     $this->nom = $depot;
 }
Example #5
0
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;
}
Example #6
0
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
}
Example #7
0
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;
}
Example #8
0
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;
}
Example #9
0
 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);
 }
Example #10
0
 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;
 }