/webapp/lib/db/read/dengon.php

https://github.com/usagi-project/mynets1 · PHP · 298 lines · 206 code · 34 blank · 58 comment · 25 complexity · 2985c79e12d91548117603a70255c865 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/02/17] Ver1.1.0Nighty package
  18. * ========================================================================
  19. */
  20. //dengon用追加修正 KT
  21. /**
  22. * 伝言板のコメントリストを得る
  23. *
  24. * @param int $c_member_id_from
  25. * @param int $limit
  26. * @return array dengonコメント+ニックネーム
  27. */
  28. if (! function_exists('db_dengon_get_c_dengon_comment_list4c_member_id_to'))
  29. {
  30. function db_dengon_get_c_dengon_comment_list4c_member_id_to($c_member_id_to)
  31. {
  32. $sql = "SELECT "
  33. . MYNETS_PREFIX_NAME . "c_member.nickname, "
  34. . MYNETS_PREFIX_NAME . "c_dengon_comment.* "
  35. . "FROM "
  36. . MYNETS_PREFIX_NAME . "c_dengon_comment "
  37. . "LEFT JOIN "
  38. . MYNETS_PREFIX_NAME . "c_member "
  39. . "ON "
  40. . MYNETS_PREFIX_NAME . "c_member.c_member_id = "
  41. . MYNETS_PREFIX_NAME . "c_dengon_comment.c_member_id_from "
  42. . "WHERE "
  43. . "c_member_id_to = ? "
  44. . "ORDER BY "
  45. . MYNETS_PREFIX_NAME . "c_dengon_comment.r_datetime DESC ";
  46. // ' ORDER BY c_diary_comment.r_datetime';
  47. return db_get_all($sql, array(intval($c_member_id_to)));
  48. }
  49. }
  50. /**
  51. * dengonのコメントリスト(好きなID(複数))を取得
  52. *
  53. * @param array $id_list
  54. * @param int $page
  55. * @param int $page_size
  56. * @param bool $desc 並び順を日時の新しい順にするかどうか
  57. * @return dengonコメント(+ニックネーム)リスト
  58. */
  59. if (! function_exists('db_dengon_get_c_dengon_comment_list4id_list'))
  60. {
  61. function db_dengon_get_c_dengon_comment_list4id_list($id_list, $page = 1, $page_size= -1, $desc = false)
  62. {
  63. if (!count($id_list)) return array();
  64. if ($page_size < 0) {
  65. $page_size = count($id_list);
  66. }
  67. $e_id_list = implode(',', array_map('intval', (array)$id_list));
  68. $sql = "SELECT "
  69. . "* "
  70. . "FROM "
  71. . MYNETS_PREFIX_NAME . "c_dengon_comment "
  72. . "WHERE "
  73. . "c_dengon_comment_id IN (" . $e_id_list . ") ";
  74. if ($desc) {
  75. $sql .= "ORDER BY r_datetime DESC ";
  76. } else {
  77. $sql .= "ORDER BY r_datetime DESC ";
  78. }
  79. $c_dengon_comment_list = db_get_all_page($sql, $page, $page_size);
  80. foreach ($c_dengon_comment_list as $key => $value) {
  81. $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_from']);
  82. $c_dengon_comment_list[$key]['image_filename'] = $c_member['image_filename'];
  83. $c_dengon_comment_list[$key]['nickname'] = $c_member['nickname'];
  84. }
  85. $sql = "SELECT "
  86. . "COUNT(*) "
  87. . "FROM "
  88. . MYNETS_PREFIX_NAME . "c_dengon_comment "
  89. . "WHERE "
  90. . "c_dengon_comment_id IN (" . $e_id_list . ") ";
  91. $total_num = db_get_one($sql);
  92. if($total_num != 0){
  93. $total_page_num = ceil($total_num / $page_size);
  94. if($page >= $total_page_num){
  95. $next = false;
  96. }else{
  97. $next = true;
  98. }
  99. if($page <= 1){
  100. $prev = false;
  101. }else{
  102. $prev = true;
  103. }
  104. }
  105. return array($c_dengon_comment_list, $prev , $next, $total_num);
  106. }
  107. }
  108. ////
  109. /**
  110. * dengonコメント情報をIDから取得
  111. *
  112. * @param int $c_dengon_comment_id
  113. * @return array
  114. * c_dengon_comemnt.*
  115. * c_dengon.c_member_id_from AS c_member_id_author
  116. */
  117. if (! function_exists('do_c_dengon_comment4c_dengon_comment_id'))
  118. {
  119. function do_c_dengon_comment4c_dengon_comment_id($c_dengon_comment_id)
  120. {
  121. $sql = "SELECT * FROM " . MYNETS_PREFIX_NAME . "c_dengon_comment ";
  122. $sql .= " WHERE c_dengon_comment_id = ?";
  123. $params = array(intval($c_dengon_comment_id));
  124. return db_get_all($sql, $params);
  125. }
  126. }
  127. /**
  128. * ターゲットメンバの最新dengonのリストを返す
  129. */
  130. if (! function_exists('k_p_f_home_c_dengon_list4c_member_id_to'))
  131. {
  132. function k_p_f_home_c_dengon_list4c_member_id_to($c_member_id_to, $limit)
  133. {
  134. $sql = "SELECT * ";
  135. $sql .= " FROM " . MYNETS_PREFIX_NAME . "c_dengon_comment";
  136. $sql .= " WHERE c_member_id_to = ?";
  137. $sql .= " ORDER BY r_datetime DESC";
  138. $params = array(intval($c_member_id_to));
  139. $c_diary_list = db_get_all_limit($sql, 0, $limit, $params);
  140. return $c_diary_list;
  141. }
  142. }
  143. /**
  144. * 伝言板コメントリストを取得。
  145. */
  146. if (! function_exists('k_p_fh_dengon_c_dengon_comment_list4c_member_id_to'))
  147. {
  148. function k_p_fh_dengon_c_dengon_comment_list4c_member_id_to($c_member_id_to, $page_size, $page)
  149. {
  150. $next = false;
  151. $prev = false;
  152. $total_page_num = 0;
  153. $sql = "SELECT "
  154. . "* "
  155. . "FROM "
  156. . MYNETS_PREFIX_NAME . "c_dengon_comment "
  157. . "WHERE "
  158. . "c_member_id_to = ? "
  159. . "ORDER BY "
  160. . "r_datetime DESC ";
  161. $params = array(intval($c_member_id_to));
  162. $c_dengon_comment_list = db_get_all_page($sql, $page, $page_size, $params);
  163. //コメントを、新しいものを上にしてページ遷移可能とする
  164. $c_dengon_comment_list = array_reverse($c_dengon_comment_list);
  165. foreach($c_dengon_comment_list as $key => $value) {
  166. $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_from']);
  167. $c_dengon_comment_list[$key]['nickname'] = $c_member['nickname'];
  168. $c_dengon_comment_list[$key]['image_filename'] = $c_member['image_filename'];
  169. }
  170. $sql = "SELECT "
  171. . "COUNT(*) "
  172. . "FROM "
  173. . MYNETS_PREFIX_NAME . "c_dengon_comment "
  174. . "WHERE "
  175. . "c_member_id_to = ? ";
  176. $params = array(intval($c_member_id_to));
  177. $total_num = db_get_one($sql, $params);
  178. if ($total_num > 0) {
  179. $total_page_num = ceil($total_num / $page_size);
  180. if ($page >= $total_page_num) {
  181. $next = false;
  182. } else {
  183. $next = true;
  184. }
  185. if ($page <= 1) {
  186. $prev = false;
  187. } else {
  188. $prev = true;
  189. }
  190. }
  191. return array($c_dengon_comment_list , $prev , $next, $total_num, $total_page_num);
  192. }
  193. }
  194. /**
  195. * 自分がつけた伝言板コメントリストを取得
  196. */
  197. if (! function_exists('k_p_fh_dengon_c_dengon_comment_list4c_member_id_from'))
  198. {
  199. function k_p_fh_dengon_c_dengon_comment_list4c_member_id_from($c_member_id_from, $page_size, $page)
  200. {
  201. $sql = "SELECT "
  202. . "* "
  203. . "FROM "
  204. . MYNETS_PREFIX_NAME . "c_dengon_comment "
  205. . "WHERE "
  206. . "c_member_id_from = ? "
  207. . "ORDER BY "
  208. . "r_datetime DESC ";
  209. $params = array(intval($c_member_id_from));
  210. $c_dengon_comment_list = db_get_all_page($sql, $page, $page_size, $params);
  211. $c_dengon_comment_list = array_reverse($c_dengon_comment_list);
  212. foreach($c_dengon_comment_list as $key => $value) {
  213. $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_to']);
  214. $c_dengon_comment_list[$key]['nickname'] = $c_member['nickname'];
  215. $c_dengon_comment_list[$key]['image_filename'] = $c_member['image_filename'];
  216. }
  217. $sql = "SELECT "
  218. . "COUNT(*) "
  219. . "FROM "
  220. . MYNETS_PREFIX_NAME . "c_dengon_comment "
  221. . "WHERE "
  222. . "c_member_id_from = ? ";
  223. $params = array(intval($c_member_id_from));
  224. $total_num = db_get_one($sql, $params);
  225. if ($total_num > 0) {
  226. $total_page_num = ceil($total_num / $page_size);
  227. if ($page >= $total_page_num) {
  228. $next = false;
  229. } else {
  230. $next = true;
  231. }
  232. if ($page <= 1) {
  233. $prev = false;
  234. } else {
  235. $prev = true;
  236. }
  237. }
  238. return array($c_dengon_comment_list , $prev , $next, $total_num, $total_page_num);
  239. }
  240. }
  241. /**
  242. * 伝言板持主のIDからそのコメントを書いたメンバIDとニックネームを得る
  243. */
  244. if (! function_exists('k_p_fh_dengon_c_member4c_member_id_to'))
  245. {
  246. function k_p_fh_dengon_c_member4c_member_id_to($c_member_id_to)
  247. {
  248. $sql = "SELECT "
  249. . "* "
  250. . "FROM "
  251. . MYNETS_PREFIX_NAME . "c_dengon_comment "
  252. . "WHERE "
  253. . "c_member_id_to = ? ";
  254. $params = array(intval($c_member_id_to));
  255. $item = db_get_row($sql, $params);
  256. foreach($item as $key => $value) {
  257. $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_to']);
  258. $item[$key]['nickname'] = $c_member['nickname'];
  259. $item[$key]['c_member_id'] = $value['c_member_id_from'];
  260. }
  261. return $item;
  262. }
  263. }
  264. ?>