Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | daniel-mar | 1 | <?php |
2 | |||
3 | if (!defined('WBLEGAL')) die('Kann nicht ohne Personal WebBase ausgeführt werden.'); |
||
4 | |||
5 | ////////////////////////////////////////////////////////////////////////////// |
||
6 | // CODIERUNGSFUNKTIONEN // |
||
7 | ////////////////////////////////////////////////////////////////////////////// |
||
8 | |||
9 | function encode_critical_html_characters($inp) |
||
10 | { |
||
11 | $inp = str_replace('&', '&', $inp); |
||
12 | //$inp = str_replace('"', '"', $inp); |
||
13 | $inp = str_replace('<', '<', $inp); |
||
14 | $inp = str_replace('>', '>', $inp); |
||
15 | |||
16 | return $inp; |
||
17 | } |
||
18 | |||
19 | function decode_critical_html_characters($inp) |
||
20 | { |
||
21 | $inp = str_replace('&', '&', $inp); |
||
22 | //$inp = str_replace('"', '"', $inp); |
||
23 | $inp = str_replace('<', '<', $inp); |
||
24 | $inp = str_replace('>', '>', $inp); |
||
25 | |||
26 | return $inp; |
||
27 | } |
||
28 | |||
29 | function executable_html_code($inp) |
||
30 | { |
||
31 | // Wenn der Benutzer z.B. ä im HTML-Formular eingegeben hat, würde hier aufgrund von Unicode quatsch rauskommen |
||
32 | $inp = htmlentities($inp, ENT_COMPAT, 'UTF-8'); |
||
33 | |||
34 | $inp = decode_critical_html_characters($inp); |
||
35 | |||
36 | $trans = get_html_translation_table(HTML_ENTITIES); |
||
37 | foreach ($trans as $m1 => $m2) |
||
38 | { |
||
39 | if (($m2 != '<') && ($m2 != '>')) |
||
40 | { |
||
41 | $inp = str_replace(str_replace('&', '&', $m2), $m2, $inp); |
||
42 | } |
||
43 | } |
||
44 | unset($m1); |
||
45 | unset($m2); |
||
46 | |||
47 | // Erweiterte Zeichensatztabelle, die auch da Euro-Zeichen enthält |
||
48 | // Entnommen von http://www.php.net/manual/de/function.get-html-translation-table.php#73410 |
||
49 | $trans2 = array('''=>''', '−'=>'-', 'ˆ'=>'^', '˜'=>'~', 'Š'=>'Š', '‹'=>'‹', 'Œ'=>'Œ', '‘'=>'‘', '’'=>'’', '“'=>'“', '”'=>'”', '•'=>'•', '–'=>'–', '—'=>'—', '˜'=>'˜', '™'=>'™', 'š'=>'š', '›'=>'›', 'œ'=>'œ', 'Ÿ'=>'Ÿ', 'ÿ'=>'ÿ', 'Œ'=>'Œ', 'œ'=>'œ', 'Š'=>'Š', 'š'=>'š', 'Ÿ'=>'Ÿ', 'ƒ'=>'ƒ', 'ˆ'=>'ˆ', '˜'=>'˜', 'Α'=>'Α', 'Β'=>'Β', 'Γ'=>'Γ', 'Δ'=>'Δ', 'Ε'=>'Ε', 'Ζ'=>'Ζ', 'Η'=>'Η', 'Θ'=>'Θ', 'Ι'=>'Ι', 'Κ'=>'Κ', 'Λ'=>'Λ', 'Μ'=>'Μ', 'Ν'=>'Ν', 'Ξ'=>'Ξ', 'Ο'=>'Ο', 'Π'=>'Π', 'Ρ'=>'Ρ', 'Σ'=>'Σ', 'Τ'=>'Τ', 'Υ'=>'Υ', 'Φ'=>'Φ', 'Χ'=>'Χ', 'Ψ'=>'Ψ', 'Ω'=>'Ω', 'α'=>'α', 'β'=>'β', 'γ'=>'γ', 'δ'=>'δ', 'ε'=>'ε', 'ζ'=>'ζ', 'η'=>'η', 'θ'=>'θ', 'ι'=>'ι', 'κ'=>'κ', 'λ'=>'λ', 'μ'=>'μ', 'ν'=>'ν', 'ξ'=>'ξ', 'ο'=>'ο', 'π'=>'π', 'ρ'=>'ρ', 'ς'=>'ς', 'σ'=>'σ', 'τ'=>'τ', 'υ'=>'υ', 'φ'=>'φ', 'χ'=>'χ', 'ψ'=>'ψ', 'ω'=>'ω', 'ϑ'=>'ϑ', 'ϒ'=>'ϒ', 'ϖ'=>'ϖ', ' '=>' ', ' '=>' ', ' '=>' ', '‌'=>'‌', '‍'=>'‍', '‎'=>'‎', '‏'=>'‏', '–'=>'–', '—'=>'—', '‘'=>'‘', '’'=>'’', '‚'=>'‚', '“'=>'“', '”'=>'”', '„'=>'„', '†'=>'†', '‡'=>'‡', '•'=>'•', '…'=>'…', '‰'=>'‰', '′'=>'′', '″'=>'″', '‹'=>'‹', '›'=>'›', '‾'=>'‾', '⁄'=>'⁄', '€'=>'€', 'ℑ'=>'ℑ', '℘'=>'℘', 'ℜ'=>'ℜ', '™'=>'™', 'ℵ'=>'ℵ', '←'=>'←', '↑'=>'↑', '→'=>'→', '↓'=>'↓', '↔'=>'↔', '↵'=>'↵', '⇐'=>'⇐', '⇑'=>'⇑', '⇒'=>'⇒', '⇓'=>'⇓', '⇔'=>'⇔', '∀'=>'∀', '∂'=>'∂', '∃'=>'∃', '∅'=>'∅', '∇'=>'∇', '∈'=>'∈', '∉'=>'∉', '∋'=>'∋', '∏'=>'∏', '∑'=>'∑', '−'=>'−', '∗'=>'∗', '√'=>'√', '∝'=>'∝', '∞'=>'∞', '∠'=>'∠', '∧'=>'∧', '∨'=>'∨', '∩'=>'∩', '∪'=>'∪', '∫'=>'∫', '∴'=>'∴', '∼'=>'∼', '≅'=>'≅', '≈'=>'≈', '≠'=>'≠', '≡'=>'≡', '≤'=>'≤', '≥'=>'≥', '⊂'=>'⊂', '⊃'=>'⊃', '⊄'=>'⊄', '⊆'=>'⊆', '⊇'=>'⊇', '⊕'=>'⊕', '⊗'=>'⊗', '⊥'=>'⊥', '⋅'=>'⋅', '⌈'=>'⌈', '⌉'=>'⌉', '⌊'=>'⌊', '⌋'=>'⌋', '⟨'=>'〈', '⟩'=>'〉', '◊'=>'◊', '♠'=>'♠', '♣'=>'♣', '♥'=>'♥', '♦'=>'♦'); |
||
50 | $trans2 = array_flip($trans2); |
||
51 | foreach ($trans2 as $m1 => $m2) |
||
52 | { |
||
53 | // Funktioniert chr() bei den 8... Einträgen? Finde Eurozeichen nicht bei chr(8364)! |
||
54 | $m1 = chr(substr($m1, 2, strlen($m1)-3)); |
||
55 | |||
56 | if (($m2 != '<') && ($m2 != '>')) |
||
57 | $inp = str_replace(str_replace('&', '&', $m2), $m2, $inp); |
||
58 | } |
||
59 | unset($m1); |
||
60 | unset($m2); |
||
61 | |||
62 | return decode_critical_html_characters($inp); |
||
63 | } |
||
64 | |||
65 | ////////////////////////////////////////////////////////////////////////////// |
||
66 | // VERSCHLÜSSELUNGSFUNKTIONEN FÜR SESSIONS U.A. // |
||
67 | ////////////////////////////////////////////////////////////////////////////// |
||
68 | |||
69 | function special_hash($string) |
||
70 | { |
||
71 | $iterations = 10; |
||
72 | |||
73 | $last = $string; |
||
74 | $out = ''; |
||
75 | for ($i=0; $i<$iterations; $i++) |
||
76 | { |
||
77 | $last = md5($last); |
||
78 | $out .= $last; |
||
79 | } |
||
80 | |||
81 | $garbarge_count = 0; |
||
82 | for ($i=0; $i<strlen($last); $i++) |
||
83 | { |
||
84 | if (($last[$i] == '0') || ($last[$i] == '1') || ($last[$i] == '2') || ($last[$i] == '3') || |
||
85 | ($last[$i] == '4') || ($last[$i] == '5') || ($last[$i] == '6') || ($last[$i] == '7') || |
||
86 | ($last[$i] == '8') || ($last[$i] == '9')) |
||
87 | { |
||
88 | $garbarge_count = $garbarge_count + $last[$i]; |
||
89 | } |
||
90 | } |
||
91 | |||
92 | for ($i=0; $i<=$garbarge_count; $i++) |
||
93 | { |
||
94 | $out = $last[0].$out.$last[1]; |
||
95 | } |
||
96 | |||
97 | if (strlen($out) > 1024) $out = substr($out, 0, 1024); |
||
98 | |||
99 | return $out; |
||
100 | } |
||
101 | |||
102 | function get_rnd_iv($iv_len) |
||
103 | { |
||
104 | $iv = ''; |
||
105 | while ($iv_len-- > 0) { |
||
106 | $iv .= chr(mt_rand() & 0xff); |
||
107 | } |
||
108 | return $iv; |
||
109 | } |
||
110 | |||
111 | function md5_encrypt($plain_text, $password, $iv_len = 16) |
||
112 | { |
||
113 | $plain_text .= "\x13"; |
||
114 | $n = strlen($plain_text); |
||
115 | if ($n % 16) $plain_text .= str_repeat("\0", 16 - ($n % 16)); |
||
116 | $i = 0; |
||
117 | $enc_text = get_rnd_iv($iv_len); |
||
118 | $iv = substr($password ^ $enc_text, 0, 512); |
||
119 | while ($i < $n) { |
||
120 | $block = substr($plain_text, $i, 16) ^ pack('H*', md5($iv)); |
||
121 | $enc_text .= $block; |
||
122 | $iv = substr($block . $iv, 0, 512) ^ $password; |
||
123 | $i += 16; |
||
124 | } |
||
125 | return base64_encode($enc_text); |
||
126 | } |
||
127 | |||
128 | function md5_decrypt($enc_text, $password, $iv_len = 16) |
||
129 | { |
||
130 | $enc_text = base64_decode($enc_text); |
||
131 | $n = strlen($enc_text); |
||
132 | $i = $iv_len; |
||
133 | $plain_text = ''; |
||
134 | $iv = substr($password ^ substr($enc_text, 0, $iv_len), 0, 512); |
||
135 | while ($i < $n) { |
||
136 | $block = substr($enc_text, $i, 16); |
||
137 | $plain_text .= $block ^ pack('H*', md5($iv)); |
||
138 | $iv = substr($block . $iv, 0, 512) ^ $password; |
||
139 | $i += 16; |
||
140 | } |
||
141 | return preg_replace('/\\x13\\x00*$/', '', $plain_text); |
||
142 | } |
||
143 | |||
144 | function wb_encrypt($message, $key) |
||
145 | { |
||
146 | return md5_encrypt($message, $key); |
||
147 | } |
||
148 | |||
149 | function wb_decrypt($message, $key) |
||
150 | { |
||
151 | return md5_decrypt($message, $key); |
||
152 | } |
||
153 | |||
154 | ////////////////////////////////////////////////////////////////////////////// |
||
155 | // NÜTZLICHE FUNKTIONEN // |
||
156 | ////////////////////////////////////////////////////////////////////////////// |
||
157 | |||
158 | function WBUserAgent() { |
||
159 | global $WBConfig; |
||
160 | return 'ViaThinkSoft Personal WebBase '.$WBConfig->getRevision().' (PHP/'.phpversion().')'; |
||
161 | } |
||
162 | |||
163 | // Anmerkung: Subdomains sind nicht gültig. |
||
164 | |||
165 | // @param $name Name des Cookies |
||
166 | // @value $value Wert des Cookies |
||
167 | // @param $time 0 für "Ende der Sitzung" oder Sekundenanzahl als Gültigkeit |
||
168 | function wbSetCookie($name, $value, $time) { |
||
169 | global $WBConfig; |
||
170 | if ($time != 0) $time += time(); |
||
171 | setCookie($name, $value, $time, RELATIVE_DIR, /* $_SERVER['HTTP_HOST'] */ '', $WBConfig->getForceSSLFlag()); |
||
172 | } |
||
173 | |||
174 | // @param $name |
||
175 | // @param $wb_rel_path Path relative to the WebBase directory (for third-party systems!) |
||
176 | function wbUnsetCookie($name, $wb_rel_path = '') { |
||
177 | global $WBConfig; |
||
178 | setCookie($name, '', -1, RELATIVE_DIR.$wb_rel_path, /* $_SERVER['HTTP_HOST'] */ '', $WBConfig->getForceSSLFlag()); |
||
179 | } |
||
180 | |||
181 | // TODO (Prüfen) |
||
182 | // Das Argument von deferer() sollte aufgrund der W3C-Konformität & statt & enthalten |
||
183 | |||
184 | function deferer($url) { |
||
185 | return 'deferer.php?target='.urlencode($url); |
||
186 | } |
||
187 | |||
188 | function ip_tracer($ip) { |
||
189 | return deferer('http://www.ripe.net/fcgi-bin/whois?form_type=simple&full_query_string=&searchtext='.$ip.'&submit.x=0&submit.y=0'); |
||
190 | } |
||
191 | |||
192 | function url_protokoll_vorhanden($url) |
||
193 | { |
||
194 | $ary = explode('://', $url); |
||
195 | return ((strpos($ary[0], '/') === false) && (isset($ary[1]))); |
||
196 | } |
||
197 | |||
198 | function wb_redirect_now($url) { |
||
199 | |||
200 | if (url_protokoll_vorhanden($url)) { |
||
201 | // Umwechseln von HTTP<->HTTPS ist bei gleicher Adresse ohne Deferrer erlaubt |
||
202 | if ((str_replace('https://', '', $url) != $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']) && |
||
203 | (str_replace('http://', '', $url) != $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) |
||
204 | { |
||
205 | $url = deferer($url); // Umleitung auf eine externe Seite |
||
206 | } |
||
207 | } |
||
208 | |||
209 | if (!headers_sent()) { |
||
210 | header('Location: '.$url); |
||
211 | } else { |
||
212 | // HTML-Weiterleitung |
||
213 | echo 'Redirect: <a href="'.$url.'">'.$url.'</a><br>'."\r\n\r\n"; |
||
214 | echo '<script language ="JavaScript"> |
||
215 | <!-- |
||
216 | window.location.replace("'.$url.'"); |
||
217 | // --> |
||
218 | </script>'; |
||
219 | } |
||
220 | |||
221 | die(''); |
||
222 | } |
||
223 | |||
224 | function add_trailing_path_delimiter($url_or_directory) { |
||
225 | if (substr($url_or_directory, strlen($url_or_directory)-1, 1) != '/') { |
||
226 | $url_or_directory .= '/'; |
||
227 | } |
||
228 | return $url_or_directory; |
||
229 | } |
||
230 | |||
231 | function dirname_with_pathdelimiter($directory) |
||
232 | { |
||
233 | $tmp = dirname($directory); |
||
234 | $tmp = str_replace('\\', '/', $tmp); |
||
235 | $tmp = add_trailing_path_delimiter($tmp); |
||
236 | return $tmp; |
||
237 | } |
||
238 | |||
239 | function string2hex($str) |
||
240 | { |
||
241 | if (trim($str) != "") |
||
242 | { |
||
243 | $hex = ""; |
||
244 | $length = strlen($str); |
||
245 | for ($i=0; $i<$length; $i++) |
||
246 | { |
||
247 | $hex .= str_pad(dechex(ord($str[$i])), 2, 0, STR_PAD_LEFT); |
||
248 | } |
||
249 | return $hex; |
||
250 | } |
||
251 | } |
||
252 | |||
253 | function hex2string($hex) |
||
254 | { |
||
255 | $string = ''; |
||
256 | |||
257 | $hex = str_replace(array("\n","\r"," "), "", $hex); |
||
258 | |||
259 | for ($ix=0; $ix < strlen($hex); $ix=$ix+2) |
||
260 | { |
||
261 | $ord = hexdec(substr($hex, $ix, 2)); |
||
262 | $string .= chr($ord); |
||
263 | } |
||
264 | |||
265 | return $string; |
||
266 | } |
||
267 | |||
268 | // http://lists.phpbar.de/pipermail/php/Week-of-Mon-20040322/007749.html |
||
269 | |||
270 | function fetchip() |
||
271 | { |
||
272 | $client_ip = (isset($_SERVER['HTTP_CLIENT_IP'])) ? $_SERVER['HTTP_CLIENT_IP'] : ''; |
||
273 | $x_forwarded_for = (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : ''; |
||
274 | $remote_addr = (isset($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : ''; |
||
275 | |||
276 | if (!empty($client_ip)) |
||
277 | { |
||
278 | $ip_expl = explode('.',$client_ip); |
||
279 | $referer = explode('.',$remote_addr); |
||
280 | if($referer[0] != $ip_expl[0]) |
||
281 | { |
||
282 | $ip=array_reverse($ip_expl); |
||
283 | $return=implode('.',$ip); |
||
284 | } |
||
285 | else |
||
286 | { |
||
287 | $return = $client_ip; |
||
288 | } |
||
289 | } |
||
290 | else if (!empty($x_forwarded_for)) |
||
291 | { |
||
292 | if(strstr($x_forwarded_for,',')) |
||
293 | { |
||
294 | $ip_expl = explode(',',$x_forwarded_for); |
||
295 | $return = end($ip_expl); |
||
296 | } |
||
297 | else |
||
298 | { |
||
299 | $return = $x_forwarded_for; |
||
300 | } |
||
301 | } |
||
302 | else |
||
303 | { |
||
304 | $return = $remote_addr; |
||
305 | } |
||
306 | unset ($client_ip, $x_forwarded_for, $remote_addr, $ip_expl); |
||
307 | return $return; |
||
308 | } |
||
309 | |||
310 | function my_htmlentities($inp, $charset = 'utf-8') |
||
311 | { |
||
312 | // http://www.php.net/manual/de/function.htmlspecialchars.php |
||
313 | // PHP-Version wird nicht kontrolliert... |
||
314 | $cs = 'utf-8'; |
||
315 | |||
316 | if (strtolower($charset) == 'iso-8859-1') $cs = 'ISO-8859-1'; |
||
317 | if (strtolower($charset) == 'iso8859-1') $cs = 'ISO-8859-1'; |
||
318 | if (strtolower($charset) == 'iso-8859-15') $cs = 'ISO-8859-15'; |
||
319 | if (strtolower($charset) == 'iso8859-15') $cs = 'ISO-8859-15'; |
||
320 | if (strtolower($charset) == 'utf-8') $cs = 'UTF-8'; |
||
321 | if (strtolower($charset) == 'cp866') $cs = 'cp866'; |
||
322 | if (strtolower($charset) == 'ibm866') $cs = 'cp866'; |
||
323 | if (strtolower($charset) == '866') $cs = 'cp866'; |
||
324 | if (strtolower($charset) == 'cp1251') $cs = 'cp1251'; |
||
325 | if (strtolower($charset) == 'windows-1251') $cs = 'cp1251'; |
||
326 | if (strtolower($charset) == 'win-1251') $cs = 'cp1251'; |
||
327 | if (strtolower($charset) == '1251') $cs = 'cp1251'; |
||
328 | if (strtolower($charset) == 'cp1252') $cs = 'cp1252'; |
||
329 | if (strtolower($charset) == 'windows-1252') $cs = 'cp1252'; |
||
330 | if (strtolower($charset) == '1252') $cs = 'cp1252'; |
||
331 | if (strtolower($charset) == 'koi8-r') $cs = 'KOI8-R'; |
||
332 | if (strtolower($charset) == 'koi8-ru') $cs = 'KOI8-R'; |
||
333 | if (strtolower($charset) == 'koi8r') $cs = 'KOI8-R'; |
||
334 | if (strtolower($charset) == 'big5') $cs = 'BIG5'; |
||
335 | if (strtolower($charset) == '950') $cs = 'BIG5'; |
||
336 | if (strtolower($charset) == 'gb2312') $cs = 'GB2312'; |
||
337 | if (strtolower($charset) == '936') $cs = 'GB2312'; |
||
338 | if (strtolower($charset) == 'big5-hkscs') $cs = 'BIG5-HKSCS'; |
||
339 | if (strtolower($charset) == 'shift_jis') $cs = 'Shift_JIS'; |
||
340 | if (strtolower($charset) == 'sjis') $cs = 'Shift_JIS'; |
||
341 | if (strtolower($charset) == '932') $cs = 'Shift_JIS'; |
||
342 | if (strtolower($charset) == 'euc-jp') $cs = 'EUC-JP'; |
||
343 | if (strtolower($charset) == 'eucjp') $cs = 'EUC-JP'; |
||
344 | |||
345 | return @htmlentities($inp, ENT_NOQUOTES, $cs); |
||
346 | } |
||
347 | |||
348 | function check_email($email_adresse) |
||
349 | { |
||
350 | if(eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$email_adresse)) |
||
351 | return true; |
||
352 | else |
||
353 | return false; |
||
354 | } |
||
355 | |||
356 | function return_bytes($val) |
||
357 | { |
||
358 | $val = trim($val); |
||
359 | $last = strtolower($val{strlen($val)-1}); |
||
360 | switch($last) |
||
361 | { |
||
362 | case 'g': |
||
363 | $val *= 1024; |
||
364 | case 'm': |
||
365 | $val *= 1024; |
||
366 | case 'k': |
||
367 | $val *= 1024; |
||
368 | } |
||
369 | return $val; |
||
370 | } |
||
371 | |||
372 | function zufall($size) |
||
373 | { |
||
374 | $result = ""; |
||
375 | |||
376 | srand((double)microtime()*1000000); |
||
377 | |||
378 | for($i=0; $i < $size; $i++) |
||
379 | { |
||
380 | $num = rand(48,120); |
||
381 | while (($num >= 58 && $num <= 64) || ($num >= 91 && $num <= 96)) |
||
382 | $num = rand(48,120); |
||
383 | |||
384 | $result .= chr($num); |
||
385 | } |
||
386 | return $result; |
||
387 | } |
||
388 | |||
389 | function runden($inp, $nachkommastellen = 0) |
||
390 | { |
||
391 | return number_format($inp, $nachkommastellen, ",", "."); |
||
392 | } |
||
393 | |||
394 | function dir_add_trailing_backslash($directory) { |
||
395 | if (substr($directory, strlen($directory)-1, 1) != '/') $directory .= '/'; |
||
396 | return $directory; |
||
397 | } |
||
398 | |||
399 | // PHP-AntiSpam-Funktion "secure_email", Version 3.0 |
||
400 | // von Daniel Marschall [www.daniel-marschall.de] |
||
401 | |||
402 | function secure_email($email, $linktext, $crypt_linktext) |
||
403 | { |
||
404 | if (!function_exists('alas_js_crypt')) |
||
405 | { |
||
406 | function alas_js_crypt($text) |
||
407 | { |
||
408 | $tmp = ''; |
||
409 | for ($i=0; $i<strlen($text); $i++) |
||
410 | { |
||
411 | $tmp .= 'document.write("&#'.ord(substr($text, $i, 1)).';");'; |
||
412 | } |
||
413 | return $tmp; |
||
414 | } |
||
415 | } |
||
416 | |||
417 | if (!function_exists('alas_js_write')) |
||
418 | { |
||
419 | function alas_js_write($text) |
||
420 | { |
||
421 | $text = str_replace('\\', '\\\\', $text); |
||
422 | $text = str_replace('"', '\"', $text); |
||
423 | $text = str_replace('/', '\/', $text); // W3C Validation </a> -> <\/a> |
||
424 | return 'document.write("'.$text.'");'; |
||
425 | } |
||
426 | } |
||
427 | |||
428 | $aus = ''; |
||
429 | if ($email != '') |
||
430 | { |
||
431 | $aus .= '<script language="JavaScript" type="text/javascript"><!--'."\n"; |
||
432 | $aus .= alas_js_write('<a href="'); |
||
433 | $aus .= alas_js_crypt('mailto:'.$email); |
||
434 | $aus .= alas_js_write('">'); |
||
435 | $aus .= $crypt_linktext ? alas_js_crypt($linktext) : alas_js_write($linktext); |
||
436 | $aus .= alas_js_write('</a>').'// --></script>'; |
||
437 | } |
||
438 | return $aus; |
||
439 | } |
||
440 | |||
441 | function de_convertmysqldatetime($datum, $zeige_sekunden = false) |
||
442 | { |
||
443 | if (($datum == '') || ($datum == '0000-00-00 00:00:00')) |
||
444 | { |
||
445 | return 'Unbekannt'; |
||
446 | } |
||
447 | else |
||
448 | { |
||
449 | |||
450 | $date = explode(" ", $datum); |
||
451 | $ddatum = explode("-", $date[0]); |
||
452 | if (isset($date[1])) |
||
453 | { |
||
454 | $date = explode(":", $date[1]); |
||
455 | } |
||
456 | else |
||
457 | { |
||
458 | $date[0] = ''; |
||
459 | $date[1] = ''; |
||
460 | $date[2] = ''; |
||
461 | } |
||
462 | |||
463 | if ($ddatum[1] == '01') $mon = 'Januar'; |
||
464 | if ($ddatum[1] == '02') $mon = 'Februar'; |
||
465 | if ($ddatum[1] == '03') $mon = 'März'; |
||
466 | if ($ddatum[1] == '04') $mon = 'April'; |
||
467 | if ($ddatum[1] == '05') $mon = 'Mai'; |
||
468 | if ($ddatum[1] == '06') $mon = 'Juni'; |
||
469 | if ($ddatum[1] == '07') $mon = 'Juli'; |
||
470 | if ($ddatum[1] == '08') $mon = 'August'; |
||
471 | if ($ddatum[1] == '09') $mon = 'September'; |
||
472 | if ($ddatum[1] == '10') $mon = 'Oktober'; |
||
473 | if ($ddatum[1] == '11') $mon = 'November'; |
||
474 | if ($ddatum[1] == '12') $mon = 'Dezember'; |
||
475 | $tag = sprintf("%d",$ddatum[2]); |
||
476 | $datum = $tag.". ".$mon." ".$ddatum[0]; |
||
477 | |||
478 | if (($date[0] != '') && ($date[1] != '')) |
||
479 | { |
||
480 | if ($zeige_sekunden) $zus = ':'.$date[2]; else $zus = ''; |
||
481 | return $datum.', '.$date[0].':'.$date[1].$zus.' Uhr'; |
||
482 | } |
||
483 | else |
||
484 | return $datum; |
||
485 | } |
||
486 | } |
||
487 | |||
488 | function zwischen_str($str, $von, $bis, $flankierungen_miteinbeziehen = true) |
||
489 | { |
||
490 | $ausgabe = $str; |
||
491 | |||
492 | if ($von != '') |
||
493 | { |
||
494 | $pos = strpos($ausgabe, $von); |
||
495 | if ($pos !== false) |
||
496 | { |
||
497 | $ausgabe = substr($ausgabe, $pos, strlen($ausgabe)-$pos); |
||
498 | if (!$flankierungen_miteinbeziehen) |
||
499 | $ausgabe = substr($ausgabe, strlen($von), strlen($ausgabe)-strlen($von)-1); // -1 ? |
||
500 | } |
||
501 | } |
||
502 | |||
503 | if ($bis != '') |
||
504 | { |
||
505 | $pos = strpos($ausgabe, $bis); |
||
506 | if ($pos !== false) |
||
507 | { |
||
508 | $ausgabe = substr($ausgabe, 0, $pos+strlen($bis)); |
||
509 | if (!$flankierungen_miteinbeziehen) |
||
510 | $ausgabe = substr($ausgabe, 0, strlen($ausgabe)-strlen($bis)); |
||
511 | } |
||
512 | } |
||
513 | |||
514 | return $ausgabe; |
||
515 | } |
||
516 | |||
517 | ////////////////////////////////////////////////////////////////////////////// |
||
518 | // GFX/LISTE/OOP-FUNKTIONEN // |
||
519 | ////////////////////////////////////////////////////////////////////////////// |
||
520 | |||
521 | function oop_link_to_modul($modul, $seite = 'main', $titelzeile_modul = '') |
||
522 | { |
||
523 | if ($titelzeile_modul == '') $titelzeile_modul = $modul; |
||
524 | |||
525 | $module_information = WBModuleHandler::get_module_information($titelzeile_modul); |
||
526 | |||
527 | if (file_exists('modules/'.$titelzeile_modul.'/images/menu/32.gif')) |
||
528 | $g = 'modules/'.$titelzeile_modul.'/images/menu/32.gif'; |
||
529 | else if (file_exists('modules/'.$titelzeile_modul.'/images/menu/32.png')) |
||
530 | $g = 'modules/'.$titelzeile_modul.'/images/menu/32.png'; |
||
531 | else |
||
532 | $g = 'designs/spacer.gif'; |
||
533 | |||
534 | return "javascript:oop('".$modul."', '".$seite."', '".htmlentities($module_information->caption)."', '".$g."');"; |
||
535 | } |
||
536 | |||
537 | function wb_list_items($modul, $table, $append, $dir = 0) |
||
538 | { |
||
539 | global $benutzer; |
||
540 | |||
541 | if (!isset($erg)) $erg = array(); |
||
542 | |||
543 | $i = 0; |
||
544 | $res = db_query("SELECT * FROM `$table` WHERE `folder_cnid` = '".db_escape($dir)."' AND `user_cnid` = '".$benutzer['id']."' $append"); |
||
545 | while ($row = db_fetch($res)) |
||
546 | { |
||
547 | $i++; |
||
548 | $erg[$i] = $row; |
||
549 | } |
||
550 | |||
551 | return $erg; |
||
552 | } |
||
553 | |||
554 | function wb_list_items_filter($modul, $table, $append) |
||
555 | { |
||
556 | $i = 0; |
||
557 | |||
558 | $res = db_query("SELECT * FROM `$table` $append"); |
||
559 | while ($row = db_fetch($res)) |
||
560 | { |
||
561 | $i++; |
||
562 | $erg[$i] = $row; |
||
563 | } |
||
564 | |||
565 | return $erg; |
||
566 | } |
||
567 | |||
568 | function wb_draw_table_begin() |
||
569 | { |
||
570 | echo '<div align="center"><table cellspacing="0" cellpadding="2" border="0" width="90%">'; |
||
571 | } |
||
572 | |||
573 | function wb_draw_table_end() |
||
574 | { |
||
575 | echo '</table></div><br>'; |
||
576 | } |
||
577 | |||
578 | function wb_draw_table_content() |
||
579 | { |
||
580 | echo '<tr class="row_tab" onmouseover="this.className=\'row_tab_act\';" onmouseout="this.className=\'row_tab\';">'; |
||
581 | $j = 0; |
||
582 | for ($i=0; $i < @func_num_args(); $i=$i+2) |
||
583 | { |
||
584 | $j++; |
||
585 | if (@func_get_arg($i) != '') |
||
586 | $w = 'width="'.@func_get_arg($i).'" '; |
||
587 | else |
||
588 | $w = ''; |
||
589 | echo '<td valign="top" align="left" '.$w.'>'.@func_get_arg($i+1).'</td>'; |
||
590 | } |
||
591 | if ($j == 0) |
||
592 | echo '<td valign="top" align="left" width="100%"> </td>'; |
||
593 | echo '</tr>'."\n"; |
||
594 | } |
||
595 | |||
596 | function wb_draw_table_span_content($highlight, $span, $text) |
||
597 | { |
||
598 | if ($highlight == 1) $hfarb = '4'; |
||
599 | if ($highlight == 0) $hfarb = '5'; |
||
600 | if ($highlight == 2) $hfarb = '6'; |
||
601 | echo '<tr class="row_tab" onmouseover="this.className=\'row_tab_act\';" onmouseout="this.className=\'row_tab\';">'; |
||
602 | echo '<td valign="top" align="left" colspan="'.$span.'">'.$text.'</td>'; |
||
603 | echo '</tr>'; |
||
604 | |||
605 | } |
||
606 | |||
607 | function wb_draw_item_filter($modul, $table, $append) |
||
608 | { |
||
609 | global $ordnereinzug, $WBConfig; |
||
610 | |||
611 | $einzug = 0; |
||
612 | $ary = wb_list_items_filter($modul, $table, $append); |
||
613 | $durchlauf = 0; |
||
614 | for ($i=1; isset($ary[$i]['id']); $i++) |
||
615 | { |
||
616 | $durchlauf++; |
||
617 | |||
618 | if (file_exists('modules/'.$modul.'/includes/menuentry.inc.php')) |
||
619 | include('modules/'.$modul.'/includes/menuentry.inc.php'); |
||
620 | |||
621 | echo "\n"; |
||
622 | } |
||
623 | |||
624 | return $durchlauf; |
||
625 | } |
||
626 | |||
627 | function wb_draw_item($modul, $table, $append, $folder = 0, $einzug = 0) |
||
628 | { |
||
629 | global $ordnereinzug, $WBConfig; |
||
630 | |||
631 | $ary = wb_list_items($modul, $table, $append, $folder); |
||
632 | $durchlauf = 0; |
||
633 | for ($i=1; isset($ary[$i]['id']); $i++) |
||
634 | { |
||
635 | $durchlauf++; |
||
636 | |||
637 | if (file_exists('modules/'.$modul.'/includes/menuentry.inc.php')) |
||
638 | include('modules/'.$modul.'/includes/menuentry.inc.php'); |
||
639 | } |
||
640 | |||
641 | return $durchlauf; |
||
642 | } |
||
643 | |||
644 | function wb_draw_menu_item($modul, $seite, $titel, $klein, $gross) |
||
645 | { |
||
646 | if (file_exists($gross)) |
||
647 | $g = $gross; |
||
648 | else |
||
649 | $g = 'designs/spacer.gif'; |
||
650 | |||
651 | if (file_exists($klein)) |
||
652 | $k = $klein; |
||
653 | else |
||
654 | $k = 'designs/spacer.gif'; |
||
655 | |||
656 | return '<tr class="row_nav" onmouseover="this.className=\'row_nav_act\';" onmouseout="this.className=\'row_nav\';"> |
||
657 | <td onclick="oop(\''.$modul.'\', \''.$seite.'\', \''.$titel.'\', \''.$g.'\');" valign="middle" align="left"><img src="designs/spacer.gif" height="1" width="3" alt=""></td> |
||
658 | <td onclick="oop(\''.$modul.'\', \''.$seite.'\', \''.$titel.'\', \''.$g.'\');" valign="bottom" align="left"><img src="'.$k.'" height="16" width="16" alt=""></td> |
||
659 | <td onclick="oop(\''.$modul.'\', \''.$seite.'\', \''.$titel.'\', \''.$g.'\');" valign="bottom" align="left"><img src="designs/spacer.gif" height="1" width="5" alt=""></td> |
||
660 | <td onclick="oop(\''.$modul.'\', \''.$seite.'\', \''.$titel.'\', \''.$g.'\');" valign="bottom" align="left" width="100%"><a href="javascript:oop(\''.$modul.'\', \''.$seite.'\', \''.$titel.'\', \''.$g.'\');" class="menu_blk">'.$titel.'</a></td> |
||
661 | <td onclick="oop(\''.$modul.'\', \''.$seite.'\', \''.$titel.'\', \''.$g.'\');" valign="middle" align="left"><img src="designs/spacer.gif" alt="" width="1" height="1"></td> |
||
662 | </tr>'."\n"; |
||
663 | } |
||
664 | |||
665 | function wb_draw_menu_spacer() |
||
666 | { |
||
667 | return '<tr> |
||
668 | <td colspan="5"><img src="designs/spacer.gif" alt="" width="1" height="14"></td> |
||
669 | </tr>'; |
||
670 | } |
||
671 | |||
672 | ////////////////////////////////////////////////////////////////////////////// |
||
673 | // FUNKTIONEN FÜR MODUL-XML UND DESIGN-XML // |
||
674 | ////////////////////////////////////////////////////////////////////////////// |
||
675 | |||
676 | require 'includes/xml.class.inc.php'; |
||
677 | require 'includes/SecureMailer.class.php'; |
||
678 | |||
679 | ////////////////////////////////////////////////////////////////////////////// |
||
680 | // FUNKTIONEN FÜR MODUL-XML UND DESIGN-XML // |
||
681 | ////////////////////////////////////////////////////////////////////////////// |
||
682 | |||
683 | require 'includes/WBModulHandler.class.php'; |
||
684 | |||
685 | require 'includes/WBDesignHandler.class.php'; |
||
686 | |||
687 | /* Konstanten */ |
||
688 | |||
689 | define('RELATIVE_DIR', dir_add_trailing_backslash(dirname($_SERVER['PHP_SELF']))); |
||
690 | |||
691 | ?> |