Changeset 25559 in spip-zone


Ignore:
Timestamp:
Dec 27, 2008, 7:19:08 PM (11 years ago)
Author:
marcimat@…
Message:

-* Utiliser la classe ChampExtra? dans l'interface aussi.
-* Petits Logs

Location:
_plugins_/_dev_/champs_extras
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_dev_/champs_extras/core/inc/cextras.php

    r25555 r25559  
    3434                }
    3535                $this->type = $val;     
     36        }
     37       
     38        // transformer en tableau PHP les variable de la classe.
     39        function toArray(){
     40                $extra = array();
     41                foreach ($this as $cle=>$val) {
     42                        $extra[$cle] = $val;
     43                }
     44                return $extra;
    3645        }
    3746}
     
    7685}
    7786
     87/**
     88 * Supprime les champs extras (objets ChampExtra passes dans le tableau $champs)
     89 */
    7890function vider_champs_extras($champs, $nom_meta_base_version) {
    7991        // on efface chaque champ trouve
     
    8597        effacer_meta($nom_meta_base_version);   
    8698}
     99
     100/**
     101 * Log une information si l'on est en mode debug
     102 * ( define('EXTRAS_DEBUG',true); )
     103 * Ou si le second parametre est true.
     104 */
     105function extras_log($contenu, $important=false) {
     106        if ($important
     107        OR (defined('EXTRAS_DEBUG') and EXTRAS_DEBUG)) {
     108                spip_log($contenu,'extras');
     109        }
     110}
    87111?>
  • _plugins_/_dev_/champs_extras/extensions/interface/action/iextras.php

    r25554 r25559  
    3535                        iextras_set_extras($extras);
    3636                       
    37                         $table = table_objet_sql($extra['table']);
    38                         sql_alter("TABLE $table DROP $extra[champ]");
     37                        extras_log("Suppression d'un champ par auteur n°".$GLOBALS['auteur_session']['id_auteur'],true);
     38                        extras_log($extra, true);
     39                        $table = table_objet_sql($extra->table);
     40                        sql_alter("TABLE $table DROP ".$extra->champ);
    3941                }
    4042        }
  • _plugins_/_dev_/champs_extras/extensions/interface/base/iextras.php

    r25554 r25559  
    1212        }
    1313       
     14        // recuperer le tableau de champ et les ajouter.
    1415        $extras = iextras_get_extras();
    15         foreach($extras as $e) {
    16                 $champs[] = new ChampExtra($e);
    17         }
     16        $champs = array_merge($champs, $extras);
     17
    1818        return $champs;
    1919}
  • _plugins_/_dev_/champs_extras/extensions/interface/formulaires/editer_champ_extra.php

    r25554 r25559  
    2222                $extras = iextras_get_extras();
    2323                // $id_extra = 1, mais l'entree reelle est 0 dans le tableau
    24                 if (is_array($extras[--$id_extra])) {
    25                         $valeurs = array_merge($valeurs, $extras[$id_extra]);
     24                if ($extra = $extras[--$id_extra]) {
     25                        $valeurs = array_merge($valeurs, $extra->toArray());
    2626                }
    2727        }
     
    3333        $erreurs = array();
    3434       
     35        // recuperer les valeurs postees
     36        $extra = iextras_post_formulaire();
     37       
    3538        // pas de champ vide
    3639        foreach(array('champ', 'table', 'type', 'label', 'sql') as $c) {
    37                 if (!_request($c)) {
     40                if (!$extra[$c]) {
    3841                        $erreurs[$c] = _T('iextras:veuillez_renseigner_ce_champ');
    3942                }
     
    4144       
    4245        // 'champ' correctement ecrit
    43         if ($champ = trim(_request('champ'))) {
     46        if ($champ = trim($extra['champ'])) {
    4447                if (!preg_match('/^[a-zA-Z0-9_-]+$/',$champ)) {
    4548                        $erreurs['champ'] = _T('iextras:caracteres_interdits');
     
    5356        if (!intval($id_extra)
    5457        // $id_extra = 1, mais l'entree reelle est 0 dans le tableau
    55         OR ($extras[--$id_extra]['champ'] !== _request('champ'))) {
     58        OR ($extras[--$id_extra]->champ !== $champ)) {
    5659                foreach ($extras as $i=>$e) {
    5760                        if (($i !== $id_extra)
    58                         and ($e['champ'] == $champ)
    59                         and ($e['table']==_request('table'))) {
     61                        and ($e->champ == $champ)
     62                        and ($e->table == $extra['table'])) {
    6063                                $erreurs['champ'] = _T('iextras:champ_deja_existant'); 
    6164                        }
     
    7073       
    7174        // recuperer les valeurs postees
    72         $extra = array();
    73         foreach(array('champ', 'table', 'type', 'label', 'sql') as $c) {
    74                 $extra[$c] = _request($c);
    75         }
     75        $extra = iextras_post_formulaire();
    7676
    7777        // recreer le tableau de stockage des extras
     
    8080        if (intval($id_extra)) {
    8181                // $id_extra = 1, mais l'entree reelle est 0 dans le tableau
    82                 $extras[--$id_extra] = $extra;
     82                $extras[--$id_extra] = new ChampExtra($extra);
    8383        } else {
    84                 $extras[] = $extra;
     84                $extras[] = new ChampExtra($extra);
    8585                $new = true;
    8686        }
     
    9292                include_spip('base/create');
    9393                $table = table_objet_sql($extra['table']);
     94                extras_log("Creation d'un nouveau champ par auteur n°".$GLOBALS['auteur_session']['id_auteur'],true);
     95                extras_log($extra, true);
    9496                maj_tables($table);
    9597        }
     
    104106}
    105107
    106 
     108// recuperer les valeurs postees par le formulaire
     109function iextras_post_formulaire() {
     110        $extra = array();
     111        foreach(array('champ', 'table', 'type', 'label', 'sql') as $c) {
     112                $extra[$c] = _request($c);
     113        }
     114        return $extra; 
     115}
    107116
    108117?>
  • _plugins_/_dev_/champs_extras/extensions/interface/inc/iextras.php

    r25554 r25559  
    22
    33if (!defined("_ECRIRE_INC_VERSION")) return;
     4
     5// etre certain d'avoir la classe ChampExtra de connue
     6include_spip('inc/cextras');
    47
    58function iextras_get_extras(){
     
    1518
    1619// tableau des extras, mais classes par table SQL
     20// et sous forme de tableau PHP pour pouvoir boucler dessus.
    1721function iextras_get_extras_par_table(){
    1822        $extras = iextras_get_extras();
    1923        $tables = array();
    2024        foreach($extras as $i=>$e) {
    21                 if (!isset($tables[$e['table']])) {
    22                         $tables[$e['table']] = array();
     25                if (!isset($tables[$e->table])) {
     26                        $tables[$e->table] = array();
    2327                }
    24                 $tables[$e['table']][$i] = $e;
     28                $tables[$e->table][$i] = $e->toArray();
    2529        }
    2630        return $tables;
Note: See TracChangeset for help on using the changeset viewer.