Added Config class
[memberdb.git] / include / misc.php
1 <?php
2
3 function action_404()
4 {/*{{{*/
5     header('HTTP/1.0 404 Not Found');
6     ?>
7     <h2>Seite nicht gefunden!</h2>
8     <p>Was immer du auch suchst, es ist nicht hier.</p>
9     <?php
10 }/*}}}*/
11
12 function redirect($url)
13 {/*{{{*/
14     header('HTTP/1.1 301 Moved Permanently');
15     header('Location: ' . $url);
16     die();
17 }/*}}}*/
18
19 function link_to($action = '', $params = array())
20 {/*{{{*/
21     if (!empty($action)) {
22         $params = array_merge(array('action' => $action), $params);
23     }
24     $base = str_replace('index.php', '', $_SERVER['SCRIPT_NAME']);
25     if (empty($params)) {
26         return $base;
27     }
28     $query_string = '';
29     foreach ($params as $key => $val) {
30         if ($query_string != '') {
31             $query_string .= '&';
32         }
33         $query_string .= urlencode($key) . '=' . urlencode($val);
34     }
35     return $base . '?' . $query_string;
36 }/*}}}*/
37
38 function log_messages($log_messages)
39 {/*{{{*/
40     if (empty($log_messages)) {
41         return;
42     }
43     ?>
44     <ul class="log_messages">
45         <?php foreach ($log_messages as $log_message) : ?>
46             <li><?= html_escape($log_message) ?></li>
47         <?php endforeach ?>
48     </ul>
49     <?php
50 }/*}}}*/
51
52 function format_date($unixtime)
53 {
54     return strftime('%d.%m.%Y', $unixtime);
55 }
56
57 function format_month()
58 {
59     switch (func_num_args()) {
60         case 1:
61             $ts = func_get_arg(0);
62             $year = date('Y', $ts);
63             $month = date('n', $ts);
64             break;
65         case 2:
66             $year = func_get_arg(0);
67             $month = func_get_arg(1);
68             break;
69         default:
70             return null;
71     }
72     return sprintf('%02d/%04d', $month, $year);
73 }
74
75 function format_money($amount)
76 {
77     return number_format($amount, 2, ',', '') . '€';
78 }
79
80 function ui_date2unixtime($date)
81 {
82     return strtotime($date);
83 }
84
85 function ui_money2float($amount)
86 {
87     return str_replace(',', '.', $amount);
88 }
89
90 function paginate($url, $current, $max)
91 {
92     ?>
93     <?php if ($max > 1) : ?>
94     <div class="pagination">
95         <?php if ($current != 1) : ?>
96             <div class="prev"><a href="<?= html_escape(sprintf($url, $current - 1)) ?>">&laquo;</a></div>
97         <?php endif ?>
98         <?php if ($current != $max) : ?>
99             <div class="next"><a href="<?= html_escape(sprintf($url, $current + 1)) ?>">&raquo;</a></div>
100         <?php endif ?>
101
102         <?php $skipped = false; ?>
103
104         <?php for ($page = 1; $page <= $max; $page++) : ?>
105             <?php if ($page != 1 && $page != $max && ($page < $current - 3 || $page > $current + 3)) {
106                 $skipped = true;
107                 continue;
108             } ?>
109             <?php if ($skipped) : ?> ... <?php endif ?>
110             <?php if ($page == $current) : ?>
111                 <?= html_escape($page) ?>
112             <?php else : ?>
113                 <a href="<?= html_escape(sprintf($url, $page)) ?>"><?= html_escape($page) ?></a>
114             <?php endif ?>
115             <?php $skipped = false; ?>
116         <?php endfor ?>
117     </div>
118 <?php endif ?>
119     <?
120 }
121
122
123 function js_modal_windows()
124 {/*{{{*/
125     ?>
126     <script type="text/javascript">
127
128         $(document).ready(function () {
129             var window_width = $(window).width();
130             var window_height = $(window).height();
131             $('.modal_window').each(function () {
132                 var modal_height = $(this).outerHeight();
133                 var modal_width = $(this).outerWidth();
134                 var top = (window_height - modal_height) / 2;
135                 var left = (window_width - modal_width) / 2;
136                 $(this).css({'top': top, 'left': left});
137             });
138         });
139
140         var modal_windows = new Array();
141
142         function modal_window_show(modal_window) {
143             var length = modal_windows.length;
144             if (length > 0) modal_windows[length - 1].fadeOut(500);
145             else $("#mask").fadeTo(500, 0.8);
146             modal_windows.push(modal_window);
147             modal_window.fadeIn(500);
148         }
149
150         function modal_window_hide() {
151             var length = modal_windows.length;
152             if (length <= 0) return;
153             modal_windows[length - 1].fadeOut(500);
154             if (length == 1) {
155                 $("#mask").fadeOut(500);
156             }
157             else {
158                 modal_windows[length - 2].fadeIn(500);
159             }
160             modal_windows.pop();
161         }
162
163         function modal_window_replace(modal_window) {
164             var length = modal_windows.length;
165             if (length > 0) {
166                 modal_windows[length - 1].fadeOut(500);
167                 modal_windows.pop();
168             }
169             modal_windows.push(modal_window);
170             modal_window.fadeIn(500);
171         }
172
173     </script>
174     <div id="mask"></div>
175     <div id="please_wait" class="modal_window" style="text-align:center;">
176         <strong>Bitte warten...</strong><br/>
177         <img src="images/activity_indicator.gif"/>
178     </div>
179     <?php
180 }/*}}}*/
181
182