$bugfixes
[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><?php echo 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 (float)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="<?php echo html_escape(sprintf($url, $current - 1)) ?>">&laquo;</a></div>
97         <?php endif ?>
98         <?php if ($current != $max) : ?>
99             <div class="next"><a href="<?php echo 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                 <?php echo html_escape($page) ?>
112             <?php else : ?>
113                 <a href="<?php echo html_escape(sprintf($url, $page)) ?>"><?php echo html_escape($page) ?></a>
114             <?php endif ?>
115             <?php $skipped = false; ?>
116         <?php endfor ?>
117     </div>
118 <?php
119 endif;
120 }
121
122 function js_modal_windows()
123 {
124     ?>
125     <script type="text/javascript">
126
127         $(document).ready(function () {
128             var window_width = $(window).width();
129             var window_height = $(window).height();
130             $('.modal_window').each(function () {
131                 var modal_height = $(this).outerHeight();
132                 var modal_width = $(this).outerWidth();
133                 var top = (window_height - modal_height) / 2;
134                 var left = (window_width - modal_width) / 2;
135                 $(this).css({'top': top, 'left': left});
136             });
137         });
138
139         var modal_windows = [];
140
141         function modal_window_show(modal_window) {
142             var length = modal_windows.length;
143             if (length > 0) modal_windows[length - 1].fadeOut(500);
144             else $("#mask").fadeTo(500, 0.8);
145             modal_windows.push(modal_window);
146             modal_window.fadeIn(500);
147         }
148
149         function modal_window_hide() {
150             var length = modal_windows.length;
151             if (length <= 0) return;
152             modal_windows[length - 1].fadeOut(500);
153             if (length == 1) {
154                 $("#mask").fadeOut(500);
155             }
156             else {
157                 modal_windows[length - 2].fadeIn(500);
158             }
159             modal_windows.pop();
160         }
161
162         function modal_window_replace(modal_window) {
163             var length = modal_windows.length;
164             if (length > 0) {
165                 modal_windows[length - 1].fadeOut(500);
166                 modal_windows.pop();
167             }
168             modal_windows.push(modal_window);
169             modal_window.fadeIn(500);
170         }
171
172     </script>
173     <div id="mask"></div>
174     <div id="please_wait" class="modal_window" style="text-align:center;">
175         <strong>Bitte warten...</strong><br/>
176         <img src="images/activity_indicator.gif"/>
177     </div>
178     <?php
179 }