partia duużych zmian
[watermeloncms.git] / wtrmln / helpers / helpers.php
blob3fcf1d6e615d8846457240241ad66c8ed5296b79
1 <?php
2 /********************************************************************
4 Watermelon CMS
6 Copyright 2008-2009 Radosław Pietruszewski
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 version 2 as published by the Free Software Foundation.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 ********************************************************************/
23 include 'gui.php';
24 include 'text.php';
27 * void setH1(string $value)
29 * ustawia nagłówek (nazwę) danej podstrony.
31 * string $value - nazwa podstrony
34 function setH1($value)
36 define('WTRMLN_H1',$value);
38 return '<h1>' . $value . '</h1>';
42 * object arrayToObject(array $array)
44 * Zamienia tablicę na obiekt
46 * array $array - tablica do zamiany na obiekt
49 function arrayToObject(array $array)
51 foreach($array as $key => $var)
53 if(is_array($var))
55 $object->$key = arrayToObject($var);
57 else
59 $object->$key = $var;
63 return $object;
67 * array objectToArray(object $object)
69 * Zamienia obiekt na tablicę
71 * object $object - obiekt do zamiany na tablicę
74 function objectToArray($object)
76 foreach($object as $key => $var)
78 if(is_object($var))
80 $array[$key] = objectToArray($var);
82 else
84 $array[$key] = $var;
88 return $array;
92 * string arrayToHTMLArguments(array $array)
93 * string objectToHTMLArguments(object $object)
95 * Zamiana tablicy lub obiektu na listę argumentów
96 * HTML/XML, np.
98 * array('foo1' => 'bar1', 'foo2' => 'bar2')
100 * zostanie zamienione na:
102 * 'foo1="bar1" foo2="bar2"'
105 function arrayToHTMLArguments($array)
107 $arguments = '';
109 foreach($array as $key => $var)
111 $arguments .= ' ' . $key . '="' . $var . '"';
114 $arguments = substr($arguments, 1);
116 return $arguments;
119 function objectToHTMLArguments($object)
121 return arrayToHTMLArguments($object);
124 /*********************************************/
126 /* zwraca element tablicy $_POST
127 ********************************/
129 function _POST($key)
131 return $_POST[$key];
135 /**********************************************/
138 * string site_url(string $url)
140 * Tworzy URL do danej podstrony
142 * string $url - podstrona, np.: 'blog/foo/bar/', albo '' - pusty
143 * string, zwróci URL do strony głównej
146 function site_url($url)
148 return WTRMLN_SITEURL . $url;
152 * void redirect(string $url)
154 * Przekierowuje na stronę o URL=$url
157 function redirect($url)
159 header('Location: ' . $url);
160 exit;
164 * string ClientIP()
166 * zwraca IP odwiedzającego.
168 * funkcja pochodzi oryginalnie z: http://php.org.pl/artykuly/3/22
171 function ClientIP()
173 $ip = 0;
175 if(!empty($_SERVER['HTTP_CLIENT_IP']))
177 $ip = $_SERVER['HTTP_CLIENT_IP'];
180 if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
182 $ipList = explode(', ', $_SERVER['HTTP_X_FORWARDED_FOR']);
184 if($ip)
186 array_unshift($ipList, $ip);
187 $ip = 0;
190 foreach($ipList as $v)
192 if(!ereg('^(192\.168|172\.16|10|224|240|127|0)\.', $v))
194 return $v;
198 return $ip ? $ip : $_SERVER['REMOTE_ADDR'];
202 * string strHash(string $string[, string/int $algo])
204 * tworzy hash z $string
206 * jeśli $algo nie zostało podane:
208 * tworzy hash według domyślnego algorytmu haszującego
210 * jeśli $algo jest stringiem
212 * tworzy hash według nazwy $algo
214 * jeśli $algo jest intem
216 * tworzy hash na podstawie numeru algrorytmu haszującego
218 * string $string - tekst do zahaszowania
219 * string/int $algo - nazwa lub numer algorytmu haszującego
222 function strHash($string, $algo = NULL)
224 if($algo === NULL)
226 $algo = Config::$hashAlgo;
227 $algo = $algo[Config::$defaultHashAlgo];
229 elseif(is_int($algo))
231 $algo_id = $algo;
232 $algo = Config::$hashAlgo;
233 $algo = $algo[$algo_id];
236 $algoType = $algo[0];
238 $algo = substr($algo, 1);
240 // jeśli pierwszy znak to "x", używamy do haszowania funkcji hash. Jeśli
241 // inny - używamy standardowej funkcji (obecnie są chyba tylko trzy,
242 // może w PHP6 będzie więcej)
244 if($algoType == 'x')
246 return hash($algo, $string);
248 else
250 return $algo($string);