cc674c1ec5f17cc8ff8ea2ce9d7b690bdab97594
[mw_sourceml] / app / controllers / admin / sourceml.php
1 <?php
2
3   class mw_admin_sourceml extends mw_controller
4   {
5
6     var $groupes;
7     var $albums;
8     var $status;
9     var $album_status_id;
10
11     function validate(){
12       $env = $this->env();
13       $data = $env->data();
14       if(($this->status = $data->source_status()) === false)
15       { return "Impossible de lire la liste des status de source";
16       }
17       foreach($this->status as $id_source_status => $source_status)
18       { if($source_status["nom"] == "album") $this->album_status_id = $id_source_status;
19         if(isset($this->album_status_id) && isset($this->morceau_status_id)) break;
20       }
21       if(!isset($this->album_status_id)) return "Type de source inconnu: album";
22       if(($this->groupes = $data->groupes()) === false)
23       { return "Impossible de lire la liste des groupes";
24       }
25       $select = array("status" => $this->album_status_id);
26       if(($this->albums = $data->sources($select)) === false) return "impossible de lire la liste des albums";
27       return true;
28     }
29
30     function index(){
31       $env = $this->env();
32       $data = $env->data();
33       if(!($groupes = $this->groupes)){
34         $env->erreur("Impossible de lire la liste des groupes");
35         return;
36       }
37       if(!($albums = $this->albums)){
38         $env->erreur("Impossible de lire la liste des albums");
39         return;
40       }
41       if(($CONFIG = $env->get_CONFIG()) === false){
42         $env->erreur("Impossible de lire la configuration");
43         return;
44       }
45       if($_POST){
46         if($_POST["start_action"] == "sources/groupe"){
47           if(!$data->set_config("start_action", "sources/groupe")){
48             $env->erreur("impossible d'enregistrer la configuration");
49             return;
50           }
51         }
52         elseif($_POST["start_action"] == "sources/groupe/view"){
53           $params = array("id" => $_POST["groupe_param"]);
54           if(
55                 !$data->set_config("start_action", "sources/groupe/view")
56             ||  !$data->set_config("start_action_params", @serialize($params))
57           ){
58             $env->erreur("impossible d'enregistrer la configuration");
59             return;
60           }
61         }
62         elseif($_POST["start_action"] == "sources/album/view"){
63           $params = array("album" => $_POST["album_param"]);
64           if(
65                 !$data->set_config("start_action", "sources/album/view")
66             ||  !$data->set_config("start_action_params", @serialize($params))
67           ){
68             $env->erreur("impossible d'enregistrer la configuration");
69             return;
70           }
71         }
72         elseif(
73               isset($CONFIG["start_action"])
74           &&  (
75                 ($CONFIG["start_action"] == "sources/groupe")
76             ||  ($CONFIG["start_action"] == "sources/groupe/view")
77             ||  ($CONFIG["start_action"] == "sources/album/view")
78           )
79         ){
80           if(!$data->set_config("start_action", "")){
81             $env->erreur("impossible d'enregistrer la configuration");
82             return;
83           }
84         }
85         $env->redirect(
86           $env->url("admin/sourceml"),
87           "la configuration a été enregistrée"
88         );
89       }
90       $env->set_out("groupes", $this->groupes);
91       $env->set_out("albums", $this->albums);
92       $env->set_out("config", $CONFIG);
93     }
94
95   }
96
97 ?>