source: trunk/web/app/data/modules/data_map.php

Last change on this file was 6, checked in by dj3c1t, 12 years ago

mise a jour du trunk

File size: 6.0 KB
Line 
1<?php
2
3  class data_map extends data
4  {
5
6    function map_emplacements()
7    { $emplacements = false;
8      try
9      { $query =
10         "SELECT * FROM #--map_emplacement";
11        $rst = $this->sql->query($query);
12        $emplacements = array();
13        while($v_rst = $this->sql->fetch_assoc($rst))
14        { $emplacements[$v_rst["id"]] = $v_rst;
15          $emplacements[$v_rst["id"]]["editable"] = $this->edit_emplacement_ok($emplacements[$v_rst["id"]]);
16        }
17        $this->sql->free_result($rst);
18      }
19      catch(Exception $_e) { $emplacements = false; }
20      return $emplacements;
21    }
22
23    function map_emplacement($id)
24    { $emplacement = false;
25      try
26      { $query =
27         "SELECT * FROM #--map_emplacement WHERE id=".$id;
28        $rst = $this->sql->query($query);
29        if($v_rst = $this->sql->fetch_assoc($rst)) $emplacement = $v_rst;
30        $this->sql->free_result($rst);
31      }
32      catch(Exception $_e) { $emplacement = false; }
33      return $emplacement;
34    }
35
36    function map_emplacement_types()
37    { $emplacement_types = false;
38      try
39      { $query =
40         "SELECT * FROM #--map_emplacement_type";
41        $rst = $this->sql->query($query);
42        $emplacement_types = array();
43        while($v_rst = $this->sql->fetch_assoc($rst)) $emplacement_types[$v_rst["id"]] = $v_rst;
44        $this->sql->free_result($rst);
45      }
46      catch(Exception $_e) { $emplacement_types = false; }
47      return $emplacement_types;
48    }
49
50    function map_emplacement_type($id)
51    { $emplacement_type = false;
52      try
53      { $query =
54         "SELECT * FROM #--map_emplacement_type"
55        ." WHERE id=".$this->eq($id);
56        $rst = $this->sql->query($query);
57        if($v_rst = $this->sql->fetch_assoc($rst)) $emplacement_type = $v_rst;
58        $this->sql->free_result($rst);
59      }
60      catch(Exception $_e) { $emplacement_type = false; }
61      return $emplacement_type;
62    }
63
64    function add_map_emplacement_type($intitule, $descriptif, $icone)
65    { try
66      { $query =
67         "INSERT INTO #--map_emplacement_type(intitule, descriptif, icone) VALUES"
68        ."( ".$this->eq($intitule)
69        .", ".$this->eq($descriptif)
70        .", ".$this->eq($icone)
71        .")";
72        $this->sql->query($query);
73      }
74      catch(Exception $_e) { return false; }
75      return true;
76    }
77
78    function set_map_emplacement_type($id, $intitule, $descriptif, $icone = null)
79    { try
80      { $query =
81         "UPDATE #--map_emplacement_type SET"
82        ."  intitule=".$this->eq($intitule)
83        .", descriptif=".$this->eq($descriptif)
84        .(isset($icone) ? ", icone=".$this->eq($icone) : "")
85        ." WHERE id=".$this->eq($id);
86        $this->sql->query($query);
87      }
88      catch(Exception $_e) { return false; }
89      return true;
90    }
91
92    function del_map_emplacement_type($id)
93    { if(($emplacement_type = $this->map_emplacement_type($id)) !== false)
94      { try
95        { $query =
96           "DELETE FROM #--map_emplacement WHERE map_emplacement_type=".$this->eq($id);
97          $this->sql->query($query);
98          $query =
99           "DELETE FROM #--map_emplacement_type WHERE id=".$this->eq($id);
100          $this->sql->query($query);
101          $this->del_map_emplacement_type_icone($emplacement_type["icone"]);
102        }
103        catch(Exception $_e) { return false; }
104        return true;
105      }
106      return false;
107    }
108
109    function del_map_emplacement_type_icone($icone)
110    { try
111      { $delete_icone = false;
112        if($icone && file_exists($icone))
113        { try
114          { $query =
115             "SELECT count(*) as n"
116            ." FROM #--map_emplacement_type"
117            ." WHERE icone=".$this->eq($icone);
118            $rst = $this->sql->query($query);
119            if($v_rst = $this->sql->fetch_assoc($rst)) $delete_icone = $v_rst["n"] == 1;
120            $this->sql->free_result($rst);
121          }
122          catch(Exception $_e) { return false; }
123        }
124        if($delete_icone) @unlink($icone);
125        return true;
126      }
127      catch(Exception $_e) {}
128      return false;
129    }
130
131    function add_map_emplacement($latitude, $longitude, $map_emplacement_type, $info, $user)
132    { if($this->edit_map_ok())
133      { try
134        { $query =
135           "INSERT INTO #--map_emplacement VALUES"
136          ."(NULL"
137          .", ".$latitude
138          .", ".$longitude
139          .", ".$map_emplacement_type
140          .", ".$this->eq($info)
141          .", NOW()"
142          .", ".$user
143          .", NOW()"
144          .", ".$user
145          .")";
146          $this->sql->query($query);
147          return $this->sql->insert_id();
148        }
149        catch(Exception $_e) {}
150      }
151      return false;
152    }
153
154    function set_map_emplacement($id, $latitude, $longitude, $map_emplacement_type, $info, $user)
155    { if(($empl = $this->map_emplacement($id)) !== false)
156      { if($this->edit_emplacement_ok($empl))
157        { try
158          { $query =
159             "UPDATE #--map_emplacement SET"
160            ."  latitude=".$latitude
161            .", longitude=".$longitude
162            .", map_emplacement_type=".$map_emplacement_type
163            .", info=".$this->eq($info)
164            .", modification_date=NOW()"
165            .", modification_user=".$user
166            ." WHERE id=".$id;
167            $this->sql->query($query);
168            return true;
169          }
170          catch(Exception $_e) {}
171        }
172      }
173      return false;
174    }
175
176    function del_map_emplacement($id)
177    { if(($empl = $this->map_emplacement($id)) !== false)
178      { if($this->edit_emplacement_ok($empl))
179        { try
180          { $query =
181             "DELETE FROM #--map_emplacement WHERE id=".$id;
182            $this->sql->query($query);
183            return true;
184          }
185          catch(Exception $_e) {}
186        }
187      }
188      return false;
189    }
190
191    function view_map_ok()
192    { return !$this->env->pun_user["is_guest"];
193    }
194
195    function edit_map_ok()
196    { return $this->view_map_ok();
197    }
198
199    function edit_emplacement_ok($empl)
200    { return $this->env->pun_user["group_id"] == 1 || ($this->edit_map_ok() && $this->env->pun_user["id"] == $empl["creation_user"]);
201    }
202
203  }
204
205?>
Note: See TracBrowser for help on using the repository browser.