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