ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/branches/ebihara/prj_tuning_2_5/webapp/lib/db/friend.php @ 597

Last change on this file since 597 was 597, checked in by ebihara, 14 years ago

f_homeにfunction cacheを導入

File size: 23.1 KB
Line 
1<?php
2/**
3 * @copyright 2005-2006 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7/**
8 * あるメンバーの友達数を取得
9 *
10 * @param int $c_member_id
11 * @return int 友達数
12 */
13function db_friend_count_friends($c_member_id)
14{
15    $sql = 'SELECT COUNT(*) FROM c_friend WHERE c_member_id_from = ?';
16    $params = array(intval($c_member_id));
17    return db_get_one($sql, $params);
18}
19
20/**
21 * 友達かどうか判定
22 *
23 * @param  int $c_member_id1
24 * @param  int $c_member_id2
25 * @return bool
26 */
27function db_friend_is_friend($c_member_id1, $c_member_id2)
28{
29    $sql = 'SELECT c_friend_id FROM c_friend' .
30            ' WHERE c_member_id_from = ? AND c_member_id_to = ?';
31    $params = array(intval($c_member_id1), intval($c_member_id2));
32    return (bool)db_get_one($sql, $params);
33}
34
35/**
36 * 友達のメンバーIDリスト取得
37 *
38 * @param  int $c_member_id
39 * @param  bool $except_blocked アクセスブロックされているメンバーを除外するか
40 * @return array  友達のメンバーID配列
41 */
42function db_friend_c_member_id_list($c_member_id, $except_blocked = false)
43{
44    $sql = 'SELECT c_member_id_to FROM c_friend WHERE c_member_id_from = ? ORDER BY c_friend_id';
45    $params = array(intval($c_member_id));
46    $friends = db_get_col($sql, $params);
47
48    if ($except_blocked) {
49        $blocked = db_member_access_block_list4c_member_id_to($c_member_id);
50        $friends = array_diff($friends, $blocked);
51    }
52    return $friends;
53}
54
55/**
56 * 紹介文を取得
57 */
58function db_friend_c_friend_intro($c_member_id_from, $c_member_id_to)
59{
60    $sql = 'SELECT intro FROM c_friend WHERE c_member_id_from = ? AND c_member_id_to = ?';
61    $params = array(intval($c_member_id_from), intval($c_member_id_to));
62    return db_get_one($sql, $params);
63}
64
65/**
66 * メンバーと自分の中間のフレンドを得る
67 */
68function db_friend_friend_path4c_member_ids($my_id, $target_id)
69{
70    if (db_friend_is_friend($my_id, $target_id)) {
71        return null;
72    }
73
74    //自分の友達リスト
75    $my_list = db_friend_c_member_id_list($my_id);
76
77    //相手の友達リスト
78    $target_list = db_friend_c_member_id_list($target_id);
79
80    //共通の友達リスト
81    $result_list = array_intersect($my_list, $target_list);
82    if (!$result_list) {
83        return null;
84    }
85
86    $result_key = array_rand($result_list);
87    $result_id  = $result_list[$result_key];
88
89    return db_common_c_member4c_member_id($result_id);
90}
91
92/**
93 * 自分のフレンドのうち、対象のメンバーと
94 * フレンドリンクしていないフレンドのリストを取得
95 */
96function db_friend_invite_list4c_member_ids($target_c_member_id, $u)
97{
98    // 自分の友達リスト
99    $my_list = db_friend_c_member_id_list($u);
100
101    // ターゲットの友達リスト
102    $target_list = db_friend_c_member_id_list($target_c_member_id);
103    $target_list[] = $target_c_member_id;
104
105    // 自分の友達リストからターゲットの友達を引く
106    $result = array_diff($my_list, $target_list);
107
108    $list = array();
109    foreach ($result as $value) {
110        $list[] = db_common_c_member4c_member_id_LIGHT($value);
111    }
112    return $list;
113}
114
115//---
116
117function db_friend_friend_list4c_member_id2($c_member_id, $page_size, $page, $orderby)
118{
119    switch ($orderby) {
120    case "ld":
121        $orderby = "m.access_date DESC";
122        break;
123    case "la":
124        $orderby = "m.access_date";
125        break;
126    case "rd":
127        $orderby = "f.r_datetime DESC";
128        break;
129    case "ra":
130        $orderby = "f.r_datetime";
131        break;
132    default:
133        $orderby = "f.r_datetime DESC";
134    }
135
136    $sql = "SELECT" .
137          " m.c_member_id, m.access_date, m.nickname, m.image_filename" .
138          ", f.intro, f.r_datetime" .
139        " FROM c_member AS m, c_friend AS f" .
140        " WHERE f.c_member_id_from = ?" .
141          " AND f.c_member_id_to = m.c_member_id" .
142        " ORDER BY ". $orderby;
143    $params = array(intval($c_member_id));
144    $friend_list = db_get_all_page($sql, $page, $page_size, $params);
145
146    foreach ($friend_list as $key => $value) {
147        $friend_list[$key]['friend_count'] = db_friend_count_friends($value['c_member_id']);
148    }
149
150    $total_num = db_friend_count_friends($c_member_id);
151    $total_page_num =  ceil($total_num / $page_size);
152
153    $next = ($page < $total_page_num);
154    $prev = ($page > 1);
155
156    return array($friend_list , $prev , $next, $total_page_num);
157}
158
159function db_friend_intro_list4c_member_id($c_member_id)
160{
161    $sql = "SELECT c_member_id_from AS c_member_id, intro FROM c_friend" .
162            " WHERE c_member_id_to = ? AND intro <> ''" .
163            " ORDER BY r_datetime_intro DESC";
164    $params = array(intval($c_member_id));
165
166    $list = db_get_all($sql, $params);
167    foreach ($list as $key => $value) {
168        $list[$key] += db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
169    }
170    return $list;
171}
172
173function db_friend_intro_list_with_my_intro4c_member_id($c_member_id)
174{
175    $list = p_fh_intro_intro_list4c_member_id($c_member_id);
176
177    $sql = 'SELECT intro FROM c_friend WHERE c_member_id_from = ? AND c_member_id_to = ?';
178    foreach ($list as $key => $value) {
179        $params = array(intval($c_member_id), intval($value['c_member_id']));
180        $list[$key]['has_intro_by_me'] = (db_get_one($sql, $params) !== '');
181    }
182    return $list;
183}
184
185/**
186 * フレンドからの紹介文リスト
187 */
188function db_friend_c_friend_comment4c_member_id($c_member_id, $limit = 5)
189{
190    $sql = "SELECT c_member_id_from AS c_member_id, intro FROM c_friend" .
191            " WHERE c_member_id_to = ? AND intro <> ''" .
192            " ORDER BY r_datetime_intro DESC";
193    $params = array(intval($c_member_id));
194
195    $list = db_get_all_limit($sql, 0, $limit, $params);
196    foreach ($list as $key => $value) {
197        $list[$key] += db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
198    }
199    return $list;
200}
201
202/**
203 * c_friend取得
204 */
205function db_friend_c_friend4c_member_id_from4c_member_id_to($c_member_id_from,$c_member_id_to)
206{
207    $sql =  "SELECT c_friend_id,".
208                "c_member_id_from,".
209                "c_member_id_to,".
210                "intro,".
211                "r_datetime".
212            " FROM c_friend".
213            " WHERE c_friend.c_member_id_from = ?" .
214                " AND c_friend.c_member_id_to = ?" .
215                " AND intro <> ''";
216    $params = array(intval($c_member_id_from), intval($c_member_id_to));
217    return db_get_row($sql, $params);
218}
219
220/**
221 * フレンドリスト
222 */
223function db_friend_c_friend_list4c_member_id($c_member_id, $limit = 0)
224{
225    $sql = 'SELECT c_member_id_to AS c_member_id FROM c_friend' .
226            ' WHERE c_member_id_from = ? ORDER BY RAND()';
227    $params = array(intval($c_member_id));
228    if ($limit) {
229        $result = db_get_all_limit($sql, 0, $limit, $params);
230    } else {
231        $result = db_get_all($sql, $params);
232    }
233
234    foreach ($result as $key => $value) {
235        $result[$key] = db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
236        $result[$key]['friend_count'] = db_friend_count_friends($value['c_member_id']);
237    }
238    return $result;
239}
240
241function db_friend_intro_body4c_member_id($u, $target_c_member_id)
242{
243    $sql = "SELECT intro FROM c_friend" .
244            " WHERE c_member_id_to = ? AND c_member_id_from = ?";
245    $params = array(intval($target_c_member_id), intval($u));
246    return db_get_one($sql, $params);
247}
248
249/**
250 * あなたにフレンドリンクを要請しているメンバー
251 *
252 * @param   int $c_member_id_to : 要請されている方(あなた)
253 * @return  array_of_array
254 *              c_friend_confirm.*
255 *              nickname        : 要請している人の名前
256 *              image_filename  : 要請している人の画像
257 * @see     h_confirm_list.php
258 */
259function db_friend_anatani_c_friend_confirm_list4c_member_id($c_member_id_to)
260{
261    $sql = 'SELECT * FROM c_friend_confirm WHERE c_member_id_to = ?' .
262            ' ORDER BY r_datetime DESC';
263    $params = array(intval($c_member_id_to));
264    $c_friend_confirm_list = db_get_all($sql, $params);
265
266    foreach ($c_friend_confirm_list as $key => $value) {
267        $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_from']);
268        $c_friend_confirm_list[$key]['nickname'] = $c_member['nickname'];
269        $c_friend_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
270    }
271    return $c_friend_confirm_list;
272}
273
274/**
275 * あなたがフレンドリンクを要請しているメンバー
276 *
277 * @param   int $c_member_id_from   : 要請している方(あなた)
278 * @return  array_of_array
279 *              c_friend_confirm.*
280 *              nickname        : 要請されている人の名前
281 *              image_filename  : 要請されている人の画像
282 * @see     h_confirm_list.php
283 */
284function db_friend_anataga_c_friend_confirm_list4c_member_id($c_member_id_from)
285{
286    $sql = 'SELECT * FROM c_friend_confirm WHERE c_member_id_from = ?' .
287            ' ORDER BY r_datetime DESC';
288    $params = array(intval($c_member_id_from));
289    $c_friend_confirm_list = db_get_all($sql, $params);
290
291    foreach ($c_friend_confirm_list as $key => $value) {
292        $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_to']);
293        $c_friend_confirm_list[$key]['nickname'] = $c_member['nickname'];
294        $c_friend_confirm_list[$key]['image_filename'] = $c_member['image_filename'];
295    }
296    return $c_friend_confirm_list;
297}
298
299function db_friend_c_friend_intro_list4c_member_id($c_member_id, $limit)
300{
301    $sql = 'SELECT * FROM c_friend' .
302            ' WHERE c_member_id_to = ? AND intro <> \'\' ORDER BY RAND()';
303    $params = array(intval($c_member_id));
304    $list = db_get_all_limit($sql, 0, $limit, $params);
305
306    foreach ($list as $key => $value) {
307        $list[$key] += db_common_c_member4c_member_id_LIGHT($value['c_member_id_from']);
308    }
309    return $list;
310}
311
312function db_friend_c_friend_list_disp4c_member_id($c_member_id)
313{
314    $sql =  "SELECT c_member_id,".
315                "image_filename,".
316                "nickname,".
317                "intro,".
318                "c_member_id_from,".
319                "c_member_id_to".
320            " FROM c_member,".
321                "c_friend".
322            " WHERE c_member.c_member_id = c_friend.c_member_id_from".
323                " AND c_friend.c_member_id_to = ?".
324            " ORDER BY c_friend.r_datetime DESC";
325    $params = array(intval($c_member_id));
326    $result = db_get_all($sql, $params);
327
328    foreach ($result as $key=>$value) {
329        $c_friend = p_common_c_friend4c_member_id_from4c_member_id_to($value['c_member_id_to'], $value['c_member_id_from']);
330        $result[$key]['intro'] = $c_friend['intro'];
331
332        $result[$key]['friend_count'] = db_friend_count_friends($value['c_member_id_from']);
333    }
334    return $result;
335}
336
337function db_friend_status($u, $target_c_member_id)
338{
339    $ret = array(
340        'c_member'      => db_common_c_member4c_member_id($target_c_member_id),
341        'is_friend'     => false,
342        'is_friend_confirm' => false,
343    );
344
345    $ret['is_friend'] = db_friend_is_friend($u, $target_c_member_id);
346    $ret['is_friend_confirm'] = do_common_is_friend_link_wait($u, $target_c_member_id);
347
348    return $ret;
349}
350
351/**
352 * 友達リンク要請情報をIDから取得
353 *
354 * @param   int $c_friend_confirm_id
355 * @return  array c_friend_confirm.*
356 */
357function db_friend_c_friend_confirm4c_friend_confirm_id($c_friend_confirm_id)
358{
359    $sql = 'SELECT * FROM c_friend_confirm WHERE c_friend_confirm_id = ?';
360    $params = array(intval($c_friend_confirm_id));
361    return db_get_row($sql, $params);
362}
363
364function db_friend_is_friend_link_wait($c_member_id_from, $c_member_id_to)
365{
366    //from→to
367    $sql = "SELECT count(*)";
368    $sql .= " FROM  c_friend_confirm";
369    $sql .= " WHERE c_member_id_from = ?";
370    $sql .= " AND c_member_id_to = ?";
371    $params = array(intval($c_member_id_from), intval($c_member_id_to));
372    $countA = db_get_one($sql, $params);
373
374    //to→from
375    $sql = "SELECT count(*)";
376    $sql .= " FROM  c_friend_confirm";
377    $sql .= " WHERE c_member_id_from = ?";
378    $sql .= " AND c_member_id_to = ?";
379    $params = array(intval($c_member_id_to), intval($c_member_id_from));
380    $countB = db_get_one($sql, $params);
381
382    if ($countA || $countB) {
383        return true;
384    } else {
385        return false;
386    }
387}
388
389function db_friend_f_link_status($c_member_id_from,$c_member_id_to)
390{
391    $is_friend    = db_friend_is_friend($c_member_id_from, $c_member_id_to);
392    $is_link_wait = do_common_is_friend_link_wait($c_member_id_from, $c_member_id_to);
393
394    $ret = STATUS_F_LINK_ALREADY;
395    if (($is_friend == false) && ($is_link_wait == false)) {
396        // 友達でない&リンク承認待ちでない
397        $ret = STATUS_F_LINK_FLAT;
398    } elseif (($is_friend == false) && ($is_link_wait == true)) {
399        // 友達でない&リンク承認待ち
400        $ret = STATUS_F_LINK_WAIT;
401    }
402
403    return $ret;
404}
405
406function db_friend_c_friend_list4c_member_id2($c_member_id)
407{
408    $sql = "SELECT c_member.* FROM c_friend, c_member" .
409        " WHERE c_friend.c_member_id_from = ?".
410        " AND c_member.c_member_id=c_friend.c_member_id_to";
411    $params = array(intval($c_member_id));
412    return db_get_all($sql, $params);
413}
414
415/**
416 * フレンドのランダムなリストを得る
417 */
418function db_friend_c_friend_list_random4c_member_id($c_member_id, $limit)
419{
420    $sql = "SELECT cf.* , cm.nickname";
421    $sql .= " FROM c_friend AS cf, c_member AS cm";
422    $sql .= " WHERE cf.c_member_id_from = ?" .
423            " AND cm.c_member_id=cf.c_member_id_to";
424    $sql .= " ORDER BY RAND()";
425    $params = array(intval($c_member_id));
426    $c_friend_list = db_get_all_limit($sql, 0, $limit, $params);
427
428    foreach ($c_friend_list as $key => $value) {
429        $c_friend_list[$key]['count_friend'] = db_friend_count_friends($value['c_member_id_to']);
430    }
431
432    return $c_friend_list;
433}
434
435/**
436 * 2つのメンバIDからその2人の関係を返す。
437 */
438function db_friend_relationship4two_members($c_member_id, $target_c_member_id)
439{
440    $relation = array(
441        'friend' => false,
442        'wait'   => false
443    );
444
445    // リンク承認待ちかどうかをチェック
446    $sql = 'SELECT c_friend_confirm_id FROM c_friend_confirm' .
447            ' WHERE c_member_id_from = ? AND c_member_id_to = ?';
448    $params = array(intval($c_member_id), intval($target_c_member_id));
449
450    if (db_get_one($sql, $params)) {
451        $relation['wait'] = true;
452        return $relation;
453    }
454
455    // 友達かどうかチェック
456    $sql = 'SELECT c_friend_id FROM c_friend' .
457            ' WHERE c_member_id_from = ? AND c_member_id_to = ?';
458
459    if (db_get_one($sql, $params)) {
460        $relation['friend'] = true;
461        return $relation;
462    }
463
464    //他人
465    return $relation;
466}
467
468function db_friend_friend_list4c_member_id($c_member_id,$page_size,$page)
469{
470    $sql = "SELECT ".
471            "c_friend_id,".
472            "c_member_id_from,".
473            "c_member_id_to,".
474            "r_datetime".
475        " FROM ".
476            "c_friend".
477        " WHERE c_member_id_from = ?".
478        " ORDER BY r_datetime DESC";
479    $params = array(intval($c_member_id));
480    $c_friend_list = db_get_all_page($sql, $page, $page_size, $params);
481
482    foreach ($c_friend_list as $key => $value) {
483        $c_member = db_common_c_member4c_member_id($value['c_member_id_to']);
484
485        $c_friend_list[$key]['image_filename'] = $c_member['image_filename'];
486        $c_friend_list[$key]['c_member_id'] = $c_member['c_member_id'];
487        $c_friend_list[$key]['nickname'] = $c_member['nickname'];
488        $c_friend_list[$key]['access_date'] = $c_member['access_date'];
489
490        $c_friend_list[$key]['friend_count'] = db_friend_count_friends($c_member['c_member_id']);
491    }
492
493    $total_num = db_friend_count_friends($c_member_id);
494
495    if ($total_num != 0) {
496        $total_page_num =  ceil($total_num / $page_size);
497        if ($page >= $total_page_num) {
498            $next = false;
499        } else {
500            $next = true;
501        }
502
503        if ($page <= 1) {
504            $prev = false;
505        } else {
506            $prev = true;
507        }
508    }
509    return array($c_friend_list, $prev, $next);
510}
511
512/**
513 * あなたにフレンドリンクを要請しているメンバー(リンク承認待ち)
514 *
515 * @param   int $c_member_id_to : 要請されている方(あなた)
516 * @return  array_of_array
517 *              c_friend_confirm.*
518 *              nickname        : 要請している人の名前
519 *              message_disp    : 表示用メッセージ
520 */
521function db_friend_ktai_anatani_c_friend_confirm_list4c_member_id($c_member_id_to)
522{
523    $sql = "SELECT * FROM c_friend_confirm WHERE c_member_id_to = ?";
524    $sql .= " ORDER BY r_datetime DESC";
525    $params = array(intval($c_member_id_to));
526    $c_friend_confirm_list = db_get_all($sql, $params);
527
528    foreach ($c_friend_confirm_list as $key => $value) {
529        $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_from']);
530        $c_friend_confirm_list[$key]['nickname'] = $c_member['nickname'];
531    }
532    return $c_friend_confirm_list;
533}
534
535/**
536 * あなたがフレンドリンクを要請しているメンバー(リンク要請中)
537 *
538 * @param   int $c_member_id_from   : 要請している方(あなた)
539 * @return  array_of_array
540 *              c_friend_confirm.*
541 *              nickname        : 要請されている人の名前
542 *              message_disp    : 表示用メッセージ
543 */
544function db_friend_ktai_anataga_c_friend_confirm_list4c_member_id($c_member_id_from)
545{
546    $sql = "SELECT * FROM c_friend_confirm WHERE c_member_id_from = ?";
547    $sql .= " ORDER BY r_datetime DESC";
548    $params = array(intval($c_member_id_from));
549    $c_friend_confirm_list = db_get_all($sql, $params);
550
551    foreach ($c_friend_confirm_list as $key => $value) {
552        $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id_to']);
553        $c_friend_confirm_list[$key]['nickname'] = $c_member['nickname'];
554    }
555    return $c_friend_confirm_list;
556}
557
558/**
559 * 友達ランダム50人
560 */
561function db_friend_ktai_c_friend_list_random4c_member_id($c_member_id)
562{
563    $sql = "SELECT cf.c_member_id_to, cm.nickname";
564    $sql .= " FROM c_friend AS cf, c_member AS cm";
565    $sql .= " WHERE cf.c_member_id_from = ?".
566            " AND cf.c_member_id_to = cm.c_member_id";
567    $sql .= " ORDER BY RAND()";
568    $params = array(intval($c_member_id));
569    return db_get_all_limit($sql, 0, 50, $params);
570}
571
572function db_friend_intro_list4c_friend_comment_list($c_friend_comment_list, $page, $page_size)
573{
574    $lst = array_slice($c_friend_comment_list, ($page - 1) * $page_size, $page_size);
575    $total_num = count($c_friend_comment_list);
576
577    if ($total_num === 0) {
578        $prev = $next = false;
579    } else {
580        $total_page_num =  ceil($total_num / $page_size);
581        $next = ($page < $total_page_num) ? true : false;
582        $prev = ($page > 1) ? true : false;
583    }
584    return array($lst, $prev, $next, $total_num);
585}
586
587/*** write ***/
588
589//--- c_friend
590
591/**
592 * フレンドリンクを追加
593 */
594function db_friend_insert_c_friend($c_member_id_from, $c_member_id_to)
595{
596    //function cache削除
597    pne_cache_drop('p_f_home_c_friend_list4c_member_id', $c_member_id_from, 9);
598    pne_cache_drop('p_h_home_c_diary_friend_list4c_member_id', $c_member_id_from, 5);
599    pne_cache_drop('p_f_home_c_friend_list4c_member_id', $c_member_id_to, 9);
600
601    $Week = new Calendar_Week(date('Y'), date('m'), date('d'), 0);
602    $Week->build();
603    while ($Day = $Week->fetch()) {
604        $m = $Day->thisMonth();
605        $d = $Day->thisDay();
606        pne_cache_drop('p_h_home_birth4c_member_id', $m, $d, $c_member_id_from);
607    }
608
609    if (($c_member_id_from < 1) || ($c_member_id_to < 1))
610        return false;
611
612    if (db_friend_is_friend($c_member_id_from, $c_member_id_to))
613        return false;
614
615    $data = array(
616        'c_member_id_from' => intval($c_member_id_from),
617        'c_member_id_to' => intval($c_member_id_to),
618        'r_datetime' => db_now(),
619    );
620    db_insert('c_friend', $data);
621
622    $data = array(
623        'c_member_id_from' => intval($c_member_id_to),
624        'c_member_id_to' => intval($c_member_id_from),
625        'r_datetime' => db_now(),
626    );
627    db_insert('c_friend', $data);
628}
629
630/**
631 * リンク申請からフレンドリンクを追加
632 *
633 * @param   int $c_friend_confirm_id
634 * @param   int $u  自分のc_member_id
635 */
636function db_friend_insert_c_friend4confirm($c_friend_confirm_id, $u)
637{
638    $confirm = _do_c_friend_confirm4c_friend_confirm_id($c_friend_confirm_id);
639    if ($confirm['c_member_id_to'] != $u) {
640        return false;
641    }
642    $c_member_id_from = $confirm['c_member_id_from'];
643    $c_member_id_to   = $confirm['c_member_id_to'];
644
645    // フレンドリンクを追加
646    db_friend_insert_c_friend($c_member_id_from, $c_member_id_to);
647
648    // フレンド申請を削除
649    db_friend_delete_c_friend_confirm($c_friend_confirm_id, $u);
650    return true;
651}
652
653/**
654 * フレンドリンクを削除
655 */
656function db_friend_delete_c_friend($c_member_id_from, $c_member_id_to)
657{
658    //function cache削除
659    pne_cache_drop('p_f_home_c_friend_list4c_member_id', $c_member_id_from, 9);
660    pne_cache_drop('p_h_home_c_diary_friend_list4c_member_id', $c_member_id_from, 5);
661    pne_cache_drop('p_f_home_c_friend_list4c_member_id', $c_member_id_to, 9);
662
663    $Week = new Calendar_Week(date('Y'), date('m'), date('d'), 0);
664    $Week->build();
665    while ($Day = $Week->fetch()) {
666        $m = $Day->thisMonth();
667        $d = $Day->thisDay();
668        pne_cache_drop('p_h_home_birth4c_member_id', $m, $d, $c_member_id_from);
669    }
670
671    $sql = 'DELETE FROM c_friend' .
672            ' WHERE (c_member_id_from = ? AND c_member_id_to = ?)' .
673               ' OR (c_member_id_to = ? AND c_member_id_from = ?)';
674    $params = array(
675        intval($c_member_id_from), intval($c_member_id_to),
676        intval($c_member_id_from), intval($c_member_id_to));
677    db_query($sql, $params);
678}
679
680/**
681 * フレンド紹介文入力・編集
682 */
683function db_friend_update_c_friend_intro($c_member_id_from, $c_member_id_to, $intro)
684{
685    //function cacheを削除
686    pne_cache_drop('p_h_home_c_friend_intro_list4c_member_id', $c_member_id_to, 5);
687    pne_cache_drop('p_f_home_c_friend_comment4c_member_id', $c_member_id_to);
688
689    $data = array(
690        'intro' => $intro,
691        'r_datetime_intro' => db_now(),
692    );
693    $where = array(
694        'c_member_id_from' => intval($c_member_id_from),
695        'c_member_id_to' => intval($c_member_id_to),
696    );
697    db_update('c_friend', $data, $where);
698}
699
700//--- c_friend_confirm
701
702/**
703 * フレンド申請を追加
704 *
705 * @param  int    $c_member_id_from
706 * @param  int    $c_member_id_to
707 * @param  string $message
708 * @return int insert_id
709 */
710function db_friend_insert_c_friend_confirm($c_member_id_from, $c_member_id_to, $message)
711{
712    $data = array(
713        'c_member_id_from' => intval($c_member_id_from),
714        'c_member_id_to'   => intval($c_member_id_to),
715        'message'          => $message,
716        'r_datetime'       => db_now(),
717    );
718    return db_insert('c_friend_confirm', $data);
719}
720
721/**
722 * フレンド申請を削除
723 *
724 * @param  int  $c_friend_confirm_id
725 * @param  int  $u 自分のc_member_id
726 */
727function db_friend_delete_c_friend_confirm($c_friend_confirm_id, $u)
728{
729    $sql = 'DELETE FROM c_friend_confirm WHERE c_friend_confirm_id = ?' .
730            ' AND (c_member_id_from = ? OR c_member_id_to = ?)';
731    $params = array(intval($c_friend_confirm_id), intval($u), intval($u));
732    db_query($sql, $params);
733}
734
735?>
Note: See TracBrowser for help on using the repository browser.