XOOPS  2.6.0
findusers.php
Go to the documentation of this file.
1 <?php
13 
24 include_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'mainfile.php';
25 
27 
28 $xoops->simpleHeader(false);
29 //$xoops->header();
30 
31 $denied = true;
32 if (!empty($_REQUEST['token'])) {
33  if ($xoops->security()->validateToken($_REQUEST['token'], false)) {
34  $denied = false;
35  }
36 } else {
37  if ($xoops->isUser() && $xoops->user->isAdmin()) {
38  $denied = false;
39  }
40 }
41 if ($denied) {
42  echo $xoops->alert('error', XoopsLocale::E_NO_ACCESS_PERMISSION);
43  exit();
44 }
45 
46 $token = isset($_REQUEST['token']) ? $_REQUEST['token'] : '';
47 $name_form = 'memberslist';
48 $name_userid = 'uid' . (!empty($_REQUEST['multiple']) ? '[]' : '');
49 $name_username = 'uname' . (!empty($_REQUEST['multiple']) ? '[]' : '');
50 
53 
54 $items_match = array(
55  'uname' => XoopsLocale::USER_NAME,
56  'name' => XoopsLocale::REAL_NAME,
57  'email' => XoopsLocale::EMAIL,
58  'user_icq' => XoopsLocale::ICQ,
59  'user_aim' => XoopsLocale::AIM,
60  'user_yim' => XoopsLocale::YIM,
61  'user_msnm' => XoopsLocale::MSNM
62 );
63 
64 $items_range = array(
66  'last_login' => XoopsLocale::LOGGED_IN_PAST_X_DAYS,
67  'posts' => XoopsLocale::POSTS
68 );
69 
70 define('FINDUSERS_MODE_SIMPLE', 0);
71 define('FINDUSERS_MODE_ADVANCED', 1);
72 
73 $modes = array(
76 );
77 
78 if (empty($_POST["user_submit"])) {
79  $form = new Xoops\Form\ThemeForm(XoopsLocale::FIND_USERS, "uesr_findform", "findusers.php", 'post', true);
80  $mode = intval(@$_REQUEST["mode"]);
81  if (FINDUSERS_MODE_ADVANCED == $mode) {
82  foreach ($items_match as $var => $title) {
83  $text = new Xoops\Form\Text("", $var, 30, 100, @$_POST[$var]);
84  $match = new Xoops\Form\SelectMatchOption("", "{$var}_match", @$_POST["{$var}_match"]);
85  $match_tray = new Xoops\Form\ElementTray($title, "&nbsp;");
86  $match_tray->addElement($match);
87  $match_tray->addElement($text);
88  $form->addElement($match_tray);
89  unset($text, $match, $match_tray);
90  }
91 
92  $url_text = new Xoops\Form\Text(XoopsLocale::URL_CONTAINS, "url", 30, 100, @$_POST["url"]);
93  $location_text = new Xoops\Form\Text(XoopsLocale::LOCATION_CONTAINS, "user_from", 30, 100, @$_POST["user_from"]);
94  $occupation_text = new Xoops\Form\Text(XoopsLocale::OCCUPATION_CONTAINS, "user_occ", 30, 100, @$_POST["user_occ"]);
95  $interest_text = new Xoops\Form\Text(XoopsLocale::INTEREST_CONTAINS, "user_intrest", 30, 100, @$_POST["user_intrest"]);
96  foreach ($items_range as $var => $title) {
97  $more = new Xoops\Form\Text("", "{$var}_more", 10, 5, @$_POST["{$var}_more"]);
98  $less = new Xoops\Form\Text("", "{$var}_less", 10, 5, @$_POST["{$var}_less"]);
99  $range_tray = new Xoops\Form\ElementTray($title, "&nbsp;-&nbsp;&nbsp;");
100  $range_tray->addElement($less);
101  $range_tray->addElement($more);
102  $form->addElement($range_tray);
103  unset($more, $less, $range_tray);
104  }
105 
106  $mailok_radio = new Xoops\Form\Radio(XoopsLocale::TYPE_OF_USERS_TO_SHOW, "user_mailok", empty($_POST["user_mailok"]) ? "both" : $_POST["user_mailok"]);
107  $mailok_radio->addOptionArray(array(
110  "both" => XoopsLocale::ALL
111  ));
112  $avatar_radio = new Xoops\Form\Radio(XoopsLocale::HAS_AVATAR, "user_avatar", empty($_POST["user_avatar"]) ? "both" : $_POST["user_avatar"]);
113  $avatar_radio->addOptionArray(array(
114  "y" => XoopsLocale::YES,
115  "n" => XoopsLocale::NO,
116  "both" => XoopsLocale::ALL
117  ));
118 
119  $level_radio = new Xoops\Form\Radio(XoopsLocale::LEVEL, "level", @$_POST["level"]);
120  $levels = array(
121  0 => XoopsLocale::ALL,
122  1 => XoopsLocale::ACTIVE,
125  );
126  $level_radio->addOptionArray($levels);
127 
128  $member_handler = $xoops->getHandlerMember();
129  $groups = $member_handler->getGroupList();
131  $group_select = new Xoops\Form\Select(XoopsLocale::GROUP, 'groups', @$_POST['groups'], 3, true);
132  $group_select->addOptionArray($groups);
133 
134  $ranks = $rank_handler->getList();
135  $ranks[0] = XoopsLocale::ALL;
136  $rank_select = new Xoops\Form\Select(XoopsLocale::RANK, 'rank', intval(@$_POST['rank']));
137  $rank_select->addOptionArray($ranks);
138  $form->addElement($url_text);
139  $form->addElement($location_text);
140  $form->addElement($occupation_text);
141  $form->addElement($interest_text);
142  $form->addElement($mailok_radio);
143  $form->addElement($avatar_radio);
144  $form->addElement($level_radio);
145  $form->addElement($group_select);
146  $form->addElement($rank_select);
147  } else {
148  foreach (array(
149  "uname",
150  "email"
151  ) as $var) {
152  $title = $items_match[$var];
153  $text = new Xoops\Form\Text("", $var, 30, 100, @$_POST[$var]);
154  $match = new Xoops\Form\SelectMatchOption("", "{$var}_match", @$_POST["{$var}_match"]);
155  $match_tray = new Xoops\Form\ElementTray($title, "&nbsp;");
156  $match_tray->addElement($match);
157  $match_tray->addElement($text);
158  $form->addElement($match_tray);
159  unset($text, $match, $match_tray);
160  }
161  }
162 
163  $sort_select = new Xoops\Form\Select(XoopsLocale::SORT_BY, "user_sort", @$_POST["user_sort"]);
164  $sort_select->addOptionArray(array(
165  "uname" => XoopsLocale::USER_NAME,
166  "last_login" => XoopsLocale::LAST_LOGIN,
167  "user_regdate" => XoopsLocale::REGISTRATION_DATE,
168  "posts" => XoopsLocale::POSTS
169  ));
170  $order_select = new Xoops\Form\Select(XoopsLocale::ORDER, "user_order", @$_POST["user_order"]);
171  $order_select->addOptionArray(array(
174  ));
175 
176  $form->addElement($sort_select);
177  $form->addElement($order_select);
178 
179  $form->addElement(new Xoops\Form\Text(XoopsLocale::NUMBER_OF_RESULTS_PER_PAGE, "limit", 6, 6, empty($_REQUEST["limit"]) ? 50 : intval($_REQUEST["limit"])));
180  $form->addElement(new Xoops\Form\Hidden("mode", $mode));
181  $form->addElement(new Xoops\Form\Hidden("target", @$_REQUEST["target"]));
182  $form->addElement(new Xoops\Form\Hidden("multiple", @$_REQUEST["multiple"]));
183  $form->addElement(new Xoops\Form\Hidden("token", $token));
184  $form->addElement(new Xoops\Form\Button("", "user_submit", XoopsLocale::A_SUBMIT, "submit"));
185 
186  $acttotal = $user_handler->getCount(new Criteria('level', 0, '>'));
187  $inacttotal = $user_handler->getCount(new Criteria('level', 0, '<='));
188  echo "</html><body>";
189  echo "<h2 style='text-align:left;'>" . XoopsLocale::FIND_USERS . " - " . $modes[$mode] . "</h2>";
190  $modes_switch = array();
191  foreach ($modes as $_mode => $title) {
192  if ($mode == $_mode) {
193  continue;
194  }
195  $modes_switch[] = "<a href='findusers.php?target=" . htmlspecialchars(@$_REQUEST["target"], ENT_QUOTES) . "&amp;multiple=" . htmlspecialchars(@$_REQUEST["multiple"], ENT_QUOTES) . "&amp;token=" . htmlspecialchars($token, ENT_QUOTES) . "&amp;mode={$_mode}'>{$title}</a>";
196  }
197  echo "<h4>" . implode(" | ", $modes_switch) . "</h4>";
198  echo "(" . sprintf(XoopsLocale::F_ACTIVE_USERS, "<span style='color:#ff0000;'>$acttotal</span>") . " " . sprintf(XoopsLocale::F_INACTIVE_USERS, "<span style='color:#ff0000;'>$inacttotal</span>") . ")";
199  $form->display();
200 } else {
202  $limit = empty($_POST['limit']) ? 50 : intval($_POST['limit']);
203  $start = intval(@$_POST['start']);
204  if (!isset($_POST["query"])) {
205  $criteria = new CriteriaCompo();
206  foreach (array_keys($items_match) as $var) {
207  if (!empty($_POST[$var])) {
208  $match = (!empty($_POST["{$var}_match"])) ? intval($_POST["{$var}_match"]) : XOOPS_MATCH_START;
209  $value = str_replace("_", "\\\_", $myts->addSlashes(trim($_POST[$var])));
210  switch ($match) {
211  case XOOPS_MATCH_START:
212  $criteria->add(new Criteria($var, $value . '%', 'LIKE'));
213  break;
214  case XOOPS_MATCH_END:
215  $criteria->add(new Criteria($var, '%' . $value, 'LIKE'));
216  break;
217  case XOOPS_MATCH_EQUAL:
218  $criteria->add(new Criteria($var, $value));
219  break;
220  case XOOPS_MATCH_CONTAIN:
221  $criteria->add(new Criteria($var, '%' . $value . '%', 'LIKE'));
222  break;
223  }
224  }
225  }
226  if (!empty($_POST['url'])) {
227  $url = $xoops->formatURL(trim($_POST['url']));
228  $criteria->add(new Criteria('url', $url . '%', 'LIKE'));
229  }
230  if (!empty($_POST['user_from'])) {
231  $criteria->add(new Criteria('user_from', '%' . $myts->addSlashes(trim($_POST['user_from'])) . '%', 'LIKE'));
232  }
233  if (!empty($_POST['user_intrest'])) {
234  $criteria->add(new Criteria('user_intrest', '%' . $myts->addSlashes(trim($_POST['user_intrest'])) . '%', 'LIKE'));
235  }
236  if (!empty($_POST['user_occ'])) {
237  $criteria->add(new Criteria('user_occ', '%' . $myts->addSlashes(trim($_POST['user_occ'])) . '%', 'LIKE'));
238  }
239  foreach (array(
240  "last_login",
241  "user_regdate"
242  ) as $var) {
243  if (!empty($_POST["{$var}_more"]) && is_numeric($_POST["{$var}_more"])) {
244  $time = time() - (60 * 60 * 24 * intval(trim($_POST["{$var}_more"])));
245  if ($time > 0) {
246  $criteria->add(new Criteria($var, $time, '<='));
247  }
248  }
249  if (!empty($_POST["{$var}_less"]) && is_numeric($_POST["{$var}_less"])) {
250  $time = time() - (60 * 60 * 24 * intval(trim($_POST["{$var}_less"])));
251  if ($time > 0) {
252  $criteria->add(new Criteria($var, $time, '>='));
253  }
254  }
255  }
256  if (!empty($_POST['posts_more']) && is_numeric($_POST['posts_more'])) {
257  $criteria->add(new Criteria('posts', intval($_POST['posts_more']), '<='));
258  }
259  if (!empty($_POST['posts_less']) && is_numeric($_POST['posts_less'])) {
260  $criteria->add(new Criteria('posts', intval($_POST['posts_less']), '>='));
261  }
262  if (!empty($_POST['user_mailok'])) {
263  if ($_POST['user_mailok'] == "mailng") {
264  $criteria->add(new Criteria('user_mailok', 0));
265  } else {
266  if ($_POST['user_mailok'] == "mailok") {
267  $criteria->add(new Criteria('user_mailok', 1));
268  }
269  }
270  }
271  if (!empty($_POST['user_avatar'])) {
272  if ($_POST['user_avatar'] == "y") {
273  $criteria->add(new Criteria('user_avatar', "('', 'blank.gif')", 'NOT IN'));
274  } else {
275  if ($_POST['user_avatar'] == "n") {
276  $criteria->add(new Criteria('user_avatar', "('', 'blank.gif')", 'IN'));
277  }
278  }
279  }
280  if (!empty($_POST['level'])) {
281  $level_value = array(
282  1 => 1,
283  2 => 0,
284  3 => -1
285  );
286  $level = isset($level_value[intval($_POST["level"])]) ? $level_value[intval($_POST["level"])] : 1;
287  $criteria->add(new Criteria("level", $level));
288  }
289  if (!empty($_POST['rank'])) {
290  $rank_obj = $rank_handler->get($_POST['rank']);
291  if ($rank_obj->getVar("rank_special")) {
292  $criteria->add(new Criteria("rank", intval($_POST['rank'])));
293  } else {
294  if ($rank_obj->getVar("rank_min")) {
295  $criteria->add(new Criteria('posts', $rank_obj->getVar("rank_min"), '>='));
296  }
297  if ($rank_obj->getVar("rank_max")) {
298  $criteria->add(new Criteria('posts', $rank_obj->getVar("rank_max"), '<='));
299  }
300  }
301  }
302  // @todo this used to accept a second criteris, an array of groups. (@$_POST["groups"])
303  // perhaps use XoopsMemberHandler getUsersByGroupLink()?
304  $total = $user_handler->getCount($criteria);
305  $validsort = array(
306  "uname",
307  "email",
308  "last_login",
309  "user_regdate",
310  "posts"
311  );
312  $sort = (!in_array($_POST['user_sort'], $validsort)) ? "uname" : $_POST['user_sort'];
313  $order = "ASC";
314  if (isset($_POST['user_order']) && $_POST['user_order'] == "DESC") {
315  $order = "DESC";
316  }
317  $criteria->setSort($sort);
318  $criteria->setOrder($order);
319  $criteria->setLimit($limit);
320  $criteria->setStart($start);
321  // @todo this used to accept a second criteris, an array of groups. (@$_POST["groups"])
322  // perhaps use XoopsMemberHandler getUsersByGroupLink()?
323  $foundusers = $user_handler->getAll($criteria);
324  }
325 
326  echo $js_adduser = '
327  <script type="text/javascript">
328  var multiple=' . intval($_REQUEST['multiple']) . ';
329  function addusers()
330  {
331  var sel_str = "";
332  var num = 0;
333  var mForm = document.forms["' . $name_form . '"];
334  for (var i=0;i!=mForm.elements.length;i++) {
335  var id=mForm.elements[i];
336  if ( ( (multiple > 0 && id.type == "checkbox") || (multiple == 0 && id.type == "radio") ) && (id.checked == true) && ( id.name == "' . $name_userid . '" ) ) {
337  var name = mForm.elements[++i];
338  var len = id.value.length + name.value.length;
339  sel_str += len + ":" + id.value + ":" + name.value;
340  num ++;
341  }
342  }
343  if (num == 0) {
344  alert("' . XoopsLocale::E_NO_USER_SELECTED . '");
345  return false;
346  }
347  sel_str = num + ":" + sel_str;
348  window.opener.addusers(sel_str);
349  alert("' . XoopsLocale::S_USERS_ADDED . '");
350  if (multiple == 0) {
351  window.close();
352  window.opener.focus();
353  }
354  return true;
355  }
356  </script>
357  ';
358 
359  echo "</html><body>";
360  echo "<a href='findusers.php?target=" . htmlspecialchars(@$_POST["target"], ENT_QUOTES) . "&amp;multiple=" . intval(@$_POST["multiple"]) . "&amp;token=" . htmlspecialchars($token, ENT_QUOTES) . "'>" . XoopsLocale::FIND_USERS . "</a>&nbsp;<span style='font-weight:bold;'>&raquo;&raquo;</span>&nbsp;" . XoopsLocale::SEARCH_RESULTS . "<br /><br />";
361  if (empty($start) && empty($foundusers)) {
362  echo "<h4>" . XoopsLocale::E_USERS_NOT_FOUND, "</h4>";
363  $hiddenform = "<form name='findnext' action='findusers.php' method='post'>";
364  foreach ($_POST as $k => $v) {
365  if ($k == 'XOOPS_TOKEN_REQUEST') {
366  // regenerate token value
367  $hiddenform .= $xoops->security()->getTokenHTML() . "\n";
368  } else {
369  $hiddenform .= "<input type='hidden' name='" . htmlSpecialChars($k, ENT_QUOTES) . "' value='" . htmlSpecialChars($myts->stripSlashesGPC($v), ENT_QUOTES) . "' />\n";
370  }
371  }
372  if (!isset($_POST['limit'])) {
373  $hiddenform .= "<input type='hidden' name='limit' value='{$limit}' />\n";
374  }
375  if (!isset($_POST['start'])) {
376  $hiddenform .= "<input type='hidden' name='start' value='{$start}' />\n";
377  }
378  $hiddenform .= "<input type='hidden' name='token' value='" . htmlspecialchars($token, ENT_QUOTES) . "' />\n";
379  $hiddenform .= "</form>";
380 
381  echo "<div>" . $hiddenform;
382  echo "<a href='#' onclick='javascript:document.findnext.start.value=0;document.findnext.user_submit.value=0;document.findnext.submit();'>" . XoopsLocale::SEARCH_AGAIN . "</a>\n";
383  echo "</div>";
384  } else {
385  if ($start < $total) {
386  if (!empty($total)) {
387  echo sprintf(XoopsLocale::F_USERS_FOUND, $total) . "<br />";
388  }
389  if (!empty($foundusers)) {
390  echo "<form action='findusers.php' method='post' name='{$name_form}' id='{$name_form}'>
391  <table width='100%' border='0' cellspacing='1' cellpadding='4' class='outer'>
392  <tr>
393  <th align='center' width='5px'>";
394  if (!empty($_POST["multiple"])) {
395  echo "<input type='checkbox' name='memberslist_checkall' id='memberslist_checkall' onclick='xoopsCheckAll(\"{$name_form}\", \"memberslist_checkall\");' />";
396  }
397  echo "</th>
398  <th align='center'>" . XoopsLocale::USER_NAME . "</th>
399  <th align='center'>" . XoopsLocale::REAL_NAME . "</th>
400  <th align='center'>" . XoopsLocale::USER_REGISTRATION . "</th>
401  <th align='center'>" . XoopsLocale::LAST_LOGIN . "</th>
402  <th align='center'>" . XoopsLocale::POSTS . "</th>
403  </tr>";
404  $ucount = 0;
405  foreach (array_keys($foundusers) as $j) {
406  if ($ucount % 2 == 0) {
407  $class = 'even';
408  } else {
409  $class = 'odd';
410  }
411  ++$ucount;
412  $fuser_name = $foundusers[$j]->getVar("name") ? $foundusers[$j]->getVar("name") : "&nbsp;";
413  echo "<tr class='$class'>
414  <td align='center'>";
415  if (!empty($_POST["multiple"])) {
416  echo "<input type='checkbox' name='{$name_userid}' id='{$name_userid}' value='" . $foundusers[$j]->getVar("uid") . "' />";
417  echo "<input type='hidden' name='{$name_username}' id='{$name_username}' value='" . $foundusers[$j]->getVar("uname") . "' />";
418  } else {
419  echo "<input type='radio' name='{$name_userid}' id='{$name_userid}' value='" . $foundusers[$j]->getVar("uid") . "' />";
420  echo "<input type='hidden' name='{$name_username}' id='{$name_username}' value='" . $foundusers[$j]->getVar("uname") . "' />";
421  }
422  echo "</td>
423  <td><a href='" . \XoopsBaseConfig::get('url') . "/userinfo.php?uid=" . $foundusers[$j]->getVar("uid") . "' target='_blank'>" . $foundusers[$j]->getVar("uname") . "</a></td>
424  <td>" . $fuser_name . "</td>
425  <td align='center'>" . ($foundusers[$j]->getVar("user_regdate") ? date("Y-m-d", $foundusers[$j]->getVar("user_regdate")) : "") . "</td>
426  <td align='center'>" . ($foundusers[$j]->getVar("last_login") ? date("Y-m-d H:i", $foundusers[$j]->getVar("last_login")) : "") . "</td>
427  <td align='center'>" . $foundusers[$j]->getVar("posts") . "</td>";
428  echo "</tr>\n";
429  }
430  echo "<tr class='foot'><td colspan='6'>";
431 
432  // placeholder for external applications
433  if (empty($_POST["target"])) {
434  echo "<select name='fct'><option value='users'>" . XoopsLocale::A_DELETE . "</option><option value='mailusers'>" . XoopsLocale::SEND_EMAIL . "</option>";
435  echo "</select>&nbsp;";
436  echo $xoops->security()->getTokenHTML() . "<input type='submit' value='" . XoopsLocale::A_SUBMIT . "' />";
437  // Add selected users
438  } else {
439  echo "<input type='button' value='" . XoopsLocale::ADD_SELECTED_USERS . "' onclick='addusers();' />";
440  }
441  echo "<input type='hidden' name='token' value='" . htmlspecialchars($token, ENT_QUOTES) . "' />\n";
442  echo "</td></tr></table></form>\n";
443  }
444 
445  $hiddenform = "<form name='findnext' action='findusers.php' method='post'>";
446  foreach ($_POST as $k => $v) {
447  if ($k == 'XOOPS_TOKEN_REQUEST') {
448  // regenerate token value
449  $hiddenform .= $xoops->security()->getTokenHTML() . "\n";
450  } else {
451  $hiddenform .= "<input type='hidden' name='" . htmlSpecialChars($k, ENT_QUOTES) . "' value='" . htmlSpecialChars($myts->stripSlashesGPC($v), ENT_QUOTES) . "' />\n";
452  }
453  }
454  if (!isset($_POST['limit'])) {
455  $hiddenform .= "<input type='hidden' name='limit' value='" . $limit . "' />\n";
456  }
457  if (!isset($_POST['start'])) {
458  $hiddenform .= "<input type='hidden' name='start' value='" . $start . "' />\n";
459  }
460  $hiddenform .= "<input type='hidden' name='token' value='" . htmlspecialchars($token, ENT_QUOTES) . "' />\n";
461  if (!isset($total) || ($totalpages = ceil($total / $limit)) > 1) {
462  $prev = $start - $limit;
463  if ($start - $limit >= 0) {
464  $hiddenform .= "<a href='#0' onclick='javascript:document.findnext.start.value=" . $prev . ";document.findnext.submit();'>" . XoopsLocale::PREVIOUS . "</a>&nbsp;\n";
465  }
466  $counter = 1;
467  $currentpage = ($start + $limit) / $limit;
468  if (!isset($total)) {
469  while ($counter <= $currentpage) {
470  if ($counter == $currentpage) {
471  $hiddenform .= "<strong>" . $counter . "</strong> ";
472  } else {
473  if (($counter > $currentpage - 4 && $counter < $currentpage + 4) || $counter == 1) {
474  $hiddenform .= "<a href='#" . $counter . "' onclick='javascript:document.findnext.start.value=" . ($counter - 1) * $limit . ";document.findnext.submit();'>" . $counter . "</a> ";
475  if ($counter == 1 && $currentpage > 5) {
476  $hiddenform .= "... ";
477  }
478  }
479  }
480  ++$counter;
481  }
482  } else {
483  while ($counter <= $totalpages) {
484  if ($counter == $currentpage) {
485  $hiddenform .= "<strong>" . $counter . "</strong> ";
486  } else {
487  if (($counter > $currentpage - 4 && $counter < $currentpage + 4) || $counter == 1 || $counter == $totalpages) {
488  if ($counter == $totalpages && $currentpage < $totalpages - 4) {
489  $hiddenform .= "... ";
490  }
491  $hiddenform .= "<a href='#" . $counter . "' onclick='javascript:document.findnext.start.value=" . ($counter - 1) * $limit . ";document.findnext.submit();'>" . $counter . "</a> ";
492  if ($counter == 1 && $currentpage > 5) {
493  $hiddenform .= "... ";
494  }
495  }
496  }
497  ++$counter;
498  }
499  }
500 
501  $next = $start + $limit;
502  if ((isset($total) && $total > $next) || (!isset($total) && count($foundusers) >= $limit)) {
503  $hiddenform .= "&nbsp;<a href='#" . $total . "' onclick='javascript:document.findnext.start.value=" . $next . ";document.findnext.submit();'>" . XoopsLocale::NEXT . "</a>\n";
504  }
505  }
506  $hiddenform .= "</form>";
507 
508  echo "<div>" . $hiddenform;
509  if (isset($total)) {
510  echo "<br />" . sprintf(XoopsLocale::F_USERS_FOUND, $total) . "&nbsp;";
511  }
512  echo "<a href='#' onclick='javascript:document.findnext.start.value=0;document.findnext.user_submit.value=0;document.findnext.submit();'>" . XoopsLocale::SEARCH_AGAIN . "</a>\n";
513  echo "</div>";
514  }
515  }
516 }
517 
518 $xoops->simpleFooter();
519 //$xoops->footer();
const LOGGED_IN_PAST_X_DAYS
Definition: en_US.php:517
const ONLY_USERS_THAT_DO_NOT_ACCEPT_EMAIL
Definition: en_US.php:886
const INTEREST_CONTAINS
Definition: en_US.php:485
const TYPE_OF_USERS_TO_SHOW
Definition: en_US.php:1068
const S_USERS_ADDED
Definition: en_US.php:1033
const A_SUBMIT
Definition: en_US.php:128
const ONLY_USERS_THAT_ACCEPT_EMAIL
Definition: en_US.php:885
$user_handler
Definition: findusers.php:52
if($uname== ''||$pass== '') $member_handler
Definition: checklogin.php:44
const ADVANCED_MODE
Definition: en_US.php:53
const XOOPS_MATCH_END
Definition: defines.php:35
$name_username
Definition: findusers.php:49
const ADD_SELECTED_USERS
Definition: en_US.php:49
const F_USERS_FOUND
Definition: en_US.php:444
static getInstance()
Definition: Xoops.php:160
const SEARCH_AGAIN
Definition: en_US.php:964
const DESCENDING_ORDER
Definition: en_US.php:206
const XOOPS_MATCH_START
Definition: defines.php:34
const XOOPS_MATCH_EQUAL
Definition: defines.php:36
$text
Definition: qrrender.php:27
const F_ACTIVE_USERS
Definition: en_US.php:399
const USER_NAME
Definition: en_US.php:1083
const FIND_USERS
Definition: en_US.php:391
const SEARCH_RESULTS
Definition: en_US.php:966
const REGISTRATION_DATE
Definition: en_US.php:949
$form
Definition: xoops_code.php:21
$xoops
Definition: findusers.php:26
$items_match
Definition: findusers.php:54
const ACTIVE
Definition: en_US.php:48
exit
Definition: browse.php:104
const REGISTERED_IN_PAST_X_DAYS
Definition: en_US.php:947
$name_form
Definition: findusers.php:47
const SIMPLE_MODE
Definition: en_US.php:1006
const USER_REGISTRATION
Definition: en_US.php:1084
$items_range
Definition: findusers.php:64
const LAST_LOGIN
Definition: en_US.php:497
defined('DS') or define('DS' DIRECTORY_SEPARATOR
Definition: common.php:41
const OCCUPATION_CONTAINS
Definition: en_US.php:873
const FINDUSERS_MODE_ADVANCED
Definition: findusers.php:71
const XOOPS_MATCH_CONTAIN
Definition: defines.php:37
$rank_handler
Definition: findusers.php:51
$start
Definition: findusers.php:203
const HAS_AVATAR
Definition: en_US.php:458
$modes
Definition: findusers.php:73
const FINDUSERS_MODE_SIMPLE
Definition: findusers.php:70
static get($name)
const REAL_NAME
Definition: en_US.php:942
const ASCENDING_ORDER
Definition: en_US.php:74
const NUMBER_OF_RESULTS_PER_PAGE
Definition: en_US.php:871
const E_NO_ACCESS_PERMISSION
Definition: en_US.php:351
const E_USERS_NOT_FOUND
Definition: en_US.php:374
const SEND_EMAIL
Definition: en_US.php:977
$groups
const E_NO_USER_SELECTED
Definition: en_US.php:357
$limit
Definition: findusers.php:202
$url
Definition: register.php:72
$name_userid
Definition: findusers.php:48
$criteria
const PREVIOUS
Definition: en_US.php:912
const INACTIVE
Definition: en_US.php:475
const A_DELETE
Definition: en_US.php:89
$var
Definition: userinfo.php:125
const URL_CONTAINS
Definition: en_US.php:1077
$myts
Definition: edituser.php:38
const LOCATION_CONTAINS
Definition: en_US.php:516
const F_INACTIVE_USERS
Definition: en_US.php:415
$j
Definition: help.php:169
const DISABLED
Definition: en_US.php:209
$denied
Definition: findusers.php:31