ryxeo-glpi-git / inc / log.function.php @ b67d8923
Historique | Voir | Annoter | Télécharger (18,6 ko)
1 | b67d8923 | Eric Seigne | <?php
|
---|---|---|---|
2 | /*
|
||
3 | * @version $Id: log.function.php 7908 2009-01-26 19:35:55Z remi $
|
||
4 | -------------------------------------------------------------------------
|
||
5 | GLPI - Gestionnaire Libre de Parc Informatique
|
||
6 | Copyright (C) 2003-2009 by the INDEPNET Development Team.
|
||
7 | |||
8 | http://indepnet.net/ http://glpi-project.org
|
||
9 | -------------------------------------------------------------------------
|
||
10 | |||
11 | LICENSE
|
||
12 | |||
13 | This file is part of GLPI.
|
||
14 | |||
15 | GLPI is free software; you can redistribute it and/or modify
|
||
16 | it under the terms of the GNU General Public License as published by
|
||
17 | the Free Software Foundation; either version 2 of the License, or
|
||
18 | (at your option) any later version.
|
||
19 | |||
20 | GLPI is distributed in the hope that it will be useful,
|
||
21 | but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
23 | GNU General Public License for more details.
|
||
24 | |||
25 | You should have received a copy of the GNU General Public License
|
||
26 | along with GLPI; if not, write to the Free Software
|
||
27 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
28 | --------------------------------------------------------------------------
|
||
29 | */
|
||
30 | |||
31 | // ----------------------------------------------------------------------
|
||
32 | // Original Author of file:
|
||
33 | // Purpose of file:
|
||
34 | // ----------------------------------------------------------------------
|
||
35 | |||
36 | if (!defined('GLPI_ROOT')){ |
||
37 | die("Sorry. You can't access directly to this file"); |
||
38 | } |
||
39 | |||
40 | |||
41 | /**
|
||
42 | * Log history
|
||
43 | *
|
||
44 | *
|
||
45 | *
|
||
46 | * @param $id_device
|
||
47 | * @param $device_type
|
||
48 | * @param $changes
|
||
49 | * @param $device_internal_type
|
||
50 | * @param $linked_action
|
||
51 | **/
|
||
52 | function historyLog ($id_device,$device_type,$changes,$device_internal_type='0',$linked_action='0') { |
||
53 | |||
54 | global $DB; |
||
55 | |||
56 | $date_mod=$_SESSION["glpi_currenttime"]; |
||
57 | |||
58 | if(!empty($changes)){ |
||
59 | |||
60 | // créate a query to insert history
|
||
61 | $id_search_option=$changes[0]; |
||
62 | $old_value=$changes[1]; |
||
63 | $new_value=$changes[2]; |
||
64 | |||
65 | if (isset($_SESSION["glpiID"])) |
||
66 | $username = getUserName($_SESSION["glpiID"],$link=0); |
||
67 | else
|
||
68 | $username=""; |
||
69 | |||
70 | // Build query
|
||
71 | $query = "INSERT INTO glpi_history (FK_glpi_device,device_type,device_internal_type,linked_action,user_name,date_mod,id_search_option,old_value,new_value) VALUES ('$id_device','$device_type','$device_internal_type','$linked_action','". addslashes($username)."','$date_mod','$id_search_option','".utf8_substr($old_value,0,250)."','".utf8_substr($new_value,0,250)."');"; |
||
72 | $DB->query($query) or die($DB->error()); |
||
73 | } |
||
74 | |||
75 | } |
||
76 | |||
77 | /**
|
||
78 | * Construct history for device
|
||
79 | *
|
||
80 | *
|
||
81 | *
|
||
82 | * @param $id_device ID of the device
|
||
83 | * @param $device_type ID of the device type
|
||
84 | * @param $oldvalues old values updated
|
||
85 | * @param $values all values of the item
|
||
86 | **/
|
||
87 | function constructHistory($id_device,$device_type,&$oldvalues,&$values) { |
||
88 | |||
89 | global $LINK_ID_TABLE, $LANG ; |
||
90 | |||
91 | if (count($oldvalues)){ |
||
92 | // needed to have $SEARCH_OPTION
|
||
93 | $SEARCH_OPTION=getSearchOptions();
|
||
94 | |||
95 | foreach ($oldvalues as $key => $oldval){ |
||
96 | $changes=array(); |
||
97 | // Parsing $SEARCH_OPTIONS to find infocom
|
||
98 | if ($device_type==INFOCOM_TYPE) { |
||
99 | $ic=new Infocom(); |
||
100 | if ($ic->getFromDB($values['ID'])){ |
||
101 | $real_device_type=$ic->fields['device_type']; |
||
102 | $id_device=$ic->fields['FK_device']; |
||
103 | if (isset($SEARCH_OPTION[$real_device_type])) foreach($SEARCH_OPTION[$real_device_type] as $key2 => $val2){ |
||
104 | if(($val2["field"]==$key&&ereg('infocoms',$val2['table'])) || |
||
105 | ($key=='budget'&&$val2['table']=='glpi_dropdown_budget') || |
||
106 | ($key=='FK_enterprise'&&$val2['table']=='glpi_enterprises_infocoms')) { |
||
107 | $id_search_option=$key2; // Give ID of the $SEARCH_OPTION |
||
108 | if ($val2["table"]=="glpi_infocoms"){ |
||
109 | // 1st case : text field -> keep datas
|
||
110 | $changes=array($id_search_option, addslashes($oldval),$values[$key]); |
||
111 | } else if ($val2["table"]=="glpi_enterprises_infocoms") { |
||
112 | // 2nd case ; link field -> get data from glpi_enterprises
|
||
113 | $changes=array($id_search_option, addslashes(getDropdownName("glpi_enterprises",$oldval)), addslashes(getDropdownName("glpi_enterprises",$values[$key]))); |
||
114 | } else {
|
||
115 | // 3rd case ; link field -> get data from dropdown (budget)
|
||
116 | $changes=array($id_search_option, addslashes(getDropdownName( $val2["table"],$oldval)), addslashes(getDropdownName( $val2["table"],$values[$key]))); |
||
117 | } |
||
118 | break; // foreach exit |
||
119 | } |
||
120 | } |
||
121 | } |
||
122 | } else {
|
||
123 | $real_device_type=$device_type; |
||
124 | // Parsing $SEARCH_OPTION, check if an entry exists matching $key
|
||
125 | foreach($SEARCH_OPTION[$device_type] as $key2 => $val2){ |
||
126 | |||
127 | // Linkfield or standard field not massive action enable
|
||
128 | if($val2["linkfield"]==$key |
||
129 | || ( empty($val2["linkfield"]) && $key == $val2["field"]) ){ |
||
130 | $id_search_option=$key2; // Give ID of the $SEARCH_OPTION |
||
131 | |||
132 | if($val2["table"]==$LINK_ID_TABLE[$device_type]){ |
||
133 | // 1st case : text field -> keep datas
|
||
134 | $changes=array($id_search_option, addslashes($oldval),$values[$key]); |
||
135 | }else {
|
||
136 | // 2nd case ; link field -> get data from dropdown
|
||
137 | $changes=array($id_search_option, addslashes(getDropdownName( $val2["table"],$oldval)), addslashes(getDropdownName( $val2["table"],$values[$key]))); |
||
138 | } |
||
139 | break;
|
||
140 | } |
||
141 | } |
||
142 | } |
||
143 | |||
144 | if (count($changes)){ |
||
145 | historyLog ($id_device,$real_device_type,$changes); |
||
146 | } |
||
147 | |||
148 | } |
||
149 | } |
||
150 | } // function construct_history
|
||
151 | |||
152 | |||
153 | |||
154 | /**
|
||
155 | * Show History
|
||
156 | **
|
||
157 | * Show history for a device
|
||
158 | *
|
||
159 | * @param $id_device
|
||
160 | * @param $device_type
|
||
161 | **/
|
||
162 | function showHistory($device_type,$id_device){ |
||
163 | |||
164 | global $DB, $LINK_ID_TABLE,$LANG; |
||
165 | |||
166 | $SEARCH_OPTION=getSearchOptions();
|
||
167 | |||
168 | $query="SELECT * FROM glpi_history WHERE FK_glpi_device='".$id_device."' AND device_type='".$device_type."' ORDER BY ID DESC;"; |
||
169 | |||
170 | //echo $query;
|
||
171 | |||
172 | // Get results
|
||
173 | $result = $DB->query($query); |
||
174 | |||
175 | // Number of results
|
||
176 | $number = $DB->numrows($result); |
||
177 | |||
178 | // No Events in database
|
||
179 | if ($number < 1) { |
||
180 | echo "<br><div class='center'>"; |
||
181 | echo "<table class='tab_cadre_fixe'>"; |
||
182 | echo "<tr><th>".$LANG["event"][20]."</th></tr>"; |
||
183 | echo "</table>"; |
||
184 | echo "</div><br>"; |
||
185 | return;
|
||
186 | } |
||
187 | |||
188 | // Output events
|
||
189 | |||
190 | echo "<div class='center'><br><table class='tab_cadre_fixe'>"; |
||
191 | echo "<tr><th colspan='5'>".$LANG["title"][38]."</th></tr>"; |
||
192 | echo "<tr><th>".$LANG["common"][2]."</th><th>".$LANG["common"][27]."</th><th>".$LANG["common"][34]."</th><th>".$LANG["event"][18]."</th><th>".$LANG["event"][19]."</th></tr>"; |
||
193 | while ($data =$DB->fetch_array($result)){ |
||
194 | $display_history = true; |
||
195 | $ID = $data["ID"]; |
||
196 | $date_mod=convDateTime($data["date_mod"]); |
||
197 | $user_name = $data["user_name"]; |
||
198 | $field=""; |
||
199 | // This is an internal device ?
|
||
200 | if($data["linked_action"]){ |
||
201 | // Yes it is an internal device
|
||
202 | |||
203 | switch ($data["linked_action"]){ |
||
204 | |||
205 | case HISTORY_DELETE_ITEM : |
||
206 | $change = $LANG["log"][22]; |
||
207 | break;
|
||
208 | case HISTORY_RESTORE_ITEM : |
||
209 | $change = $LANG["log"][23]; |
||
210 | break;
|
||
211 | |||
212 | case HISTORY_ADD_DEVICE : |
||
213 | $field=getDictDeviceLabel($data["device_internal_type"]); |
||
214 | $change = $LANG["devices"][25]." <strong>:</strong> \"".$data[ "new_value"]."\""; |
||
215 | break;
|
||
216 | |||
217 | case HISTORY_UPDATE_DEVICE : |
||
218 | $field=getDictDeviceLabel($data["device_internal_type"]); |
||
219 | $change = getDeviceSpecifityLabel($data["device_internal_type"])." : \"".$data[ "old_value"]."\" <strong>--></strong> \"".$data[ "new_value"]."\""; |
||
220 | break;
|
||
221 | |||
222 | case HISTORY_DELETE_DEVICE : |
||
223 | $field=getDictDeviceLabel($data["device_internal_type"]); |
||
224 | $change = $LANG["devices"][26]." <strong>:</strong> "."\"".$data["old_value"]."\""; |
||
225 | break;
|
||
226 | case HISTORY_INSTALL_SOFTWARE : |
||
227 | $field=$LANG["help"][31]; |
||
228 | $change = $LANG["software"][44]." <strong>:</strong> "."\"".$data["new_value"]."\""; |
||
229 | break;
|
||
230 | case HISTORY_UNINSTALL_SOFTWARE : |
||
231 | $field=$LANG["help"][31]; |
||
232 | $change = $LANG["software"][45]." <strong>:</strong> "."\"".$data["old_value"]."\""; |
||
233 | break;
|
||
234 | case HISTORY_DISCONNECT_DEVICE: |
||
235 | $ci=new CommonItem(); |
||
236 | $ci->setType($data["device_internal_type"]); |
||
237 | $field=$ci->getType(); |
||
238 | $change = $LANG["central"][6]." <strong>:</strong> "."\"".$data["old_value"]."\""; |
||
239 | break;
|
||
240 | case HISTORY_CONNECT_DEVICE: |
||
241 | $ci=new CommonItem(); |
||
242 | $ci->setType($data["device_internal_type"]); |
||
243 | $field=$ci->getType(); |
||
244 | $change = $LANG["log"][55]." <strong>:</strong> "."\"".$data["new_value"]."\""; |
||
245 | break;
|
||
246 | case HISTORY_OCS_IMPORT: |
||
247 | if (haveRight("view_ocsng","r")){ |
||
248 | $field=""; |
||
249 | $change = $LANG["ocsng"][7]." ".$LANG["ocsng"][45]." <strong>:</strong> "."\"".$data["new_value"]."\""; |
||
250 | } else {
|
||
251 | $display_history = false; |
||
252 | } |
||
253 | |||
254 | break;
|
||
255 | case HISTORY_OCS_DELETE: |
||
256 | if (haveRight("view_ocsng","r")){ |
||
257 | $field=""; |
||
258 | $change = $LANG["ocsng"][46]." ".$LANG["ocsng"][45]." <strong>:</strong> "."\"".$data["old_value"]."\""; |
||
259 | } else {
|
||
260 | $display_history = false; |
||
261 | } |
||
262 | |||
263 | break;
|
||
264 | case HISTORY_OCS_LINK: |
||
265 | if (haveRight("view_ocsng","r")){ |
||
266 | $ci=new CommonItem(); |
||
267 | $ci->setType($data["device_internal_type"]); |
||
268 | $field=$ci->getType(); |
||
269 | $change = $LANG["ocsng"][47]." ".$LANG["ocsng"][45]." <strong>:</strong> "."\"".$data["new_value"]."\""; |
||
270 | } else {
|
||
271 | $display_history = false; |
||
272 | } |
||
273 | |||
274 | break;
|
||
275 | case HISTORY_OCS_IDCHANGED: |
||
276 | if (haveRight("view_ocsng","r")){ |
||
277 | $field=""; |
||
278 | $change = $LANG["ocsng"][48]." "." <strong>:</strong> "."\"".$data["old_value"]."\" --> <strong>:</strong> "."\"".$data["new_value"]."\""; |
||
279 | } else {
|
||
280 | $display_history = false; |
||
281 | } |
||
282 | |||
283 | break;
|
||
284 | |||
285 | case HISTORY_LOG_SIMPLE_MESSAGE: |
||
286 | $field=""; |
||
287 | $change = $data["new_value"]; |
||
288 | break;
|
||
289 | } |
||
290 | }else{
|
||
291 | $fieldname=""; |
||
292 | // It's not an internal device
|
||
293 | foreach($SEARCH_OPTION[$device_type] as $key2 => $val2){ |
||
294 | |||
295 | if($key2==$data["id_search_option"]){ |
||
296 | $field= $val2["name"]; |
||
297 | $fieldname=$val2["field"]; |
||
298 | } |
||
299 | } |
||
300 | |||
301 | switch ($fieldname){ |
||
302 | case "comments" : |
||
303 | $change =$LANG["log"][64]; |
||
304 | break;
|
||
305 | case "notes" : |
||
306 | $change =$LANG["log"][67]; |
||
307 | break;
|
||
308 | default :
|
||
309 | $change = "\"".$data[ "old_value"]."\" <strong>--></strong> \"".$data[ "new_value"]."\""; |
||
310 | } |
||
311 | }// fin du else
|
||
312 | |||
313 | if ($display_history) |
||
314 | { |
||
315 | // show line
|
||
316 | echo "<tr class='tab_bg_2'>"; |
||
317 | |||
318 | echo "<td>$ID</td><td>$date_mod</td><td>$user_name</td><td>$field</td><td width='60%'>$change</td>"; |
||
319 | echo "</tr>"; |
||
320 | } |
||
321 | } |
||
322 | |||
323 | echo "</table></div>"; |
||
324 | |||
325 | } |
||
326 | |||
327 | |||
328 | |||
329 | /**
|
||
330 | * Log an event.
|
||
331 | *
|
||
332 | * Log the event $event on the glpi_event table with all the others args, if
|
||
333 | * $level is above or equal to setting from configuration.
|
||
334 | *
|
||
335 | * @param $item
|
||
336 | * @param $itemtype
|
||
337 | * @param $level
|
||
338 | * @param $service
|
||
339 | * @param $event
|
||
340 | **/
|
||
341 | function logEvent ($item, $itemtype, $level, $service, $event) { |
||
342 | // Logs the event if level is above or equal to setting from configuration
|
||
343 | |||
344 | global $DB,$CFG_GLPI, $LANG; |
||
345 | if ($level <= $CFG_GLPI["event_loglevel"] && !$DB->isSlave()) { |
||
346 | $query = "INSERT INTO glpi_event_log VALUES (NULL, '".addslashes($item)."', '".addslashes($itemtype)."', '".$_SESSION["glpi_currenttime"]."', '".addslashes($service)."', '".addslashes($level)."', '".addslashes($event)."')"; |
||
347 | $result = $DB->query($query); |
||
348 | |||
349 | } |
||
350 | } |
||
351 | |||
352 | /**
|
||
353 | * Return arrays for function showEvent et lastEvent
|
||
354 | *
|
||
355 | **/
|
||
356 | function logArray(){ |
||
357 | |||
358 | global $LANG; |
||
359 | |||
360 | $logItemtype=array("system"=>$LANG["log"][1], |
||
361 | "computers"=>$LANG["log"][2], |
||
362 | "monitors"=>$LANG["log"][3], |
||
363 | "printers"=>$LANG["log"][4], |
||
364 | "software"=>$LANG["log"][5], |
||
365 | "networking"=>$LANG["log"][6], |
||
366 | "cartridges"=>$LANG["log"][7], |
||
367 | "peripherals"=>$LANG["log"][8], |
||
368 | "consumables"=>$LANG["log"][9], |
||
369 | "tracking"=>$LANG["log"][10], |
||
370 | "contacts"=>$LANG["log"][11], |
||
371 | "enterprises"=>$LANG["log"][12], |
||
372 | "documents"=>$LANG["log"][13], |
||
373 | "knowbase"=>$LANG["log"][14], |
||
374 | "users"=>$LANG["log"][15], |
||
375 | "infocom"=>$LANG["log"][19], |
||
376 | "devices"=>$LANG["log"][18], |
||
377 | "links"=>$LANG["log"][38], |
||
378 | "typedocs"=>$LANG["log"][39], |
||
379 | "planning"=>$LANG["log"][16], |
||
380 | "reservation"=>$LANG["log"][42], |
||
381 | "contracts"=>$LANG["log"][17], |
||
382 | "phones"=>$LANG["log"][43], |
||
383 | "dropdown"=>$LANG["log"][44], |
||
384 | "groups"=>$LANG["log"][47], |
||
385 | "entity"=>$LANG["log"][63], |
||
386 | "reminder"=>$LANG["title"][37], |
||
387 | "rules"=>$LANG["log"][65]); |
||
388 | |||
389 | |||
390 | $logService=array("inventory"=>$LANG["log"][50], |
||
391 | "tracking"=>$LANG["log"][51], |
||
392 | "planning"=>$LANG["Menu"][29], |
||
393 | "tools"=>$LANG["log"][53], |
||
394 | "financial"=>$LANG["log"][54], |
||
395 | "login"=>$LANG["log"][55], |
||
396 | "setup"=>$LANG["common"][12], |
||
397 | "security"=>$LANG["log"][66], |
||
398 | "reservation"=>$LANG["log"][58], |
||
399 | "cron"=>$LANG["log"][59], |
||
400 | "document"=>$LANG["Menu"][27], |
||
401 | "plugin"=>$LANG["common"][29]); |
||
402 | |||
403 | return array($logItemtype,$logService); |
||
404 | |||
405 | } |
||
406 | |||
407 | function displayItemLogID($itemtype,$item){ |
||
408 | global $CFG_GLPI; |
||
409 | |||
410 | if ($item=="-1" || $item=="0") { |
||
411 | echo " ";//$item; |
||
412 | } else {
|
||
413 | if ($itemtype=="infocom"){ |
||
414 | echo "<a href='#' onClick=\"window.open('".$CFG_GLPI["root_doc"]."/front/infocom.show.php?ID=$item','infocoms','location=infocoms,width=1000,height=400,scrollbars=no')\">$item</a>"; |
||
415 | } else {
|
||
416 | if ($item=="-1" || $item=="0") { |
||
417 | echo " ";//$item; |
||
418 | } else {
|
||
419 | switch ($itemtype){ |
||
420 | case "rules" : |
||
421 | echo "<a href=\"".$CFG_GLPI["root_doc"]."/front/rule.generic.form.php?ID=".$item."\">".$item."</a>"; |
||
422 | break;
|
||
423 | case "infocom" : |
||
424 | echo "<a href='#' onClick=\"window.open('".$CFG_GLPI["root_doc"]."/front/infocom.show.php?ID=$item','infocoms','location=infocoms,width=1000,height=400,scrollbars=no')\">$item</a>"; |
||
425 | break;
|
||
426 | case "devices": |
||
427 | echo $item; |
||
428 | break;
|
||
429 | case "reservation": |
||
430 | echo "<a href=\"".$CFG_GLPI["root_doc"]."/front/reservation.php?show=resa&ID=".$item."\">$item</a>"; |
||
431 | break;
|
||
432 | default :
|
||
433 | if ($itemtype[strlen($itemtype)-1]=='s'){ |
||
434 | $show=substr($itemtype,0,strlen($itemtype)-1); |
||
435 | }else $show=$itemtype; |
||
436 | |||
437 | echo "<a href=\"".$CFG_GLPI["root_doc"]."/front/".$show.".form.php?ID="; |
||
438 | echo $item; |
||
439 | echo "\">$item</a>"; |
||
440 | break;
|
||
441 | } |
||
442 | } |
||
443 | } |
||
444 | } |
||
445 | } |
||
446 | |||
447 | |||
448 | /**
|
||
449 | * Print a nice tab for last event from inventory section
|
||
450 | *
|
||
451 | * Print a great tab to present lasts events occured on glpi
|
||
452 | *
|
||
453 | *
|
||
454 | * @param $target where to go when complete
|
||
455 | * @param $user
|
||
456 | **/
|
||
457 | function showAddEvents($target,$user="") { |
||
458 | // Show events from $result in table form
|
||
459 | |||
460 | global $DB,$CFG_GLPI, $LANG; |
||
461 | |||
462 | list($logItemtype,$logService)=logArray(); |
||
463 | |||
464 | $usersearch="%"; |
||
465 | if (!empty($user)) |
||
466 | $usersearch=$user." "; |
||
467 | |||
468 | // Query Database
|
||
469 | $query = "SELECT * FROM glpi_event_log WHERE message LIKE '".$usersearch.addslashes($LANG["log"][20])."%' ORDER BY `date` DESC LIMIT 0,".$CFG_GLPI["num_of_events"]; |
||
470 | |||
471 | // Get results
|
||
472 | $result = $DB->query($query); |
||
473 | |||
474 | |||
475 | // Number of results
|
||
476 | $number = $DB->numrows($result); |
||
477 | |||
478 | // No Events in database
|
||
479 | if ($number < 1) { |
||
480 | echo "<br>"; |
||
481 | echo "<table class='tab_cadrehov'>"; |
||
482 | echo "<tr><th>".$LANG["central"][4]."</th></tr>"; |
||
483 | echo "</table>"; |
||
484 | echo "<br>"; |
||
485 | return;
|
||
486 | } |
||
487 | |||
488 | // Output events
|
||
489 | $i = 0; |
||
490 | |||
491 | echo "<br><table class='tab_cadrehov'>"; |
||
492 | echo "<tr><th colspan='5'><a href=\"".$CFG_GLPI["root_doc"]."/front/log.php\">".$LANG["central"][2]." ".$CFG_GLPI["num_of_events"]." ".$LANG["central"][8]."</a></th></tr>"; |
||
493 | echo "<tr>"; |
||
494 | |||
495 | echo "<th colspan='2'>".$LANG["event"][0]."</th>"; |
||
496 | echo "<th><img src='".$CFG_GLPI["root_doc"]."/pics/puce-down.png' alt='' title=''>".$LANG["common"][27]."</a></th>"; |
||
497 | echo "<th width='8%'>".$LANG["event"][2]."</th>"; |
||
498 | echo "<th width='60%'>".$LANG["event"][4]."</th></tr>"; |
||
499 | |||
500 | while ($i < $number) { |
||
501 | $ID = $DB->result($result, $i, "ID"); |
||
502 | $item = $DB->result($result, $i, "item"); |
||
503 | $itemtype = $DB->result($result, $i, "itemtype"); |
||
504 | $date = $DB->result($result, $i, "date"); |
||
505 | $service = $DB->result($result, $i, "service"); |
||
506 | //$level = $DB->result($result, $i, "level");
|
||
507 | $message = $DB->result($result, $i, "message"); |
||
508 | |||
509 | echo "<tr class='tab_bg_2'>"; |
||
510 | echo "<td>".$logItemtype[$itemtype].":</td><td class='center'>"; |
||
511 | |||
512 | displayItemLogID($itemtype,$item); |
||
513 | echo "</td><td class='center'>".convDateTime($date)."</td><td class='center'>".$logService[$service]."</td><td>$message</td>"; |
||
514 | echo "</tr>"; |
||
515 | |||
516 | $i++;
|
||
517 | } |
||
518 | |||
519 | echo "</table><br>"; |
||
520 | } |
||
521 | |||
522 | /**
|
||
523 | * Print a nice tab for last event
|
||
524 | *
|
||
525 | * Print a great tab to present lasts events occured on glpi
|
||
526 | *
|
||
527 | *
|
||
528 | * @param $target where to go when complete
|
||
529 | * @param $order order by clause occurences (eg: )
|
||
530 | * @param $sort order by clause occurences (eg: date)
|
||
531 | * @param $start
|
||
532 | **/
|
||
533 | function showEvents($target,$order,$sort,$start=0) { |
||
534 | // Show events from $result in table form
|
||
535 | |||
536 | global $DB,$CFG_GLPI, $LANG; |
||
537 | |||
538 | list($logItemtype,$logService)=logArray(); |
||
539 | |||
540 | // Columns of the Table
|
||
541 | $items = array( |
||
542 | "item" => array($LANG["event"][0], "colspan='2'"), |
||
543 | "date" => array($LANG["common"][27], ""), |
||
544 | "service" => array($LANG["event"][2], "width='8%'"), |
||
545 | "level" => array($LANG["event"][3], "width='8%'"), |
||
546 | "message" => array($LANG["event"][4], "width='50%'") |
||
547 | ); |
||
548 | // define default sorting
|
||
549 | |||
550 | if (!isset($items[$sort])) { |
||
551 | $sort = "date"; |
||
552 | } |
||
553 | if ($order!="ASC"){ |
||
554 | $order = "DESC"; |
||
555 | } |
||
556 | |||
557 | // Query Database
|
||
558 | $query_limit = "SELECT * FROM glpi_event_log ORDER BY `$sort` $order LIMIT ".intval($start).",".intval($_SESSION["glpilist_limit"]); |
||
559 | |||
560 | // Number of results
|
||
561 | $numrows = countElementsInTable("glpi_event_log"); |
||
562 | // Get results
|
||
563 | $result = $DB->query($query_limit); |
||
564 | $number = $DB->numrows($result); |
||
565 | |||
566 | // No Events in database
|
||
567 | if ($number < 1) { |
||
568 | echo "<div class='center'><strong>".$LANG["central"][4]."</strong></div>"; |
||
569 | return;
|
||
570 | } |
||
571 | |||
572 | // Output events
|
||
573 | $i = 0; |
||
574 | |||
575 | echo "<div class='center'>"; |
||
576 | $parameters="sort=$sort&order=$order"; |
||
577 | printPager($start,$numrows,$target,$parameters); |
||
578 | |||
579 | echo "<table class='tab_cadre_fixe'>"; |
||
580 | echo "<tr>"; |
||
581 | |||
582 | foreach ($items as $field => $args) { |
||
583 | echo "<th ".$args[1].">"; |
||
584 | |||
585 | if ($sort==$field) { |
||
586 | if ($order=="DESC") { |
||
587 | echo "<img src=\"".$CFG_GLPI["root_doc"]."/pics/puce-down.png\" alt='' title=''>"; |
||
588 | } else {
|
||
589 | echo "<img src=\"".$CFG_GLPI["root_doc"]."/pics/puce-up.png\" alt='' title=''>"; |
||
590 | } |
||
591 | } |
||
592 | echo "<a href='$target?sort=$field&order=".($order=="ASC"?"DESC":"ASC")."'>".$args[0]."</a></th>"; |
||
593 | } |
||
594 | echo "</tr>"; |
||
595 | |||
596 | while ($i < $number) { |
||
597 | $ID = $DB->result($result, $i, "ID"); |
||
598 | $item = $DB->result($result, $i, "item"); |
||
599 | $itemtype = $DB->result($result, $i, "itemtype"); |
||
600 | $date = $DB->result($result, $i, "date"); |
||
601 | $service = $DB->result($result, $i, "service"); |
||
602 | $level = $DB->result($result, $i, "level"); |
||
603 | $message = $DB->result($result, $i, "message"); |
||
604 | |||
605 | echo "<tr class='tab_bg_2'>"; |
||
606 | echo "<td>".(isset($logItemtype[$itemtype])?$logItemtype[$itemtype]:" ").":</td><td class='center'><strong>"; |
||
607 | displayItemLogID($itemtype,$item); |
||
608 | echo "</strong></td><td>".convDateTime($date)."</td><td class='center'>".(isset($logService[$service])?$logService[$service]:$service)."</td><td class='center'>$level</td><td>$message</td>"; |
||
609 | echo "</tr>"; |
||
610 | |||
611 | $i++;
|
||
612 | } |
||
613 | |||
614 | echo "</table></div><br>"; |
||
615 | } |
||
616 | |||
617 | ?> |