home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / CMS / xoops-2.0.18.1.exe / xoops-2.0.18.1 / htdocs / modules / system / admin / findusers / main.php < prev    next >
Encoding:
PHP Script  |  2007-09-09  |  25.7 KB  |  465 lines

  1. <?php
  2. // $Id: main.php 1029 2007-09-09 03:49:25Z phppp $
  3. //  ------------------------------------------------------------------------ //
  4. //                XOOPS - PHP Content Management System                      //
  5. //                    Copyright (c) 2000 XOOPS.org                           //
  6. //                       <http://www.xoops.org/>                             //
  7. //  ------------------------------------------------------------------------ //
  8. //  This program is free software; you can redistribute it and/or modify     //
  9. //  it under the terms of the GNU General Public License as published by     //
  10. //  the Free Software Foundation; either version 2 of the License, or        //
  11. //  (at your option) any later version.                                      //
  12. //                                                                           //
  13. //  You may not change or alter any portion of this comment or credits       //
  14. //  of supporting developers from this source code or any supporting         //
  15. //  source code which is considered copyrighted (c) material of the          //
  16. //  original comment or credit authors.                                      //
  17. //                                                                           //
  18. //  This program is distributed in the hope that it will be useful,          //
  19. //  but WITHOUT ANY WARRANTY; without even the implied warranty of           //
  20. //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
  21. //  GNU General Public License for more details.                             //
  22. //                                                                           //
  23. //  You should have received a copy of the GNU General Public License        //
  24. //  along with this program; if not, write to the Free Software              //
  25. //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
  26. //  ------------------------------------------------------------------------ //
  27. // Author: Kazumi Ono (AKA onokazu)                                          //
  28. // URL: http://www.myweb.ne.jp/, http://www.xoops.org/, http://jp.xoops.org/ //
  29. // Project: The XOOPS Project                                                //
  30. // ------------------------------------------------------------------------- //
  31.  
  32. if ( !is_object($xoopsUser) || !is_object($xoopsModule) || !$xoopsUser->isAdmin($xoopsModule->mid()) ) {
  33.     exit("Access Denied");
  34. }
  35. $op = "form";
  36.  
  37. if ( isset($_POST['op']) && $_POST['op'] == "submit" ) {
  38.     $op = "submit";
  39. }
  40.  
  41. xoops_cp_header();
  42. //OpenTable();
  43.  
  44. if ( $op == "form" ) {
  45.     $member_handler =& xoops_gethandler('member');
  46.     $acttotal = $member_handler->getUserCount(new Criteria('level', 0, '>'));
  47.     $inacttotal = $member_handler->getUserCount(new Criteria('level', 0));
  48.     include_once XOOPS_ROOT_PATH."/class/xoopsformloader.php";
  49.     $group_select = new XoopsFormSelectGroup(_AM_GROUPS, "selgroups", null, false, 5, true);
  50.     $uname_text = new XoopsFormText("", "user_uname", 30, 60);
  51.     $uname_match = new XoopsFormSelectMatchOption("", "user_uname_match");
  52.     $uname_tray = new XoopsFormElementTray(_AM_UNAME, " ");
  53.     $uname_tray->addElement($uname_match);
  54.     $uname_tray->addElement($uname_text);
  55.     $name_text = new XoopsFormText("", "user_name", 30, 60);
  56.     $name_match = new XoopsFormSelectMatchOption("", "user_name_match");
  57.     $name_tray = new XoopsFormElementTray(_AM_REALNAME, " ");
  58.     $name_tray->addElement($name_match);
  59.     $name_tray->addElement($name_text);
  60.     $email_text = new XoopsFormText("", "user_email", 30, 60);
  61.     $email_match = new XoopsFormSelectMatchOption("", "user_email_match");
  62.     $email_tray = new XoopsFormElementTray(_AM_EMAIL, " ");
  63.     $email_tray->addElement($email_match);
  64.     $email_tray->addElement($email_text);
  65.     $url_text = new XoopsFormText(_AM_URLC, "user_url", 30, 100);
  66.     //$theme_select = new XoopsFormSelectTheme(_AM_THEME, "user_theme");
  67.     //$timezone_select = new XoopsFormSelectTimezone(_AM_TIMEZONE, "user_timezone_offset");
  68.     $icq_text = new XoopsFormText("", "user_icq", 30, 100);
  69.     $icq_match = new XoopsFormSelectMatchOption("", "user_icq_match");
  70.     $icq_tray = new XoopsFormElementTray(_AM_ICQ, " ");
  71.     $icq_tray->addElement($icq_match);
  72.     $icq_tray->addElement($icq_text);
  73.     $aim_text = new XoopsFormText("", "user_aim", 30, 100);
  74.     $aim_match = new XoopsFormSelectMatchOption("", "user_aim_match");
  75.     $aim_tray = new XoopsFormElementTray(_AM_AIM, " ");
  76.     $aim_tray->addElement($aim_match);
  77.     $aim_tray->addElement($aim_text);
  78.     $yim_text = new XoopsFormText("", "user_yim", 30, 100);
  79.     $yim_match = new XoopsFormSelectMatchOption("", "user_yim_match");
  80.     $yim_tray = new XoopsFormElementTray(_AM_YIM, " ");
  81.     $yim_tray->addElement($yim_match);
  82.     $yim_tray->addElement($yim_text);
  83.     $msnm_text = new XoopsFormText("", "user_msnm", 30, 100);
  84.     $msnm_match = new XoopsFormSelectMatchOption("", "user_msnm_match");
  85.     $msnm_tray = new XoopsFormElementTray(_AM_MSNM, " ");
  86.     $msnm_tray->addElement($msnm_match);
  87.     $msnm_tray->addElement($msnm_text);
  88.     $location_text = new XoopsFormText(_AM_LOCATION, "user_from", 30, 100);
  89.     $occupation_text = new XoopsFormText(_AM_OCCUPATION, "user_occ", 30, 100);
  90.     $interest_text = new XoopsFormText(_AM_INTEREST, "user_intrest", 30, 100);
  91.  
  92.     //$bio_text = new XoopsFormText(_AM_EXTRAINFO, "user_bio", 30, 100);
  93.     $lastlog_more = new XoopsFormText(_AM_LASTLOGMORE, "user_lastlog_more", 10, 5);
  94.     $lastlog_less = new XoopsFormText(_AM_LASTLOGLESS, "user_lastlog_less", 10, 5);
  95.     $reg_more = new XoopsFormText(_AM_REGMORE, "user_reg_more", 10, 5);
  96.     $reg_less = new XoopsFormText(_AM_REGLESS, "user_reg_less", 10, 5);
  97.     $posts_more = new XoopsFormText(_AM_POSTSMORE, "user_posts_more", 10, 5);
  98.     $posts_less = new XoopsFormText(_AM_POSTSLESS, "user_posts_less", 10, 5);
  99.     $mailok_radio = new XoopsFormRadio(_AM_SHOWMAILOK, "user_mailok", "both");
  100.     $mailok_radio->addOptionArray(array("mailok"=>_AM_MAILOK, "mailng"=>_AM_MAILNG, "both"=>_AM_BOTH));
  101.     $type_radio = new XoopsFormRadio(_AM_SHOWTYPE, "user_type", "actv");
  102.     $type_radio->addOptionArray(array("actv"=>_AM_ACTIVE, "inactv"=>_AM_INACTIVE, "both"=>_AM_BOTH));
  103.     $sort_select = new XoopsFormSelect(_AM_SORT, "user_sort");
  104.     $sort_select->addOptionArray(array("uname"=>_AM_UNAME,"email"=>_AM_EMAIL,"last_login"=>_AM_LASTLOGIN,"user_regdate"=>_AM_REGDATE,"posts"=>_AM_POSTS));
  105.     $order_select = new XoopsFormSelect(_AM_ORDER, "user_order");
  106.     $order_select->addOptionArray(array("ASC"=>_AM_ASC,"DESC"=>_AM_DESC));
  107.     $limit_text = new XoopsFormText(_AM_LIMIT, "limit", 6, 2);
  108.     $fct_hidden = new XoopsFormHidden("fct", "findusers");
  109.     $op_hidden = new XoopsFormHidden("op", "submit");
  110.     $submit_button = new XoopsFormButton("", "user_submit", _SUBMIT, "submit");
  111.  
  112.     $form = new XoopsThemeForm(_AM_FINDUS, "uesr_findform", "admin.php", 'post', true);
  113.     $form->addElement($uname_tray);
  114.     $form->addElement($name_tray);
  115.     $form->addElement($email_tray);
  116.     $form->addElement($group_select);
  117.     //$form->addElement($theme_select);
  118.     //$form->addElement($timezone_select);
  119.     $form->addElement($icq_tray);
  120.     $form->addElement($aim_tray);
  121.     $form->addElement($yim_tray);
  122.     $form->addElement($msnm_tray);
  123.     $form->addElement($url_text);
  124.     $form->addElement($location_text);
  125.     $form->addElement($occupation_text);
  126.     $form->addElement($interest_text);
  127.     //$form->addElement($bio_text);
  128.     $form->addElement($lastlog_more);
  129.     $form->addElement($lastlog_less);
  130.     $form->addElement($reg_more);
  131.     $form->addElement($reg_less);
  132.     $form->addElement($posts_more);
  133.     $form->addElement($posts_less);
  134.     $form->addElement($mailok_radio);
  135.     $form->addElement($type_radio);
  136.     $form->addElement($sort_select);
  137.     $form->addElement($order_select);
  138.     $form->addElement($fct_hidden);
  139.     $form->addElement($limit_text);
  140.     $form->addElement($op_hidden);
  141.     // if this is to find users for a specific group
  142.     if ( !empty($_GET['group']) && intval($_GET['group']) > 0 ) {
  143.         $group_hidden = new XoopsFormHidden("group", intval($_GET['group']));
  144.         $form->addElement($group_hidden);
  145.     }
  146.     $form->addElement($submit_button);
  147.     echo "<h4 style='text-align:left;'>"._AM_FINDUS."</h4>(".sprintf(_AM_ACTUS, "<span style='color:#ff0000;'>$acttotal</span>")." ".sprintf(_AM_INACTUS, "<span style='color:#ff0000;'>$inacttotal</span>").")";
  148.     $form->display();
  149. }
  150.  
  151. elseif ($op == "submit" & $GLOBALS['xoopsSecurity']->check()) {
  152.     $myts =& MyTextSanitizer::getInstance();
  153.     $criteria = new CriteriaCompo();
  154.     if ( !empty($_POST['user_uname']) ) {
  155.         $match = (!empty($_POST['user_uname_match'])) ? intval($_POST['user_uname_match']) : XOOPS_MATCH_START;
  156.         switch ($match) {
  157.         case XOOPS_MATCH_START:
  158.             $criteria->add(new Criteria('uname', $myts->addSlashes(trim($_POST['user_uname'])).'%', 'LIKE'));
  159.             break;
  160.         case XOOPS_MATCH_END:
  161.             $criteria->add(new Criteria('uname', '%'.$myts->addSlashes(trim($_POST['user_uname'])), 'LIKE'));
  162.             break;
  163.         case XOOPS_MATCH_EQUAL:
  164.             $criteria->add(new Criteria('uname', $myts->addSlashes(trim($_POST['user_uname']))));
  165.             break;
  166.         case XOOPS_MATCH_CONTAIN:
  167.             $criteria->add(new Criteria('uname', '%'.$myts->addSlashes(trim($_POST['user_uname'])).'%', 'LIKE'));
  168.             break;
  169.         }
  170.     }
  171.     if ( !empty($_POST['user_name']) ) {
  172.         $match = (!empty($_POST['user_name_match'])) ? intval($_POST['user_name_match']) : XOOPS_MATCH_START;
  173.         switch ($match) {
  174.         case XOOPS_MATCH_START:
  175.             $criteria->add(new Criteria('name', $myts->addSlashes(trim($_POST['user_name'])).'%', 'LIKE'));
  176.             break;
  177.         case XOOPS_MATCH_END:
  178.             $criteria->add(new Criteria('name', '%'.$myts->addSlashes(trim($_POST['user_name'])), 'LIKE'));
  179.             break;
  180.         case XOOPS_MATCH_EQUAL:
  181.             $criteria->add(new Criteria('name', $myts->addSlashes(trim($_POST['user_name']))));
  182.             break;
  183.         case XOOPS_MATCH_CONTAIN:
  184.             $criteria->add(new Criteria('name', '%'.$myts->addSlashes(trim($_POST['user_name'])).'%', 'LIKE'));
  185.             break;
  186.         }
  187.     }
  188.     if ( !empty($_POST['user_email']) ) {
  189.         $match = (!empty($_POST['user_email_match'])) ? intval($_POST['user_email_match']) : XOOPS_MATCH_START;
  190.         switch ($match) {
  191.         case XOOPS_MATCH_START:
  192.             $criteria->add(new Criteria('email', $myts->addSlashes(trim($_POST['user_email'])).'%', 'LIKE'));
  193.             break;
  194.         case XOOPS_MATCH_END:
  195.             $criteria->add(new Criteria('email', '%'.$myts->addSlashes(trim($_POST['user_email'])), 'LIKE'));
  196.             break;
  197.         case XOOPS_MATCH_EQUAL:
  198.             $criteria->add(new Criteria('email', $myts->addSlashes(trim($_POST['user_email']))));
  199.             break;
  200.         case XOOPS_MATCH_CONTAIN:
  201.             $criteria->add(new Criteria('email', '%'.$myts->addSlashes(trim($_POST['user_email'])).'%', 'LIKE'));
  202.             break;
  203.         }
  204.     }
  205.     if ( !empty($_POST['user_url']) ) {
  206.         $url = formatURL(trim($_POST['user_url']));
  207.         $criteria->add(new Criteria('url', $url.'%', 'LIKE'));
  208.     }
  209.     if ( !empty($_POST['user_icq']) ) {
  210.         $match = (!empty($_POST['user_icq_match'])) ? intval($_POST['user_icq_match']) : XOOPS_MATCH_START;
  211.         switch ($match) {
  212.         case XOOPS_MATCH_START:
  213.             $criteria->add(new Criteria('user_icq', $myts->addSlashes(trim($_POST['user_icq'])).'%', 'LIKE'));
  214.             break;
  215.         case XOOPS_MATCH_END:
  216.             $criteria->add(new Criteria('user_icq', '%'.$myts->addSlashes(trim($_POST['user_icq'])), 'LIKE'));
  217.             break;
  218.         case XOOPS_MATCH_EQUAL:
  219.             $criteria->add(new Criteria('user_icq', '%'.$myts->addSlashes(trim($_POST['user_icq']))));
  220.             break;
  221.         case XOOPS_MATCH_CONTAIN:
  222.             $criteria->add(new Criteria('user_icq', '%'.$myts->addSlashes(trim($_POST['user_icq'])).'%', 'LIKE'));
  223.             break;
  224.         }
  225.     }
  226.     if ( !empty($_POST['user_aim']) ) {
  227.         $match = (!empty($_POST['user_aim_match'])) ? intval($_POST['user_aim_match']) : XOOPS_MATCH_START;
  228.         switch ($match) {
  229.         case XOOPS_MATCH_START:
  230.             $criteria->add(new Criteria('user_aim', $myts->addSlashes(trim($_POST['user_aim'])).'%', 'LIKE'));
  231.             break;
  232.         case XOOPS_MATCH_END:
  233.             $criteria->add(new Criteria('user_aim', '%'.$myts->addSlashes(trim($_POST['user_aim'])), 'LIKE'));
  234.             break;
  235.         case XOOPS_MATCH_EQUAL:
  236.             $criteria->add(new Criteria('user_aim', $myts->addSlashes(trim($_POST['user_aim']))));
  237.             break;
  238.         case XOOPS_MATCH_CONTAIN:
  239.             $criteria->add(new Criteria('user_aim', '%'.$myts->addSlashes(trim($_POST['user_aim'])).'%', 'LIKE'));
  240.             break;
  241.         }
  242.     }
  243.     if ( !empty($_POST['user_yim']) ) {
  244.         $match = (!empty($_POST['user_yim_match'])) ? intval($_POST['user_yim_match']) : XOOPS_MATCH_START;
  245.         switch ($match) {
  246.         case XOOPS_MATCH_START:
  247.             $criteria->add(new Criteria('user_yim', $myts->addSlashes(trim($_POST['user_yim'])).'%', 'LIKE'));
  248.             break;
  249.         case XOOPS_MATCH_END:
  250.             $criteria->add(new Criteria('user_yim', '%'.$myts->addSlashes(trim($_POST['user_yim'])), 'LIKE'));
  251.             break;
  252.         case XOOPS_MATCH_EQUAL:
  253.             $criteria->add(new Criteria('user_yim', $myts->addSlashes(trim($_POST['user_yim']))));
  254.             break;
  255.         case XOOPS_MATCH_CONTAIN:
  256.             $criteria->add(new Criteria('user_yim', '%'.$myts->addSlashes(trim($_POST['user_yim'])).'%', 'LIKE'));
  257.             break;
  258.         }
  259.     }
  260.     if ( !empty($_POST['user_msnm']) ) {
  261.         $match = (!empty($_POST['user_msnm_match'])) ? intval($_POST['user_msnm_match']) : XOOPS_MATCH_START;
  262.         switch ($match) {
  263.         case XOOPS_MATCH_START:
  264.             $criteria->add(new Criteria('user_msnm', $myts->addSlashes(trim($_POST['user_msnm'])).'%', 'LIKE'));
  265.             break;
  266.         case XOOPS_MATCH_END:
  267.             $criteria->add(new Criteria('user_msnm', '%'.$myts->addSlashes(trim($_POST['user_msnm'])), 'LIKE'));
  268.             break;
  269.         case XOOPS_MATCH_EQUAL:
  270.             $criteria->add(new Criteria('user_msnm', '%'.$myts->addSlashes(trim($_POST['user_msnm']))));
  271.             break;
  272.         case XOOPS_MATCH_CONTAIN:
  273.             $criteria->add(new Criteria('user_msnm', '%'.$myts->addSlashes(trim($_POST['user_msnm'])).'%', 'LIKE'));
  274.             break;
  275.         }
  276.     }
  277.     if ( !empty($_POST['user_from']) ) {
  278.         $criteria->add(new Criteria('user_from', '%'.$myts->addSlashes(trim($_POST['user_from'])).'%', 'LIKE'));
  279.     }
  280.     if ( !empty($_POST['user_intrest']) ) {
  281.         $criteria->add(new Criteria('user_intrest', '%'.$myts->addSlashes(trim($_POST['user_intrest'])).'%', 'LIKE'));
  282.     }
  283.     if ( !empty($_POST['user_occ']) ) {
  284.         $criteria->add(new Criteria('user_occ', '%'.$myts->addSlashes(trim($_POST['user_occ'])).'%', 'LIKE'));
  285.     }
  286.  
  287.     if ( !empty($_POST['user_lastlog_more']) && is_numeric($_POST['user_lastlog_more']) ) {
  288.         $f_user_lastlog_more = intval(trim($_POST['user_lastlog_more']));
  289.         $time = time() - (60 * 60 * 24 * $f_user_lastlog_more);
  290.         if ( $time > 0 ) {
  291.             $criteria->add(new Criteria('last_login', $time, '<'));
  292.         }
  293.     }
  294.     if ( !empty($_POST['user_lastlog_less']) && is_numeric($_POST['user_lastlog_less']) ) {
  295.         $f_user_lastlog_less = intval(trim($_POST['user_lastlog_less']));
  296.         $time = time() - (60 * 60 * 24 * $f_user_lastlog_less);
  297.         if ( $time > 0 ) {
  298.             $criteria->add(new Criteria('last_login', $time, '>'));
  299.         }
  300.     }
  301.     if ( !empty($_POST['user_reg_more']) && is_numeric($_POST['user_reg_more']) ) {
  302.         $f_user_reg_more = intval(trim($_POST['user_reg_more']));
  303.         $time = time() - (60 * 60 * 24 * $f_user_reg_more);
  304.         if ( $time > 0 ) {
  305.             $criteria->add(new Criteria('user_regdate', $time, '<'));
  306.         }
  307.     }
  308.     if ( !empty($_POST['user_reg_less']) && is_numeric($_POST['user_reg_less']) ) {
  309.         $f_user_reg_less = intval($_POST['user_reg_less']);
  310.         $time = time() - (60 * 60 * 24 * $f_user_reg_less);
  311.         if ( $time > 0 ) {
  312.             $criteria->add(new Criteria('user_regdate', $time, '>'));
  313.         }
  314.     }
  315.     if ( !empty($_POST['user_posts_more']) && is_numeric($_POST['user_posts_more']) ) {
  316.         $criteria->add(new Criteria('posts', intval($_POST['user_posts_more']), '>'));
  317.     }
  318.     if ( !empty($_POST['user_posts_less']) && is_numeric($_POST['user_posts_less']) ) {
  319.         $criteria->add(new Criteria('posts', intval($_POST['user_posts_less']), '<'));
  320.     }
  321.     if ( isset($_POST['user_mailok']) ) {
  322.         if ( $_POST['user_mailok'] == "mailng" ) {
  323.             $criteria->add(new Criteria('user_mailok', 0));
  324.         } elseif ( $_POST['user_mailok'] == "mailok" ) {
  325.             $criteria->add(new Criteria('user_mailok', 1));
  326.         } else {
  327.             $criteria->add(new Criteria('user_mailok', 0, '>='));
  328.         }
  329.     }
  330.     if ( isset($_POST['user_type']) ) {
  331.         if ( $_POST['user_type'] == "inactv" ) {
  332.             $criteria->add(new Criteria('level', 0, '='));
  333.         } elseif ( $_POST['user_type'] == "actv" ) {
  334.             $criteria->add(new Criteria('level', 0, '>'));
  335.         } else {
  336.             $criteria->add(new Criteria('level', 0, '>='));
  337.         }
  338.     }
  339.     $groups = empty($_POST['selgroups']) ? array() : array_map("intval", $_POST['selgroups']);
  340.     $validsort = array("uname", "email", "last_login", "user_regdate", "posts");
  341.     $sort = (!in_array($_POST['user_sort'], $validsort)) ? "uname" : $_POST['user_sort'];
  342.     $order = "ASC";
  343.     if ( isset($_POST['user_order']) && $_POST['user_order'] == "DESC") {
  344.         $order = "DESC";
  345.     }
  346.     $limit = (!empty($_POST['limit'])) ? intval($_POST['limit']) : 50;
  347.     if ( $limit == 0 || $limit > 50 ) {
  348.         $limit = 50;
  349.     }
  350.     $start = (!empty($_POST['start'])) ? intval($_POST['start']) : 0;
  351.     $member_handler =& xoops_gethandler('member');
  352.     $total = $member_handler->getUserCountByGroupLink($groups, $criteria);
  353.     echo "<a href='admin.php?fct=findusers&op=form'>". _AM_FINDUS ."</a> <span style='font-weight:bold;'>»»</span> ". _AM_RESULTS."<br /><br />";
  354.     if ( $total == 0 ) {
  355.         echo "<h4>"._AM_NOFOUND,"</h4>";
  356.     } elseif ( $start < $total ) {
  357.         echo sprintf(_AM_USERSFOUND, $total)."<br />";
  358.         echo "<form action='admin.php' method='post' name='memberslist' id='memberslist'><input type='hidden' name='op' value='delete_many' />
  359.         <table width='100%' border='0' cellspacing='1' cellpadding='4' class='outer'><tr><th align='center'><input type='checkbox' name='memberslist_checkall' id='memberslist_checkall' onclick='xoopsCheckAll(\"memberslist\", \"memberslist_checkall\");' /></th><th align='center'>"._AM_AVATAR."</th><th align='center'>"._AM_UNAME."</th><th align='center'>"._AM_REALNAME."</th><th align='center'>"._AM_EMAIL."</th><th align='center'>"._AM_PM."</th><th align='center'>"._AM_URL."</th><th align='center'>"._AM_REGDATE."</th><th align='center'>"._AM_LASTLOGIN."</th><th align='center'>"._AM_POSTS."</th><th align='center'> </th></tr>";
  360.         $criteria->setSort($sort);
  361.         $criteria->setOrder($order);
  362.         $criteria->setLimit($limit);
  363.         $criteria->setStart($start);
  364.         $foundusers =& $member_handler->getUsersByGroupLink($groups, $criteria, true);
  365.         $ucount = 0;
  366.         foreach (array_keys($foundusers) as $j) {
  367.             if ($ucount % 2 == 0) {
  368.                 $class = 'even';
  369.             } else {
  370.                 $class = 'odd';
  371.             }
  372.             $ucount++;
  373.             $fuser_avatar = $foundusers[$j]->getVar("user_avatar") ? "<img src='".XOOPS_UPLOAD_URL."/".$foundusers[$j]->getVar("user_avatar")."' alt='' />" : " ";
  374.             $fuser_name = $foundusers[$j]->getVar("name") ? $foundusers[$j]->getVar("name") : " ";
  375.             echo "<tr class='$class'><td align='center'><input type='checkbox' name='memberslist_id[]' id='memberslist_id[]' value='".$foundusers[$j]->getVar("uid")."' /><input type='hidden' name='memberslist_uname[".$foundusers[$j]->getVar("uid")."]' id='memberslist_uname[]' value='".$foundusers[$j]->getVar("uname")."' /></td>";
  376.             echo "<td>$fuser_avatar</td><td><a href='".XOOPS_URL."/userinfo.php?uid=".$foundusers[$j]->getVar("uid")."'>".$foundusers[$j]->getVar("uname")."</a></td><td>".$fuser_name."</td><td align='center'><a href='mailto:".$foundusers[$j]->getVar("email")."'><img src='".XOOPS_URL."/images/icons/email.gif' border='0' alt='";
  377.             printf(_SENDEMAILTO,$foundusers[$j]->getVar("uname", "E"));
  378.             echo "' /></a></td><td align='center'><a href='javascript:openWithSelfMain(\"".XOOPS_URL."/pmlite.php?send2=1&to_userid=".$foundusers[$j]->getVar("uid")."\",\"pmlite\",450,370);'><img src='".XOOPS_URL."/images/icons/pm.gif' border='0' alt='";
  379.             printf(_SENDPMTO,$foundusers[$j]->getVar("uname", "E"));
  380.             echo "' /></a></td><td align='center'>";
  381.             if ( $foundusers[$j]->getVar("url","E") != "" ) {
  382.                 echo "<a href='".$foundusers[$j]->getVar("url","E")."' target='_blank'><img src='".XOOPS_URL."/images/icons/www.gif' border='0' alt='"._VISITWEBSITE."' /></a>";
  383.             } else {
  384.                 echo " ";
  385.             }
  386.             echo "</td><td align='center'>".formatTimeStamp($foundusers[$j]->getVar("user_regdate"),"s")."</td><td align='center'>";
  387.             if ( $foundusers[$j]->getVar("last_login") != 0 ) {
  388.                 echo formatTimeStamp($foundusers[$j]->getVar("last_login"),"m");
  389.             } else {
  390.                 echo " ";
  391.             }
  392.             echo "</td><td align='center'>".$foundusers[$j]->getVar("posts")."</td>";
  393.             echo "<td align='center'><a href='".XOOPS_URL."/modules/system/admin.php?fct=users&uid=".$foundusers[$j]->getVar("uid")."&op=modifyUser'>"._EDIT."</a></td></tr>\n";
  394.         }
  395.         echo "<tr class='foot'><td><select name='fct'><option value='users'>"._DELETE."</option><option value='mailusers'>"._AM_SENDMAIL."</option>";
  396.         $group = !empty($_POST['group']) ? intval($_POST['group']) : 0;
  397.         if ( $group > 0 ) {
  398.             $member_handler =& xoops_gethandler('member');
  399.             $add2group =& $member_handler->getGroup($group);
  400.             echo "<option value='groups' selected='selected'>".sprintf(_AM_ADD2GROUP, $add2group->getVar('name'))."</option>";
  401.         }
  402.         echo "</select> ";
  403.         if ( $group > 0 ) {
  404.             echo "<input type='hidden' name='groupid' value='".$group."' />";
  405.         }
  406.         echo "</td><td colspan='10'>".$GLOBALS['xoopsSecurity']->getTokenHTML()."<input type='submit' value='"._SUBMIT."' /></td></tr></table></form>\n";
  407.         $totalpages = ceil($total / $limit);
  408.         if ( $totalpages > 1 ) {
  409.             $hiddenform = "<form name='findnext' action='admin.php' method='post'>";
  410.             $skip_vars = array('selgroups');
  411.             foreach ( $_POST as $k => $v ) {
  412.                 if ($k == 'selgroups') {
  413.                     foreach( $_POST['selgroups'] as $_group){
  414.                          $hiddenform .= "<input type='hidden' name='selgroups[]' value='".$_group."' />\n";
  415.                     }
  416.                 } elseif ($k == 'XOOPS_TOKEN_REQUEST') {
  417.                     // regenerate token value
  418.                     $hiddenform .= $GLOBALS['xoopsSecurity']->getTokenHTML()."\n";
  419.                 } else {
  420.                     $hiddenform .= "<input type='hidden' name='".$myts->htmlSpecialChars($k)."' value='".$myts->htmlSpecialChars($myts->stripSlashesGPC($v))."' />\n";
  421.                 }
  422.             }
  423.             if (!isset($_POST['limit'])) {
  424.                 $hiddenform .= "<input type='hidden' name='limit' value='".$limit."' />\n";
  425.             }
  426.             if (!isset($_POST['start'])) {
  427.                 $hiddenform .= "<input type='hidden' name='start' value='".$start."' />\n";
  428.             }
  429.             $prev = $start - $limit;
  430.             if ( $start - $limit >= 0 ) {
  431.                 $hiddenform .= "<a href='#0' onclick='javascript:document.findnext.start.value=".$prev.";document.findnext.submit();'>"._AM_PREVIOUS."</a> \n";
  432.             }
  433.             $counter = 1;
  434.             $currentpage = ($start+$limit) / $limit;
  435.             while ( $counter <= $totalpages ) {
  436.                 if ( $counter == $currentpage ) {
  437.                     $hiddenform .= "<b>".$counter."</b> ";
  438.                 } elseif ( ($counter > $currentpage-4 && $counter < $currentpage+4) || $counter == 1 || $counter == $totalpages ) {
  439.                     if ( $counter == $totalpages && $currentpage < $totalpages-4 ) {
  440.                         $hiddenform .= "... ";
  441.                     }
  442.                     $hiddenform .= "<a href='#".$counter."' onclick='javascript:document.findnext.start.value=".($counter-1)*$limit.";document.findnext.submit();'>".$counter."</a> ";
  443.                     if ( $counter == 1 && $currentpage > 5 ) {
  444.                         $hiddenform .= "... ";
  445.                     }
  446.                 }
  447.                 $counter++;
  448.             }
  449.             $next = $start+$limit;
  450.             if ( $total > $next ) {
  451.                 $hiddenform .= " <a href='#".$total."' onclick='javascript:document.findnext.start.value=".$next.";document.findnext.submit();'>"._AM_NEXT."</a>\n";
  452.             }
  453.             $hiddenform .= "</form>";
  454.             echo "<div style='text-align:center'>".$hiddenform."<br />";
  455.             printf(_AM_USERSFOUND, $total);
  456.             echo "</div>";
  457.         }
  458.     }
  459. }
  460. else {
  461.     redirect_header('admin.php?fct=findusers', 3, implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
  462. }
  463. //CloseTable();
  464. xoops_cp_footer();
  465. ?>