Support hiding of individual buttons
[misc/kostenrechnung] / lib / general.php
1 <?php
2
3 function passwd($login,$pass)
4 {
5   return md5(md5($pass).$login);
6 }
7
8 function check_session()
9 {
10   if (!empty($_SESSION['sys']['login']) && !empty($_GET['logout'])) {
11     session_destroy();
12     header('Location: ./?login=true');
13     exit();
14   }
15
16   if (substr($_SERVER["SCRIPT_FILENAME"],-10) == '/index.php' &&
17       !empty($_POST['login']) && !empty($_POST['passwd'])) {
18     require_once('lib/login.php');
19     if (check_passwd()) {
20       header('Location: ./');
21       exit();
22     }
23   }
24
25   if (empty($_SESSION['sys']['login']) && empty($_GET['login'])) {
26     header('Location: ./?login=true');
27     exit();
28   }
29 }
30
31 function sanitise_filename($file)
32 {
33   return str_replace('./','x',$file);
34 }
35
36 function load_mask($name)
37 {
38   global $mask;
39   global $jscode;
40
41   $name = sanitise_filename($name);
42   $file = $_SESSION['sys']['basedir'] . 'masks/' . $name . '.php';
43
44   if (!file_exists($file))
45     return false;
46
47   include_once($file);
48
49   return true;
50 }
51
52 function connect_db()
53 {
54   $dsn = sprintf('host=%s dbname=%s user=%s password=%s',DBHOST,DBNAME,DBUSER,DBPASS);
55   pg_connect($dsn);
56 }
57
58 function query_db($sql)
59 {
60   $sth = pg_query($sql);
61
62   if ($sth === false) return false;
63
64   $result = array();
65   while ($row = pg_fetch_assoc($sth))
66     $result[] = $row;
67
68   return $result;
69 }
70
71 function load_js($jsfiles, $jscode)
72 {
73   $ret = '';
74   foreach ($jsfiles as $file)
75     $ret .= sprintf('<script type="text/javascript" src="%s"></script>'."\n", $file);
76
77   if (!empty($jscode))
78     $ret .= sprintf('<script type="text/javascript">'."\n%s\n</script>\n", implode("\n",$jscode));
79
80   return $ret;
81 }
82
83 function process()
84 {
85   if (!empty($_GET['login'])) {
86     require_once('lib/login.php');
87     return mask_login();
88   }
89
90   if (!empty($_GET['mask'])) {
91     require_once('lib/mask.php');
92     return mask($_GET['mask']);
93   }
94
95   $masks = array('sys_user','sys_group','sys_mask',
96                  'anbaugeraete','arbeitsarten','personal','materialien','gebiet','geraete',
97                  'kostenstellen','materialverbrauch','einsatz');
98   $ret = '';
99   foreach ($masks as $m)
100     $ret .= sprintf('<a href="index.php?mask=%s">%s</a><br>', $m, $m);
101   
102   return $ret;
103 }
104
105 function debug_log($text)
106 {
107   global $debug_info;
108
109   $debug_info .= '<br>' . $text;
110 }
111
112 function debug_info()
113 {
114   global $jsfiles;
115   global $debug_info;
116
117   if (DEBUG !== true) return '';
118
119   $jsfiles[] = 'lib/debug_joey.js';
120
121   $html = '<div style="background: #DDD; margin: 5px; padding-left: 4px; border: 1px solid #AAA;clear:both;">';
122   $html .= "\n<pre>\n\$_SESSION = " . var_export($_SESSION,true) . "\n";
123   $html .= "\n\$_COOKIE = " . var_export($_COOKIE,true) . "\n</pre>\n";
124   $html .= $debug_info;
125   $html .= '</div>';
126   return $html;
127 }
128
129 function grid_sql($name, $mask)
130 {
131   $fields = array();
132   foreach ($mask['list'] as $field => $data) {
133     if (array_key_exists('sql', $data))
134       $fields[] = $data['sql'] . ' AS ' . $field;
135     else
136       $fields[] = $field;
137   }
138
139   $_SESSION['grid_' . $name] = sprintf("SELECT %s FROM %s",
140                                        implode(',', $fields), $mask['table']);
141   if (array_key_exists('join', $mask)) $_SESSION['grid_' . $name] .= ' JOIN ' . join(' JOIN ', $mask['join']);
142   if (array_key_exists('where', $mask)) $_SESSION['grid_' . $name] .= ' WHERE ' . $mask['where'];
143 }
144
145 ?>