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