(no commit message)
[mailer.git] / 0.2.1 / inc / libs / user_functions.php
1 <?php\r
2 /************************************************************************\r
3  * MXChange v0.2.1                                    Start: 07/16/2004 *\r
4  * ===============                              Last change: 10/27/2004 *\r
5  *                                                                      *\r
6  * -------------------------------------------------------------------- *\r
7  * File              : user_functions.php                               *\r
8  * -------------------------------------------------------------------- *\r
9  * Short description : Special functions for user extension             *\r
10  * -------------------------------------------------------------------- *\r
11  * Kurzbeschreibung  : Spezielle Funktionen fuer die user-Erweiterung   *\r
12  * -------------------------------------------------------------------- *\r
13  *                                                                      *\r
14  * -------------------------------------------------------------------- *\r
15  * Copyright (c) 2003 - 2007 by Roland Haeder                           *\r
16  * For more information visit: http://www.mxchange.org                  *\r
17  *                                                                      *\r
18  * This program is free software; you can redistribute it and/or modify *\r
19  * it under the terms of the GNU General Public License as published by *\r
20  * the Free Software Foundation; either version 2 of the License, or    *\r
21  * (at your option) any later version.                                  *\r
22  *                                                                      *\r
23  * This program is distributed in the hope that it will be useful,      *\r
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *\r
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *\r
26  * GNU General Public License for more details.                         *\r
27  *                                                                      *\r
28  * You should have received a copy of the GNU General Public License    *\r
29  * along with this program; if not, write to the Free Software          *\r
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *\r
31  * MA  02110-1301  USA                                                  *\r
32  ************************************************************************/\r
33 \r
34 // Some security stuff...\r
35 if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))\r
36 {\r
37         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php";\r
38         require($INC);\r
39 }\r
40 \r
41 function alpha($sortby, $colspan, $return=false)\r
42 {\r
43         global $CONFIG;\r
44         if (empty($_GET['offset'])) $_GET['offset'] = "0";\r
45         $ADD = "&amp;page=".$_GET['page']."&amp;offset=".$_GET['offset'];\r
46         if (!empty($_GET['mode'])) $ADD .= "&amp;mode=".SQL_ESCAPE($_GET['mode']);\r
47 \r
48         /* Creates the list of letters and makes them a link. */\r
49         $alphabet = array(_ALL2, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", _OTHERS);\r
50         $num = count($alphabet) - 1;\r
51         $OUT = "";\r
52         while (list($counter, $ltr) = each($alphabet))\r
53         {\r
54                 if ($_GET['letter'] == $ltr)\r
55                 {\r
56                         // Current letter is letter from URL\r
57                         $OUT .= "<STRONG>".$ltr."</STRONG>";\r
58                 }\r
59                  else\r
60                 {\r
61                         // Output link to letter\r
62                         $OUT .= "<A href=\"".URL."/modules.php?module=admin&amp;what=".$GLOBALS['what'];\r
63                         if (!empty($_GET['mode'])) $OUT .= "&amp;mode=".SQL_ESCAPE($_GET['mode']);\r
64                         $OUT .= "&amp;letter=".$ltr."&amp;sortby=".$sortby.$ADD."\">".$ltr."</A>";\r
65                 }\r
66                 if ((($counter / $CONFIG['user_alpha']) == round($counter / $CONFIG['user_alpha'])) && ($counter > 0))\r
67                 {\r
68                         $OUT .= "&nbsp;]<BR>[&nbsp;";\r
69                 }\r
70                  elseif ( $counter != $num )\r
71                 {\r
72                         $OUT .= "&nbsp;|&nbsp;";\r
73                 }\r
74         }\r
75         define('__ALPHA_LIST', $OUT);\r
76 \r
77         // Load template\r
78         $OUT = LOAD_TEMPLATE("admin_list_user_alpha", true);\r
79         if ($return)\r
80         {\r
81                 // Return generated code\r
82                 return $OUT;\r
83         }\r
84          else\r
85         {\r
86                 // Output generated code\r
87                 OUTPUT_HTML ($OUT);\r
88         }\r
89 }\r
90 //\r
91 function SortLinks($letter, $sortby, $colspan, $return=false)\r
92 {\r
93         $OUT = "";\r
94         if (empty($_GET['offset'])) $_GET['offset'] = "0";\r
95         $ADD = "&amp;page=".$_GET['page']."&amp;offset=".$_GET['offset'];\r
96         if (!empty($_GET['mode'])) $ADD .= "&amp;mode=".SQL_ESCAPE($_GET['mode']);\r
97 \r
98         // Makes order by links..\r
99         if ($letter == "front") $letter = _ALL2;\r
100 \r
101         // Prepare array with all possible sorters\r
102         $list = array(\r
103                 'userid'                => _UID,\r
104                 'family'                => FAMILY_NAME,\r
105                 'email'         => ADDY,\r
106                 'REMOTE_ADDR'   => REMOTE_IP\r
107         );\r
108 \r
109         // Add nickname if extension is installed\r
110         if (EXT_IS_ACTIVE("nickname")) {\r
111                 $list['nickname'] = NICKNAME;\r
112         }\r
113 \r
114         foreach ($list as $sort=>$title) {\r
115                 if ($sortby == $sort) {\r
116                         $OUT .= "<STRONG>".$title."</STRONG>&nbsp;|&nbsp;";\r
117                 } else {\r
118                         $OUT .= "<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;letter=".$letter."&amp;sortby=".$sort.$ADD."\">".$title."</a>&nbsp;|&nbsp;";\r
119                 }\r
120         }\r
121         define('__SORT_LIST', substr($OUT, 0, -13));\r
122 \r
123         // Load template\r
124         $OUT = LOAD_TEMPLATE("admin_list_user_sort", true);\r
125         if ($return)\r
126         {\r
127                 // Return code\r
128                 return $OUT;\r
129         }\r
130          else\r
131         {\r
132                 // Output code\r
133                 OUTPUT_HTML ($OUT);\r
134         }\r
135 }\r
136 //\r
137 function ADD_PAGENAV($PAGES, $offset, $show_form, $colspan,$return=false)\r
138 {\r
139         if (!$show_form)\r
140         {\r
141                 // Empty row\r
142                 define('__FORM_HEADER', "<TR><TD colspan=\"".$colspan."\" class=\"seperator\">&nbsp;</TD></TR>");\r
143         }\r
144          else\r
145         {\r
146                 // Load form for changing number of lines\r
147                 define('__FORM_HEADER', LOAD_TEMPLATE("admin_list_user_sort_form", true));\r
148         }\r
149         if (!$show_form)\r
150         {\r
151                 // Add line with bottom border\r
152                 define('__FORM_FOOTER', "<TR><TD colspan=\"".__COLSPAN2."\" class=\"seperator bottom2\">&nbsp;</TD></TR>");\r
153         }\r
154          else\r
155         {\r
156                 // Add line without bottom border\r
157                 define('__FORM_FOOTER', "<TR><TD colspan=\"".__COLSPAN2."\" class=\"seperator bottom2\">&nbsp;</TD></TR>");\r
158         }\r
159 \r
160         $OUT = "";\r
161         for ($page = 1; $page <= $PAGES; $page++)\r
162         {\r
163                 if (($page == $_GET['page']) || ((empty($_GET['page'])) && ($page == "1")))\r
164                 {\r
165                         $OUT .= "<STRONG>-";\r
166                 }\r
167                  else\r
168                 {\r
169                         if (empty($_GET['letter'])) $_GET['letter'] = _ALL2;\r
170                         if (empty($_GET['sortby'])) $_GET['sortby'] = "userid";\r
171                         $OUT .= "<A href=\"".URL."/modules.php?module=admin&amp;what=".$GLOBALS['what'];\r
172                         if (!empty($_GET['mode'])) $OUT .= "&amp;mode=".SQL_ESCAPE($_GET['mode']);\r
173                         $OUT .= "&amp;letter=".$_GET['letter']."&amp;sortby=".$_GET['sortby']."&amp;page=".$page."&amp;offset=".$offset."\">";\r
174                 }\r
175                 $OUT .= $page;\r
176                 if (($page == $_GET['page']) || ((empty($_GET['page'])) && ($page == "1")))\r
177                 {\r
178                         $OUT .= "-</STRONG>";\r
179                 }\r
180                  else\r
181                 {\r
182                         $OUT .= "</A>";\r
183                 }\r
184                 if ($page < $PAGES) $OUT .= "&nbsp;|&nbsp;";\r
185         }\r
186         define('__PAGENAV_LIST', $OUT);\r
187 \r
188         // Load template\r
189         $OUT = LOAD_TEMPLATE("admin_list_user_pagenav", true);\r
190         if ($return)\r
191         {\r
192                 // Return code\r
193                 return $OUT;\r
194         }\r
195          else\r
196         {\r
197                 // Output code\r
198                 OUTPUT_HTML ($OUT);\r
199         }\r
200 }\r
201 // Create email link to user's account\r
202 function USER_CREATE_EMAIL_LINK($email, $mod="admin")\r
203 {\r
204         $locked = " AND status='CONFIRMED'";\r
205         if (IS_ADMIN()) $locked = "";\r
206         $result = SQL_QUERY_ESC("SELECT userid\r
207 FROM "._MYSQL_PREFIX."_user_data\r
208 WHERE email='%s'".$locked." LIMIT 1",\r
209          array($email), __FILE__, __LINE__);\r
210         if (SQL_NUMROWS($result) == 1)\r
211         {\r
212                 // Load userid\r
213                 list($uid) = SQL_FETCHROW($result);\r
214 \r
215                 // Rewrite email address to contact link\r
216                 $email = URL."/modules.php?module=".$mod."&amp;what=user_contct&amp;u_id=".bigintval($uid);\r
217         }\r
218 \r
219         // Free memory\r
220         SQL_FREERESULT($result);\r
221 \r
222         // Return rewritten (?) email address\r
223         return $email;\r
224 }\r
225 //\r
226 ?>\r