sourceml devient un plugin mtweb
[mw_sourceml] / app / controllers / sources / piste.php
1 <?php
2
3   class mw_sources_piste extends mw_controller
4   {
5     var $content_sources_mod;
6
7     function validate(){
8       $env = $this->env();
9       if($this->content_sources_mod = $env->get_controller("content/sources"))
10       { $this->content_sources_mod->validation_result = true;
11         $this->content_sources_mod->validate_status($env);
12         $this->content_sources_mod->validate_licences($env);
13         return $this->content_sources_mod->validation_result;
14       }
15       return "impossible de valider le module";
16     }
17
18     function index(){
19       $env = $this->env();
20       $data = $env->data();
21       if(isset($this->content_sources_mod->licences) && $this->content_sources_mod->licences !== false)
22       { $env->set_out("licences", $this->content_sources_mod->licences);
23         if(($groupes = $data->groupes()) !== false)
24         { $env->set_out("groupes", $groupes);
25           $groupe = null;
26           $morceau = null;
27           if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")])
28           { if(isset($groupes["list"][$_GET[$env->param("groupe")]]))
29             { $groupe = $groupes["list"][$_GET[$env->param("groupe")]];
30               $env->set_out("groupe", $groupe);
31             }
32             else $groupe = false;
33           }
34           if($groupe !== false)
35           { if(isset($_GET[$env->param("morceau")]) && $_GET[$env->param("morceau")])
36             { if(($morceau = $data->source($_GET[$env->param("morceau")], true)) !== false)
37               { $env->set_out("morceau", $morceau);
38                 if(!isset($groupe))
39                 { $groupe = $data->get_admin_groupe($morceau["groupes"]);
40                   if(!$groupe) $groupe = false;
41                 }
42               }
43             }
44           }
45           if($groupe !== false)
46           { $env->set_out("groupe", $groupe);
47             if($morceau !== false)
48             { $select = array("status" => $this->content_sources_mod->morceau_status_id);
49               if(isset($groupe)) $select["id_groupe"] = $groupe["id"];
50               if(($morceaux = $data->sources($select)) !== false)
51               { $env->set_out("morceaux", $morceaux);
52                 $select = array();
53                 $select["status"] = $this->content_sources_mod->piste_status_id;
54                 $select["order_by"] = "ordre";
55                 if(isset($groupe)) $select["id_groupe"] = $groupe["id"];
56                 if(isset($_GET[$env->param("morceau")])) $select["id_composition"] = $_GET[$env->param("morceau")];
57                 $select["start"] = isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0;
58                 if(($pistes = $data->sources($select, true)) !== false) $env->set_out("pistes", $pistes);
59                 else $env->erreur("Impossible de lire la liste des pistes");
60               }
61               else $env->erreur("impossible de lire la liste des morceaux");
62             }
63             else $env->erreur("Impossible de lire les informations du morceau");
64           }
65           else $env->erreur("Impossible de lire les informations du groupe");
66         }
67         else $erreur = "impossible de lire la liste des groupes";
68       }
69       else $env->erreur("impossible de lire la liste des licences");
70     }
71
72     function view(){
73       $env = $this->env();
74       $data = $env->data();
75       if(isset($this->content_sources_mod->licences) && $this->content_sources_mod->licences !== false)
76       { $env->set_out("licences", $this->content_sources_mod->licences);
77         if(isset($_GET[$env->param("piste")]) && $_GET[$env->param("piste")])
78         { if($piste = $data->source($_GET[$env->param("piste")], true))
79           { $env->set_out("piste", $piste);
80             if($groupe = $data->get_admin_groupe($piste["groupes"]))
81             { $env->set_out("groupe", $groupe);
82               $select = array("status" => $this->content_sources_mod->album_status_id);
83               $select["id_groupe"] = $groupe["id"];
84               if(($albums = $data->sources($select)) !== false)
85               { $env->set_out("albums", $albums);
86                 if(($ariane = $data->source_ariane($piste["id"])) !== false)
87                 { $ariane = array_reverse($ariane);
88                   $morceau = null;
89                   $album = null;
90                   foreach($ariane as $id_ariane => $source_ariane)
91                   { if(!isset($morceau)) $morceau = $source_ariane;
92                     else
93                     { if(!isset($album)) $album = $source_ariane;
94                     }
95                   }
96                   if($morceau) $env->set_out("morceau", $morceau);
97                   if($album) $env->set_out("album", $album);
98                 }
99                 else $env->erreur("Impossible de lire le fil d'ariane");
100               }
101               else $env->erreur("impossible de lire la liste des albums");
102             }
103             else $env->erreur("Impossible de lire les informations du groupe");
104           }
105           else $env->erreur("Impossible de lire les informations de la source");
106         }
107         else $env->erreur("parametre de piste manquant");
108       }
109       else $env->erreur("impossible de lire la liste des licences");
110     }
111
112   }
113
114 ?>