Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

ryxeo-glpi-git / inc / display.function.php @ bdec3308

Historique | Voir | Annoter | Télécharger (76,4 ko)

1
<?php
2
/*
3
 * @version $Id: display.function.php 7763 2009-01-06 18:44:50Z moyo $
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
//******************************************************************************************************
43
//***********  Fonctions d'affichage header footer helpdesk pager ***********************
44
//******************************************************************************************************
45
//******************************************************************************************************
46

    
47
/**
48
 * Include common HTML headers
49
 *
50
 * @param $title title used for the page
51
 * @return nothing
52
 **/
53
function includeCommonHtmlHeader($title=''){
54
        global $CFG_GLPI,$PLUGIN_HOOKS;
55

    
56
        // Send UTF8 Headers
57
        header("Content-Type: text/html; charset=UTF-8");
58
        // Send extra expires header if configured
59
        if ($CFG_GLPI["sendexpire"]) {
60
                header_nocache();
61
        }
62

    
63
        // Start the page
64
        echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
65
         // echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"  \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
66
        echo "\n<html><head><title>GLPI - ".$title."</title>";
67
        echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8 \" >";
68
        // Send extra expires header if configured
69
        if ($CFG_GLPI["sendexpire"]) {
70
                echo "<meta http-equiv=\"Expires\" content=\"Fri, Jun 12 1981 08:20:00 GMT\" >\n";
71
                echo "<meta http-equiv=\"Pragma\" content=\"no-cache\">\n";
72
                echo "<meta http-equiv=\"Cache-Control\" content=\"no-cache\">\n";
73
        }
74
        //  CSS link
75
        echo "<link rel='stylesheet'  href='".$CFG_GLPI["root_doc"]."/css/styles.css' type='text/css' media='screen' >\n";
76
        // surcharge CSS hack for IE
77
        echo "<!--[if lte IE 6]>" ;
78
        echo "<link rel='stylesheet' href='".$CFG_GLPI["root_doc"]."/css/styles_ie.css' type='text/css' media='screen' >\n";
79
        echo "<![endif]-->";
80

    
81
        echo "<link rel='stylesheet' type='text/css' media='print' href='".$CFG_GLPI["root_doc"]."/css/print.css' >\n";
82
        echo "<link rel='shortcut icon' type='images/x-icon' href='".$CFG_GLPI["root_doc"]."/pics/favicon.ico' >\n";
83

    
84
        // AJAX library
85
        echo "<script type=\"text/javascript\" src='".$CFG_GLPI["root_doc"]."/lib/prototype.js'></script>\n";
86
        echo "<script type=\"text/javascript\" src='".$CFG_GLPI["root_doc"]."/lib/control.modal.js'></script>\n";
87
        echo "<script type=\"text/javascript\" src='".$CFG_GLPI["root_doc"]."/lib/scriptaculous/scriptaculous.js'></script>\n";
88

    
89
        // Some Javascript-Functions which we may need later
90
        echo "<script type=\"text/javascript\" src='".$CFG_GLPI["root_doc"]."/script.js'></script>\n";
91
        
92
        // Calendar scripts 
93
        if (isset($_SESSION["glpilanguage"])){
94
                echo "<style type=\"text/css\">@import url(".$CFG_GLPI["root_doc"]."/lib/calendar/aqua/theme.css);</style>\n";
95
                echo "<script type=\"text/javascript\" src=\"".$CFG_GLPI["root_doc"]."/lib/calendar/calendar.js\"></script>\n";
96
                echo "<script type=\"text/javascript\" src=\"".$CFG_GLPI["root_doc"]."/lib/calendar/lang/calendar-".$CFG_GLPI["languages"][$_SESSION["glpilanguage"]][2].".js\"></script>\n";
97
                echo "<script type=\"text/javascript\" src=\"".$CFG_GLPI["root_doc"]."/lib/calendar/calendar-setup.js\"></script>\n";
98
        }
99
        
100
        // Add specific javascript for plugins
101
        if (isset($PLUGIN_HOOKS['add_javascript'])&&count($PLUGIN_HOOKS['add_javascript'])){
102
                foreach  ($PLUGIN_HOOKS["add_javascript"] as $plugin => $file) {
103
                        echo "<script type=\"text/javascript\" src='".$CFG_GLPI["root_doc"]."/plugins/$plugin/$file'></script>\n";
104
                }
105
        }
106
        // Add specific css for plugins
107
        if (isset($PLUGIN_HOOKS['add_css'])&&count($PLUGIN_HOOKS['add_css'])){
108
                foreach  ($PLUGIN_HOOKS["add_css"] as $plugin => $file) {
109
                        echo "<link rel='stylesheet'  href='".$CFG_GLPI["root_doc"]."/plugins/$plugin/$file' type='text/css' media='screen' >\n";
110
                }
111
        }
112
        
113
        // End of Head
114
        echo "</head>\n";
115
}
116

    
117
/**
118
 * Common Title Function
119
 *
120
 * @param $ref_pic_link Path to the image to display
121
 * @param $ref_pic_text Alt text of the icon
122
 * @param $ref_title Title to display
123
 * @param $ref_btts Extra items to display array(link=>text...)
124
 * @return nothing
125
 **/
126
function displayTitle($ref_pic_link="",$ref_pic_text="",$ref_title="",$ref_btts="") {
127
        echo "<div class='center'><table border='0'><tr>";
128
        if ($ref_pic_link!="")
129
                echo "<td><img src=\"".$ref_pic_link."\" alt=\"".$ref_pic_text."\"
130
title=\"".$ref_pic_text."\" ></td>"; 
131
        if ($ref_title!="")
132
                echo "<td><span class='icon_consol'><strong>".$ref_title."</strong></span></td>"; 
133
        if (is_array($ref_btts)&&count($ref_btts))
134
        foreach ($ref_btts as $key => $val) { 
135
                echo "<td><a class='icon_consol_hov' href=\"".$key."\">".$val."</a></td>"; 
136
        }        
137
        echo "</tr></table></div>";
138
}
139

    
140
/**
141
 * Print a nice HTML head for every page
142
 *
143
 *
144
 * @param $title title of the page
145
 * @param $url not used anymore.
146
 * @param $sector sector in which the page displayed is
147
 * @param $item item corresponding to the page displayed
148
 * @param $option option corresponding to the page displayed
149
 *
150
 **/
151
function commonHeader($title,$url='',$sector="none",$item="none",$option="")
152
{
153
        // Print a nice HTML-head for every page
154

    
155
        global $CFG_GLPI,$LANG,$PLUGIN_HOOKS,$HEADER_LOADED,$INFOFORM_PAGES,$DB ;
156

    
157
        if ($HEADER_LOADED) return;
158
        $HEADER_LOADED=true;
159
        // Override list-limit if choosen
160
        if (isset($_POST['list_limit'])) {
161
                $_SESSION['glpilist_limit']=$_POST['list_limit'];
162
        }
163

    
164
        includeCommonHtmlHeader($title);
165
        if (!($CFG_GLPI["cache"]->start($sector.'_'.$item.$option,"GLPI_HEADER_".$_SESSION["glpiID"]))) {
166
                
167
        // Body 
168
                echo "<body>";
169
        
170
                
171
                //  Generate array for menu and check right
172
                
173

    
174
                //////// INVENTORY
175
                $showstate=false;
176
                $menu['inventory']['title']=$LANG["Menu"][38];
177
                if (haveRight("computer","r")){
178
                        $menu['inventory']['default']='/front/computer.php';
179

    
180
                        $menu['inventory']['content']['computer']['title']=$LANG["Menu"][0];
181
                        $menu['inventory']['content']['computer']['shortcut']='c';
182
                        $menu['inventory']['content']['computer']['page']='/front/computer.php';
183
                        $menu['inventory']['content']['computer']['links']['search']='/front/computer.php';
184
                        if (haveRight("computer","w")){
185
                                $menu['inventory']['content']['computer']['links']['add']='/front/setup.templates.php?type='.COMPUTER_TYPE.'&amp;add=1';
186
                                $menu['inventory']['content']['computer']['links']['template']='/front/setup.templates.php?type='.COMPUTER_TYPE.'&amp;add=0';
187
                        }
188
                        $showstate=true;
189
                }
190
                if (haveRight("monitor","r")){
191
                        $menu['inventory']['content']['monitor']['title']=$LANG["Menu"][3];
192
                        $menu['inventory']['content']['monitor']['shortcut']='m';
193
                        $menu['inventory']['content']['monitor']['page']='/front/monitor.php';
194
                        $menu['inventory']['content']['monitor']['links']['search']='/front/monitor.php';
195
                        if (haveRight("monitor","w")){
196
                                $menu['inventory']['content']['monitor']['links']['add']='/front/setup.templates.php?type='.MONITOR_TYPE.'&amp;add=1';
197
                                $menu['inventory']['content']['monitor']['links']['template']='/front/setup.templates.php?type='.MONITOR_TYPE.'&amp;add=0';
198
                        }
199

    
200
                        $showstate=true;
201
                }
202
                if (haveRight("software","r")){
203
                        $menu['inventory']['content']['software']['title']=$LANG["Menu"][4];
204
                        $menu['inventory']['content']['software']['shortcut']='s';
205
                        $menu['inventory']['content']['software']['page']='/front/software.php';
206
                        $menu['inventory']['content']['software']['links']['search']='/front/software.php';
207
                        if (haveRight("software","w")){
208
                                $menu['inventory']['content']['software']['links']['add']='/front/setup.templates.php?type='.SOFTWARE_TYPE.'&amp;add=1';
209
                                $menu['inventory']['content']['software']['links']['template']='/front/setup.templates.php?type='.SOFTWARE_TYPE.'&amp;add=0';
210
                        }
211

    
212
                        $showstate=true;
213
                }
214
                if (haveRight("networking","r")){
215
                        $menu['inventory']['content']['networking']['title']=$LANG["Menu"][1];
216
                        $menu['inventory']['content']['networking']['shortcut']='n';
217
                        $menu['inventory']['content']['networking']['page']='/front/networking.php';
218
                        $menu['inventory']['content']['networking']['links']['search']='/front/networking.php';
219
                        if (haveRight("networking","w")){
220
                                $menu['inventory']['content']['networking']['links']['add']='/front/setup.templates.php?type='.NETWORKING_TYPE.'&amp;add=1';
221
                                $menu['inventory']['content']['networking']['links']['template']='/front/setup.templates.php?type='.NETWORKING_TYPE.'&amp;add=0';
222
                        }
223
                        $showstate=true;
224
                }
225
                if (haveRight("peripheral","r")){
226
                        $menu['inventory']['content']['peripheral']['title']=$LANG["Menu"][16];
227
                        $menu['inventory']['content']['peripheral']['shortcut']='n';
228
                        $menu['inventory']['content']['peripheral']['page']='/front/peripheral.php';
229
                        $menu['inventory']['content']['peripheral']['links']['search']='/front/peripheral.php';
230
                        if (haveRight("peripheral","w")){
231
                                $menu['inventory']['content']['peripheral']['links']['add']='/front/setup.templates.php?type='.PERIPHERAL_TYPE.'&amp;add=1';
232
                                $menu['inventory']['content']['peripheral']['links']['template']='/front/setup.templates.php?type='.PERIPHERAL_TYPE.'&amp;add=0';
233
                        }
234
                        $showstate=true;
235
                }
236
                if (haveRight("printer","r")){
237
                        $menu['inventory']['content']['printer']['title']=$LANG["Menu"][2];
238
                        $menu['inventory']['content']['printer']['shortcut']='p';
239
                        $menu['inventory']['content']['printer']['page']='/front/printer.php';
240
                        $menu['inventory']['content']['printer']['links']['search']='/front/printer.php';
241
                        if (haveRight("printer","w")){
242
                                $menu['inventory']['content']['printer']['links']['add']='/front/setup.templates.php?type='.PRINTER_TYPE.'&amp;add=1';
243
                                $menu['inventory']['content']['printer']['links']['template']='/front/setup.templates.php?type='.PRINTER_TYPE.'&amp;add=0';
244
                        }
245
                        $showstate=true;
246
                }
247
                if (haveRight("cartridge","r")){
248
                        $menu['inventory']['content']['cartridge']['title']=$LANG["Menu"][21];
249
                        $menu['inventory']['content']['cartridge']['shortcut']='c';
250
                        $menu['inventory']['content']['cartridge']['page']='/front/cartridge.php';
251
                        $menu['inventory']['content']['cartridge']['links']['search']='/front/cartridge.php';
252
                        if (haveRight("cartridge","w")){
253
                                $menu['inventory']['content']['cartridge']['links']['add']='/front/cartridge.form.php';
254
                        }
255
                }
256
                if (haveRight("consumable","r")){
257
                        $menu['inventory']['content']['consumable']['title']=$LANG["Menu"][32];
258
                        $menu['inventory']['content']['consumable']['shortcut']='g';
259
                        $menu['inventory']['content']['consumable']['page']='/front/consumable.php';
260
                        $menu['inventory']['content']['consumable']['links']['search']='/front/consumable.php';
261
                        if (haveRight("consumable","w")){
262
                                $menu['inventory']['content']['consumable']['links']['add']='/front/consumable.form.php';
263
                        }
264
                        $menu['inventory']['content']['consumable']['links']['summary']='/front/consumable.php?synthese=yes';
265
                }
266
                if (haveRight("phone","r")){
267
                        $menu['inventory']['content']['phone']['title']=$LANG["Menu"][34];
268
                        $menu['inventory']['content']['phone']['shortcut']='t';
269
                        $menu['inventory']['content']['phone']['page']='/front/phone.php';
270
                        $menu['inventory']['content']['phone']['links']['search']='/front/phone.php';
271
                        if (haveRight("phone","w")){
272
                                $menu['inventory']['content']['phone']['links']['add']='/front/setup.templates.php?type='.PHONE_TYPE.'&amp;add=1';
273
                                $menu['inventory']['content']['phone']['links']['template']='/front/setup.templates.php?type='.PHONE_TYPE.'&amp;add=0';
274
                        }
275
                        $showstate=true;
276
                }
277
                if ($showstate){
278
                        $menu['inventory']['content']['state']['title']=$LANG["Menu"][28];
279
                        $menu['inventory']['content']['state']['shortcut']='n';
280
                        $menu['inventory']['content']['state']['page']='/front/state.php';
281
                        $menu['inventory']['content']['state']['links']['search']='/front/state.php';
282
                        $menu['inventory']['content']['state']['links']['summary']='/front/state.php?synthese=yes';
283
                }
284

    
285

    
286
//////// ASSISTANCE
287
                $menu['maintain']['title']=$LANG["title"][24];
288

    
289
                if (haveRight("observe_ticket","1")||haveRight("show_all_ticket","1")||haveRight("create_ticket","1")){
290
                        $menu['maintain']['default']='/front/tracking.php';
291

    
292
                        $menu['maintain']['content']['tracking']['title']=$LANG["Menu"][5];
293
                        $menu['maintain']['content']['tracking']['shortcut']='t';
294
                        $menu['maintain']['content']['tracking']['page']='/front/tracking.php';
295
                        $menu['maintain']['content']['tracking']['links']['search']='/front/tracking.php';
296

    
297
                        $menu['maintain']['content']['helpdesk']['links']['search']='/front/tracking.php';
298

    
299
                }
300
                if (haveRight("create_ticket","1")){
301
                        $menu['maintain']['content']['helpdesk']['title']=$LANG["Menu"][31];
302
                        $menu['maintain']['content']['helpdesk']['shortcut']='h';
303
                        $menu['maintain']['content']['helpdesk']['page']='/front/helpdesk.php';
304
                        $menu['maintain']['content']['helpdesk']['links']['add']='/front/helpdesk.php';
305

    
306
                        $menu['maintain']['content']['tracking']['links']['add']='/front/helpdesk.php';
307
                }
308
                if (haveRight("show_planning","1")||haveRight("show_all_planning","1")){
309
                        $menu['maintain']['content']['planning']['title']=$LANG["Menu"][29];
310
                        $menu['maintain']['content']['planning']['shortcut']='l';
311
                        $menu['maintain']['content']['planning']['page']='/front/planning.php';
312
                        $menu['maintain']['content']['planning']['links']['search']='/front/planning.php';
313

    
314
                }
315
                if (haveRight("statistic","1")){
316
                        $menu['maintain']['content']['stat']['title']=$LANG["Menu"][13];
317
                        $menu['maintain']['content']['stat']['shortcut']='1';
318
                        $menu['maintain']['content']['stat']['page']='/front/stat.php';
319
                }
320
                
321
                
322
//////// FINANCIAL
323
                $menu['financial']['title']=$LANG["Menu"][26];
324
                if (haveRight("contact_enterprise","r")){
325
                        $menu['financial']['default']='/front/contact.php';
326

    
327
                        $menu['financial']['content']['contact']['title']=$LANG["Menu"][22];
328
                        $menu['financial']['content']['contact']['shortcut']='t';
329
                        $menu['financial']['content']['contact']['page']='/front/contact.php';
330
                        $menu['financial']['content']['contact']['links']['search']='/front/contact.php';
331

    
332
                        $menu['financial']['content']['enterprise']['title']=$LANG["Menu"][23];
333
                        $menu['financial']['content']['enterprise']['shortcut']='e';
334
                        $menu['financial']['content']['enterprise']['page']='/front/enterprise.php';
335
                        $menu['financial']['content']['enterprise']['links']['search']='/front/enterprise.php';
336

    
337
                        if (haveRight("contact_enterprise","w")){
338
                                $menu['financial']['content']['contact']['links']['add']='/front/contact.form.php';
339
                                $menu['financial']['content']['enterprise']['links']['add']='/front/enterprise.form.php';
340
                        }
341

    
342
                }
343
                if (haveRight("contract_infocom","r")){
344
                        $menu['financial']['content']['contract']['title']=$LANG["Menu"][25];
345
                        $menu['financial']['content']['contract']['shortcut']='n';
346
                        $menu['financial']['content']['contract']['page']='/front/contract.php';
347
                        $menu['financial']['content']['contract']['links']['search']='/front/contract.php';
348

    
349
                        if (haveRight("contract_infocom","w")){
350
                                $menu['financial']['content']['contract']['links']['add']='/front/contract.form.php';
351
                        }
352

    
353
                }
354
                if (haveRight("document","r")){
355
                        $menu['financial']['content']['document']['title']=$LANG["Menu"][27];
356
                        $menu['financial']['content']['document']['shortcut']='d';
357
                        $menu['financial']['content']['document']['page']='/front/document.php';
358
                        $menu['financial']['content']['document']['links']['search']='/front/document.php';
359

    
360
                        if (haveRight("document","w")){
361
                                $menu['financial']['content']['document']['links']['add']='/front/document.form.php';
362
                        }
363
                }
364
        
365
//////// UTILS
366
                $menu['utils']['title']=$LANG["Menu"][18];
367
                $menu['utils']['default']='/front/reminder.php';
368

    
369
                $menu['utils']['content']['reminder']['title']=$LANG["title"][37];
370
                $menu['utils']['content']['reminder']['page']='/front/reminder.php';
371
                $menu['utils']['content']['reminder']['links']['search']='/front/reminder.php';
372
                $menu['utils']['content']['reminder']['links']['add']='/front/reminder.form.php';
373

    
374
                if (haveRight("knowbase","r")||haveRight("faq","r")) {
375

    
376
                        $menu['utils']['content']['knowbase']['title']=$LANG["Menu"][19];
377
                        $menu['utils']['content']['knowbase']['page']='/front/knowbase.php';
378
                        $menu['utils']['content']['knowbase']['links']['search']='/front/knowbase.php';
379

    
380
                        if (haveRight("knowbase","w")||haveRight("faq","w")){
381
                                $menu['utils']['content']['knowbase']['links']['add']='/front/knowbase.form.php?ID=new';
382
                        }
383

    
384
                }
385
                if (haveRight("reservation_helpdesk","1")||haveRight("reservation_central","r")){
386
                        $menu['utils']['content']['reservation']['title']=$LANG["Menu"][17];
387
                        $menu['utils']['content']['reservation']['page']='/front/reservation.php';
388
                        $menu['utils']['content']['reservation']['links']['search']='/front/reservation.php';
389
                        $menu['utils']['content']['reservation']['links']['showall']='/front/reservation.php?show=resa&amp;ID';
390
                }
391
                if (haveRight("reservation_helpdesk","1")||haveRight("reservation_central","r")){
392
                        $menu['utils']['content']['reservation']['title']=$LANG["Menu"][17];
393
                        $menu['utils']['content']['reservation']['page']='/front/reservation.php';
394
                        $menu['utils']['content']['reservation']['links']['search']='/front/reservation.php';
395
                        $menu['utils']['content']['reservation']['links']['showall']='/front/reservation.php?show=resa&amp;ID';
396
                }
397
                if (haveRight("reports","r")){
398
                        $menu['utils']['content']['report']['title']=$LANG["Menu"][6];
399
                        $menu['utils']['content']['report']['page']='/front/report.php';
400
                }
401

    
402
                if ($CFG_GLPI["ocs_mode"]&&haveRight("ocsng","w")){
403
                        $menu['utils']['content']['ocsng']['title']=$LANG["Menu"][33];
404
                        $menu['utils']['content']['ocsng']['page']='/front/ocsng.php';
405
                //        $menu['utils']['content']['ocsng']['links']['search']='/front/ocsng.php';
406
                        }
407
                
408
                // PLUGINS
409
                if (isset($PLUGIN_HOOKS["menu_entry"])&&count($PLUGIN_HOOKS["menu_entry"])){        
410
                        $menu['plugins']['title']=$LANG["common"][29];
411

    
412
                        $plugins=array();
413
        
414
                        foreach  ($PLUGIN_HOOKS["menu_entry"] as $plugin => $active) {
415
                                if ($active){
416
                                        $function="plugin_version_$plugin";
417
        
418
                                        if (function_exists($function))
419
                                                $plugins[$plugin]=$function();
420
                                }
421
                        }
422
                        if (count($plugins)){
423
                                $list=array();
424
                                foreach ($plugins as $key => $val) {
425
                                        $list[$key]=$val["name"];
426
                                }
427
                                
428
                                asort($list);
429
                                foreach ($list as $key => $val) {
430
                                        $menu['plugins']['content'][$key]['title']=$val;
431
                                        $menu['plugins']['content'][$key]['page']='/plugins/'.$key.'/';
432
                                        if ($sector=="plugins"&&$item==$key){
433
                                                if (isset($PLUGIN_HOOKS["submenu_entry"][$key])&&is_array($PLUGIN_HOOKS["submenu_entry"][$key])){
434
                                                        foreach ($PLUGIN_HOOKS["submenu_entry"][$key] as $name => $link){
435
                                                                if (is_array($link))
436
                                                                {
437
                                                                         if (isset($link[$option]))
438
                                                                                 $menu['plugins']['content'][$key]['links'][$name]='/plugins/'.$key.'/'.$link[$option];
439
                                                                }
440
                                                                else
441
                                                                        $menu['plugins']['content'][$key]['links'][$name]='/plugins/'.$key.'/'.$link;
442
                                                        }
443
                                                }
444
                                        }
445
                                }
446
                                
447
                        }
448

    
449
                }
450
                //////// ADMINISTRATION
451
                $menu['admin']['title']=$LANG["Menu"][15];
452

    
453
                if (haveRight("user","r")){
454
                        $menu['admin']['default']='/front/user.php';
455

    
456
                        $menu['admin']['content']['user']['title']=$LANG["Menu"][14];
457
                        $menu['admin']['content']['user']['shortcut']='u';
458
                        $menu['admin']['content']['user']['page']='/front/user.php';
459
                        $menu['admin']['content']['user']['links']['search']='/front/user.php';
460

    
461
                        if (haveRight("user","w")){
462
                                $menu['admin']['content']['user']['links']['add']="/front/user.form.php";
463
                        }
464

    
465
                        switch($option){
466
                                case 'ldap' :
467
                                        $menu['admin']['content']['user']['links']['showall']="/front/ldap.php";
468
                                        break;
469

    
470
                        }
471

    
472
                }
473
                if (haveRight("group","r")){
474
                        $menu['admin']['content']['group']['title']=$LANG["Menu"][36];
475
                        $menu['admin']['content']['group']['shortcut']='g';
476
                        $menu['admin']['content']['group']['page']='/front/group.php';
477
                        $menu['admin']['content']['group']['links']['search']='/front/group.php';
478

    
479
                        if (haveRight("group","w")){
480
                                $menu['admin']['content']['group']['links']['add']="/front/group.form.php";
481
                        }
482

    
483
                }
484

    
485
                if (haveRight("entity","r")){
486
                        $menu['admin']['content']['entity']['title']=$LANG["Menu"][37];
487
                        $menu['admin']['content']['entity']['shortcut']='z';
488
                        $menu['admin']['content']['entity']['page']='/front/entity.php';
489
                        $menu['admin']['content']['entity']['links']['search']='/front/entity.php';
490

    
491
                        //$menu['admin']['content']['entity']['links'][$LANG["entity"][2]]="/front/entity.form.php?ID=0"; 
492
                        $menu['admin']['content']['entity']['links']['add']="/front/entity.tree.php";
493
                }
494

    
495
                if (haveRight("rule_ldap","r")||haveRight("rule_ocs","r")||haveRight("rule_tracking","r")|| haveRight("rule_softwarecategories","r")){
496
                        $menu['admin']['content']['rule']['title']=$LANG["rulesengine"][17];
497
                        $menu['admin']['content']['rule']['shortcut']='r';
498
                        $menu['admin']['content']['rule']['page']='/front/rule.php';
499
                        switch($option){
500
                                 case RULE_OCS_AFFECT_COMPUTER :
501
                                        $menu['admin']['content']['rule']['links']['search']='/front/rule.ocs.php';
502
                                        $menu['admin']['content']['rule']['links']['add']='/front/rule.ocs.form.php';
503
                                        break;
504
                                case RULE_AFFECT_RIGHTS :
505
                                        $menu['admin']['content']['rule']['links']['search']='/front/rule.right.php';
506
                                        $menu['admin']['content']['rule']['links']['add']='/front/rule.right.form.php';
507
                                        break;
508
                                case RULE_TRACKING_AUTO_ACTION :
509
                                        $menu['admin']['content']['rule']['links']['search']='/front/rule.tracking.php';
510
                                        $menu['admin']['content']['rule']['links']['add']='/front/rule.tracking.form.php';
511
                                        break;
512
                                case RULE_SOFTWARE_CATEGORY :
513
                                        $menu['admin']['content']['rule']['links']['search']='/front/rule.softwarecategories.php';
514
                                        $menu['admin']['content']['rule']['links']['add']='/front/rule.softwarecategories.form.php';
515
                                        break;
516
                        }
517
                }
518

    
519
                if (haveRight("rule_dictionnary_manufacturer","r") || haveRight("rule_dictionnary_software","r") ||
520
                        haveRight("rule_dictionnary_model","r") || haveRight("rule_dictionnary_type","r")||
521
                         haveRight("rule_dictionnary_os","r")){
522
                        $menu['admin']['content']['dictionnary']['title']=$LANG["rulesengine"][77];
523
                        $menu['admin']['content']['dictionnary']['shortcut']='r';
524
                        $menu['admin']['content']['dictionnary']['page']='/front/dictionnary.php';
525
                        switch($option){
526
                                case RULE_DICTIONNARY_MANUFACTURER :
527
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.manufacturer.php';
528
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.manufacturer.form.php';
529
                                        break;
530
                                case RULE_DICTIONNARY_SOFTWARE :
531
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.software.php';
532
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.software.form.php';
533
                                        break;
534
                                case RULE_DICTIONNARY_MODEL_COMPUTER :
535
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.model.computer.php';
536
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.model.computer.form.php';
537
                                        break;
538
                                case RULE_DICTIONNARY_MODEL_MONITOR :
539
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.model.monitor.php';
540
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.model.monitor.form.php';
541
                                        break;
542
                                case RULE_DICTIONNARY_MODEL_PRINTER :
543
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.model.printer.php';
544
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.model.printer.form.php';
545
                                        break;
546
                                case RULE_DICTIONNARY_MODEL_PERIPHERAL :
547
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.model.peripheral.php';
548
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.model.peripheral.form.php';
549
                                        break;
550
                                case RULE_DICTIONNARY_MODEL_NETWORKING :
551
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.model.networking.php';
552
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.model.networking.form.php';
553
                                        break;
554
                                case RULE_DICTIONNARY_MODEL_PHONE :
555
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.model.phone.php';
556
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.model.phone.form.php';
557
                                        break;
558
                                case RULE_DICTIONNARY_TYPE_COMPUTER :
559
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.type.computer.php';
560
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.type.computer.form.php';
561
                                        break;
562
                                case RULE_DICTIONNARY_TYPE_MONITOR :
563
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.type.monitor.php';
564
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.type.monitor.form.php';
565
                                        break;
566
                                case RULE_DICTIONNARY_TYPE_PRINTER :
567
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.type.printer.php';
568
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.type.printer.form.php';
569
                                        break;
570
                                case RULE_DICTIONNARY_TYPE_PERIPHERAL :
571
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.type.peripheral.php';
572
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.type.peripheral.form.php';
573
                                        break;
574
                                case RULE_DICTIONNARY_TYPE_NETWORKING :
575
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.type.networking.php';
576
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.type.networking.form.php';
577
                                        break;
578
                                case RULE_DICTIONNARY_TYPE_PHONE :
579
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.type.phone.php';
580
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.type.phone.form.php';
581
                                        break;
582
                                case RULE_DICTIONNARY_OS :
583
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.os.php';
584
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.os.form.php';
585
                                        break;
586
                                case RULE_DICTIONNARY_OS_SP :
587
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.os_sp.php';
588
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.os_sp.form.php';
589
                                        break;
590
                                case RULE_DICTIONNARY_OS_VERSION :
591
                                        $menu['admin']['content']['dictionnary']['links']['search']='/front/rule.dictionnary.os_version.php';
592
                                        $menu['admin']['content']['dictionnary']['links']['add']='/front/rule.dictionnary.os_version.form.php';
593
                                        break;
594
                        }
595
                }
596

    
597

    
598
                if (haveRight("profile","r")){
599
                        $menu['admin']['content']['profile']['title']=$LANG["Menu"][35];
600
                        $menu['admin']['content']['profile']['shortcut']='p';
601
                        $menu['admin']['content']['profile']['page']='/front/profile.php';
602
                        $menu['admin']['content']['profile']['links']['search']="/front/profile.php";
603
                        if (haveRight("profile","w")){
604
                                $menu['admin']['content']['profile']['links']['add']="/front/profile.form.php";
605
                        }
606

    
607
                }
608

    
609
                if (haveRight("transfer","r")&&isMultiEntitiesMode()){
610
                        $menu['admin']['content']['transfer']['title']=$LANG["transfer"][1];
611
                        $menu['admin']['content']['transfer']['shortcut']='t';
612
                        $menu['admin']['content']['transfer']['page']='/front/transfer.php';
613
                        $menu['admin']['content']['transfer']['links']['search']="/front/transfer.php";
614
                        if (haveRight("transfer","w")){
615
                                $menu['admin']['content']['transfer']['links']['summary']="/front/transfer.action.php";
616
                                $menu['admin']['content']['transfer']['links']['add']="/front/transfer.form.php";
617
                        }
618
                }
619

    
620
//                $config[$LANG["common"][12]]=array("setup.php","2");
621
                if (haveRight("backup","w")){
622
                        $menu['admin']['content']['backup']['title']=$LANG["Menu"][12];
623
                        $menu['admin']['content']['backup']['shortcut']='b';
624
                        $menu['admin']['content']['backup']['page']='/front/backup.php';
625
                }
626
                if (haveRight("logs","r")){
627
                        $menu['admin']['content']['log']['title']=$LANG["Menu"][30];
628
                        $menu['admin']['content']['log']['shortcut']='l';
629
                        $menu['admin']['content']['log']['page']='/front/log.php';
630
                }
631
                
632

    
633
// CONFIG
634
                $config=array();
635
                $addconfig=array();
636
                $menu['config']['title']=$LANG["common"][12];
637
                $menu['config']['default']='/front/setup.php';
638

    
639
                if (haveRight("dropdown","w")||haveRight("entity_dropdown","w")){
640
                        $menu['config']['content']['dropdowns']['title']=$LANG["setup"][0];
641
                        $menu['config']['content']['dropdowns']['page']='/front/setup.dropdowns.php';
642
                }
643
                if (haveRight("device","w")){
644
                        $menu['config']['content']['device']['title']=$LANG["title"][30];
645
                        $menu['config']['content']['device']['page']='/front/device.php';
646
                }
647

    
648
                if (haveRight("config","w")){
649
                        $menu['config']['content']['config']['title']=$LANG["setup"][703];
650
                        $menu['config']['content']['config']['page']='/front/setup.config.php';
651

    
652
                        $menu['config']['content']['mailing']['title']=$LANG["setup"][704];
653
                        $menu['config']['content']['mailing']['page']='/front/setup.mailing.php';
654

    
655
                        $menu['config']['content']['extauth']['title']=$LANG["login"][10];
656
                        $menu['config']['content']['extauth']['page']='/front/setup.auth.php';
657
                        $menu['config']['content']['extauth']['links']['search']='/front/setup.auth.php';
658
                        switch ($option){
659
                                case 1 : // LDAP
660
                                        $menu['config']['content']['extauth']['links']['add']='/front/setup.auth.php?next=extauth_ldap';
661
                                        break;
662
                                case 2 : // IMAP
663
                                        $menu['config']['content']['extauth']['links']['add']='/front/setup.auth.php?next=extauth_mail';
664
                                        break;
665
                        }
666

    
667
                        $menu['config']['content']['mailgate']['title']=$LANG["Menu"][39];
668
                        $menu['config']['content']['mailgate']['page']='/front/mailgate.php';
669
                        $menu['config']['content']['mailgate']['links']['search']='/front/mailgate.php';
670
                        $menu['config']['content']['mailgate']['links']['add']='/front/mailgate.form.php';
671

    
672
                }
673

    
674
                if ($CFG_GLPI["ocs_mode"]&&haveRight("config","w")){
675
                        $menu['config']['content']['ocsng']['title']=$LANG["setup"][134];
676
                        $menu['config']['content']['ocsng']['page']='/front/setup.ocsng.php';
677
                        $menu['config']['content']['ocsng']['links']['search']='/front/setup.ocsng.php';
678
                        $menu['config']['content']['ocsng']['links']['add']='/front/setup.templates.php?type='.OCSNG_TYPE.'&amp;add=1';
679
                        $menu['config']['content']['ocsng']['links']['template']='/front/setup.templates.php?type='.OCSNG_TYPE.'&amp;add=0';
680
                }
681

    
682
                if (haveRight("typedoc","r")){
683
                        $menu['config']['content']['typedoc']['title']=$LANG["document"][7];
684
                        $menu['config']['content']['typedoc']['page']='/front/typedoc.php';
685
                        $menu['config']['content']['typedoc']['hide']=true;
686
                        $menu['config']['content']['typedoc']['links']['search']='/front/typedoc.php';
687

    
688
                        if (haveRight("typedoc","w")){
689
                                $menu['config']['content']['typedoc']['links']['add']="/front/typedoc.form.php";
690
                        }
691

    
692
                }
693
                if (haveRight("link","r")){
694
                        $menu['config']['content']['link']['title']=$LANG["title"][33];
695
                        $menu['config']['content']['link']['page']='/front/link.php';
696
                        $menu['config']['content']['link']['hide']=true;
697
                        $menu['config']['content']['link']['links']['search']='/front/link.php';
698

    
699
                        if (haveRight("link","w")){
700
                                $menu['config']['content']['link']['links']['add']="/front/link.form.php";
701
                        }
702

    
703
                }        
704

    
705

    
706
                if (isset($PLUGIN_HOOKS['config_page'])&&is_array($PLUGIN_HOOKS['config_page'])&&count($PLUGIN_HOOKS['config_page']))        {
707
                        $menu['config']['content']['plugins']['title']=$LANG["common"][29];
708
                        $menu['config']['content']['plugins']['page']='/front/setup.plugins.php';
709
                }
710
                echo "<div id='header'>";
711
                //ryxeo
712
                //                echo "<div id='c_logo' ><a href='".$CFG_GLPI["root_doc"]."/front/central.php'  title=\"".$LANG["central"][5]."\"></a></div>";
713
                echo "<div id='c_logo' ><a href='".$CFG_GLPI["root_doc"]."/front/central.php?active_entity=all'  title=\"".$LANG["central"][5]."\"></a></div>";
714

    
715
                
716
                // Les préférences + lien déconnexion 
717
                echo "<div id='c_preference' >";
718
                echo "<ul><li id='deconnexion'><a href=\"".$CFG_GLPI["root_doc"]."/logout.php";
719
                // logout witour noAuto login for extauth
720
                if (isset($_SESSION['glpiextauth'])&&$_SESSION['glpiextauth']){
721
                        echo "?noAUTO=1";
722
                }
723
                echo "\"  title=\"".$LANG["central"][6]."\">".$LANG["central"][6]."  </a>";
724

    
725
                echo "(";
726
                echo formatUserName (0,$_SESSION["glpiname"],$_SESSION["glpirealname"],$_SESSION["glpifirstname"],0,20);
727
                echo ")</li>\n"; 
728

    
729
                echo "        <li><a href='".(empty($CFG_GLPI["centralhelp_url"])?"http://glpi-project.org/help-central":$CFG_GLPI["centralhelp_url"])."' target='_blank' title='".$LANG["central"][7]."'>    ".$LANG["central"][7]."</a></li>\n"; 
730

    
731
                echo "        <li> <a href=\"".$CFG_GLPI["root_doc"]."/front/user.form.my.php\" title=\"".$LANG["Menu"][11]."\" >".$LANG["Menu"][11]."   </a></li>\n"; 
732
                echo "</ul>\n"; 
733
                echo "<div class='sep'></div>\n"; 
734
                echo "</div>\n"; 
735
                
736
                //-- Le moteur de recherche -->
737
                echo "<div id='c_recherche' >\n"; 
738

    
739
                echo "<form method='get' action='".$CFG_GLPI["root_doc"]."/front/search.php'>\n"; 
740
                echo "        <div id='boutonRecherche'><input type='image' src='".$CFG_GLPI["root_doc"]."/pics/ok2.png'  value='OK'   title=\"".$LANG["buttons"][2]."\"  alt=\"".$LANG["buttons"][2]."\"  ></div>\n"; 
741
                echo "        <div id='champRecherche'><input size='15' type='text' name='globalsearch' value='".$LANG["buttons"][0]."' onfocus=\"this.value='';\" ></div>        \n";                 
742

    
743
                echo "</form>\n"; 
744

    
745
                echo "<div class='sep'></div>\n"; 
746
                echo "</div>";
747
        
748
                //<!-- Le menu principal -->
749
                echo "<div id='c_menu'>";
750
                echo "        <ul id='menu'>";
751
                
752
        
753
                // Get object-variables and build the navigation-elements
754
                $i=1;
755
                foreach ($menu as $part => $data){
756
                        if (isset($data['content'])&&count($data['content'])){
757
                                echo "        <li id='menu$i' onmouseover=\"javascript:menuAff('menu$i','menu');\" >";
758

    
759
                                $link="#";
760
                                if (isset($data['default'])&&!empty($data['default'])){
761
                                        $link=$CFG_GLPI["root_doc"].$data['default'];
762
                                }
763
                                if (strlen($data['title'])>14){
764
                                        $data['title']=utf8_substr($data['title'],0,14)."...";
765
                                }
766

    
767
                                echo "<a href=\"$link\" class='itemP'>".$data['title']."</a>"; 
768
                                echo "<ul class='ssmenu'>"; 
769
                                // list menu item 
770
                                foreach ($data['content'] as $key => $val) {
771
                                        if (isset($val['page'])&&isset($val['title'])){
772
                                                echo "<li><a href=\"".$CFG_GLPI["root_doc"].$val['page']."\"";
773
                                                if (isset($data['shortcut'])&&!empty($data['shortcut'])){
774
                                                        echo " accesskey=\"".$val['shortcut']."\" ";
775
                                                }
776
                                                        
777
                                                echo ">".$val['title']."</a></li>\n";
778
                                        }
779
                                }
780
        
781
                                echo "</ul>";
782
                                echo "</li>";                
783
                        
784
                        $i++;        
785
                        }
786
                }
787

    
788
                echo "</ul>";                
789
                echo "<div class='sep'></div>";
790
                echo "</div>";
791
        
792
                // End navigation bar
793
        
794
                // End headline
795

    
796
                // Le sous menu contextuel 1
797
                echo "<div id='c_ssmenu1' >";
798
                echo "<ul>";
799
                // list sous-menu item 
800
                if (isset($menu[$sector])){
801
                        if (isset($menu[$sector]['content'])&&is_array($menu[$sector]['content'])){
802

    
803
                                $ssmenu=$menu[$sector]['content'];
804
                                if (count($ssmenu)>12){
805
                                        foreach ($ssmenu as $key => $val){
806
                                                if (isset($val['hide'])){
807
                                                        unset($ssmenu[$key]);
808
                                                }
809
                                        }
810
                                        $ssmenu=array_splice($ssmenu,0,12);
811
                                }
812
                        
813
                                foreach ($ssmenu as $key => $val) {
814
                                        if (isset($val['page'])&&isset($val['title'])){
815
                                                echo "<li><a href=\"".$CFG_GLPI["root_doc"].$val['page']."\" ";
816
                                                if (isset($val['shortcut'])&&!empty($val['shortcut'])){
817
                                                        echo " accesskey=\"".$val['shortcut']."\"";
818
                                                }
819
                                                echo ">".$val['title']."</a></li>\n";
820
                                        }
821
                                }
822
                        } else echo "<li>&nbsp;</li>";
823
                } else echo "<li>&nbsp;</li>";
824
                echo "</ul>";
825
                echo "</div>";
826
                
827
                //  Le fil d arianne 
828
                echo "<div id='c_ssmenu2' >";
829
                echo "<ul>";
830

    
831
                // Display item
832
                //ryxeo (ajout du ?active_entity=all)
833
                echo "        <li><a   href='".$CFG_GLPI["root_doc"]."/front/central.php?active_entity=all' title='".$LANG["common"][56]."' >".$LANG["common"][56]." </a> ></li>";
834

    
835
                if (isset($menu[$sector])){
836
                        $link="/front/central.php";
837
                        if (isset($menu[$sector]['default'])){
838
                                $link=$menu[$sector]['default'];
839
                        }
840
                        echo "        <li><a href='".$CFG_GLPI["root_doc"].$link."' title='".$menu[$sector]['title']."' >".$menu[$sector]['title']." </a> > </li>";
841
                }
842

    
843
                if (isset($menu[$sector]['content'][$item])){
844
                        // Title
845
                        echo "        <li><a href='".$CFG_GLPI["root_doc"].$menu[$sector]['content'][$item]['page']."' class='here' title='".$menu[$sector]['content'][$item]['title']."' >".$menu[$sector]['content'][$item]['title']." </a></li>";
846
                        echo "<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>";
847

    
848
                        // Add item
849
                        echo "<li>";
850
                        if (isset($menu[$sector]['content'][$item]['links']['add'])){
851
                                echo "<a href='".$CFG_GLPI["root_doc"].$menu[$sector]['content'][$item]['links']['add']."'><img  src='".$CFG_GLPI["root_doc"]."/pics/menu_add.png' title='".$LANG["buttons"][8]."' alt='".$LANG["buttons"][8]."'></a>";
852
                        } else {
853
                                echo "<img src='".$CFG_GLPI["root_doc"]."/pics/menu_add_off.png' title='".$LANG["buttons"][8]."' alt='".$LANG["buttons"][8]."'>";
854
                        }
855
                        echo "</li>";
856
                        // Search Item
857
                        if (isset($menu[$sector]['content'][$item]['links']['search'])){
858
                                echo "<li><a href='".$CFG_GLPI["root_doc"].$menu[$sector]['content'][$item]['links']['search']."' ><img  src='".$CFG_GLPI["root_doc"]."/pics/menu_search.png' title='".$LANG["buttons"][0]."' alt='".$LANG["buttons"][0]."'></a></li>";
859
                        } else {
860
                                echo "<li><img src='".$CFG_GLPI["root_doc"]."/pics/menu_search_off.png' title='".$LANG["buttons"][0]."' alt='".$LANG["buttons"][0]."'></li>";
861
                        }
862
                        
863
                        // Links
864
                        if (isset($menu[$sector]['content'][$item]['links'])&&is_array($menu[$sector]['content'][$item]['links'])){
865
                                foreach ($menu[$sector]['content'][$item]['links'] as $key => $val) {
866
                                        switch ($key){
867
                                                case "add":
868
                                                case "search":
869
                                                        break;
870
                                                case "template":
871
                                                        echo "<li><a href='".$CFG_GLPI["root_doc"].$val."' ><img title='".$LANG["common"][8]."' alt='".$LANG["common"][8]."' src='".$CFG_GLPI["root_doc"]."/pics/menu_addtemplate.png' > </a></li>";
872
                                                        break;
873
                                                case "showall":
874
                                                        echo "<li><a href='".$CFG_GLPI["root_doc"].$val."' ><img title='".$LANG["buttons"][40]."' alt='".$LANG["buttons"][40]."' src='".$CFG_GLPI["root_doc"]."/pics/menu_showall.png' > </a></li>";
875
                                                        break;
876
                                                case "summary":
877
                                                        echo "<li><a href='".$CFG_GLPI["root_doc"].$val."' ><img title='".$LANG["state"][11]."' alt='".$LANG["state"][11]."' src='".$CFG_GLPI["root_doc"]."/pics/menu_show.png' > </a></li>";
878
                                                        break;
879
                                                case "config":
880
                                                        echo "<li><a href='".$CFG_GLPI["root_doc"].$val."' ><img title='".$LANG["common"][12]."' alt='".$LANG["common"][12]."' src='".$CFG_GLPI["root_doc"]."/pics/menu_config.png' > </a></li>";
881
                                                        break;
882

    
883
                                                default :
884
                                                        echo "<li><a href='".$CFG_GLPI["root_doc"].$val."' >".$key." </a></li>";
885
                                                        break;
886
                                        }
887
                                }
888
                        }
889
                } else {
890
                        echo "<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>";
891
                        echo "<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>";
892
                }
893
                // Add common items 
894
                echo "<li>";
895

    
896
                        // Display MENU ALL
897
                        echo "<div id='show_all_menu' onmouseover=\"completecleandisplay('show_all_menu');\">";
898
                        $items_per_columns=15;
899
                        $i=-1;
900
                        echo "<table><tr><td valign='top'><table>";
901
                        foreach ($menu as $part => $data){
902
                                if (isset($data['content'])&&count($data['content'])){
903
        
904
                                        if ($i>$items_per_columns){
905
                                                $i=0;
906
                                                echo "</table></td><td valign='top'><table>";
907
                                        }
908
                                        $link="#";
909
                                        if (isset($data['default'])&&!empty($data['default'])){
910
                                                $link=$CFG_GLPI["root_doc"].$data['default'];
911
                                        }
912
                                        echo "<tr><td class='tab_bg_1'><strong><a href=\"$link\" title=\"".$data['title']."\" class='itemP'>".$data['title']."</a></strong></td></tr>"; 
913
                                        $i++;
914
        
915
                                        // list menu item 
916
                                        foreach ($data['content'] as $key => $val) {
917
                                                if ($i>$items_per_columns){
918
                                                        $i=0;
919
                                                        echo "</table></td><td valign='top'><table>";
920
                                                }
921
                                                if (isset($val['page'])&&isset($val['title'])){
922
                                                        echo "<tr><td><a href=\"".$CFG_GLPI["root_doc"].$val['page']."\"";
923
                                                        if (isset($data['shortcut'])&&!empty($data['shortcut'])){
924
                                                                echo " accesskey=\"".$val['shortcut']."\" ";
925
                                                        }
926
                                                                
927
                                                        echo ">".$val['title']."</a></td></tr>\n";
928
                                                        $i++;
929
                                                }
930
                                        }                        
931
                                }
932
                        }
933
                        echo "</table></td></tr></table>";
934
                        
935
                        echo "</div>";
936
                echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
937
                echo "</li>";
938

    
939
                // Bookmark load
940
                echo "<li>";
941
                echo "  <a href='#' onClick=\"var w=window.open('".$CFG_GLPI["root_doc"]."/front/popup.php?popup=load_bookmark' ,'glpibookmarks', 'height=400, width=600, top=100, left=100, scrollbars=yes' );w.focus();\">"; 
942
                echo "   <img src='".$CFG_GLPI["root_doc"]."/pics/bookmark.png' title=\"".$LANG["buttons"][52]." ".$LANG["bookmark"][1]."\"  alt=\"".$LANG["buttons"][52]." ".$LANG["bookmark"][1]."\"    >"; 
943
                echo "  </a>";
944
                echo "</li>";
945

    
946

    
947
/*                echo "<li  id='headercalendar'><img  src='".$CFG_GLPI["root_doc"]."/pics/menu_calendar.png'  alt='".$LANG["buttons"][15]."' title='".$LANG["buttons"][15]."'>";
948

949
                echo "<script type='text/javascript'>";
950
                echo "Calendar.setup(";
951
                echo "{";
952
                echo "ifFormat : '%Y-%m-%d',"; // the datetime format
953
                echo "button : 'headercalendar' "; // ID of the button
954
                echo "});";
955
                echo "</script>";
956
                echo "</li>";
957
*/                
958

    
959
                // MENU ALL
960
                echo "<li >";
961
                echo "<img  alt='' src='".$CFG_GLPI["root_doc"]."/pics/menu_all.png' onclick=\"completecleandisplay('show_all_menu');
962
                \">";
963
                echo "</li>";
964
                showProfileSelecter($CFG_GLPI["root_doc"]."/front/central.php");        
965
                echo "</ul>";        
966

    
967
                echo "        </div>";
968
                        
969
                echo "</div>\n"; // fin header
970

    
971
                
972
                
973
                echo "<div  id='page' >";
974
                
975
                $CFG_GLPI["cache"]->end();
976
        }
977

    
978
        if ($DB->isSlave() && !$DB->first_connection)
979
        {        
980
                echo "<div id='dbslave-float'>";                
981
                echo "<a href='#see_debug'>".$LANG["setup"][809]."</a>";
982
                echo "</div>";
983
        }
984
        
985
        // call function callcron() every 5min
986
        if (isset($_SESSION["glpicrontimer"])){
987
                if (abs(time()-$_SESSION["glpicrontimer"])>300){
988
                        callCron();
989
                        $_SESSION["glpicrontimer"]=time();
990
                } 
991
        } else $_SESSION["glpicrontimer"]=time();
992

    
993
        displayMessageAfterRedirect();
994
}
995

    
996
/**
997
 * Display a div containing a message set in session in the previous page
998
 *
999
 *
1000
 **/
1001
function displayMessageAfterRedirect(){
1002
        // Affichage du message apres redirection
1003
        if (isset($_SESSION["MESSAGE_AFTER_REDIRECT"])&&!empty($_SESSION["MESSAGE_AFTER_REDIRECT"])){
1004
                echo "<div class=\"box\" style=\"margin-bottom:20px;\">";
1005
                echo "<div class=\"box-tleft\"><div class=\"box-tright\"><div class=\"box-tcenter\"></div></div></div>";
1006
                echo "<div class=\"box-mleft\"><div class=\"box-mright\"><div class=\"box-mcenter\">";
1007
                echo "<h3>".$_SESSION["MESSAGE_AFTER_REDIRECT"]."</h3>";
1008
                echo "</div></div></div>";
1009
                echo "<div class=\"box-bleft\"><div class=\"box-bright\"><div class=\"box-bcenter\"></div></div></div>";
1010
                echo "</div>";
1011

    
1012
        } 
1013
        // Clean message
1014
        $_SESSION["MESSAGE_AFTER_REDIRECT"]="";
1015
}
1016
/**
1017
 * Add a message to be displayed after redirect
1018
 *
1019
 * @param $msg Message to add
1020
 * @param $check_once Check if the message is not already added
1021
 **/
1022
function addMessageAfterRedirect($msg,$check_once=false){
1023
        if (!empty($msg)){
1024
                if ($check_once){
1025
                        if (strstr($_SESSION["MESSAGE_AFTER_REDIRECT"],$msg)===false){
1026
                                $_SESSION["MESSAGE_AFTER_REDIRECT"].=$msg.'<br>';
1027
                        }
1028
                } else {
1029
                        $_SESSION["MESSAGE_AFTER_REDIRECT"].=$msg.'<br>';
1030
                }
1031
        }
1032
}
1033

    
1034
/**
1035
 * Print a nice HTML head for help page
1036
 *
1037
 *
1038
 * @param $title title of the page
1039
 * @param $url not used anymore.
1040
 **/
1041
function helpHeader($title,$url='') {
1042
        // Print a nice HTML-head for help page
1043

    
1044
        global $CFG_GLPI,$LANG, $CFG_GLPI,$HEADER_LOADED,$PLUGIN_HOOKS ;
1045

    
1046
        if ($HEADER_LOADED) return;
1047
        $HEADER_LOADED=true;
1048

    
1049
        // Override list-limit if choosen
1050
        if (isset($_POST['list_limit'])) {
1051
                $_SESSION['glpilist_limit']=$_POST['list_limit'];
1052
        }
1053

    
1054

    
1055
        includeCommonHtmlHeader($title);
1056

    
1057
        // Body 
1058
        echo "<body>";
1059

    
1060
        // Main Headline
1061
        echo "<div id='header'>";
1062
                echo "<div id='c_logo' ><a href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php\" accesskey=\"0\"  title=\"".$LANG["central"][5]."\"><span class='invisible'>Logo</span></a></div>";
1063

    
1064
                // Les préférences + lien déconnexion 
1065
                echo "<div id='c_preference' >";
1066
                echo" <ul><li id='deconnexion'><a href=\"".$CFG_GLPI["root_doc"]."/logout.php\"  title=\"".$LANG["central"][6]."\">".$LANG["central"][6]."  </a>";
1067
                echo "(";
1068
                echo formatUserName (0,$_SESSION["glpiname"],$_SESSION["glpirealname"],$_SESSION["glpifirstname"],0,20);
1069
                echo ")</li>\n"; 
1070

    
1071
                echo "        <li><a href='".(empty($CFG_GLPI["helpdeskhelp_url"])?"http://glpi-project.org/help-helpdesk":$CFG_GLPI["helpdeskhelp_url"])."' target='_blank' title='".$LANG["central"][7]."'>    ".$LANG["central"][7]."</a></li>\n"; 
1072
                echo "        <li> <a href=\"".$CFG_GLPI["root_doc"]."/front/user.form.my.php\" title=\"".$LANG["Menu"][11]."\" >".$LANG["Menu"][11]."   </a></li>\n"; 
1073
                                        
1074
                echo "</ul>\n"; 
1075
                echo "<div class='sep'></div>\n"; 
1076
                echo "</div>\n"; 
1077
                //-- Le moteur de recherche -->
1078
                echo "<div id='c_recherche' >\n"; 
1079
                /*
1080
                echo "<form id='recherche' action=''>\n"; 
1081
                echo "        <div id='boutonRecherche'><input type='submit' value='OK' /></div>\n"; 
1082
                echo "        <div id='champRecherche'><input type='text' value='Recherche' /></div>        \n";                 
1083
                echo "</form>\n"; 
1084
                */
1085
                echo "<div class='sep'></div>\n"; 
1086
                echo "</div>";
1087
        
1088
                //<!-- Le menu principal -->
1089
                echo "<div id='c_menu'>";
1090
                echo "        <ul id='menu'>";
1091
                
1092
        
1093
                // Build the navigation-elements
1094
        
1095
                // Ticket
1096
                if (haveRight("create_ticket","1")){
1097
                        echo "        <li id='menu1' >";
1098
                        echo "<a href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php\"  title=\"".$LANG["job"][13]."\" class='itemP'>".$LANG["Menu"][31]."</a>";
1099
                        
1100
                        echo "</li>";                
1101
                }
1102
        
1103
                //  Suivi  ticket
1104
                if (haveRight("observe_ticket","1")){
1105
                        echo "        <li id='menu2' >";
1106
                        echo "<a href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php?show=user\" title=\"".$LANG["title"][10]."\"   class='itemP'>".$LANG["title"][28]."</a>";
1107
                        
1108
                        echo "</li>";
1109
                }
1110
                // Reservation
1111
                if (haveRight("reservation_helpdesk","1")){
1112
                        echo "        <li id='menu3' >";
1113
                        echo "<a href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.resa.php\"  title=\"".$LANG["Menu"][17]."\" class='itemP'>".$LANG["Menu"][17]."</a>";
1114
                        
1115
                        echo "</li>";
1116
                }
1117
        
1118
                // FAQ
1119
                if (haveRight("faq","r")){
1120
                        echo "        <li id='menu4' >";
1121
                        echo "<a href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.faq.php\" title=\"".$LANG["knowbase"][1]."\" class='itemP'>".$LANG["Menu"][20]."</a>";
1122
                        
1123
                        echo "</li>";
1124
                }
1125

    
1126
                // PLUGINS
1127
                $plugins=array();
1128
                if (isset($PLUGIN_HOOKS["helpdesk_menu_entry"])&&count($PLUGIN_HOOKS["helpdesk_menu_entry"]))
1129
                        foreach  ($PLUGIN_HOOKS["helpdesk_menu_entry"] as $plugin => $active) {
1130
                                if ($active){
1131
                                        $function="plugin_version_$plugin";
1132
        
1133
                                        if (function_exists($function))
1134
                                                $plugins[$plugin]=$function();
1135
                                }
1136
                        }
1137
        
1138
                if (isset($plugins)&&count($plugins)>0){
1139
                        $list=array();
1140
                        foreach ($plugins as $key => $val) {
1141
                                $list[$key]=$val["name"];
1142
                        }
1143
                        asort($list);
1144
                        echo "        <li id='menu5' onmouseover=\"javascript:menuAff('menu5','menu');\" >";
1145
                        echo "<a href='#' title=\"".$LANG["common"][29]."\"  class='itemP'>".$LANG["common"][29]."</a>";  // default none
1146
                        echo "<ul class='ssmenu'>"; 
1147
                        // list menu item 
1148
                        foreach ($list as $key => $val) {
1149
                                echo "<li><a href=\"".$CFG_GLPI["root_doc"]."/plugins/".$key."/\">".$plugins[$key]["name"]."</a></li>\n";
1150
                        }
1151
                        echo "</ul>";
1152
                        echo "</li>";
1153
                }
1154
        
1155
                        
1156
                echo "</ul>";                
1157
                echo "<div class='sep'></div>";
1158
                echo "</div>";
1159
        
1160
                // End navigation bar
1161
        
1162
                // End headline
1163
                
1164
                ///Le sous menu contextuel 1
1165
                echo "<div id='c_ssmenu1' >";
1166
                //echo "<ul>";
1167
                //echo "        <li><a href='' title='' >Suivi</a></li>";
1168
                //echo "        <li>Planning</li>";
1169
                //echo "        <li>Statistique</li>";
1170
                //echo "        <li>Helpdesk</li>";
1171
                //echo "</ul>";
1172
                echo "</div>";
1173

    
1174
                //  Le fil d arianne 
1175
                echo "<div id='c_ssmenu2' >";
1176
                echo "<ul>";
1177
                echo "        <li><a href='#' title='' >Helpdesk > </a></li>";
1178
                showProfileSelecter($CFG_GLPI["root_doc"]."/front/helpdesk.public.php");        
1179
                echo "</ul>";        
1180
                echo "        </div>";
1181
                        
1182
                echo "</div>\n"; // fin header
1183

    
1184
                echo "<div  id='page' >";
1185
                
1186
        
1187
        
1188
        
1189

    
1190
        // call function callcron() every 5min
1191
        if (isset($_SESSION["glpicrontimer"])){
1192
                if (($_SESSION["glpicrontimer"]-time())>300){
1193
                        callCron();
1194
                        $_SESSION["glpicrontimer"]=time();
1195
                }
1196
        } else $_SESSION["glpicrontimer"]=time();
1197

    
1198
        displayMessageAfterRedirect();
1199
}
1200

    
1201

    
1202
/**
1203
 * Print a simple HTML head with links
1204
 *
1205
 *
1206
 * @param $title title of the page
1207
 * @param $links links to display
1208
 **/
1209
function simpleHeader($title,$links=array()) {
1210
        // Print a nice HTML-head for help page
1211

    
1212
        global $CFG_GLPI,$LANG, $CFG_GLPI,$HEADER_LOADED ;
1213

    
1214
        if ($HEADER_LOADED) return;
1215
        $HEADER_LOADED=true;
1216

    
1217
        // Override list-limit if choosen
1218
        if (isset($_POST['list_limit'])) {
1219
                $_SESSION['glpilist_limit']=$_POST['list_limit'];
1220
        }
1221

    
1222
        includeCommonHtmlHeader($title);
1223

    
1224
        // Body 
1225
        echo "<body>";
1226

    
1227
        // Main Headline
1228
        echo "<div id='header'>";
1229
        echo "<div id='c_logo' ><a href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php\" accesskey=\"0\"  title=\"".$LANG["central"][5]."\"><span class='invisible'>Logo</span></a></div>";
1230

    
1231
        // Les préférences + lien déconnexion 
1232
        echo "<div id='c_preference' >";
1233
        echo "<div class='sep'></div>\n"; 
1234
        echo "</div>\n"; 
1235
        //-- Le moteur de recherche -->
1236
        echo "<div id='c_recherche' >\n"; 
1237
        /*
1238
        echo "<form id='recherche' action=''>\n"; 
1239
        echo "        <div id='boutonRecherche'><input type='submit' value='OK' /></div>\n"; 
1240
        echo "        <div id='champRecherche'><input type='text' value='Recherche' /></div>        \n";                 
1241
        echo "</form>\n"; 
1242
        */
1243
        echo "<div class='sep'></div>\n"; 
1244
        echo "</div>";
1245

    
1246
        //<!-- Le menu principal -->
1247
        echo "<div id='c_menu'>";
1248
        echo "        <ul id='menu'>";
1249
        
1250
        // Build the navigation-elements
1251
        if (count($links)){
1252
                $i=1;
1253
                foreach ($links as $name => $link){
1254
                        echo "        <li id='menu$i' >";
1255
                        echo "<a href=\"$link\" title=\"".$name."\"   class='itemP'>".$name."</a>";
1256
                        echo "</li>";        
1257
                        $i++;
1258
                }
1259
        }
1260
                        
1261
        echo "</ul>";                
1262
        echo "</div>";
1263
        // End navigation bar
1264
        
1265
        // End headline
1266
                
1267
        ///Le sous menu contextuel 1
1268
        echo "<div id='c_ssmenu1' >";
1269
        echo "</div>";
1270

    
1271
        //  Le fil d arianne 
1272
        echo "<div id='c_ssmenu2' >";
1273
        echo "        </div>";
1274
                
1275
        echo "</div>\n"; // fin header
1276

    
1277
        echo "<div  id='page' >";
1278

    
1279
        // call function callcron() every 5min
1280
        if (isset($_SESSION["glpicrontimer"])){
1281
                if (($_SESSION["glpicrontimer"]-time())>300){
1282
                        callCron();
1283
                        $_SESSION["glpicrontimer"]=time();
1284
                }
1285
        } else $_SESSION["glpicrontimer"]=time();
1286

    
1287
//        displayMessageAfterRedirect();
1288
}
1289

    
1290

    
1291
/**
1292
 * Print a nice HTML head with no controls
1293
 *
1294
 *
1295
 * @param $title title of the page
1296
 * @param $url not used anymore.
1297
 **/
1298
function nullHeader($title,$url='') {
1299
        global $CFG_GLPI,$HEADER_LOADED,$LANG ;
1300
        if ($HEADER_LOADED) return;
1301
        $HEADER_LOADED=true;
1302
        // Print a nice HTML-head with no controls
1303

    
1304
        // Detect root_doc in case of error
1305
        if (!isset($CFG_GLPI["root_doc"])){
1306
                if ( !isset($_SERVER['REQUEST_URI']) ) {
1307
                        $_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];
1308
                }
1309
                $currentdir=getcwd();
1310
                chdir(GLPI_ROOT);
1311
                $glpidir=str_replace(str_replace('\\', '/',getcwd()),"",str_replace('\\', '/',$currentdir));
1312
                chdir($currentdir);
1313
                        
1314
                $globaldir=preg_replace("/\/[0-9a-zA-Z\.\-\_]+\.php/","",$_SERVER['REQUEST_URI']);
1315
                $globaldir=preg_replace("/\?.*/","",$globaldir);
1316
                $CFG_GLPI["root_doc"]=str_replace($glpidir,"",$globaldir);
1317
                $CFG_GLPI["root_doc"]=preg_replace("/\/$/","",$CFG_GLPI["root_doc"]);
1318
                $CFG_GLPI["logotxt"]="";
1319
        }
1320

    
1321
        // Send UTF8 Headers
1322
        header("Content-Type: text/html; charset=UTF-8");
1323

    
1324
        // Override list-limit if choosen
1325
        if (isset($_POST['list_limit'])) {
1326
                $_SESSION['glpilist_limit']=$_POST['list_limit'];
1327
        }
1328

    
1329
        // Send extra expires header if configured
1330
        if (!empty($CFG_GLPI["sendexpire"])) {
1331
                header_nocache();
1332
        }
1333

    
1334
        if (isCommandLine()){
1335
                return true;
1336
        }
1337

    
1338

    
1339
        includeCommonHtmlHeader($title);
1340

    
1341

    
1342
        // Body with configured stuff
1343
        echo "<body>";
1344

    
1345
        echo "<div id='contenu-nullHeader'>";
1346

    
1347
        echo "<div id='text-nullHeader'>";
1348
}
1349

    
1350
/**
1351
 * Print a nice HTML head for popup window (nothing to display)
1352
 *
1353
 *
1354
 * @param $title title of the page
1355
 * @param $url not used anymore.
1356
 **/
1357
function popHeader($title,$url='')
1358
{
1359
        // Print a nice HTML-head for every page
1360

    
1361
        global $CFG_GLPI,$LANG,$PLUGIN_HOOKS,$HEADER_LOADED ;
1362

    
1363
        if ($HEADER_LOADED) return;
1364
        $HEADER_LOADED=true;
1365

    
1366

    
1367
        // Override list-limit if choosen
1368
        if (isset($_POST['list_limit'])) {
1369
                $_SESSION['glpilist_limit']=$_POST['list_limit'];
1370
        }
1371

    
1372
        includeCommonHtmlHeader($title);        // Body 
1373

    
1374
        echo "<body>";
1375

    
1376
        displayMessageAfterRedirect();
1377
}
1378

    
1379
/**
1380
 * Print footer for a popup window
1381
 *
1382
 *
1383
 **/
1384
function popFooter() {
1385
        global $FOOTER_LOADED;
1386

    
1387
        if ($FOOTER_LOADED) return;
1388
        $FOOTER_LOADED=true;
1389

    
1390
        // Print foot 
1391

    
1392
        echo "</body></html>";
1393
}
1394

    
1395

    
1396

    
1397

    
1398

    
1399

    
1400

    
1401

    
1402

    
1403

    
1404

    
1405
/**
1406
 * Print footer for every page
1407
 *
1408
 * @param $keepDB booleen, closeDBConnections if false
1409
 *
1410
 **/
1411
function commonFooter($keepDB=false) {
1412
        // Print foot for every page
1413

    
1414
        global $LANG,$CFG_GLPI,$DEBUG_SQL,$TIMER_DEBUG,$SQL_TOTAL_TIMER,$SQL_TOTAL_REQUEST,$FOOTER_LOADED;
1415

    
1416
        if ($FOOTER_LOADED) return;
1417
        $FOOTER_LOADED=true;
1418

    
1419
        echo "</div>"; // fin de la div id ='page' initiée dans la fonction header
1420
        
1421
        echo "<div id='footer' >";
1422
        echo "<table width='100%'><tr><td class='left'><span class='copyright'>";
1423
        echo $TIMER_DEBUG->Get_Time()."s - ";
1424
        if (function_exists("memory_get_usage")){
1425
                echo memory_get_usage();
1426
        }
1427
        echo "</span></td>";
1428

    
1429
        if (!empty($CFG_GLPI["founded_new_version"]))
1430
                echo "<td class='copyright'>".$LANG["setup"][301]." ".$CFG_GLPI["founded_new_version"]."<br>".$LANG["setup"][302]."</td>";
1431

    
1432
        echo "<td class='right'>";
1433
        echo "<a href=\"http://glpi-project.org/\">";
1434
        echo "<span class='copyright'>GLPI ".$CFG_GLPI["version"]." Copyright (C) 2003-".date("Y")." by the INDEPNET Development Team.</span>";
1435
        echo "</a>";
1436

    
1437
        echo "</td></tr>";
1438
        echo "</table></div>";
1439

    
1440

    
1441

    
1442
        if ($CFG_GLPI["debug"]==1){ // debug mode traduction
1443

    
1444
                echo "<div id='debug-float'>";                
1445
                echo "<a href='#see_debug'>GLPI MODE TRANSLATION</a>";
1446
                echo "</div>";
1447
        }
1448

    
1449
        if ($CFG_GLPI["debug"]==2){ // mode debug 
1450

    
1451
                echo "<div id='debug-float'>";                
1452
                echo "<a href='#see_debug'>GLPI MODE DEBUG</a>";
1453
                echo "</div>";
1454

    
1455

    
1456

    
1457
                echo "<div id='debug'>";
1458
                echo "<h1><a id='see_debug' name='see_debug'>GLPI MODE DEBUG</a></h1>";
1459
                
1460
                if ($CFG_GLPI["debug_sql"]){        
1461
                        echo "<h2>SQL REQUEST : ";
1462
                        
1463
                        echo $SQL_TOTAL_REQUEST." Queries ";
1464
                        if ($CFG_GLPI["debug_profile"]){
1465
                                echo "took  ".array_sum($DEBUG_SQL['times'])."s  </h2>";
1466
                        }
1467

    
1468
                        echo "<table class='tab_cadre' ><tr><th>N&#176; </th><th>Queries</th><th>Time</th><th>Errors</th></tr>";
1469

    
1470
                        foreach ($DEBUG_SQL['queries'] as $num => $query){
1471
                                echo "<tr class='tab_bg_".(($num%2)+1)."'><td>$num</td><td>";
1472
                                echo eregi_replace("ORDER BY","<br>ORDER BY",eregi_replace("SORT","<br>SORT",eregi_replace("LEFT JOIN","<br>LEFT JOIN",eregi_replace("INNER JOIN","<br>INNER JOIN",eregi_replace("WHERE","<br>WHERE",eregi_replace("FROM","<br>FROM",eregi_replace("UNION","<br>UNION<br>",eregi_replace(">","&gt;",eregi_replace("<","&lt;",$query)))))))));
1473
                                echo "</td><td>";
1474
                                echo $DEBUG_SQL['times'][$num];
1475
                                echo "</td><td>";
1476
                                if (isset($DEBUG_SQL['errors'][$num])){
1477
                                        echo $DEBUG_SQL['errors'][$num];
1478
                                } else {
1479
                                        echo "&nbsp;";
1480
                                }
1481
                                echo "</td></tr>";
1482
                        }
1483
                        echo "</table>";
1484
                        
1485
                        // Reset, as further request will not be displayed
1486
                        $CFG_GLPI["debug_sql"]=false;
1487
                }
1488
                
1489
                
1490
                
1491
                if ($CFG_GLPI["debug_vars"]){
1492
                        echo "<h2>POST VARIABLE</h2>";
1493
                        printCleanArray($_POST);
1494
                        echo "<h2>GET VARIABLE</h2>";
1495
                        printCleanArray($_GET);
1496
                        echo "<h2>SESSION VARIABLE</h2>";
1497
                        printCleanArray($_SESSION);
1498
                }
1499
                
1500
                
1501
                
1502
                echo "</div>";
1503
        }
1504
        echo "</body></html>";
1505
        
1506
        if (!$keepDB) {
1507
                closeDBConnections();
1508
        }
1509
}
1510

    
1511
/**
1512
 * Print footer for help page
1513
 *
1514
 *
1515
 **/
1516
function helpFooter() {
1517
        // Print foot for help page
1518
        global $CFG_GLPI,$FOOTER_LOADED;
1519

    
1520
        if ($FOOTER_LOADED) return;
1521
        $FOOTER_LOADED=true;
1522
        
1523
        echo "</div>"; // fin de la div id ='page' initiée dans la fonction header
1524

    
1525
        echo "<div id='footer'>";
1526
        echo "<table width='100%'><tr>";
1527
        echo "<td class='right'>";
1528
        echo "<a href=\"http://glpi-project.org/\">";
1529
        echo "<span class='copyright'>GLPI ".$CFG_GLPI["version"]." Copyright (C) 2003-".date("Y")." by the INDEPNET Development Team.</span>";
1530
        echo "</a></tr></table>";
1531
        echo "</div>";
1532

    
1533
        echo "</body></html>";
1534
        closeDBConnections();
1535
}
1536

    
1537
/**
1538
 * Print footer for null page
1539
 *
1540
 *
1541
 **/
1542
function nullFooter() {
1543
        // Print foot for null page
1544
        global $CFG_GLPI,$FOOTER_LOADED;
1545

    
1546
        if ($FOOTER_LOADED) return;
1547
        $FOOTER_LOADED=true;
1548

    
1549
        if (!isCommandLine()){
1550
                echo "</div>";  // fin box text-nullHeader ouvert dans le null header
1551
                echo "</div>"; // fin contenu-nullHeader ouvert dans le null header
1552
                
1553
        
1554
                echo "<div id='footer-login'>";
1555
                echo "<a href=\"http://glpi-project.org/\" title=\"Powered By Indepnet\"  >";
1556
                echo 'GLPI version '.(isset($CFG_GLPI["version"])?$CFG_GLPI["version"]:"").' Copyright (C) 2003-'.date("Y").' INDEPNET Development Team.';
1557
                echo "</a>";
1558
                echo "</div>";
1559
                
1560
                echo "</body></html>";
1561
        }
1562
        
1563
        closeDBConnections();
1564
}
1565

    
1566

    
1567
/**
1568
 * Print the helpdesk 
1569
 *
1570
 * @param $ID int : ID of the user who want to display the Helpdesk
1571
 * @param $from_helpdesk int : is display from the helpdesk.php ?
1572
 * @return nothing (print the helpdesk)
1573
 */
1574
function printHelpDesk ($ID,$from_helpdesk) {
1575

    
1576
        global $DB,$CFG_GLPI,$LANG;
1577

    
1578
        if (!haveRight("create_ticket","1")) return false;
1579

    
1580
        $query = "SELECT email,realname,firstname,name FROM glpi_users WHERE (ID = '$ID')";
1581
        $result=$DB->query($query);
1582
        $email = $DB->result($result,0,"email");
1583

    
1584
        // Get saved data from a back system
1585
        $emailupdates = 1;
1586
        if ($email=="") $emailupdates=0;
1587
        $device_type = 0;
1588
        $computer="";
1589
        $contents="";
1590
        $title="";
1591
        $category = 0;
1592
        $priority  = 3;
1593

    
1594

    
1595
        if (isset($_SESSION["helpdeskSaved"]["emailupdates"]))
1596
                $emailupdates = stripslashes($_SESSION["helpdeskSaved"]["emailupdates"]);
1597
        if (isset($_SESSION["helpdeskSaved"]["email"]))
1598
                $email = stripslashes($_SESSION["helpdeskSaved"]["uemail"]);
1599
        if (isset($_SESSION["helpdeskSaved"]["device_type"]))
1600
                $device_type = stripslashes($_SESSION["helpdeskSaved"]["device_type"]);
1601
        if (isset($_SESSION["helpdeskSaved"]["contents"]))
1602
                $contents = stripslashes($_SESSION["helpdeskSaved"]["contents"]);
1603
        if (isset($_SESSION["helpdeskSaved"]["name"]))
1604
                $title = stripslashes($_SESSION["helpdeskSaved"]["name"]);
1605
        if (isset($_SESSION["helpdeskSaved"]["category"]))
1606
                $category = stripslashes($_SESSION["helpdeskSaved"]["category"]);
1607
        if (isset($_SESSION["helpdeskSaved"]["priority"]))
1608
                $priority = stripslashes($_SESSION["helpdeskSaved"]["priority"]);
1609
        unset($_SESSION["helpdeskSaved"]);
1610
        
1611

    
1612
        echo "<form method='post' name=\"helpdeskform\" action=\"".$CFG_GLPI["root_doc"]."/front/tracking.injector.php\"  enctype=\"multipart/form-data\">";
1613
        echo "<input type='hidden' name='_from_helpdesk' value='$from_helpdesk'>";
1614
        echo "<input type='hidden' name='request_type' value='1'>";
1615
        echo "<input type='hidden' name='FK_entities' value='".$_SESSION["glpiactive_entity"]."'>";
1616
        echo "<div class='center'><table  class='tab_cadre'>";
1617

    
1618
        echo "<tr><th colspan='2'>".$LANG["help"][1].": ";
1619
        if (isMultiEntitiesMode()){
1620
                echo "&nbsp;(".getDropdownName("glpi_entities",$_SESSION["glpiactive_entity"]).")";
1621
        }
1622

    
1623
        echo "</th></tr>";
1624
        echo "<tr class='tab_bg_1'>";
1625
        echo "<td>".$LANG["help"][2].": </td>";
1626
        echo "<td>";
1627
        dropdownPriority("priority",$priority);
1628
        echo "</td></tr>";
1629
        if(isAuthorMailingActivatedForHelpdesk()){
1630
                echo "<tr class='tab_bg_1'>";
1631
                echo "<td>".$LANG["help"][8].":</td>";
1632
                echo "<td>";
1633
                dropdownYesNo('emailupdates',$emailupdates);
1634
                echo "</td></tr>";
1635
                echo "<tr class='tab_bg_1'>";
1636
                echo "<td>".$LANG["help"][11].":</td>";
1637
                echo "<td>        <input name='uemail' value=\"$email\" size='50' onchange=\"emailupdates.value='1'\">";
1638
                echo "</td></tr>";
1639
        }
1640

    
1641
        if ($_SESSION["glpiactiveprofile"]["helpdesk_hardware"]!=0){
1642
                echo "<tr class='tab_bg_1'>";
1643
                echo "<td>".$LANG["help"][24].": </td>";
1644
                echo "<td class='center'>";
1645
                dropdownMyDevices($_SESSION["glpiID"],$_SESSION["glpiactive_entity"]);
1646
                
1647
                dropdownTrackingAllDevices("device_type",$device_type,0,$_SESSION["glpiactive_entity"]);
1648
                echo "</td></tr>";
1649
        }
1650

    
1651
        echo "<tr class='tab_bg_1'>";
1652
        echo "<td>".$LANG["common"][36].":</td><td>";
1653

    
1654
        dropdownValue("glpi_dropdown_tracking_category","category",$category);
1655
        echo "</td>";
1656
        echo "</tr>";
1657

    
1658
        echo "<tr class='tab_bg_1'>";
1659
        echo "<td colspan='2' align='center'>".$LANG["help"][13].":</td>";
1660
        echo "</tr>";
1661
        echo "<tr class='tab_bg_1'>";
1662
        echo "<td class='center'>".$LANG["common"][57].":</td>";
1663
        echo "<td class='center'><input type='text' maxlength='250' size='80' name='name' value=\"$title\"></td>";
1664
        echo "</tr>";
1665

    
1666
        echo "<tr class='tab_bg_1'>";
1667
        echo "<td colspan='2' align='center'><textarea name='contents' cols='80' rows='14' >$contents</textarea>";
1668
        echo "</td></tr>";
1669

    
1670
        $max_size=return_bytes_from_ini_vars(ini_get("upload_max_filesize"));
1671
        $max_size/=1024*1024;
1672
        $max_size=round($max_size,1);
1673

    
1674
        echo "<tr class='tab_bg_1'><td>".$LANG["document"][2]." (".$max_size." Mb max):        ";
1675
        echo "<img src=\"".$CFG_GLPI["root_doc"]."/pics/aide.png\" class='pointer' alt=\"".$LANG["central"][7]."\" onclick=\"window.open('".$CFG_GLPI["root_doc"]."/front/typedoc.list.php','Help','scrollbars=1,resizable=1,width=1000,height=800')\">";
1676
        echo "</td>";
1677
        echo "<td><input type='file' name='filename' value=\"\" size='25'></td>";
1678
        echo "</tr>";
1679

    
1680
        echo "<tr class='tab_bg_1'>";
1681
        echo "<td colspan='2' class='center'> <input type='submit' value=\"".$LANG["help"][14]."\" class='submit'>";
1682
        echo "</td></tr>";
1683

    
1684
        echo "</table>";
1685
        echo "</div>";
1686
        echo "</form>";
1687

    
1688
}
1689

    
1690
/**
1691
 * Display the list_limit combo choice
1692
 * 
1693
 * 
1694
 * @param $action page would be posted when change the value (URL + param)
1695
 * @return nothing (print a combo)
1696
 * 
1697
 */
1698
function printPagerForm ($action) {
1699
        global $LANG;
1700
        
1701
        echo "<form method='POST' action=\"$action\">\n";
1702
        echo "<span>".$LANG["pager"][4]."&nbsp;</span>";
1703
        echo "<select name='list_limit' onChange='submit()'>";
1704

    
1705
        for ($i=5;$i<20;$i+=5) echo "<option value='$i' ".((isset($_SESSION["glpilist_limit"])&&$_SESSION["glpilist_limit"]==$i)?" selected ":"").">$i</option>\n";
1706
        for ($i=20;$i<50;$i+=10) echo "<option value='$i' ".((isset($_SESSION["glpilist_limit"])&&$_SESSION["glpilist_limit"]==$i)?" selected ":"").">$i</option>\n";
1707
        for ($i=50;$i<250;$i+=50) echo "<option value='$i' ".((isset($_SESSION["glpilist_limit"])&&$_SESSION["glpilist_limit"]==$i)?" selected ":"").">$i</option>\n";
1708
        for ($i=250;$i<1000;$i+=250) echo "<option value='$i' ".((isset($_SESSION["glpilist_limit"])&&$_SESSION["glpilist_limit"]==$i)?" selected ":"").">$i</option>\n";
1709
        for ($i=1000;$i<5000;$i+=1000) echo "<option value='$i' ".((isset($_SESSION["glpilist_limit"])&&$_SESSION["glpilist_limit"]==$i)?" selected ":"").">$i</option>\n";
1710
        for ($i=5000;$i<=10000;$i+=5000) echo "<option value='$i' ".((isset($_SESSION["glpilist_limit"])&&$_SESSION["glpilist_limit"]==$i)?" selected ":"").">$i</option>\n";
1711
        echo "<option value='9999999' ".((isset($_SESSION["glpilist_limit"])&&$_SESSION["glpilist_limit"]==9999999)?" selected ":"").">9999999</option>\n";        
1712

    
1713
        echo "</select><span>&nbsp;";
1714
        echo $LANG["pager"][5];
1715
        echo "</span>";
1716
        echo "</form>\n";
1717
}
1718

    
1719
/**
1720
 * Print pager for search option (first/previous/next/last)
1721
 *
1722
 *
1723
 *
1724
 * @param $start from witch item we start
1725
 * @param $numrows total items
1726
 * @param $target page would be open when click on the option (last,previous etc)
1727
 * @param $parameters parameters would be passed on the URL.
1728
 * @param $item_type_output item type display - if >0 display export PDF et Sylk form
1729
 * @param $item_type_output_param item type parameter for export
1730
 * @return nothing (print a pager)
1731
 *
1732
 */
1733
function printPager($start,$numrows,$target,$parameters,$item_type_output=0,$item_type_output_param=0) {
1734

    
1735
        global $CFG_GLPI, $LANG,$CFG_GLPI;
1736

    
1737
        // Forward is the next step forward
1738
        $forward = $start+$_SESSION["glpilist_limit"];
1739

    
1740
        // This is the end, my friend        
1741
        $end = $numrows-$_SESSION["glpilist_limit"];
1742

    
1743
        // Human readable count starts here
1744
        $current_start=$start+1;
1745

    
1746
        // And the human is viewing from start to end
1747
        $current_end = $current_start+$_SESSION["glpilist_limit"]-1;
1748
        if ($current_end>$numrows) {
1749
                $current_end = $numrows;
1750
        }
1751

    
1752
        // Backward browsing 
1753
        if ($current_start-$_SESSION["glpilist_limit"]<=0) {
1754
                $back=0;
1755
        } else {
1756
                $back=$start-$_SESSION["glpilist_limit"];
1757
        }
1758

    
1759
        // Print it
1760

    
1761
        echo "<table class='tab_cadre_pager'>\n";
1762
        echo "<tr>\n";
1763

    
1764
        // Back and fast backward button
1765
        if (!$start==0) {
1766
                echo "<th class='left'>";
1767
                echo "<a href=\"$target?$parameters&amp;start=0\">";
1768
                echo "<img src=\"".$CFG_GLPI["root_doc"]."/pics/first.png\" alt='".$LANG["buttons"][33]."' title='".$LANG["buttons"][33]."'>";
1769

    
1770

    
1771
                echo "</a></th>\n";
1772
                echo "<th class='left'>";
1773
                echo "<a href=\"$target?$parameters&amp;start=$back\">";
1774
                echo "<img src=\"".$CFG_GLPI["root_doc"]."/pics/left.png\" alt='".$LANG["buttons"][12]."' title='".$LANG["buttons"][12]."'>";
1775
                echo "</a></th>\n";
1776
        }
1777

    
1778
        // Print the "where am I?" 
1779
        echo "<td width='50%'  class='tab_bg_2'>";
1780
        printPagerForm("$target?$parameters&amp;start=$start");
1781
        echo "</td>\n";
1782

    
1783
        if ($item_type_output>0&&isset($_SESSION["glpiactiveprofile"])&&$_SESSION["glpiactiveprofile"]["interface"]=="central"){
1784
                echo "<td class='tab_bg_2' width='30%'>" ;
1785
                echo "<form method='GET' action=\"".$CFG_GLPI["root_doc"]."/front/report.dynamic.php\" target='_blank'>\n";
1786
                echo "<input type='hidden' name='item_type' value='$item_type_output'>";
1787
                if ($item_type_output_param!=0)
1788
                        echo "<input type='hidden' name='item_type_param' value='".serialize($item_type_output_param)."'>";
1789
                $split=split("&amp;",$parameters);
1790
                for ($i=0;$i<count($split);$i++){
1791
                        $pos=strpos($split[$i],'=');
1792
                        echo "<input type='hidden' name=\"".substr($split[$i],0,$pos)."\" value=\"".substr($split[$i],$pos+1)."\">";
1793
                }
1794
                echo "<select name='display_type'>";
1795
                echo "<option value='".PDF_OUTPUT_LANDSCAPE."'>".$LANG["buttons"][27]." ".$LANG["common"][68]."</option>";
1796
                echo "<option value='".PDF_OUTPUT_PORTRAIT."'>".$LANG["buttons"][27]." ".$LANG["common"][69]."</option>";
1797
                echo "<option value='".SYLK_OUTPUT."'>".$LANG["buttons"][28]."</option>";
1798
                echo "<option value='".CSV_OUTPUT."'>".$LANG["buttons"][44]."</option>";
1799
                echo "<option value='-".PDF_OUTPUT_LANDSCAPE."'>".$LANG["buttons"][29]." ".$LANG["common"][68]."</option>";
1800
                echo "<option value='-".PDF_OUTPUT_PORTRAIT."'>".$LANG["buttons"][29]." ".$LANG["common"][69]."</option>";
1801
                echo "<option value='-".SYLK_OUTPUT."'>".$LANG["buttons"][30]."</option>";
1802
                echo "<option value='-".CSV_OUTPUT."'>".$LANG["buttons"][45]."</option>";
1803
                echo "</select>";
1804
                echo "&nbsp;<input type='image' name='export'  src='".$CFG_GLPI["root_doc"]."/pics/greenbutton.png' title='".$LANG["buttons"][31]."' value='".$LANG["buttons"][31]."'>";
1805
                echo "</form>";
1806
                echo "</td>" ;
1807
        }
1808

    
1809
        echo "<td  width='50%'  class='tab_bg_2'><strong>";
1810

    
1811
        echo $LANG["pager"][2]."&nbsp;".$current_start."&nbsp;".$LANG["pager"][1]."&nbsp;".$current_end."&nbsp;".$LANG["pager"][3]."&nbsp;".$numrows."&nbsp;";
1812
        echo "</strong></td>\n";
1813

    
1814
        // Forward and fast forward button
1815
        if ($forward<$numrows) {
1816
                echo "<th class='right'>";
1817
                echo "<a href=\"$target?$parameters&amp;start=$forward\">";
1818
                echo "<img src=\"".$CFG_GLPI["root_doc"]."/pics/right.png\" alt='".$LANG["buttons"][11]."' title='".$LANG["buttons"][11]."'>";
1819
                echo "</a></th>\n";
1820
                echo "<th class='right'>";
1821
                echo "<a href=\"$target?$parameters&amp;start=$end\">";
1822
                echo "<img src=\"".$CFG_GLPI["root_doc"]."/pics/last.png\" alt='".$LANG["buttons"][32]."' title='".$LANG["buttons"][32]."'>";
1823
                echo "</a></th>\n";
1824
        }
1825

    
1826
        // End pager
1827
        echo "</tr>\n";
1828
        echo "</table><br>\n";
1829

    
1830
}
1831

    
1832

    
1833
/**
1834
 * Display calendar form
1835
 *
1836
 * @param $form form in which the calendar is display
1837
 * @param $element name of the element
1838
 * @param $value default value to display
1839
 * @param $can_edit could not modify element
1840
 * @param $with_time use datetime format instead of date format ?
1841
 * @param $with_reset do not display reset button
1842
 * @return nothing
1843
 */
1844
function showCalendarForm($form,$element,$value='',$can_edit=true,$with_time=false,$with_reset=true){
1845
        global $LANG,$CFG_GLPI;
1846
        $rand=mt_rand();
1847
        if (empty($value)) {
1848
                if ($with_time) $value=date("Y-m-d H:i");
1849
                else         $value=date("Y-m-d");
1850
        }
1851

    
1852
        $size=10;
1853
        $dvalue=$value;
1854
        if ($with_time) {
1855
                $size=18;
1856
                $dvalue=convDateTime($value);
1857
        } else {
1858
                $dvalue=convDate($value);
1859
        }
1860
        
1861
        echo "<input id='show$rand' type='text' name='____".$element."_show' readonly size='$size' value=\"".$dvalue."\">";
1862
        echo "<input id='data$rand' type='hidden' name='$element' size='$size' value=\"".$value."\">";
1863

    
1864
        if ($can_edit){
1865
                echo "&nbsp;<img id='button$rand' src='".$CFG_GLPI["root_doc"]."/pics/calendar.png' class='calendrier' alt='".$LANG["buttons"][15]."' title='".$LANG["buttons"][15]."'>";
1866

    
1867
                if ($with_reset){
1868
                        echo "&nbsp;<img src='".$CFG_GLPI["root_doc"]."/pics/reset.png' class='calendrier' onclick=\"window.document.getElementById('data$rand').value='0000-00-00".($with_time?" 00:00":"")."';window.document.getElementById('show$rand').value='".($with_time?convDateTime("0000-00-00 00:00"):convDate("0000-00-00"))."'\" alt='Reset' title='Reset'>";        
1869
                }
1870

    
1871
                echo "<script type='text/javascript'>";
1872
                echo "Calendar.setup(";
1873
                echo "{";
1874
                echo "inputField : 'data$rand',"; // ID of the input field
1875
                if ($with_time){
1876
                        echo "ifFormat : '%Y-%m-%d %H:%M',"; // the date format
1877
                        echo "showsTime : true,"; 
1878
                }
1879
                else {
1880
                        echo "ifFormat : '%Y-%m-%d',"; // the datetime format
1881
                }
1882
                echo "button : 'button$rand'"; // ID of the button
1883
                echo "});";
1884
                echo "</script>";
1885

    
1886
                echo "<script type='text/javascript' >\n";
1887
                echo "   new Form.Element.Observer('data$rand', 1, \n";
1888
                echo "      function(element, value) {\n";
1889
                if (!$CFG_GLPI["dateformat"]){
1890
                        echo "window.document.getElementById('show$rand').value=value;";
1891
                } else {
1892
                        if ($with_time){
1893
                                echo "if (value!='0000-00-00 00:00'){";
1894
                                        echo "var d=Date.parseDate(value,'%Y-%m-%d %H:%M');";
1895
                                        echo "window.document.getElementById('show$rand').value=d.print('%d-%m-%Y %H:%M');";
1896
                                echo "}";
1897
                        } else {
1898
                                echo "if (value!='0000-00-00'){";
1899
                                        echo "var d=Date.parseDate(value,'%Y-%m-%d');";
1900
                                        echo "window.document.getElementById('show$rand').value=d.print('%d-%m-%Y');";
1901
                                echo "}";
1902
                        }
1903
                }
1904
                echo "})\n";
1905
                echo "</script>\n";
1906
        }
1907
}
1908

    
1909
/**
1910
 *  show notes for item
1911
 *
1912
 * @param $target target page to update item
1913
 * @param $type item type of the device to display notes
1914
 * @param $id id of the device to display notes
1915
 * @return nothing
1916
 */
1917
function showNotesForm($target,$type,$id){
1918
        global $LANG;
1919

    
1920
        if (!haveRight("notes","r")) return false;
1921
        //new objet
1922
        $ci =new CommonItem;
1923
        //getFromDB
1924
        $ci->getFromDB ($type,$id);
1925

    
1926

    
1927
        echo "<form name='form' method='post' action=\"".$target."\">";
1928
        echo "<div class='center'>";
1929
        echo "<table class='tab_cadre_fixe' >";
1930
        echo "<tr><th align='center' >";
1931
        echo $LANG["title"][37];
1932
        echo "</th></tr>";
1933
        echo "<tr><td valign='middle' align='center' class='tab_bg_1' ><textarea class='textarea_notes' cols='100' rows='35' name='notes' >".$ci->getField('notes')."</textarea></td></tr>";
1934
        echo "<tr><td class='tab_bg_2' align='center' >\n";
1935
        echo "<input type='hidden' name='ID' value=$id>";
1936
        if (haveRight("notes","w"))
1937
                echo "<input type='submit' name='update' value=\"".$LANG["buttons"][7]."\" class='submit'>";
1938
        echo "</td></tr>\n";
1939
        echo "</table></div></form>";
1940
}
1941

    
1942
/**
1943
 * Set page not to use the cache
1944
 *
1945
 *
1946
 **/
1947
function header_nocache(){
1948
        header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
1949
        header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passe
1950
}
1951

    
1952
/**
1953
 * Flush the current displayed items (do not works really fine)
1954
 *
1955
 *
1956
 **/
1957
function glpi_flush(){
1958
        flush();
1959
        if (function_exists("ob_flush") && ob_get_length () !== FALSE) ob_flush();
1960
}
1961

    
1962
/**
1963
 * Display a simple progress bar
1964
 * @param $width Width of the progress bar
1965
 * @param $percent Percent of the progress bar
1966
 * @return nothing
1967
 *
1968
 *
1969
 **/
1970
function displayProgressBar($width,$percent){
1971
        global $LANG;
1972
        $percentwidth=floor($percent*$width/100);
1973
        echo str_pad("<div class='center'><table class='tab_cadre' width='$width'><tr><td width='$width' align='center'> ".$LANG["common"][47]."&nbsp;".$percent."%</td></tr><tr><td><table><tr><td bgcolor='red'  width='$percentwidth' height='20'>&nbsp;</td></tr></table></td></tr></table></div>\n",4096);
1974
        glpi_flush();
1975
}
1976
/**
1977
 * Clean Printing of and array in a table 
1978
 * @param $tab the array to display
1979
 * @param $pad Pad used
1980
 * @return nothing
1981
 *
1982
 *
1983
 **/
1984
function printCleanArray($tab,$pad=0){
1985
        if (count($tab)){
1986
                echo "<table class='tab_cadre'>";
1987
                echo "<tr><th>KEY</th><th>=></th><th>VALUE</th></tr>";
1988
                foreach($tab as $key => $val){
1989
                        echo "<tr class='tab_bg_1'><td valign='top' align='right'>";
1990
                        echo $key;
1991
                        echo "</td><td valign='top'>=></td><td valign='top'  class='tab_bg_1'>";
1992
                        if (is_array($val)){
1993
                                printCleanArray($val,$pad+1);
1994
                        }
1995
                        else echo $val;
1996
                        echo "</td></tr>";
1997
                }
1998
                echo "</table>";
1999
        }
2000
}
2001

    
2002
/**
2003
 * Display a Link to the last page using http_referer if available else use history.back
2004
 *
2005
 *
2006
 **/
2007
function displayBackLink(){
2008
        global $LANG;
2009
        if (isset($_SERVER['HTTP_REFERER'])){
2010
                echo "<a href='".$_SERVER['HTTP_REFERER']."'>".$LANG["buttons"][13]."</a>";
2011
        } else {
2012
                echo "<a href='javascript:history.back();'>".$LANG["buttons"][13]."</a>";
2013
        }
2014
}
2015

    
2016
/**
2017
* Print the form used to select profile if several are available
2018
* @param $target target of the form
2019
* @return nothing
2020
*
2021
*
2022
**/
2023
function showProfileSelecter($target){
2024
        global $CFG_GLPI, $LANG;
2025

    
2026
        if (count($_SESSION["glpiprofiles"])>1){
2027
                echo '<li><form name="form" method="post" action="'.$target.'">';
2028
                echo '<select name="newprofile" onChange="submit()">';
2029
                foreach ($_SESSION["glpiprofiles"] as $key => $val){
2030
                        echo '<option value="'.$key.'" '.($_SESSION["glpiactiveprofile"]["ID"]==$key?'selected':'').'>'.$val['name'].'</option>';
2031
                }
2032
                echo '</select>';
2033
                echo '</form>';
2034
                echo "</li>";
2035

    
2036

    
2037
        } //else echo "only one profile -> no select to print";
2038

    
2039
        if (isMultiEntitiesMode()){
2040
                $cpt=0;
2041
                
2042
                foreach ($_SESSION['glpi_entities_tree'] as $key => $tree){
2043
                        $entities = contructListFromTree($tree);
2044
                        $cpt+=count($entities);
2045
                }
2046
        
2047
                $addname="";
2048
                if ($cpt>15){
2049
                        $addname="_long";
2050
                }
2051
                
2052
                echo "<li>";
2053

    
2054

    
2055
                //echo "<a href='".$CFG_GLPI["root_doc"]."/front/entity.select.php?target=$target' id='modal_entity_selection'>".$_SESSION["glpiactive_entity_name"]."</a>";
2056

    
2057

    
2058
                echo "<a href='#modal_entity_contents' id='modal_entity_selection' title='".$_SESSION["glpiactive_entity_name"]."' class='entity_select'>".$_SESSION["glpiactive_entity_shortname"]."</a>";
2059
                echo "<div id='modal_entity_contents'>";        
2060
                displayActiveEntities($target,"activeentity");
2061
                echo "</div>";
2062
                
2063

    
2064
                echo "<script  type='text/javascript'>";
2065
                echo "new Control.Modal('modal_entity_selection',{";
2066
                //echo "iframe: true,";
2067
                //echo "opacity: 0.8, position: 'relative', width:300, height:50";
2068
                echo "opacity: 0.2, fadeDuration: 0.35, width: 500, height: 500";
2069
                echo "});";
2070
                echo "</script>";
2071

    
2072
/*                echo "<a href='#' title=\"".$_SESSION["glpiactive_entity_name"]."\" onclick=\"completecleandisplay('show_entities$addname');\">";
2073
                echo $_SESSION["glpiactive_entity_shortname"];
2074
                echo "</a>";
2075
                echo "<div id='show_entities$addname' onmouseover=\"completecleandisplay('show_entities$addname');\">";        
2076
                
2077
                displayActiveEntities($target,"activeentity");
2078
                
2079
                echo "</div>";
2080
*/
2081
                echo "</li>";
2082
        }
2083

    
2084

    
2085

    
2086
} 
2087

    
2088
/**
2089
 * Create a Dynamic Progress Bar
2090
 *
2091
 * @param $msg initial message (under the bar)
2092
 * @return nothing
2093
 **/
2094
function createProgressBar ($msg="&nbsp;") {
2095
        echo "<div class='doaction_cadre'><div class='doaction_progress' id='doaction_progress'>".
2096
                "<div class='doaction_pourcent' id='doaction_pourcent'>&nbsp;</div></div></div><br />".
2097
                "<div id='doaction_message'>$msg</div>";
2098
}
2099

    
2100
/**
2101
 * Change the Progress Bar Position
2102
 *
2103
 * @param $crt Current Value (less then $max)
2104
 * @param $tot Maximum Value 
2105
 * @param $msg message inside the bar (defaut is %)
2106
 * @return nothing
2107
 **/
2108
function changeProgressBarPosition ($crt, $tot, $msg="") {
2109
        if (!$tot)
2110
                $pct=0;
2111
        else if ($crt>$tot)
2112
                $pct=100;
2113
        else
2114
                $pct = floor($crt*100/$tot);
2115

    
2116
        if (empty($msg)) $msg = $pct." %";
2117

    
2118
        echo "<script type='text/javascript'>action_change_progress(\"$pct%\",\"$msg\")</script>\n";
2119
        glpi_flush();                                                        
2120
}
2121

    
2122
/**
2123
 * Change the Message under the Progress Bar
2124
 *
2125
 * @param $msg message under the bar
2126
 * @return nothing
2127
 **/
2128
function changeProgressBarMessage ($msg="&nbsp;") {
2129
        echo "<script type='text/javascript'>action_change_message(\"$msg\")</script>\n";        
2130
}
2131
?>
Redmine Appliance - Powered by TurnKey Linux