PageRenderTime 58ms CodeModel.GetById 3ms RepoModel.GetById 0ms app.codeStats 0ms

/webapp/modules/admin/lib/admin_member.class.php

https://github.com/usagi-project/mynets1
PHP | 285 lines | 189 code | 15 blank | 81 comment | 8 complexity | 0852d46eb446fdbdab3ccfbfb345e238 MD5 | raw file
  1. <?php
  2. /* ========================================================================
  3. *
  4. * @license This source file is subject to version 3.01 of the PHP license,
  5. * that is available at http://www.php.net/license/3_01.txt
  6. * If you did not receive a copy of the PHP license and are unable
  7. * to obtain it through the world-wide-web, please send a note to
  8. * license@php.net so we can mail you a copy immediately.
  9. *
  10. * @category Application of MyNETS
  11. * @project OpenPNE UsagiProject 2006-2007
  12. * @package MyNETS
  13. * @author UsagiProject <info@usagi-project.org>
  14. * @copyright 2006-2007 UsagiProject <author member ad http://usagi-project.org/member.html>
  15. * @version MyNETS,v 1.0.0
  16. * @since File available since Release 1.0.0 Nighty
  17. * @chengelog [2007/06/09] Ver1.1.0Nighty package
  18. * @chengelog [2007/05/20] Ver1.1.0Nighty package
  19. * @chengelog [2007/04/22] Ver1.1.0Nighty package
  20. * @chengelog [2007/02/17] Ver1.1.0Nighty package
  21. * ========================================================================
  22. */
  23. /*メンバーをソート指定順に並べてLIMITで取得
  24. *@param sort_no = 0 最新順,1=ログイン順、9投稿逆順
  25. *@param limit
  26. *@return diary_list array()
  27. */
  28. function getMemberListAdmin($sort_no, $keyword,$page, $page_size, &$pager)
  29. {
  30. $sql = "select * from ".MYNETS_PREFIX_NAME."c_member ";
  31. if ($keyword !== "") {
  32. $wherecond = " where nickname like '%".$keyword."%' "; //インデックスを有効にするために前方一致
  33. }
  34. switch ($sort_no) {
  35. case 0: //投稿順
  36. $order_by = " order by r_date desc";
  37. break;
  38. case 1:
  39. $order_by = " order by access_date desc";
  40. break;
  41. case 9:
  42. $order_by = " order by c_member_id";
  43. break;
  44. }
  45. $sql = $sql.$wherecond.$order_by ;
  46. $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size);
  47. foreach($list as $key=>$value) {
  48. $c_member = db_common_c_member_secure4c_member_id($value['c_member_id']);
  49. $list[$key]['regist_address'] = $c_member['regist_address'];
  50. $owner_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_invite']);
  51. $list[$key]['owner_nickname'] = $owner_member['nickname'];
  52. }
  53. $sql = 'SELECT COUNT(*) FROM ' . MYNETS_PREFIX_NAME . 'c_member';
  54. $total_num = db_get_one($sql.$wherecond);
  55. $pager = admin_make_pager($page, $page_size, $total_num);
  56. return $list;
  57. }
  58. /*会員をIDから指定して開く。管理画面なのですべて。
  59. *@param target_c_member_id
  60. *@return member_data()
  61. */
  62. function getMemberDataAdmin($c_member_id) {
  63. $member_data = db_common_c_member4c_member_id($c_member_id, true, true, 'private');
  64. $owner_member = db_common_c_member4c_member_id_LIGHT($member_data['c_member_id_invite']);
  65. $member_data['owner_nickname'] = $owner_member['nickname'];
  66. $display_m = getDisplayView($member_data['mobile_view']);
  67. $member_data['mobile_display'] = $display_m;
  68. $display_p = getDisplayView($member_data['pc_view']);
  69. $member_data['pc_display'] = $display_p;
  70. $member_data['message_to'] = getMemberSendMail($c_member_id, true);
  71. $member_data['message_from'] = getMemberSendMail($c_member_id, false);
  72. $member_data['diary_add'] = getMemberAddDiary($c_member_id);
  73. $member_data['diary_comment_add'] = getMemberAddDiaryComment($c_member_id);
  74. $member_data['commu_count'] = getMemberCommuCount($c_member_id);
  75. $member_data['friend_count'] = getMemberFriendCount($c_member_id);
  76. $member_data['block_count'] = getMemberBlockCount($c_member_id);
  77. $member_data['block_count_from'] = getMemberBlockCountFrom($c_member_id);
  78. $member_data['topic_comment_add'] = getMemberAddTopicComment($c_member_id);
  79. $member_data['event_count'] = getMemberAddEventComment($c_member_id);
  80. $member_data['image_count'] = getMemberImageCount($c_member_id);
  81. return $member_data;
  82. }
  83. /*
  84. *
  85. *
  86. */
  87. function getDisplayView($c_display_view_id) {
  88. if ($c_display_view_id == 0) {
  89. $c_display_view_id = 1;
  90. }
  91. $sql = "select c_display_name from ". MYNETS_PREFIX_NAME ."c_display_view where c_display_view_id = ? ";
  92. $params = array(intval($c_display_view_id));
  93. $list = db_get_one($sql,$params);
  94. return $list;
  95. }
  96. /*メンバーのフレンド一覧を取得
  97. *@param sort_no = 0 投稿順,1=投稿者ID順、2画像ありなし順(ありから優先)、9投稿逆順
  98. *@param limit
  99. *@return diary_comment_list array()
  100. */
  101. function getFriendDataListAdmin($sort_no, $page, $page_size, &$pager, $target_c_member_id)
  102. {
  103. }
  104. /*
  105. *メンバーのフレンドの総数を取得
  106. *c_menber_toで計算する
  107. */
  108. function getMemberFriendCount($c_member_id) {
  109. $sql = "select count(*) as count from ". MYNETS_PREFIX_NAME ."c_friend " ;
  110. $sql .= " where c_member_id_to = ? ";
  111. $params = array(intval($c_member_id));
  112. $list = db_get_one($sql,$params);
  113. return $list;
  114. }
  115. /*
  116. *メンバーのアクセスブロックの総数を取得
  117. *c_menber_toで計算する
  118. */
  119. function getMemberBlockCount($c_member_id) {
  120. $sql = "select count(*) as count from ". MYNETS_PREFIX_NAME ."c_access_block " ;
  121. $sql .= " where c_member_id = ? ";
  122. $params = array(intval($c_member_id));
  123. $list = db_get_one($sql,$params);
  124. return $list;
  125. }
  126. /*
  127. *メンバーの非アクセスブロックの総数を取得(された数)
  128. *c_menber_blockで計算する
  129. */
  130. function getMemberBlockCountFrom($c_member_id) {
  131. $sql = "select count(*) as count from ". MYNETS_PREFIX_NAME ."c_access_block " ;
  132. $sql .= " where c_member_id_block = ? ";
  133. $params = array(intval($c_member_id));
  134. $list = db_get_one($sql,$params);
  135. return $list;
  136. }
  137. /*
  138. *メンバーの送信、受信メールの総数を取得
  139. *trueの場合は送信、falseの場合は受信
  140. */
  141. function getMemberSendMail($c_member_id,$sendto = true) {
  142. $sql = "select count(*) as count, max(c_message_id) as mid from ". MYNETS_PREFIX_NAME ."c_message " ;
  143. if ($sendto !== true) {
  144. $sql .= " where c_member_id_from = ? ";
  145. } else {
  146. $sql .= " where c_member_id_to = ? ";
  147. }
  148. $params = array(intval($c_member_id));
  149. $list = db_get_row($sql,$params);
  150. return $list;
  151. }
  152. /*
  153. *メンバーの投稿日記の総数を取得
  154. *
  155. */
  156. function getMemberAddDiary($c_member_id) {
  157. $sql = "select count(*) as count, max(r_datetime) as r_date,max(c_diary_id) as did from ". MYNETS_PREFIX_NAME ."c_diary " ;
  158. $sql .= " where c_member_id = ? ";
  159. $params = array(intval($c_member_id));
  160. $list = db_get_row($sql,$params);
  161. return $list;
  162. }
  163. /*
  164. *メンバーの投稿トピックコメントの総数を取得
  165. *
  166. */
  167. function getMemberAddTopicComment($c_member_id) {
  168. $sql = "select count(*) as count, max(r_datetime) as r_date,max(c_commu_topic_comment_id) as tid from ". MYNETS_PREFIX_NAME ."c_commu_topic_comment " ;
  169. $sql .= " where c_member_id = ? ";
  170. $params = array(intval($c_member_id));
  171. $list = db_get_row($sql,$params);
  172. return $list;
  173. }
  174. /*
  175. *メンバーのイベント参加の総数を取得
  176. *
  177. */
  178. function getMemberAddEventComment($c_member_id) {
  179. $sql = "select count(*) as count from ". MYNETS_PREFIX_NAME ."c_commu_topic_comment " ;
  180. $sql .= " where c_member_id = ? ";
  181. $params = array(intval($c_member_id));
  182. $list = db_get_one($sql,$params);
  183. return $list;
  184. }
  185. /*
  186. *メンバーの投稿コメントの総数を取得
  187. *
  188. */
  189. function getMemberAddDiaryComment($c_member_id) {
  190. $sql = "select count(*) as count, max(r_datetime) as r_date,max(c_diary_comment_id) as did from ". MYNETS_PREFIX_NAME ."c_diary_comment " ;
  191. $sql .= " where c_member_id = ? ";
  192. $params = array(intval($c_member_id));
  193. $list = db_get_row($sql,$params);
  194. return $list;
  195. }
  196. /*
  197. *メンバーの参加コミュニティの総数を取得
  198. *
  199. */
  200. function getMemberCommuCount($c_member_id) {
  201. $sql = "select count(*) as count from ". MYNETS_PREFIX_NAME ."c_commu_member " ;
  202. $sql .= " where c_member_id = ? ";
  203. $params = array(intval($c_member_id));
  204. $list = db_get_one($sql,$params);
  205. return $list;
  206. }
  207. /*
  208. *メンバーの投稿した画像の数を取得
  209. *
  210. */
  211. function getMemberImageCount($c_member_id) {
  212. $sql = "select count(*) as count from ". MYNETS_PREFIX_NAME ."c_image " ;
  213. $sql .= " where c_member_id = ? ";
  214. $params = array(intval($c_member_id));
  215. $db =& db_get_instance('image');
  216. $list = $db->get_one($sql,$params);
  217. return $list;
  218. }
  219. //退会情報を全て取得(ページャー付き)
  220. function getDeleteMemberList($sort_no, $keyword, $page, $page_size, &$pager)
  221. {
  222. $wherecond = "";
  223. $orderby = "";
  224. $sql = "SELECT * FROM " . MYNETS_PREFIX_NAME . "c_delete_member_data ";
  225. if ($keyword !== "") {
  226. $wherecond = " where nickname like '".$keyword."%' "; //インデックスを有効にするために前方一致
  227. }
  228. switch ($sort_no) {
  229. case 0:
  230. $orderby = " ORDER BY delete_datetime desc "; //退会の最新順
  231. break;
  232. case 1:
  233. $orderby = " ORDER BY c_member_id desc "; //会員IDの新しい順
  234. break;
  235. case 2:
  236. $orderby = " ORDER BY c_member_id "; //会員IDの登録順
  237. break;
  238. case 3:
  239. $orderby = " ORDER BY c_member_id_invite "; //紹介者IDソート
  240. break;
  241. case 4:
  242. $orderby = " ORDER BY delete_flag "; //退会の状況順(0会員、1強制)
  243. break;
  244. case 5:
  245. $orderby = " ORDER BY delete_flag desc "; //退会の状況強制から
  246. break;
  247. case 6:
  248. break;
  249. }
  250. $sql = $sql . $wherecond . $orderby;
  251. $list = db_get_all_page($sql, $page, $page_size, $params);
  252. foreach ($list as $key=>$value) {
  253. $owner_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_invite']);
  254. $list[$key]['owner_nickname'] = $owner_member['nickname'];
  255. }
  256. $sql = 'SELECT count(*) FROM ' . MYNETS_PREFIX_NAME . 'c_delete_member_data';
  257. $total_num = db_get_one($sql.$wherecond, $params);
  258. $pager = admin_make_pager($page, $page_size, $total_num);
  259. return $list;
  260. }
  261. //退会者情報を1件取得
  262. function getDeleteMemberDataAdmin($c_delete_member_data_id)
  263. {
  264. $sql = "SELECT * FROM " . MYNETS_PREFIX_NAME . "c_delete_member_data ";
  265. $sql .= " WHERE c_delete_member_data_id = ? ";
  266. $param = array(intval($c_delete_member_data_id));
  267. $result = db_get_row($sql, $param);
  268. return $result;
  269. }
  270. ?>