PageRenderTime 51ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

/webapp/lib/db/commu.php

https://github.com/openpne/OpenPNE2
PHP | 3587 lines | 2505 code | 447 blank | 635 comment | 255 complexity | 752d16dac63b5fc31cf09b64ed98683a MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. /**
  3. * @copyright 2005-2008 OpenPNE Project
  4. * @license http://www.php.net/license/3_01.txt PHP License 3.01
  5. */
  6. //// c_commu
  7. /**
  8. * コミュニティ情報をIDから取得
  9. *
  10. * @param int $c_commu_id
  11. * @return array コミュニティ情報
  12. */
  13. function db_commu_c_commu4c_commu_id($c_commu_id)
  14. {
  15. $sql = 'SELECT * FROM c_commu WHERE c_commu_id = ?';
  16. $params = array(intval($c_commu_id));
  17. if (!$c_commu = db_get_row($sql, $params)) return array();
  18. $c_commu['c_commu_category'] =
  19. db_commu_get_c_commu_category4id($c_commu['c_commu_category_id']);
  20. $c_commu['c_member_admin'] =
  21. db_member_c_member4c_member_id($c_commu['c_member_id_admin']);
  22. return $c_commu;
  23. }
  24. /**
  25. * コミュニティ情報を得る
  26. */
  27. function db_commu_c_commu4c_commu_id2($c_commu_id)
  28. {
  29. static $is_recurred = false; //再帰処理中かどうかの判定フラグ
  30. if (!$is_recurred) { //function cacheのために再帰処理を行う
  31. $is_recurred = true;
  32. $funcargs = func_get_args();
  33. $result = pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_LONG, __FUNCTION__, $funcargs);
  34. $is_recurred = false;
  35. return $result;
  36. }
  37. if ($c_commu = db_commu_c_commu4c_commu_id($c_commu_id)) {
  38. $c_commu['member_count'] = db_commu_count_c_commu_member_list4c_commu_id($c_commu_id);
  39. }
  40. return $c_commu;
  41. }
  42. /**
  43. * コミュニティ情報をIDから返す
  44. */
  45. function db_commu_c_commu4c_commu_id_k($c_commu_id)
  46. {
  47. static $is_recurred = false; //再帰処理中かどうかの判定フラグ
  48. if (!$is_recurred) { //function cacheのために再帰処理を行う
  49. $is_recurred = true;
  50. $funcargs = func_get_args();
  51. $result = pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_LONG, __FUNCTION__, $funcargs);
  52. $is_recurred = false;
  53. return $result;
  54. }
  55. if ($c_commu = db_commu_c_commu4c_commu_id($c_commu_id)) {
  56. $c_commu['count_member'] = db_commu_count_c_commu_member_list4c_commu_id($c_commu_id);
  57. }
  58. return $c_commu;
  59. }
  60. function db_commu_is_commu4c_commu_name($c_commu_name)
  61. {
  62. $sql = 'SELECT c_commu_id FROM c_commu WHERE name = ?';
  63. $params = array($c_commu_name);
  64. return (bool)db_get_one($sql, $params);
  65. }
  66. /**
  67. * 登録時に強制参加させるコミュニティIDのリスト
  68. */
  69. function db_commu_regist_join_list()
  70. {
  71. $sql = 'SELECT c_commu_id FROM c_commu WHERE is_regist_join = 1';
  72. return db_get_col($sql);
  73. }
  74. //// c_commu_member
  75. /**
  76. * コミュニティの参加メンバー数を取得
  77. *
  78. * @param int $c_commu_id
  79. * @return int 参加メンバー数
  80. */
  81. function db_commu_count_c_commu_member_list4c_commu_id($c_commu_id)
  82. {
  83. $sql = 'SELECT COUNT(*) FROM c_commu_member WHERE c_commu_id = ?';
  84. $params = array(intval($c_commu_id));
  85. return db_get_one($sql, $params);
  86. }
  87. /**
  88. * メンバーの参加コミュニティ数を取得
  89. *
  90. * @param int $c_member_id
  91. * @return int 参加コミュニティ数
  92. */
  93. function db_commu_count_c_commu4c_member_id($c_member_id)
  94. {
  95. $sql = 'SELECT COUNT(*) FROM c_commu_member WHERE c_member_id = ?';
  96. $params = array(intval($c_member_id));
  97. return db_get_one($sql, $params);
  98. }
  99. //// c_commu_topic
  100. //// c_commu_topic_comment
  101. /**
  102. * max
  103. */
  104. function db_commu_get_max_c_commu_topic_comment_number4c_topic_id($c_commu_topic_id)
  105. {
  106. $sql = 'SELECT MAX(number) FROM c_commu_topic_comment WHERE c_commu_topic_id = ?';
  107. $params = array(intval($c_commu_topic_id));
  108. return db_get_one($sql, $params, 'main');
  109. }
  110. /**
  111. * 次の書き込み番号取得
  112. *
  113. * @param int $c_commu_topic_id
  114. * @return int 次の書き込み番号
  115. */
  116. function db_commu_c_commu_topic_comment_number4c_commu_topic_id($c_commu_topic_id)
  117. {
  118. return db_commu_get_max_c_commu_topic_comment_number4c_topic_id($c_commu_topic_id) + 1;
  119. }
  120. //// 判定
  121. /**
  122. * コミュニティのメンバーかどうか判定
  123. *
  124. * @param int c_commu_id
  125. * @param int c_member_id
  126. * @return bool
  127. */
  128. function db_commu_is_c_commu_member($c_commu_id, $c_member_id)
  129. {
  130. $sql = 'SELECT c_commu_member_id FROM c_commu_member' .
  131. ' WHERE c_commu_id = ? AND c_member_id = ?';
  132. $params = array(intval($c_commu_id), intval($c_member_id));
  133. return (bool)db_get_one($sql, $params, 'main');
  134. }
  135. /**
  136. * コミュニティの管理者かどうかを判定
  137. *
  138. * @param int $c_commu_id
  139. * @param int $c_member_id
  140. * @return bool
  141. */
  142. function db_commu_is_c_commu_admin($c_commu_id, $c_member_id)
  143. {
  144. $sql = 'SELECT c_commu_id FROM c_commu' .
  145. ' WHERE c_commu_id = ? AND c_member_id_admin = ?';
  146. $params = array(intval($c_commu_id), intval($c_member_id));
  147. return ( (bool)db_get_one($sql, $params) || db_commu_is_c_commu_sub_admin($c_commu_id, $c_member_id) );
  148. }
  149. /**
  150. * コミュニティの副管理者かどうかを判定
  151. *
  152. * @param int $c_commu_id
  153. * @param int $c_member_id
  154. * @return bool
  155. */
  156. function db_commu_is_c_commu_sub_admin($c_commu_id, $c_member_id)
  157. {
  158. $sql = 'SELECT c_commu_id FROM c_commu' .
  159. ' WHERE c_commu_id = ? AND c_member_id_sub_admin = ?';
  160. $params = array(intval($c_commu_id), intval($c_member_id));
  161. return (bool)db_get_one($sql, $params);
  162. }
  163. function db_commu_is_c_topic_admin($c_commu_topic_id, $c_member_id)
  164. {
  165. $sql = 'SELECT c_commu_topic_id FROM c_commu_topic' .
  166. ' WHERE c_commu_topic_id = ? AND c_member_id = ?';
  167. $params = array(intval($c_commu_topic_id), intval($c_member_id));
  168. return (bool)db_get_one($sql, $params);
  169. }
  170. /**
  171. * コミュニティ参加承認待ち状態かどうか
  172. */
  173. function db_commu_is_c_commu_join_wait($c_commu_id, $c_member_id)
  174. {
  175. $sql = 'SELECT c_commu_member_confirm_id FROM c_commu_member_confirm' .
  176. ' WHERE c_commu_id = ? AND c_member_id = ?';
  177. $params = array(intval($c_commu_id), intval($c_member_id));
  178. return (bool)db_get_one($sql, $params, 'main');
  179. }
  180. function db_commu_is_c_commu_view4c_commu_idAc_member_id($c_commu_id,$c_member_id)
  181. {
  182. $ret = false;
  183. $c_commu = db_commu_c_commu4c_commu_id($c_commu_id);
  184. $is_c_commu_member = db_commu_is_c_commu_member($c_commu_id, $c_member_id);
  185. switch($c_commu['is_open']) {
  186. case "public":
  187. $ret = true;
  188. break;
  189. case "member":
  190. if ($is_c_commu_member) {
  191. $ret = true;
  192. } else {
  193. $ret = false;
  194. }
  195. break;
  196. }
  197. return $ret;
  198. }
  199. ////
  200. /**
  201. * コミュニティメール(ktai)受信設定を取得
  202. */
  203. function db_commu_is_receive_mail_ktai($c_commu_id, $c_member_id)
  204. {
  205. $sql = 'SELECT is_receive_mail FROM c_commu_member' .
  206. ' WHERE c_commu_id = ? AND c_member_id = ?';
  207. $params = array(intval($c_commu_id), intval($c_member_id));
  208. return db_get_one($sql, $params);
  209. }
  210. /**
  211. * コミュニティメール(PC)受信設定を取得
  212. */
  213. function db_commu_is_receive_mail_pc($c_commu_id, $c_member_id)
  214. {
  215. $sql = 'SELECT is_receive_mail_pc FROM c_commu_member' .
  216. ' WHERE c_commu_id = ? AND c_member_id = ?';
  217. $params = array(intval($c_commu_id), intval($c_member_id));
  218. return db_get_one($sql, $params);
  219. }
  220. /**
  221. * コミュニティメッセージ受信設定を取得
  222. */
  223. function db_commu_is_receive_message($c_commu_id, $c_member_id)
  224. {
  225. $sql = 'SELECT is_receive_message FROM c_commu_member' .
  226. ' WHERE c_commu_id = ? AND c_member_id = ?';
  227. $params = array(intval($c_commu_id), intval($c_member_id));
  228. return db_get_one($sql, $params);
  229. }
  230. /**
  231. * コミュニティメールの受信メールアドレスリスト(携帯)
  232. */
  233. function db_common_receive_ktai_address_list4c_commu_id($c_commu_id)
  234. {
  235. $sql = 'SELECT c_member_id FROM c_commu_member' .
  236. ' WHERE c_commu_id = ? AND is_receive_mail = 1';
  237. $params = array(intval($c_commu_id));
  238. $list = db_get_col($sql, $params);
  239. $ktai_list = array();
  240. foreach ($list as $c_member_id) {
  241. $sec = db_member_c_member_secure4c_member_id($c_member_id);
  242. if ($sec['ktai_address']) {
  243. $ktai_list[$c_member_id] = $sec['ktai_address'];
  244. }
  245. }
  246. return $ktai_list;
  247. }
  248. /**
  249. * コミュニティメールの受信メールアドレスリスト(PC)
  250. */
  251. function db_common_receive_pc_address_list4c_commu_id($c_commu_id)
  252. {
  253. $sql = "SELECT m.pc_address" .
  254. " FROM c_member_secure AS m, c_commu_member AS cm" .
  255. " WHERE cm.c_commu_id = ?".
  256. " AND cm.is_receive_mail_pc = 1" .
  257. " AND cm.c_member_id = m.c_member_id" .
  258. " AND m.pc_address <> ''";
  259. $params = array(intval($c_commu_id));
  260. $c_member_list = db_get_col($sql, $params);
  261. return array_map('t_decrypt', $c_member_list);
  262. }
  263. ////
  264. /**
  265. * 管理者交代の要請情報をIDから取得
  266. *
  267. * @param int $c_commu_admin_confirm_id
  268. * @return array
  269. * c_commu_admin_confirm,
  270. * c_member_id_admin : 管理者のメンバーID
  271. */
  272. function db_c_commu_admin_confirm4c_commu_admin_confirm_id($c_commu_admin_confirm_id)
  273. {
  274. $sql = "SELECT cac.*, c.c_member_id_admin FROM c_commu_admin_confirm AS cac, c_commu AS c";
  275. $sql .= " WHERE cac.c_commu_admin_confirm_id = ?";
  276. $sql .= " AND cac.c_commu_id=c.c_commu_id";
  277. $params = array(intval($c_commu_admin_confirm_id));
  278. return db_get_row($sql, $params);
  279. }
  280. /**
  281. * 副管理者の要請情報をIDから取得
  282. *
  283. * @param int $c_commu_sub_admin_confirm_id
  284. * @return array
  285. * c_commu_sub_admin_confirm,
  286. * c_member_id_admin : 管理者のメンバーID
  287. */
  288. function db_c_commu_sub_admin_confirm4c_commu_sub_admin_confirm_id($c_commu_sub_admin_confirm_id)
  289. {
  290. $sql = "SELECT cac.*, c.c_member_id_admin FROM c_commu_sub_admin_confirm AS cac, c_commu AS c";
  291. $sql .= " WHERE cac.c_commu_sub_admin_confirm_id = ?";
  292. $sql .= " AND cac.c_commu_id=c.c_commu_id";
  293. $params = array(intval($c_commu_sub_admin_confirm_id));
  294. return db_get_row($sql, $params);
  295. }
  296. // 参加コミュニティリスト
  297. function db_commu_c_commu_list4c_member_id($c_member_id, $page, $page_size)
  298. {
  299. $sql = "SELECT c_commu.*" .
  300. " ,c_commu_member.is_display_topic_home" .
  301. " FROM c_commu_member , c_commu";
  302. $sql .= " WHERE c_commu_member.c_member_id=?";
  303. $sql .= " AND c_commu.c_commu_id=c_commu_member.c_commu_id";
  304. $sql .= " ORDER BY c_commu.c_commu_id DESC ";
  305. $params = array(intval($c_member_id));
  306. $c_commu_list = db_get_all_page($sql, $page, $page_size, $params);
  307. foreach ($c_commu_list as $key => $value) {
  308. $c_commu_list[$key]['count_members'] =
  309. db_commu_count_c_commu_member_list4c_commu_id($value['c_commu_id']);
  310. }
  311. $pager = array(
  312. "total_num" => db_commu_count_c_commu4c_member_id($c_member_id),
  313. "disp_num" => count($c_commu_list),
  314. "start_num" => 0,
  315. "end_num" => 0,
  316. "total_page" => 0,
  317. "prev_page" => 0,
  318. "next_page" => 0,
  319. );
  320. if ($pager['disp_num'] > 0) {
  321. $pager['start_num'] = ($page - 1) * $page_size + 1;
  322. $pager['end_num'] = $pager['start_num'] + $pager['disp_num'] - 1;
  323. }
  324. if ($pager['total_num']) {
  325. $pager['total_page'] = ceil($pager['total_num'] / $page_size);
  326. if ($page < $pager['total_page']) {
  327. $pager['next_page'] = max($page + 1, 1);
  328. }
  329. if ($page > 1) {
  330. $pager['prev_page'] = min($page - 1, $pager['total_page']);
  331. }
  332. }
  333. return array($c_commu_list, $pager);
  334. }
  335. /**
  336. * コミュニティトピックからコミュニティIDを取得
  337. */
  338. function db_commu_c_commu_id4c_commu_topic_id($c_commu_topic_id)
  339. {
  340. $sql = "SELECT c_commu_id FROM c_commu_topic WHERE c_commu_topic_id = ?";
  341. $params = array(intval($c_commu_topic_id));
  342. return db_get_one($sql, $params);
  343. }
  344. // $c_commu_id の community に参加しているメンバーを返す
  345. function db_commu_c_member_list4c_commu_id($c_commu_id, $page_size, $page)
  346. {
  347. $c_commu = db_commu_c_commu4c_commu_id($c_commu_id);
  348. $sql = "SELECT c_member.c_member_id,".
  349. "nickname,".
  350. "image_filename ," .
  351. "c_commu_member.r_datetime".
  352. " FROM c_member,".
  353. "c_commu_member".
  354. " WHERE c_commu_id = ?".
  355. " AND c_commu_member.c_member_id = c_member.c_member_id".
  356. " ORDER BY c_commu_member.r_datetime DESC";
  357. $params = array(intval($c_commu_id));
  358. $list = db_get_all_page($sql, $page, $page_size, $params);
  359. $new_list = array();
  360. foreach ($list as $key => $value) {
  361. $new_list[] = $value;
  362. }
  363. $list = $new_list;
  364. $sql = 'SELECT * FROM c_commu_admin_confirm WHERE c_commu_id = ?';
  365. $params = array(intval($c_commu_id));
  366. $c_commu_admin_confirm = db_get_row($sql, $params);
  367. $sql = 'SELECT * FROM c_commu_sub_admin_confirm WHERE c_commu_id = ?';
  368. $c_commu_sub_admin_confirm = db_get_row($sql, $params);
  369. if ($c_commu_admin_confirm) {
  370. foreach ($list as $key => $c_member) {
  371. if ($list[$key]['c_member_id'] == $c_commu_admin_confirm['c_member_id_to']) {
  372. $list[$key]['c_commu_admin_confirm_id'] = $c_commu_admin_confirm['c_commu_admin_confirm_id'];
  373. } else {
  374. $list[$key]['c_commu_admin_confirm_id'] = 0;
  375. }
  376. }
  377. } else {
  378. foreach ($list as $key => $c_member) {
  379. $list[$key]['c_commu_admin_confirm_id'] = -1;
  380. }
  381. }
  382. if ($c_commu_sub_admin_confirm) {
  383. foreach ($list as $key => $c_member) {
  384. if ($list[$key]['c_member_id'] == $c_commu_sub_admin_confirm['c_member_id_to']) {
  385. $list[$key]['c_commu_sub_admin_confirm_id'] = $c_commu_sub_admin_confirm['c_commu_sub_admin_confirm_id'];
  386. } else {
  387. $list[$key]['c_commu_sub_admin_confirm_id'] = 0;
  388. }
  389. }
  390. } else {
  391. foreach ($list as $key => $c_member) {
  392. $list[$key]['c_commu_sub_admin_confirm_id'] = -1;
  393. }
  394. }
  395. foreach ($list as $key => $c_member) {
  396. $list[$key]['is_c_commu_admin'] = db_commu_is_c_commu_admin($c_commu_id, $list[$key]['c_member_id']);
  397. $list[$key]['is_c_commu_sub_admin'] = db_commu_is_c_commu_sub_admin($c_commu_id, $list[$key]['c_member_id']);
  398. }
  399. $total_num = db_commu_count_c_commu_member_list4c_commu_id($c_commu_id);
  400. if ($total_num != 0) {
  401. $total_page_num = ceil($total_num / $page_size);
  402. if ($page >= $total_page_num) {
  403. $next = false;
  404. } else {
  405. $next = true;
  406. }
  407. if ($page <= 1) {
  408. $prev = false;
  409. } else {
  410. $prev = true;
  411. }
  412. }
  413. return array($list, $prev, $next, $total_num);
  414. }
  415. /**
  416. * コミュニティメンバーのリストを得る
  417. */
  418. function db_commu_c_commu_member_list4c_commu_id($c_commu_id ,$limit = 9)
  419. {
  420. static $is_recurred = false; //再帰処理中かどうかの判定フラグ
  421. if (!$is_recurred) { //function cacheのために再帰処理を行う
  422. $is_recurred = true;
  423. $funcargs = func_get_args();
  424. $result = pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_LONG, __FUNCTION__, $funcargs);
  425. $is_recurred = false;
  426. return $result;
  427. }
  428. $sql = 'SELECT c_member.* FROM c_member, c_commu_member' .
  429. ' WHERE c_member.c_member_id = c_commu_member.c_member_id' .
  430. ' AND c_commu_id = ?' . db_order_by_rand();
  431. $params = array(intval($c_commu_id));
  432. $lst = db_get_all_limit($sql, 0, $limit, $params);
  433. foreach ($lst as $key => $value) {
  434. $lst[$key]['friend_count'] = db_friend_count_friends($value['c_member_id']);
  435. }
  436. return $lst;
  437. }
  438. function db_commu_new_topic_comment4c_commu_id($c_commu_id, $limit, $event_flag = 0)
  439. {
  440. static $is_recurred = false; //再帰処理中かどうかの判定フラグ
  441. if (!$is_recurred) { //function cacheのために再帰処理を行う
  442. $is_recurred = true;
  443. $funcargs = func_get_args();
  444. $result = pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_FAST, __FUNCTION__, $funcargs);
  445. $is_recurred = false;
  446. return $result;
  447. }
  448. $sql = "SELECT c_commu_topic_id , name, u_datetime as r_datetime , c_commu_id " .
  449. " FROM c_commu_topic" .
  450. " WHERE event_flag = ? AND c_commu_id = ?".
  451. " ORDER BY r_datetime DESC";
  452. $params = array((bool)$event_flag, intval($c_commu_id));
  453. $list = db_get_all_limit($sql, 0, $limit, $params);
  454. foreach ($list as $key => $value) {
  455. $list[$key]['count_comments'] = db_commu_get_max_c_commu_topic_comment_number4c_topic_id($value['c_commu_topic_id']);
  456. $start_comment = db_commu_get_start_c_topic_comment($value['c_commu_topic_id']);
  457. $list[$key]['image_filename1'] = $start_comment['image_filename1'];
  458. $list[$key]['image_filename2'] = $start_comment['image_filename2'];
  459. $list[$key]['image_filename3'] = $start_comment['image_filename3'];
  460. }
  461. return $list;
  462. }
  463. /**
  464. * コミュニティに招待するMyフレンドのリストを得る
  465. * コミュニティに参加していないMyフレンドを全員表示
  466. *
  467. * @param int $c_member_id
  468. * @param int $c_commu_id
  469. */
  470. function db_commu_invite_list4c_member_id4c_commu_id($c_member_id, $c_commu_id)
  471. {
  472. //友達リスト
  473. $friend_list = db_friend_c_member_id_list($c_member_id);
  474. //参加者リスト
  475. $sql = 'SELECT c_member_id FROM c_commu_member WHERE c_commu_id = ?';
  476. $params = array(intval($c_commu_id));
  477. $member_list = db_get_col($sql, $params);
  478. //友達リストから参加者リストを引く
  479. $result = array_diff($friend_list, $member_list);
  480. if (empty($result)) {
  481. return array();
  482. } else {
  483. $result = implode(",", $result);
  484. $sql = 'SELECT c_member_id, nickname '
  485. . ' FROM c_member'
  486. . ' WHERE c_member_id'
  487. . ' IN ( '. $result. ') ';
  488. return db_get_all($sql);
  489. }
  490. }
  491. function db_commu_c_members4c_commu_id($c_commu_id, $page_size, $page)
  492. {
  493. $sql = 'SELECT c_member_id FROM c_commu_member WHERE c_commu_id = ? ORDER BY r_datetime DESC';
  494. $params = array(intval($c_commu_id));
  495. $id_list = db_get_all_page($sql, $page, $page_size, $params);
  496. $list = array();
  497. foreach ($id_list as $key => $value) {
  498. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
  499. $c_member['friend_count'] = db_friend_count_friends($value['c_member_id']);
  500. $list[] = $c_member;
  501. }
  502. $sql = 'SELECT COUNT(*) FROM c_commu_member WHERE c_commu_id = ?';
  503. $total_num = db_get_one($sql, $params);
  504. if ($total_num != 0) {
  505. $total_page_num = ceil($total_num / $page_size);
  506. if ($page >= $total_page_num) {
  507. $next = false;
  508. } else {
  509. $next = true;
  510. }
  511. if ($page <= 1) {
  512. $prev = false;
  513. } else {
  514. $prev = true;
  515. }
  516. }
  517. $start_num = ($page - 1) * $page_size + 1 ;
  518. $end_num = ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
  519. return array($list , $prev , $next, $total_num, $start_num, $end_num);
  520. }
  521. function db_commu_c_commu_list4c_member_id_2($c_member_id, $limit = 9)
  522. {
  523. static $is_recurred = false; //再帰処理中かどうかの判定フラグ
  524. if (!$is_recurred) { //function cacheのために再帰処理を行う
  525. $is_recurred = true;
  526. $funcargs = func_get_args();
  527. $result = pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_LONG, __FUNCTION__, $funcargs);
  528. $is_recurred = false;
  529. return $result;
  530. }
  531. $sql = "SELECT c_commu.c_commu_id, c_commu.image_filename, c_commu.name, c_commu.c_member_id_admin" .
  532. " FROM c_commu ,c_commu_member " .
  533. " WHERE c_commu_member.c_member_id = ?".
  534. " AND c_commu.c_commu_id = c_commu_member.c_commu_id" .
  535. db_order_by_rand();
  536. $params = array(intval($c_member_id));
  537. $lst = db_get_all_limit($sql, 0, $limit, $params);
  538. foreach ($lst as $key => $value) {
  539. $lst[$key]['count_commu_members'] = db_commu_count_c_commu_member_list4c_commu_id($value['c_commu_id']);
  540. }
  541. return $lst;
  542. }
  543. /**
  544. * あなたに(の)管理コミュニティに参加を希望しているメンバー
  545. *
  546. * @param int $c_member_id : 要請されている方(あなた=管理者)
  547. * @return array_of_array
  548. * c_commu_member_confirm.*
  549. * c_commu_name : コミュニティの名前
  550. * nickname : 要請している人の名前
  551. * image_filename : 要請している人の画像
  552. * @see h_confirm_list.php
  553. */
  554. function db_commu_anatani_c_commu_member_confirm_list4c_member_id($c_member_id)
  555. {
  556. $sql = "SELECT cmc.*, c.name AS c_commu_name";
  557. $sql .= " FROM c_commu_member_confirm AS cmc, c_commu AS c";
  558. $sql .= " WHERE (c.c_member_id_admin = ? OR c.c_member_id_sub_admin = ?) AND cmc.c_commu_id=c.c_commu_id";
  559. $params = array(intval($c_member_id), intval($c_member_id));
  560. $c_commu_member_confirm_list = db_get_all($sql, $params);
  561. foreach ($c_commu_member_confirm_list as $key => $value) {
  562. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
  563. $c_commu_member_confirm_list[$key]['nickname'] = $c_member['nickname'];
  564. $c_commu_member_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  565. }
  566. return $c_commu_member_confirm_list;
  567. }
  568. /**
  569. * あなたがコミュニティ参加要請しているコミュニティ
  570. *
  571. * @param int $c_member_id : 要請している方(あなた)
  572. * @return array_of_array
  573. * c_commu_member_confirm.*,
  574. * c_commu_name : コミュニティの名前
  575. * c_member_id_admin : 管理者のメンバーID
  576. * nickname : 管理者の名前
  577. * image_filename : 管理者の画像
  578. * @see h_confirm_list.php
  579. */
  580. function db_commu_anataga_c_commu_member_confirm_list4c_member_id($c_member_id)
  581. {
  582. $sql = "SELECT cmc.*, c.name AS c_commu_name, c.c_member_id_admin";
  583. $sql .= " FROM c_commu_member_confirm AS cmc, c_commu AS c";
  584. $sql .= " WHERE cmc.c_member_id = ? AND cmc.c_commu_id=c.c_commu_id";
  585. $params = array(intval($c_member_id));
  586. $c_commu_member_confirm_list = db_get_all($sql, $params);
  587. foreach ($c_commu_member_confirm_list as $key => $value) {
  588. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_admin']);
  589. $c_commu_member_confirm_list[$key]['nickname'] = $c_member['nickname'];
  590. $c_commu_member_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  591. }
  592. return $c_commu_member_confirm_list;
  593. }
  594. /**
  595. * あなたにコミュニティ管理者交代を希望しているメンバー
  596. *
  597. * @param int $c_member_id_to : 要請されている方(あなた)
  598. * @return array_of_array
  599. * c_commu_admin_confirm.*
  600. * c_commu_name : コミュニティ名
  601. * c_member_id_admin : 要請している人(=現管理者)のID
  602. * nickname : 要請している人の名前
  603. * image_filename : 要請している人の画像
  604. * @see h_confirm_list.php
  605. */
  606. function db_commu_anatani_c_commu_admin_confirm_list4c_member_id($c_member_id_to)
  607. {
  608. $sql = "SELECT cac.*, c.name AS c_commu_name, c.c_member_id_admin";
  609. $sql .= " FROM c_commu_admin_confirm AS cac, c_commu AS c";
  610. $sql .= " WHERE cac.c_member_id_to = ? AND cac.c_commu_id=c.c_commu_id";
  611. $params = array(intval($c_member_id_to));
  612. $c_commu_admin_confirm_list = db_get_all($sql, $params);
  613. foreach ($c_commu_admin_confirm_list as $key => $value) {
  614. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_admin']);
  615. $c_commu_admin_confirm_list[$key]['nickname'] = $c_member['nickname'];
  616. $c_commu_admin_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  617. }
  618. return $c_commu_admin_confirm_list;
  619. }
  620. /**
  621. * あなたがコミュニティ管理者交代を要請しているメンバー
  622. *
  623. * @param int $c_member_id_admin : 要請している方(あなた)
  624. * @return array_of_array
  625. * c_commu_admin_confirm.*
  626. * nickname : 要請されている人の名前
  627. * image_filename : 要請されている人の画像
  628. * @see h_confirm_list.php
  629. */
  630. function db_commu_anataga_c_commu_admin_confirm_list4c_member_id($c_member_id_admin)
  631. {
  632. $sql = "SELECT cac.*, c.name AS c_commu_name, c.c_member_id_admin";
  633. $sql .= " FROM c_commu_admin_confirm AS cac, c_commu AS c";
  634. $sql .= " WHERE c.c_member_id_admin = ? AND cac.c_commu_id=c.c_commu_id";
  635. $params = array(intval($c_member_id_admin));
  636. $c_commu_admin_confirm_list = db_get_all($sql, $params);
  637. foreach ($c_commu_admin_confirm_list as $key => $value) {
  638. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_to']);
  639. $c_commu_admin_confirm_list[$key]['nickname'] = $c_member['nickname'];
  640. $c_commu_admin_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  641. }
  642. return $c_commu_admin_confirm_list;
  643. }
  644. /**
  645. * あなたにコミュニティ副管理者を希望しているメンバー
  646. *
  647. * @param int $c_member_id_to : 要請されている方(あなた)
  648. * @return array_of_array
  649. * c_commu_sub_admin_confirm.*
  650. * c_commu_name : コミュニティ名
  651. * c_member_id_sub_admin : 要請している人(=現管理者)のID
  652. * nickname : 要請している人の名前
  653. * image_filename : 要請している人の画像
  654. * @see h_confirm_list.php
  655. */
  656. function db_commu_anatani_c_commu_sub_admin_confirm_list4c_member_id($c_member_id_to)
  657. {
  658. $sql = "SELECT cac.*, c.name AS c_commu_name, c.c_member_id_admin";
  659. $sql .= " FROM c_commu_sub_admin_confirm AS cac, c_commu AS c";
  660. $sql .= " WHERE cac.c_member_id_to = ? AND cac.c_commu_id=c.c_commu_id";
  661. $params = array(intval($c_member_id_to));
  662. $c_commu_sub_admin_confirm_list = db_get_all($sql, $params);
  663. foreach ($c_commu_sub_admin_confirm_list as $key => $value) {
  664. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_admin']);
  665. $c_commu_sub_admin_confirm_list[$key]['nickname'] = $c_member['nickname'];
  666. $c_commu_sub_admin_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  667. }
  668. return $c_commu_sub_admin_confirm_list;
  669. }
  670. /**
  671. * あなたがコミュニティ副管理者を要請しているメンバー
  672. *
  673. * @param int $c_member_id_admin : 要請している方(あなた)
  674. * @return array_of_array
  675. * c_commu_sub_admin_confirm.*
  676. * nickname : 要請されている人の名前
  677. * image_filename : 要請されている人の画像
  678. * @see h_confirm_list.php
  679. */
  680. function db_commu_anataga_c_commu_sub_admin_confirm_list4c_member_id($c_member_id_admin)
  681. {
  682. $sql = "SELECT cac.*, c.name AS c_commu_name, c.c_member_id_admin";
  683. $sql .= " FROM c_commu_sub_admin_confirm AS cac, c_commu AS c";
  684. $sql .= " WHERE c.c_member_id_admin = ? AND cac.c_commu_id=c.c_commu_id";
  685. $params = array(intval($c_member_id_admin));
  686. $c_commu_sub_admin_confirm_list = db_get_all($sql, $params);
  687. foreach ($c_commu_sub_admin_confirm_list as $key => $value) {
  688. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_to']);
  689. $c_commu_sub_admin_confirm_list[$key]['nickname'] = $c_member['nickname'];
  690. $c_commu_sub_admin_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  691. }
  692. return $c_commu_sub_admin_confirm_list;
  693. }
  694. /**
  695. * あなたに(の)管理コミュニティに参加を希望しているメンバー数を取得
  696. *
  697. * @param int $c_member_id
  698. * @return int 希望しているメンバー数
  699. */
  700. function db_commu_count_c_anatani_c_commu_member_confirm($c_member_id)
  701. {
  702. $sql = "SELECT COUNT(*) FROM c_commu_member_confirm AS cmc, c_commu AS c";
  703. $sql .= " WHERE (c.c_member_id_admin = ? OR c.c_member_id_sub_admin = ?) AND cmc.c_commu_id=c.c_commu_id";
  704. $params = array(intval($c_member_id), intval($c_member_id));
  705. return db_get_one($sql, $params);
  706. }
  707. /**
  708. * あなたに(の)管理コミュニティに参加を希望しているメンバー(携帯用にpagerを追加)
  709. *
  710. * @param int $c_member_id : 要請されている方(あなた=管理者)
  711. * @return array_of_array
  712. * c_commu_member_confirm.*
  713. * c_commu_name : コミュニティの名前
  714. * nickname : 要請している人の名前
  715. * image_filename : 要請している人の画像
  716. * @see h_confirm_list.php
  717. */
  718. function db_commu_ktai_anatani_c_commu_member_confirm_list4c_member_id($c_member_id, $page_size, $page)
  719. {
  720. $sql = "SELECT cmc.*, c.name AS c_commu_name";
  721. $sql .= " FROM c_commu_member_confirm AS cmc, c_commu AS c";
  722. $sql .= " WHERE (c.c_member_id_admin = ? OR c.c_member_id_sub_admin = ?) AND cmc.c_commu_id=c.c_commu_id";
  723. $sql .= " ORDER BY cmc.r_datetime ASC";
  724. $params = array(intval($c_member_id), intval($c_member_id));
  725. $c_commu_member_confirm_list = db_get_all_page($sql, $page, $page_size, $params);
  726. foreach ($c_commu_member_confirm_list as $key => $value) {
  727. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
  728. $c_commu_member_confirm_list[$key]['nickname'] = $c_member['nickname'];
  729. $c_commu_member_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  730. }
  731. $total_num = db_commu_count_c_anatani_c_commu_member_confirm($c_member_id);
  732. if ($total_num != 0) {
  733. $total_page_num = ceil($total_num / $page_size);
  734. if ($page >= $total_page_num) {
  735. $next = false;
  736. } else {
  737. $next = true;
  738. }
  739. if ($page <= 1) {
  740. $prev = false;
  741. } else {
  742. $prev = true;
  743. }
  744. }
  745. return array($c_commu_member_confirm_list, $prev, $next, $total_num);
  746. }
  747. /**
  748. * あなたが管理コミュニティに参加希望している数を取得
  749. *
  750. * @param int $c_member_id
  751. * @return int 希望している数
  752. */
  753. function db_commu_count_c_anataga_c_commu_member_confirm($c_member_id)
  754. {
  755. $sql = "SELECT COUNT(*) FROM c_commu_member_confirm AS cmc, c_commu AS c";
  756. $sql .= " WHERE cmc.c_member_id = ? AND cmc.c_commu_id=c.c_commu_id";
  757. $params = array(intval($c_member_id));
  758. return db_get_one($sql, $params);
  759. }
  760. /**
  761. * あなたがコミュニティ参加要請しているコミュニティ(携帯用にpagerを追加)
  762. *
  763. * @param int $c_member_id : 要請している方(あなた)
  764. * @return array_of_array
  765. * c_commu_member_confirm.*,
  766. * c_commu_name : コミュニティの名前
  767. * c_member_id_admin : 管理者のメンバーID
  768. * nickname : 管理者の名前
  769. * image_filename : 管理者の画像
  770. * @see h_confirm_list.php
  771. */
  772. function db_commu_ktai_anataga_c_commu_member_confirm_list4c_member_id($c_member_id, $page_size, $page)
  773. {
  774. $sql = "SELECT cmc.*, c.name AS c_commu_name, c.c_member_id_admin";
  775. $sql .= " FROM c_commu_member_confirm AS cmc, c_commu AS c";
  776. $sql .= " WHERE cmc.c_member_id = ? AND cmc.c_commu_id=c.c_commu_id";
  777. $sql .= " ORDER BY cmc.r_datetime ASC";
  778. $params = array(intval($c_member_id));
  779. $c_commu_member_confirm_list = db_get_all_page($sql, $page, $page_size, $params);
  780. foreach ($c_commu_member_confirm_list as $key => $value) {
  781. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_admin']);
  782. $c_commu_member_confirm_list[$key]['nickname'] = $c_member['nickname'];
  783. $c_commu_member_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  784. }
  785. $total_num = db_commu_count_c_anataga_c_commu_member_confirm($c_member_id);
  786. if ($total_num != 0) {
  787. $total_page_num = ceil($total_num / $page_size);
  788. if ($page >= $total_page_num) {
  789. $next = false;
  790. } else {
  791. $next = true;
  792. }
  793. if ($page <= 1) {
  794. $prev = false;
  795. } else {
  796. $prev = true;
  797. }
  798. }
  799. return array($c_commu_member_confirm_list, $prev, $next, $total_num);
  800. }
  801. /**
  802. * あなたにコミュニティ管理者交代を希望している数を取得
  803. *
  804. * @param int $c_member_id
  805. * @return int 希望している数
  806. */
  807. function db_commu_count_c_anatani_c_commu_admin_confirm($c_member_id)
  808. {
  809. $sql = "SELECT COUNT(*) FROM c_commu_admin_confirm AS cac, c_commu AS c";
  810. $sql .= " WHERE cac.c_member_id_to = ? AND cac.c_commu_id=c.c_commu_id";
  811. $params = array(intval($c_member_id));
  812. return db_get_one($sql, $params);
  813. }
  814. /**
  815. * あなたにコミュニティ管理者交代を希望しているメンバー(携帯用にpagerを追加)
  816. *
  817. * @param int $c_member_id_to : 要請されている方(あなた)
  818. * @return array_of_array
  819. * c_commu_admin_confirm.*
  820. * c_commu_name : コミュニティ名
  821. * c_member_id_admin : 要請している人(=現管理者)のID
  822. * nickname : 要請している人の名前
  823. * image_filename : 要請している人の画像
  824. * @see h_confirm_list.php
  825. */
  826. function db_commu_ktai_anatani_c_commu_admin_confirm_list4c_member_id($c_member_id_to, $page_size, $page)
  827. {
  828. $sql = "SELECT cac.*, c.name AS c_commu_name, c.c_member_id_admin";
  829. $sql .= " FROM c_commu_admin_confirm AS cac, c_commu AS c";
  830. $sql .= " WHERE cac.c_member_id_to = ? AND cac.c_commu_id=c.c_commu_id";
  831. $sql .= " ORDER BY cac.r_datetime ASC";
  832. $params = array(intval($c_member_id_to));
  833. $c_commu_admin_confirm_list = db_get_all_page($sql, $page, $page_size, $params);
  834. foreach ($c_commu_admin_confirm_list as $key => $value) {
  835. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_admin']);
  836. $c_commu_admin_confirm_list[$key]['nickname'] = $c_member['nickname'];
  837. $c_commu_admin_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  838. }
  839. $total_num = db_commu_count_c_anatani_c_commu_admin_confirm($c_member_id_to);
  840. if ($total_num != 0) {
  841. $total_page_num = ceil($total_num / $page_size);
  842. if ($page >= $total_page_num) {
  843. $next = false;
  844. } else {
  845. $next = true;
  846. }
  847. if ($page <= 1) {
  848. $prev = false;
  849. } else {
  850. $prev = true;
  851. }
  852. }
  853. return array($c_commu_admin_confirm_list, $prev, $next, $total_num);
  854. }
  855. /**
  856. * あなたが管理しているコミュニティ管理者交代を要請している数を取得
  857. *
  858. * @param int $c_member_id
  859. * @return int 要請している数
  860. */
  861. function db_commu_count_c_anataga_c_commu_admin_confirm($c_member_id)
  862. {
  863. $sql = "SELECT COUNT(*) FROM c_commu_admin_confirm AS cac, c_commu AS c";
  864. $sql .= " WHERE c.c_member_id_admin = ? AND cac.c_commu_id=c.c_commu_id";
  865. $params = array(intval($c_member_id));
  866. return db_get_one($sql, $params);
  867. }
  868. /**
  869. * あなたが管理しているコミュニティ管理者交代を要請しているメンバー(携帯用にpagerを追加)
  870. *
  871. * @param int $c_member_id_admin : 要請している方(あなた)
  872. * @return array_of_array
  873. * c_commu_admin_confirm.*
  874. * nickname : 要請されている人の名前
  875. * image_filename : 要請されている人の画像
  876. * @see h_confirm_list.php
  877. */
  878. function db_commu_ktai_anataga_c_commu_admin_confirm_list4c_member_id($c_member_id_admin, $page_size, $page)
  879. {
  880. $sql = "SELECT cac.*, c.name AS c_commu_name, c.c_member_id_admin";
  881. $sql .= " FROM c_commu_admin_confirm AS cac, c_commu AS c";
  882. $sql .= " WHERE c.c_member_id_admin = ? AND cac.c_commu_id=c.c_commu_id";
  883. $sql .= " ORDER BY cac.r_datetime ASC";
  884. $params = array(intval($c_member_id_admin));
  885. $c_commu_admin_confirm_list = db_get_all_page($sql, $page, $page_size, $params);
  886. foreach ($c_commu_admin_confirm_list as $key => $value) {
  887. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_to']);
  888. $c_commu_admin_confirm_list[$key]['nickname'] = $c_member['nickname'];
  889. $c_commu_admin_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  890. }
  891. $total_num = db_commu_count_c_anataga_c_commu_admin_confirm($c_member_id_admin);
  892. if ($total_num != 0) {
  893. $total_page_num = ceil($total_num / $page_size);
  894. if ($page >= $total_page_num) {
  895. $next = false;
  896. } else {
  897. $next = true;
  898. }
  899. if ($page <= 1) {
  900. $prev = false;
  901. } else {
  902. $prev = true;
  903. }
  904. }
  905. return array($c_commu_admin_confirm_list, $prev, $next, $total_num);
  906. }
  907. /**
  908. * あなたに管理コミュニティ副管理者交代を希望している数を取得
  909. *
  910. * @param int $c_member_id
  911. * @return int 希望している数
  912. */
  913. function db_commu_count_c_anatani_c_commu_sub_admin_confirm($c_member_id)
  914. {
  915. $sql = "SELECT COUNT(*) FROM c_commu_sub_admin_confirm AS cac, c_commu AS c";
  916. $sql .= " WHERE cac.c_member_id_to = ? AND cac.c_commu_id=c.c_commu_id";
  917. $params = array(intval($c_member_id));
  918. return db_get_one($sql, $params);
  919. }
  920. /**
  921. * あなたにコミュニティ副管理者を希望しているメンバー(携帯用にpagerを追加)
  922. *
  923. * @param int $c_member_id_to : 要請されている方(あなた)
  924. * @return array_of_array
  925. * c_commu_sub_admin_confirm.*
  926. * c_commu_name : コミュニティ名
  927. * c_member_id_sub_admin : 要請している人(=現管理者)のID
  928. * nickname : 要請している人の名前
  929. * image_filename : 要請している人の画像
  930. * @see h_confirm_list.php
  931. */
  932. function db_commu_ktai_anatani_c_commu_sub_admin_confirm_list4c_member_id($c_member_id_to, $page_size, $page)
  933. {
  934. $sql = "SELECT cac.*, c.name AS c_commu_name, c.c_member_id_admin";
  935. $sql .= " FROM c_commu_sub_admin_confirm AS cac, c_commu AS c";
  936. $sql .= " WHERE cac.c_member_id_to = ? AND cac.c_commu_id=c.c_commu_id";
  937. $sql .= " ORDER BY cac.r_datetime ASC";
  938. $params = array(intval($c_member_id_to));
  939. $c_commu_sub_admin_confirm_list = db_get_all_page($sql, $page, $page_size, $params);
  940. foreach ($c_commu_sub_admin_confirm_list as $key => $value) {
  941. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_admin']);
  942. $c_commu_sub_admin_confirm_list[$key]['nickname'] = $c_member['nickname'];
  943. $c_commu_sub_admin_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  944. }
  945. $total_num = db_commu_count_c_anatani_c_commu_sub_admin_confirm($c_member_id_to);
  946. if ($total_num != 0) {
  947. $total_page_num = ceil($total_num / $page_size);
  948. if ($page >= $total_page_num) {
  949. $next = false;
  950. } else {
  951. $next = true;
  952. }
  953. if ($page <= 1) {
  954. $prev = false;
  955. } else {
  956. $prev = true;
  957. }
  958. }
  959. return array($c_commu_sub_admin_confirm_list, $prev, $next, $total_num);
  960. }
  961. /**
  962. * あなたが管理しているコミュニティ副管理者交代を要請している数を取得
  963. *
  964. * @param int $c_member_id
  965. * @return int 要請している数
  966. */
  967. function db_commu_count_c_anataga_c_commu_sub_admin_confirm($c_member_id)
  968. {
  969. $sql = "SELECT COUNT(*) FROM c_commu_sub_admin_confirm AS cac, c_commu AS c";
  970. $sql .= " WHERE c.c_member_id_admin = ? AND cac.c_commu_id=c.c_commu_id";
  971. $params = array(intval($c_member_id));
  972. return db_get_one($sql, $params);
  973. }
  974. /**
  975. * あなたがコミュニティ副管理者を要請しているメンバー(携帯用にpagerを追加)
  976. *
  977. * @param int $c_member_id_admin : 要請している方(あなた)
  978. * @return array_of_array
  979. * c_commu_sub_admin_confirm.*
  980. * nickname : 要請されている人の名前
  981. * image_filename : 要請されている人の画像
  982. * @see h_confirm_list.php
  983. */
  984. function db_commu_ktai_anataga_c_commu_sub_admin_confirm_list4c_member_id($c_member_id_admin, $page_size, $page)
  985. {
  986. $sql = "SELECT cac.*, c.name AS c_commu_name, c.c_member_id_admin";
  987. $sql .= " FROM c_commu_sub_admin_confirm AS cac, c_commu AS c";
  988. $sql .= " WHERE c.c_member_id_admin = ? AND cac.c_commu_id=c.c_commu_id";
  989. $sql .= " ORDER BY cac.r_datetime ASC";
  990. $params = array(intval($c_member_id_admin));
  991. $c_commu_sub_admin_confirm_list = db_get_all_page($sql, $page, $page_size, $params);
  992. foreach ($c_commu_sub_admin_confirm_list as $key => $value) {
  993. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id_to']);
  994. $c_commu_sub_admin_confirm_list[$key]['nickname'] = $c_member['nickname'];
  995. $c_commu_sub_admin_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
  996. }
  997. $total_num = db_commu_count_c_anataga_c_commu_sub_admin_confirm($c_member_id_admin);
  998. if ($total_num != 0) {
  999. $total_page_num = ceil($total_num / $page_size);
  1000. if ($page >= $total_page_num) {
  1001. $next = false;
  1002. } else {
  1003. $next = true;
  1004. }
  1005. if ($page <= 1) {
  1006. $prev = false;
  1007. } else {
  1008. $prev = true;
  1009. }
  1010. }
  1011. return array($c_commu_sub_admin_confirm_list, $prev, $next, $total_num);
  1012. }
  1013. /**
  1014. * 参加コミュニティ新着書き込みリスト取得
  1015. */
  1016. function db_commu_c_commu_topic_comment_list4c_member_id($c_member_id, $limit, $is_display_topic_home = false)
  1017. {
  1018. static $is_recurred = false; //再帰処理中かどうかの判定フラグ
  1019. if (!$is_recurred) { //function cacheのために再帰処理を行う
  1020. $is_recurred = true;
  1021. $funcargs = func_get_args();
  1022. $result = pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_FAST, __FUNCTION__, $funcargs);
  1023. $is_recurred = false;
  1024. return $result;
  1025. }
  1026. $sql = 'SELECT c_commu_id FROM c_commu_member WHERE c_member_id = ?';
  1027. $c_commu_id_list = db_get_col($sql, array(intval($c_member_id)));
  1028. if (!$c_commu_id_list) {
  1029. return array();
  1030. }
  1031. $ids = implode(", ", $c_commu_id_list);
  1032. $hint = db_mysql_hint('USE INDEX (r_datetime_c_commu_id)');
  1033. $sql = 'SELECT a.c_commu_topic_id, a.c_commu_id, a.u_datetime as r_datetime, a.c_member_id,'.
  1034. ' a.name as c_commu_topic_name'.
  1035. ' FROM c_commu_topic as a INNER JOIN c_commu_member as b USING(c_commu_id)'.
  1036. ' WHERE b.c_member_id = ?';
  1037. if ($is_display_topic_home) {
  1038. $sql .= ' AND b.is_display_topic_home = 1';
  1039. }
  1040. $sql .= ' ORDER BY r_datetime DESC';
  1041. $params = array(intval($c_member_id));
  1042. $c_commu_topic_list = db_get_all_limit($sql, 0, $limit, $params);
  1043. foreach ($c_commu_topic_list as $key => $value) {
  1044. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
  1045. $c_commu_topic_list[$key]['nickname'] = $c_member['nickname'];
  1046. $temp = db_commu_get_start_c_topic_comment($value['c_commu_topic_id']);
  1047. $sql = 'SELECT name AS c_commu_name FROM c_commu WHERE c_commu_id = ?';
  1048. $c_commu_name = db_get_one($sql, $value['c_commu_id']);
  1049. //最新の書き込み番号
  1050. $number = db_commu_get_max_c_commu_topic_comment_number4c_topic_id($value['c_commu_topic_id']);
  1051. $c_commu_topic_list[$key]['number'] = $number;
  1052. $c_commu_topic_list[$key]['image_filename1'] = $temp['image_filename1'];
  1053. $c_commu_topic_list[$key]['image_filename2'] = $temp['image_filename2'];
  1054. $c_commu_topic_list[$key]['image_filename3'] = $temp['image_filename3'];
  1055. $c_commu_topic_list[$key]['c_commu_name'] = $c_commu_name;
  1056. }
  1057. return $c_commu_topic_list;
  1058. }
  1059. function db_commu_c_commu_topic_comment_list4c_member_id_2($c_member_id, $limit,$page)
  1060. {
  1061. $sql = 'SELECT c_commu_id FROM c_commu_member WHERE c_member_id = ?';
  1062. $c_commu_id_list = db_get_col($sql, array(intval($c_member_id)));
  1063. if (!$c_commu_id_list) {
  1064. return array();
  1065. }
  1066. $ids = implode(", ", $c_commu_id_list);
  1067. $hint = db_mysql_hint('USE INDEX (r_datetime_c_commu_id)');
  1068. $sql = 'SELECT a.c_commu_topic_id, a.c_commu_id, a.u_datetime as r_datetime, a.c_member_id,'.
  1069. ' a.name as c_commu_topic_name'.
  1070. ' FROM c_commu_topic as a INNER JOIN c_commu_member as b USING(c_commu_id)'.
  1071. ' WHERE b.c_member_id = ?'.
  1072. ' ORDER BY r_datetime DESC';
  1073. $params = array(intval($c_member_id));
  1074. $c_commu_topic_list = db_get_all_limit($sql, ($page-1)*$limit, $limit, $params);
  1075. foreach ($c_commu_topic_list as $key => $value) {
  1076. $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
  1077. $c_commu_topic_list[$key]['nickname'] = $c_member['nickname'];
  1078. $temp = db_commu_get_start_c_topic_comment($value['c_commu_topic_id']);
  1079. $sql = 'SELECT name AS c_commu_name FROM c_commu WHERE c_commu_id = ?';
  1080. $c_commu_name = db_get_one($sql, $value['c_commu_id']);
  1081. //最新の書き込み番号
  1082. $number = db_commu_get_max_c_commu_topic_comment_number4c_topic_id($value['c_commu_topic_id']);
  1083. $c_commu_topic_list[$key]['number'] = $number;
  1084. $c_commu_topic_list[$key]['image_filename1'] = $temp['image_filename1'];
  1085. $c_commu_topic_list[$key]['image_filename2'] = $temp['image_filename2'];
  1086. $c_commu_topic_list[$key]['image_filename3'] = $temp['image_filename3'];
  1087. $c_commu_topic_list[$key]['c_commu_name'] = $c_commu_name;
  1088. }
  1089. $sql = "SELECT count(DISTINCT ct.c_commu_topic_id)";
  1090. $sql .= " FROM c_commu_member AS cm, c_commu_topic_comment AS cc";
  1091. $sql .= ", c_commu AS c, c_commu_topic AS ct";
  1092. $sql .= " WHERE cm.c_member_id = ?";
  1093. $sql .= " AND cc.c_commu_id=cm.c_commu_id";
  1094. $sql .= " AND c.c_commu_id=cm.c_commu_id";
  1095. $sql .= " AND ct.c_commu_id=cm.c_commu_id";
  1096. $sql .= " AND ct.c_commu_topic_id=cc.c_commu_topic_id";
  1097. $params = array(intval($c_member_id));
  1098. $total_num = db_get_one($sql, $params);
  1099. if ($total_num != 0) {
  1100. $total_page_num = ceil($total_num / $limit);
  1101. if ($page >= $total_page_num) {
  1102. $next = false;
  1103. } else {
  1104. $next = true;
  1105. }
  1106. if ($page <= 1) {
  1107. $prev = false;
  1108. } else {
  1109. $prev = true;
  1110. }
  1111. }
  1112. return array($c_commu_topic_list , $prev , $next,$total_num);
  1113. }
  1114. function db_commu_c_topic_list4target_c_commu_id($c_commu_id, $c_member_id, $page = 1, $page_size = 10, $event_flag = 0, $topic_with_event = 0)
  1115. {
  1116. $sql = " SELECT cct.c_commu_topic_id, max(cct.u_datetime) as newest_write_datetime " .
  1117. " FROM c_commu_topic as cct, c_commu_topic_comment as cctc " .
  1118. " WHERE cct.c_commu_topic_id = cctc.c_commu_topic_id ";
  1119. if ($topic_with_event) {
  1120. $sql .= " AND cct.event_flag = $event_flag";
  1121. }
  1122. $sql .= " AND cct.c_commu_id = ?" .
  1123. " GROUP BY cct.c_commu_topic_id " .
  1124. " ORDER BY newest_write_datetime DESC";
  1125. $params = array(intval($c_commu_id));
  1126. $lst = db_get_all_page($sql, $page, $page_size, $params);
  1127. foreach ($lst as $key => $value) {
  1128. $sql = "SELECT cct.c_commu_topic_id, cct.name, cct.u_datetime, cctc.body , cctc.image_filename1, cctc.image_filename2, image_filename3" .
  1129. " FROM c_commu_topic as cct, c_commu_topic_comment as cctc" .
  1130. " WHERE cct.c_commu_topic_id = cctc.c_commu_topic_id" .
  1131. " AND cctc.number = 0" .
  1132. " AND cct.c_commu_topic_id = ?";
  1133. $params = array(intval($value['c_commu_topic_id']));
  1134. $lst[$key] = db_get_row($sql, $params);
  1135. }
  1136. foreach ($lst as $key => $value) {
  1137. $lst[$key]['is_c_event_member'] = db_commu_is_c_event_member($value['c_commu_topic_id'], $c_member_id);
  1138. $lst[$key]['is_c_topic_admin'] = db_commu_is_c_topic_admin($value['c_commu_topic_id'], $c_member_id);
  1139. $lst[$key]['write_num'] = db_commu_get_max_c_commu_topic_comment_number4c_topic_id($value['c_commu_topic_id']);
  1140. }
  1141. $sql = 'SELECT COUNT(*) FROM c_commu_topic WHERE c_commu_id = ?';
  1142. if ($topic_with_event) {
  1143. $sql .= " AND event_flag = $event_flag";
  1144. }
  1145. $params = array(intval($c_commu_id));
  1146. $total_num = db_get_one($sql, $params);
  1147. if ($total_num != 0) {
  1148. $total_page_num = ceil($total_num / $page_size);
  1149. if ($page >= $total_page_num) {
  1150. $next = false;
  1151. } else {
  1152. $next = true;
  1153. }
  1154. if ($page <= 1) {
  1155. $prev = false;
  1156. } else {
  1157. $prev = true;
  1158. }
  1159. }
  1160. $start_num = ($page - 1) * $page_size + 1 ;
  1161. $end_num = ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
  1162. return array($lst, $prev, $next, $total_num, $start_num, $end_num);
  1163. }
  1164. function db_commu_c_topic4c_commu_topic_id($c_commu_topic_id)
  1165. {
  1166. $sql = "SELECT ct.*, ctc.*, c_member.nickname" .
  1167. " FROM c_commu_topic AS ct" .
  1168. " LEFT JOIN c_member USING (c_member_id)" .
  1169. ", c_commu_topic_comment AS ctc" .
  1170. " WHERE ct.c_commu_topic_id = ctc.c_commu_topic_id " .
  1171. " AND ct.c_commu_topic_id = ?".
  1172. " AND ctc.number = 0";
  1173. $params = array(intval($c_commu_topic_id));
  1174. return db_get_row($sql, $params);
  1175. }
  1176. function db_commu_is_topic4c_commu_id($c_commu_id)
  1177. {
  1178. $sql = 'SELECT c_commu_topic_id FROM c_commu_topic WHERE c_commu_id = ?';
  1179. $params = array(intval($c_commu_id));
  1180. return db_get_one($sql, $params);
  1181. }
  1182. /**
  1183. * IDからコミュニ…

Large files files are truncated, but you can click here to view the full file