source: pmb4.2/trunk/fuentes/pmb/classes/origin.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 5.0 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: origin.class.php,v 1.2 2015-04-03 11:16:20 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9/*
10 * Classe de gestion d'une origine...
11 */
12class origin {
13        var $id;                        // Identifiant de l'origine
14        var $type;                      // Type associé à l'origine
15        var $name;                      // Nom de l'origine
16        var $country;           // Pays d'orgine
17        var $diffusible;        // Booléen pour définir si les éléments de l'origine sont exportables...
18       
19       
20        public function __construct($id=0,$type="authorities"){
21                $this->type = $type;
22                $this->id = $id;
23                if($this->id!=0){
24                        $this->_fetch_data();
25                }else{
26                        $this->name = "";
27                        $this->country = "";
28                        $this->diffusible = true;
29                }
30        }
31       
32        private function _fetch_data(){
33                $query = "select * from origin_".$this->type." where id_origin_".$this->type." = ".$this->id;
34                $result = pmb_mysql_query($query);
35                if(pmb_mysql_num_rows($result)){
36                        $row = pmb_mysql_fetch_assoc($result);
37                        $this->name = $row['origin_'.$this->type."_name"];
38                        $this->country = $row['origin_'.$this->type."_country"];
39                        $this->diffusible = ($row['origin_'.$this->type."_diffusible"]==1 ? true : false);
40                }
41        }
42       
43        public function is_diffusible(){
44                return $this->diffusible;
45        }
46       
47        public function save(){
48                if($this->name != ""){
49                        if($this->id){
50                                $query = "update origin_".$this->type ." set ";
51                                $where = "where id_origin_".$this->type." = ".$this->id;       
52                        }else{
53                                $query = "insert into origin_".$this->type ." set ";
54                                $where = "";
55                        }
56                        $query .= "origin_".$this->type."_name = '".addslashes($this->name)."',";
57                        $query .= "origin_".$this->type."_country = '".addslashes($this->country)."',";
58                        $query .= "origin_".$this->type."_diffusible = '".($this->is_diffusible() ? 1:0)."' ";
59                        $result = pmb_mysql_query($query.$where);
60                        if($result) return true;
61                        else return false;
62                }
63                return false;
64        }
65       
66        public function delete(){
67                if($this->id < 2){
68                        // le catalogue interne et la BnF, c'est pas négociable !
69                        return false;
70                }else{
71                        //TODO check utilisation
72                        $query = "delete from origin_".$this->type." where id_origin_".$this->type." = ".$this->id;
73                        print $query;
74                        $result = pmb_mysql_query($query);
75                        if($result) return true;
76                }
77                return false;
78        } 
79       
80        public function show_form(){
81                global $msg,$charset;
82                global $origin_form,$current_module;
83               
84                $form = str_replace("!!type!!",$this->type,$origin_form);
85                $form = str_replace("!!id!!",$this->id,$form);
86                $title = $this->id!= 0 ? $msg['authorities_origin_add']:$msg['authorities_origin_modif'];
87                $form = str_replace("!!title!!",htmlentities($title,ENT_QUOTES,$charset),$form);
88                $form = str_replace("!!origin_name!!",$this->name,$form);
89                $form = str_replace("!!origin_country!!",$this->country,$form);
90                $form = str_replace("!!checked!!",$this->diffusible ? "checked='checked'" : "",$form);
91                print $form;
92        }
93       
94        public function show_tab_row(){
95                global $msg,$charset;
96               
97                $row = "<tr style='cursor:pointer;' onmouseover='this.className=\"surbrillance\"' onmouseout=\"this.className='even'\" onmousedown=\"document.location='./admin.php?categ=authorities&sub=origins&action=modif&id=".$this->id."';\">
98                                        <td>".htmlentities($this->name,ENT_QUOTES,$charset)."</td>
99                                        <td>".htmlentities($this->country,ENT_QUOTES,$charset)."</td>
100                                        <td>".htmlentities(($this->diffusible ? $msg['orinot_diffusable_oui'] : $msg['orinot_diffusable_non']),ENT_QUOTES,$charset)."</td>
101                                </tr>";
102                return $row;
103        }
104       
105        public static function get_list($type="authorities"){
106                $list = array();
107                $query = "select id_origin_".$type." from origin_".$type;
108                $result = pmb_mysql_query($query);
109                if(pmb_mysql_num_rows($result)){
110                        while($row = pmb_mysql_fetch_assoc($result)){
111                                $list[]=$row['id_origin_'.$type];
112                        }
113                }
114                return $list;
115        }
116       
117        public static function gen_combo_box($type="authorities",$name="authorities_origin"){
118                global $msg,$charset;
119               
120                $query = "select id_origin_".$type.",origin_".$type."_name from origin_".$type;
121                $result = pmb_mysql_query($query);
122                if(pmb_mysql_num_rows($result)){
123                        $selector = "
124                        <select name='".$name."'>";     
125                        while ($row = pmb_mysql_fetch_assoc($result)){
126                                $selector.= "
127                                <option value='".$row['id_origin_'.$type]."'>".htmlentities($row['origin_'.$type.'_name'],ENT_QUOTES,$charset)."</option>";
128                        }
129                        $selector .= "
130                        </select>";
131                }
132                return $selector;
133        }
134       
135        public static function import($type="authorities",$origin){
136                if($origin!=""){
137                        $query = "select id_origin_".$type." from origin_".$type." where  origin_".$type."_name = '".$origin['origin']."'";
138                        $result = pmb_mysql_query($query);
139                        if(pmb_mysql_num_rows($result)){
140                                return pmb_mysql_result($result,0,0);
141                        }else{
142                                $query = "insert into origin_".$type." set
143                                        origin_".$type."_name = '".$origin['origin']."',
144                                        origin_".$type."_country = '".$origin['country']."'";
145                                $result = pmb_mysql_query($query);
146                                if($result) return pmb_mysql_insert_id();
147                        }
148                }
149                return false;
150               
151        }
152}
Note: See TracBrowser for help on using the repository browser.