PageRenderTime 60ms CodeModel.GetById 26ms RepoModel.GetById 0ms app.codeStats 0ms

/class/user/ListUser.class.php

https://github.com/hylinux/ltebbs
PHP | 206 lines | 110 code | 56 blank | 40 comment | 25 complexity | d2a898c128f0e4150bbaeb28329d3c49 MD5 | raw file
  1. <?php
  2. //vim:set expandtab tabstop=3 shiftwidth=3 softtabstop=3 foldcolumn=1 foldmethod=marker:
  3. /**
  4. * 项目: 5anet(BBS)
  5. * 文件: class/bbs/ListUser.class.php
  6. *
  7. * 列出论坛用户
  8. *
  9. * PHP Version 5
  10. *
  11. * @package: class.user
  12. * @author: Mike.G Chinese Name: 黄叶 <hylinux@gmail.com>
  13. * @license: http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
  14. * @copyright: http://www.5anet.com
  15. * @version: $Id: ListUser.class.php,v 1.1.1.1 2006-08-28 13:09:20 ghw Exp $
  16. * @date: $Date: 2006-08-28 13:09:20 $
  17. */
  18. include_once CLASS_PATH.'main/BaseAction.class.php';
  19. include_once CLASS_PATH.'bbs/LayoutUtil.class.php';
  20. //include the language file
  21. if ( file_exists(LANG_PATH.SYSTEM_LANG.'/ListUser.lang.php') ) {
  22. include_once LANG_PATH.SYSTEM_LANG.'/ListUser.lang.php';
  23. }
  24. class ListUser extends BaseAction {
  25. /**
  26. * 数据库的连接
  27. */
  28. public $db;
  29. private $page_number = 25;
  30. /**
  31. * 构造函数
  32. * @param: NULL
  33. * @return: NULL
  34. * @access: public
  35. */
  36. public function __construct() {
  37. $this->db = $this->getDB();
  38. }
  39. public function run() {
  40. $smarty = $this->getSmarty();
  41. //取得查询用户的条件
  42. $t = $this->getParameterFromGET('t');
  43. $where_sql = '';
  44. if ( $t ) {
  45. $where_sql = " and lower(substring(user_name, 1, 1)) = '".strtolower(substr($t, 0, 1))."'";
  46. }
  47. $smarty->assign('t_sort', $t);
  48. $m = $this->getParameterFromGET('m');
  49. $smarty->assign('m', $m);
  50. if ( $m ) {
  51. $where_sql .= ' and ( group_dep = 1 or group_dep = 2 or group_dep = 3 ) ';
  52. }
  53. if ( strlen($where_sql) > 0 ) {
  54. $where_sql = ' where 1 '.$where_sql;
  55. }
  56. if ( $m ) {
  57. $smarty->assign('user_list_label', LU_MANAGER_LABEL);
  58. } else {
  59. $smarty->assign('user_list_label', LU_USER_LIST);
  60. }
  61. //求总的数量
  62. $sql = 'select count(*) as num from base_user_info '.$where_sql;
  63. $res = $this->db->Execute($sql);
  64. $rows = $res->FetchRow();
  65. $total_number = $rows['num'];
  66. //求总公的页面
  67. $total_page = ceil($total_number / $this->page_number );
  68. //取得当前的页面
  69. $page = $this->getParameter('page');
  70. if ( !$page || $page < 0 ) {
  71. $page = 1;
  72. }
  73. if ( $page > $total_page && $total_page > 0 ) {
  74. $page = $total_page;
  75. }
  76. $begin_page = 1;
  77. $end_page = $total_page;
  78. if ( $page <= 10 && $total_page >=10 ) {
  79. $end_page = 10;
  80. } else if ( $page > 10 ) {
  81. if ( $page % 10 == 0 ) {
  82. //向前翻
  83. $end_page = $page;
  84. $begin_page = $end_page - 9;
  85. } else if ( $page % 10 == 1 ) {
  86. //向后翻
  87. //确定开始的页数
  88. $begin_page = $page;
  89. if ( $begin_page > $total_page ) {
  90. $begin_page = $page - 9;
  91. }
  92. if ( ( $begin_page + 9 ) > $total_page ) {
  93. $end_page = $total_page;
  94. } else {
  95. $end_page = $begin_page + 9;
  96. }
  97. } else {
  98. $num = $page % 10;
  99. $pre_num = floor($page / 10 );
  100. $begin_page = $pre_num * 10 + 1;
  101. $end_page = $begin_page + 9;
  102. }
  103. }
  104. $nav_page_array = array();
  105. for( $i = $begin_page; $i<=$end_page; $i++ ) {
  106. array_push($nav_page_array, $i);
  107. }
  108. //帖子导航栏
  109. $smarty->assign('nav_page', $nav_page_array);
  110. //当前的页面
  111. $smarty->assign('now_page', $page);
  112. //共有的页面
  113. $smarty->assign('total_page', $total_page);
  114. //显示搜索结果
  115. //求出偏移
  116. $offset_number = ( $page - 1 ) * $this->page_number;
  117. //求用户的情况
  118. $sql = 'select a.id, a.user_name, a.register_date, b.group_name from base_user_info a join '.
  119. ' sys_group b on a.group_dep = b.id '.$where_sql.' order by a.user_name asc ';
  120. $res = $this->db->SelectLimit($sql, $this->page_number, $offset_number);
  121. $temp_array = array();
  122. while ( $rows = $res->FetchRow() ) {
  123. $temp_sql = 'select count(*) as num from bbs_subject where author=?';
  124. $temp_sth = $this->db->Prepare($temp_sql);
  125. $temp_res = $this->db->Execute($temp_sth, array($rows['user_name']));
  126. $temp_rows = $temp_res->FetchRow();
  127. $topic_number = $temp_rows['num'];
  128. $temp_sql = 'select last_time from user_last_time_logout where user_id=? order by id desc';
  129. $temp_sth = $this->db->Prepare($temp_sql);
  130. $temp_res = $this->db->SelectLimit($temp_sth, 1, 0, array($rows['id']));
  131. $temp_rows = $temp_res->FetchRow();
  132. $last_access_time = $temp_rows['last_time'];
  133. //取得头像
  134. $user_header = UserUtil::getUserHeader($this->db, $rows['id']);
  135. $temp_array[] = array(
  136. 'id'=>$rows['id'],
  137. 'name' => $rows['user_name'],
  138. 'group' => $rows['group_name'],
  139. 'register_date' => $rows['register_date'],
  140. 'topic_number' => $topic_number,
  141. 'last_access_time' => $last_access_time,
  142. 'header' => $user_header
  143. );
  144. }
  145. $smarty->assign('myuser', $temp_array);
  146. $smarty->display('listuser.tmpl');
  147. return;
  148. }
  149. }
  150. ?>