marche avec MySql, SQLite ou XML
[mw_sourceml] / app / data / modules / xml / sml_data_licences.php
1 <?php
2
3   class sml_data_licences extends mw_data
4   {
5
6     function licences($start = null)
7     { $sgbd = $this->sgbd();
8       $env = $this->env();
9       $licences = array("list" => array(), "total" => 0);
10       if($rst = $sgbd->open_data("sml_licences"))
11       { while($v_rst = $sgbd->fetch_data($rst))
12         { if(isset($v_rst))
13           { $licences["total"]++;
14             if(!isset($start) || !$env->config("max_list") || ($licences["total"] > $start && $licences["total"] < ($start + $env->config("max_list"))))
15             { $licences["list"][$v_rst["id"]] = $v_rst;
16             }
17           }
18           else
19           { $licences = false;
20             break;
21           }
22         }
23         $sgbd->close_data($rst);
24       }
25       else $licences = false;
26       return $licences;
27     }
28
29     function licence($id)
30     { if($id == 0) return $id;
31       $sgbd = $this->sgbd();
32       return $sgbd->get_data("sml_licences", $id);
33     }
34
35     function add_licence($nom, $url)
36     { $sgbd = $this->sgbd();
37       return $sgbd->add_data
38       ( "sml_licences",
39         array
40         ( "nom" => $nom,
41           "url" => $url
42         )
43       );
44     }
45
46     function set_licence($id, $nom, $url)
47     { if(($licence = $this->licence($id)) !== false)
48       { $sgbd = $this->sgbd();
49         if($nom != $licence["nom"] || $url != $licence["url"])
50         { $licence["nom"] = $nom;
51           $licence["url"] = $url;
52           if(!$this->maj_source_xml_licence($licence)) return false;
53         }
54         return $sgbd->set_data
55         ( "sml_licences",
56           $id,
57           array
58           ( "nom" => $nom,
59             "url" => $url
60           )
61         );
62       }
63       return false;
64     }
65
66     function del_licence($id)
67     { $OK = true;
68       $USED = false;
69       $sgbd = $this->sgbd();
70       $env = $this->env();
71       if($rst = $sgbd->open_data("sml_sources"))
72       { while($source = $sgbd->fetch_data($rst))
73         { if(isset($source))
74           { if($source["licence"] == $id)
75             { $USED = true;
76               break;
77             }
78           }
79           else
80           { $OK = false;
81             break;
82           }
83         }
84         $sgbd->close_data($rst);
85       }
86       else $OK = false;
87       if($OK)
88       { if($USED) return 1;
89         return $sgbd->del_data("sml_licences", $id) ? true : false;
90       }
91       return false;
92     }
93
94   }
95
96 ?>