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

source: OpenPNE/branches/work/asano/pne_album/webapp/lib/db/album.php @ 6198

Last change on this file since 6198 was 6198, checked in by cybaron, 13 years ago

画像の修整画面 h_album_edit
・ロジック作成
・db/album.phpで必要のない関数のコメント化

File size: 64.7 KB
Line 
1<?php
2/**
3 * @copyright 2005-2007 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 array
12 */
13/*
14function db_album_category_list4c_member_id($c_member_id)
15{
16    $sql = 'SELECT c_album_category_id, category_name FROM c_album_category ' .
17        'WHERE c_member_id = ?';
18    $result = db_get_all($sql, array(intval($c_member_id)));
19
20    return $result;
21}
22*/
23/*
24function fetch_inc_entry_point_h_album_add(&$smarty)
25{
26    $target = 'h_album_add';
27
28    $contents = array();
29    for ($i = 1; $i <= 3; $i++) {
30        $tpl = sprintf('db:inc_entry_point_%s_%d', $target, $i);
31        $contents[$i] = fetch_from_db($tpl, $smarty);
32    }
33    return $contents;
34}
35*/
36/**
37 * カテゴリ名からカテゴリIDを得る
38 *
39 * @param int $c_member_id
40 * @param string $category_name
41 * @return bool
42 */
43/*
44function db_album_get_category_id4category_name($c_member_id, $category_name)
45{
46    $sql = 'SELECT c_album_category_id FROM c_album_category ' .
47        'WHERE category_name LIKE ? AND c_member_id = ?';
48    return db_get_one($sql, array($category_name, intval($c_member_id)));
49}
50*/
51/**
52 * カテゴリIDからカテゴリ名を得る
53 */
54/*
55function db_album_get_category_name4category_id($category_id)
56{
57    $sql = 'SELECT category_name FROM c_album_category ' .
58        'WHERE c_album_category_id = ?';
59    return db_get_one($sql, array($category_id));
60}
61*/
62/**
63 * 日記IDからカテゴリリストを得る
64 *
65 * @param int $c_album_id
66 * @return array
67 */
68/*
69function db_album_category_list4c_album_id($c_album_id)
70{
71    $sql = 'SELECT c_album_category_id FROM c_album_category_album WHERE c_album_id = ?';
72    $category_list = db_get_col($sql, array(intval($c_album_id)));
73    $ids = join(',', $category_list);
74
75    $sql = 'SELECT c_album_category_id, category_name FROM c_album_category' .
76        ' WHERE c_album_category_id IN ('.$ids.')';
77    return db_get_all($sql);
78}
79*/
80/**
81 * カテゴリIDから日記を得る
82 *
83 * @param int $c_album_category_id
84 * @return array
85 */
86/*
87function db_album_list4c_album_category_id($c_member_id, $c_album_category_id, $u = null, $page_size, $page)
88{
89    $sql = 'SELECT c_album_id FROM c_album_category_album WHERE c_album_category_id = ?';
90    $album_list = db_get_col($sql, array(intval($c_album_category_id)));
91    $ids = join(',', $album_list);
92
93    $pf_cond = db_album_public_flag_condition($c_member_id, $u);
94    $sql = 'SELECT * FROM c_album' .
95        ' WHERE c_album_id IN ('.$ids.') AND c_member_id = ? ORDER BY r_datetime DESC';         //' . $pf_cond . '
96    $list = db_get_all($sql, array($c_member_id));
97   
98    $total_num = count($list);
99
100
101
102    $sql1 = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
103   
104    foreach ($list as $key => $c_album) {
105        $list[$key]['num_comment'] = db_album_count_c_album_comment4c_album_id($c_album['c_album_id']);
106        $list[$key]['nickname'] = db_get_one($sql1,$c_album['c_member_id']);
107        $list[$key]['category'] = db_album_category_list4c_album_id($c_album['c_album_id']);
108    }
109   
110    if ($total_num != 0) {
111        $total_page_num =  ceil($total_num / $page_size);
112        if ($page >= $total_page_num) {
113            $next = false;
114        } else {
115            $next = true;
116        }
117
118        if ($page <= 1) {
119            $prev = false;
120        } else {
121            $prev = true;
122        }
123    }
124
125    return array($list, $prev, $next,$total_num);
126}
127*/
128function db_check_c_album_image_exist($c_album_id){
129        $sql = 'SELECT c_album_id FROM c_album_image WHERE c_album_id = ?';
130        $params = array(intval($c_album_id));
131       
132        return db_get_one($sql,$params);
133}
134
135/**
136 * カテゴリを追加する
137 *
138 * @param int $c_member_id
139 * @param int $category_name
140 */
141/*
142function db_album_category_insert_category($c_member_id, $category_name)
143{
144    $data = array(
145        'c_member_id' => intval($c_member_id),
146        'category_name' => $category_name,
147        'r_datetime' => db_now(),
148    );
149    return db_insert('c_album_category', $data);
150}
151*/
152/**
153 * カテゴリを削除する
154 *
155 * @param int $c_album_category_id
156 */
157/*
158function db_album_category_delete_category($c_album_category_id)
159{
160    $sql = 'DELETE FROM c_album_category WHERE c_album_category_id = ?';
161    db_query($sql, array($c_album_category_id));   
162}
163*/
164/**
165 * カテゴリと日記を関連づける
166 *
167 * @param int $c_album_id
168 * @param int $c_album_category_id
169 */
170/*
171function db_album_category_insert_c_album_category_album($c_album_id, $c_album_category_id)
172{
173    $data = array(
174        'c_album_id' => intval($c_album_id),
175        'c_album_category_id' => intval($c_album_category_id),
176    );
177    db_insert('c_album_category_album', $data);
178}
179*/
180
181/**
182 * カテゴリと日記の関連づけを削除する
183 */
184/*
185function db_album_category_delete_c_album_category_album($c_album_id)
186{
187    $album_category_list = db_album_category_list4c_album_id($c_album_id);
188
189    $sql = 'DELETE FROM c_album_category_album WHERE c_album_id = ?';
190    db_query($sql, array($c_album_id));
191
192    foreach($album_category_list as $value) {
193        $sql = 'SELECT COUNT(*) FROM c_album_category_album'.
194            ' WHERE c_album_category_id = ?';
195        $c_album_category_id = $value['c_album_category_id'];
196        $is_album = (bool)db_get_one($sql, array(intval($c_album_category_id)));
197        if (!$is_album) {  //カテゴリに関連付いた日記が存在しない
198            db_album_category_delete_category($c_album_category_id);
199        }
200    }
201}
202*/
203/**
204 * db_album_public_flag_condition
205 *
206 * @param int $c_member_id target c_member_id
207 * @param int $u viewer's c_member_id
208 * @param string $force
209 * @return string
210 */
211function db_album_public_flag_condition($c_member_id, $u = null, $force = null)
212{
213    $pf_cond = '';
214    if ($force) {
215        switch ($force) {
216        case 'friend':
217            $pf_cond = " AND c_album.public_flag <> 'private'";
218            break;
219        case 'private':
220            $pf_cond = " AND c_album.public_flag = 'public'";
221            break;
222        }
223    } else {
224        if (!is_null($u) && $c_member_id != $u) {
225            $is_friend = db_friend_is_friend($c_member_id, $u);
226            if ($is_friend) {
227                $pf_cond = " AND c_album.public_flag <> 'private'";
228            } else {
229                $pf_cond = " AND c_album.public_flag = 'public'";
230            }
231        }
232    }
233    return $pf_cond;
234}
235
236//// c_album
237
238function db_album_get_c_album4c_album_id($c_album_id)
239{
240        //$tmp1_sql = 'SELECT c_album_category_id FROM c_album_category_album WHERE c_album_id = ?';
241        //$params = array(intval($c_album_id));
242        //$category_id = db_get_one($tmp1_sql, $params);
243
244        //$tmp2_sql = 'SELECT category_name FROM c_album_category WHERE c_album_category_id = ?';
245        //$tmp_params = array(intval($category_id));
246        //$category_name = db_get_one($tmp2_sql, $tmp_params);
247
248    $sql = 'SELECT * FROM c_album WHERE c_album_id = ?';
249    $params = array(intval($c_album_id));
250   
251    $album = db_get_row($sql, $params);
252    //$album['category'] = $category_name;
253
254    return $album;
255}
256
257//kazuki 特に必要ないと判断
258/*
259function db_album_get_c_album_subject_list4c_member_id($c_member_id)
260{
261        $sql = 'SELECT subject,c_album_id FROM c_album WHERE c_member_id = ? ORDER BY r_datetime DESC';
262        $params = array(intval($c_member_id));         
263    return db_get_all($sql, $params);
264}
265*/
266
267/**
268 * アルバムのタイトルを取得
269 */
270function db_album_get_c_album_subject4c_album_id($c_album_id)
271{
272        $sql = 'SELECT subject FROM c_album WHERE c_album_id = ?';
273        $params = array(intval($c_album_id));
274        return db_get_one($sql, $params);
275        //return db_get_row($sql, $params);
276}
277
278function db_album_get_c_album4id($c_album_id)
279{
280        $sql = 'SELECT a.*,b.c_album_image_id,b.image_filename'.
281            ' FROM c_album AS a,c_album_image AS b'.
282            ' WHERE a.c_album_id = '.intval($c_album_id).' AND'.' b.c_album_id = '.intval($c_album_id);
283                       
284    return db_get_all($sql, array());
285}
286
287function db_album_image_get_c_album_image_ids4c_album_image_id($target_c_album_id)
288{
289        $sql = 'SELECT c_album_image_id FROM c_album_image WHERE c_album_id = ?';
290        $params = array(intval($target_c_album_id));
291        return db_get_col($sql,$params);
292}
293
294/**
295 * アルバム画像を取得
296 * @param int $c_album_image_id
297 */
298function db_album_image_get_c_album_image4id($c_album_image_id)
299{
300        $sql = 'SELECT * FROM c_album_image WHERE c_album_image_id = ?';
301        $params = array(intval($c_album_image_id));
302
303    return db_get_row($sql,$params);
304}
305
306/**
307 * アルバムに登録されている画像リストを取得
308 * @param int $c_album_id
309 */
310function db_get_c_album_image_list4c_album_id($c_album_id)
311{
312        $sql = 'SELECT * FROM c_album_image WHERE c_album_id = ?';
313        $params = array(intval($c_album_id));
314
315        return db_get_all($sql,$params);
316}
317
318//kazuki db_album_image_get_c_album_image4id()で代用可能
319/*
320function db_c_album_get_image_description4image_id($c_album_image_id)
321{
322        $sql = 'SELECT image_description FROM c_album_image WHERE c_album_image_id = ?';
323        $params = array(intval($c_album_image_id));
324       
325        return db_get_one($sql,$params);
326}
327*/
328
329/**
330 * アルバムIDからアルバムに登録された画像を取得
331 * @param   int   $c_album_id
332 * @return  array
333 */
334function db_album_get_c_album_page4id($c_album_id,$page_size=10,$page=0)
335{
336    /*
337    $sql = 'SELECT ab.*,i.c_album_image_id,i.image_filename,i.image_description'.
338                        ' FROM c_album AS ab,c_album_image AS i'.
339                        ' WHERE ab.c_album_id = '.intval($c_album_id).' AND'.' i.c_album_id = '.intval($c_album_id).' ORDER BY i.c_album_image_id ASC';
340        */
341       
342        $select = 'SELECT ab.*,i.c_album_image_id,i.image_filename,i.image_description';
343        $from  = ' FROM c_album AS ab,c_album_image AS i';
344        $where = ' WHERE ab.c_album_id = i.c_album_id' .
345                         ' AND ab.c_album_id = ?';
346        $orderby = ' ORDER BY i.c_album_image_id ASC';
347        $sql = $select .$from . $where .$orderby;
348       
349        $params = array(intval($c_album_id));
350        //$list = db_get_all_page($sql, $page, $page_size, array());   
351    $list = db_get_all_limit($sql, $page_size * ($page - 1), $page_size, $params);
352   
353    $sql = 'SELECT COUNT(c_album_image_id) FROM c_album_image WHERE c_album_id = ?';
354    $params = array(intval($c_album_id));
355    $total_num = db_get_one($sql, $params);
356
357    if ($total_num != 0) {
358        $total_page_num =  ceil($total_num / $page_size);
359        if ($page >= $total_page_num) {
360            $next = false;
361        } else {
362            $next = true;
363        }
364
365        if ($page <= 1) {
366            $prev = false;
367        } else {
368            $prev = true;
369        }
370    }
371    return array($list, $prev, $next, $total_num);
372}
373
374function pne_check_album_public_flag($c_album_id, $c_member_id)
375{
376    $c_album = db_album_get_c_album_row4id($c_album_id);
377    if ($c_album['c_member_id'] == $c_member_id) {
378        return true;
379    }
380
381    switch ($c_album['public_flag']) {
382    case 'public':
383        $allowed = true;
384        break;
385    case 'friend':
386        $allowed = db_friend_is_friend($c_album['c_member_id'], $c_member_id);
387        break;
388    case 'private':
389    default:
390        $allowed = false;
391        break;
392    }
393
394    return $allowed;
395}
396
397function db_get_friend4c_member_id($target_c_member_id)
398{
399        $id = db_friend_c_member_id_list($target_c_member_id);
400        $ids = implode(',',$id);
401        $sql = 'SELECT c_member_id, nickname FROM c_member WHERE c_member_id IN ('.$ids.')';
402       
403        return db_get_all($sql,array());
404}
405
406function db_album_get_c_album_row4id($c_album_id)
407{
408    $sql = 'SELECT * FROM c_album WHERE c_album_id = ?';
409    return db_get_row($sql, array(intval($c_album_id)));
410}
411
412function db_album_get_c_album_id4subject($subject,$c_member_id)
413{
414    $sql = 'SELECT c_album_id FROM c_album ' .
415                'WHERE subject like '.'\'%'.strval($subject).'%\' AND c_member_id = ?';           //.'%'.$subject.'%';
416   
417//    $params[] = '%'.strval($subject).'%';
418   
419    return db_get_row($sql, array(intval($c_member_id)));
420}
421
422function db_album_get_c_album_subject($target_c_member_id)
423{
424    $sql = 'SELECT subject,c_album_id FROM c_album WHERE c_member_id = ? ORDER BY r_datetime DESC';
425    $params = array(intval($target_c_member_id));
426    return db_get_all($sql, $params);
427}
428
429/**
430 * メンバーIDから日記リストを最新順で取得
431 *
432 * @param int $c_member_id
433 * @return array 日記リスト
434 */
435function db_album_get_c_album_list4c_member_id($target_c_member_id, $count = 10, $u = null, $force = null)
436{
437    static $is_recurred = false;  //再帰処理中かどうかの判定フラグ
438
439    if (!$is_recurred) {  //function cacheのために再帰処理を行う
440        $is_recurred = true;
441        $funcargs = func_get_args();
442        return pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_FAST, __FUNCTION__, $funcargs);
443    }
444
445    $is_recurred = false;
446
447    $pf_cond = db_album_public_flag_condition($target_c_member_id, $u, $force);
448    $sql = 'SELECT * FROM c_album WHERE c_member_id = ?' . $pf_cond .
449           ' ORDER BY r_datetime DESC';
450    $params = array(intval($target_c_member_id));
451    $arr = db_get_all_limit($sql, 0, $count, $params);
452    foreach ($arr as $key => $value) {
453        $arr[$key]['comment_count'] = db_album_count_c_album_comment4c_album_id($value['c_album_id']);
454    }
455    return $arr;
456}
457
458function p_common_is_active_c_album_id($c_album_id)
459{
460    $sql = 'SELECT c_album_id FROM c_album WHERE c_album_id = ?';
461    return (bool)db_get_one($sql, array(intval($c_album_id)));
462}
463
464//// c_album_comment
465
466/**
467 * 日記のコメントリストを得る
468 *
469 * @param   int $c_album_id
470 * @param   int $limit
471 * @return  array 日記コメント+ニックネーム
472 */
473/*
474function db_album_get_c_album_comment_list4c_album_id($c_album_id)
475{
476    $sql = 'SELECT c_member.nickname, c_album_comment.*' .
477        ' FROM c_album_comment LEFT JOIN c_member USING (c_member_id)' .
478        ' WHERE c_album_id = ?' .
479        ' ORDER BY c_album_comment.r_datetime';
480    return db_get_all($sql, array(intval($c_album_id)));
481}
482*/
483
484/**
485 * 日記のコメントリスト(好きなID(複数))を取得
486 *
487 * @param   array $id_list
488 * @param   int   $page
489 * @param   int   $page_size
490 * @param   bool  $desc  並び順を日時の新しい順にするかどうか
491 * @return  日記コメント(+ニックネーム)リスト
492 */
493/*
494function db_album_get_c_album_comment_list4id_list($id_list, $page = 1, $page_size= -1, $desc = false)
495{
496    if (!count($id_list)) return array();
497    if ($page_size < 0) {
498        $page_size = count($id_list);
499    }
500    $e_id_list = implode(',', array_map('intval', (array)$id_list));
501
502    $sql = 'SELECT * FROM c_album_comment' .
503            ' WHERE c_album_comment_id IN ('.$e_id_list.')';
504    if ($desc) {
505        $sql .= ' ORDER BY r_datetime DESC';
506    } else {
507        $sql .= ' ORDER BY r_datetime';
508    }
509    $c_album_comment_list = db_get_all_page($sql, $page, $page_size);
510//        print "<pre>";
511//        echo "IN DATABASE<br>";
512//        print $page;
513//        print_r ($c_album_comment_list);
514//        echo "IN DATABASE<br>";
515//        print "</pre>";
516    foreach ($c_album_comment_list as $key => $value) {
517        $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
518        $c_album_comment_list[$key]['nickname'] = $c_member['nickname'];
519    }
520
521    $sql = 'SELECT COUNT(*) FROM c_album_comment' .
522        ' WHERE c_album_comment_id IN ('.$e_id_list.')';
523    $total_num = db_get_one($sql);
524
525    if ($total_num != 0) {
526        $total_page_num = ceil($total_num / $page_size);
527        if ($page >= $total_page_num) {
528            $next = false;
529        } else {
530            $next = true;
531        }
532
533        if ($page <= 1) {
534            $prev = false;
535        } else {
536            $prev = true;
537        }
538    }
539
540    return array($c_album_comment_list, $prev , $next, $total_num);
541}
542*/
543
544/**
545 * 日記のコメント数を取得
546 *
547 * @param int $c_album_id
548 * @return int コメント数
549 */
550/*
551function db_album_count_c_album_comment4c_album_id($c_album_id)
552{
553    $sql = 'SELECT COUNT(*) FROM c_album_comment WHERE c_album_id = ?';
554    return db_get_one($sql, array(intval($c_album_id)));
555}
556*/
557////
558
559/**
560 * あるメンバーの日記リストを取得
561 *
562 * @param int $c_member_id target c_member_id
563 * @param int $page_size
564 * @param int $page
565 * @param int $u viewer's c_member_id
566 * @return array 日記リスト
567 */
568function p_fh_album_list_album_list4c_member_id($c_member_id, $page_size, $page, $u = null)
569{
570    $pf_cond = db_album_public_flag_condition($c_member_id, $u);
571//    $s = 'SELECT min(c_album_image_id) FROM c_album_image WHERE c_album_image.c_album_id ='.$c_member_id;
572//    $re = db_get_one($s,array());
573//    echo $re."^&^&^&^&^&^&^&^&^&^&^";
574    $sql = 'SELECT * FROM c_album'.$pf_cond.' ORDER BY r_datetime DESC';
575    $params = array();
576    $list = db_get_all_page($sql, $page, $page_size, $params);
577   
578    $sql1 = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
579   
580    foreach ($list as $key => $c_album) {
581        $list[$key]['num_comment'] = db_album_count_c_album_comment4c_album_id($c_album['c_album_id']);
582        $list[$key]['nickname'] = db_get_one($sql1,$c_album['c_member_id']);
583    }
584
585    $sql = 'SELECT COUNT(*) FROM c_album ' . $pf_cond;
586    $total_num = db_get_one($sql, $params);
587
588    if ($total_num != 0) {
589        $total_page_num =  ceil($total_num / $page_size);
590        if ($page >= $total_page_num) {
591            $next = false;
592        } else {
593            $next = true;
594        }
595
596        if ($page <= 1) {
597            $prev = false;
598        } else {
599            $prev = true;
600        }
601    }
602    return array($list, $prev, $next, $total_num);
603}
604
605function p_fh_album_list_album_list_public4c_member_id($c_member_id, $page_size, $page, $u = null)
606{
607    $pf_cond = db_album_public_flag_condition($c_member_id, $u);
608//    $s = 'SELECT min(c_album_image_id) FROM c_album_image WHERE c_album_image.c_album_id ='.$c_member_id;
609//    $re = db_get_one($s,array());
610//    echo $re."^&^&^&^&^&^&^&^&^&^&^";
611    $sql = 'SELECT * FROM c_album WHERE public_flag=\'public\' ORDER BY r_datetime DESC';
612    $params = array();
613    $list = db_get_all_page($sql, $page, $page_size, $params);
614   
615    $sql1 = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
616   
617    foreach ($list as $key => $c_album) {
618        $list[$key]['num_comment'] = db_album_count_c_album_comment4c_album_id($c_album['c_album_id']);
619        $list[$key]['nickname'] = db_get_one($sql1,$c_album['c_member_id']);
620    }
621
622    $sql = 'SELECT COUNT(*) FROM c_album WHERE public_flag=\'public\'';
623    $total_num = db_get_one($sql, $params);
624
625    if ($total_num != 0) {
626        $total_page_num =  ceil($total_num / $page_size);
627        if ($page >= $total_page_num) {
628            $next = false;
629        } else {
630            $next = true;
631        }
632
633        if ($page <= 1) {
634            $prev = false;
635        } else {
636            $prev = true;
637        }
638    }
639    return array($list, $prev, $next, $total_num);
640}
641
642function p_fh_album_list_album_image_list4c_album_id($c_album_id, $page_size, $page)
643{
644    $sql = 'SELECT * FROM c_album_image WHERE c_album_id = ?';
645    $params = array(intval($c_album_id));
646    $list = db_get_all_page($sql, $page, $page_size, $params);
647
648   
649    $sql = 'SELECT COUNT(*) FROM c_album_image WHERE c_album_id = ?';
650    $total_num = db_get_one($sql, $params);
651
652    if ($total_num != 0) {
653        $total_page_num =  ceil($total_num / $page_size);
654        if ($page >= $total_page_num) {
655            $next = false;
656        } else {
657            $next = true;
658        }
659
660        if ($page <= 1) {
661            $prev = false;
662        } else {
663            $prev = true;
664        }
665    }
666    return array($list, $prev, $next, $total_num);
667}
668
669//取得相册列表
670function p_fh_album_list_fh_album_list4c_member_id($c_member_id, $page_size, $page,$u = null)
671{
672    $pf_cond = db_album_public_flag_condition($c_member_id, $u);
673    $sql = 'SELECT * FROM c_album WHERE c_member_id = ?'.$pf_cond.
674           ' ORDER BY r_datetime DESC';
675    $params = array(intval($c_member_id));
676    $list = db_get_row($sql,$params);
677   
678//    print "<pre>";
679//    echo "IN DATABASE<br><br>";
680//    print_r ($list);
681//    echo "IN DATABASE<br><br>";
682//    print "</pre>";
683   
684    $sql = 'SELECT COUNT(*) FROM c_album WHERE c_member_id = ?' . $pf_cond;
685    $params1 = array();
686    $total_num = db_get_one($sql, $params);
687   
688    if ($total_num != 0) {
689        $total_page_num =  ceil($total_num / $page_size);
690        if ($page >= $total_page_num) {
691            $next = false;
692        } else {
693            $next = true;
694        }
695
696        if ($page <= 1) {
697            $prev = false;
698        } else {
699            $prev = true;
700        }
701    }
702   
703    $temp = array($list, $prev, $next, $total_num); 
704   
705
706    return $temp;
707}
708
709function db_album_category_c_album_category4c_album_id($c_album_id)
710{
711        $sql = 'SELECT category_name FROM c_album_category AS cac,c_album_category_album AS caca WHERE cac.c_album_category_id = caca.c_album_category_id AND caca.c_album_id = ?';
712        $params = array(intval($c_album_id));
713        return db_get_one($sql, $params);
714}
715
716/**
717 * 特定ユーザーのアルバムリスト取得
718 */
719function p_fh_album_list_fh_my_album_list4c_member_id($c_member_id, $page_size, $page)
720{
721//    $pf_cond = db_album_public_flag_condition($c_member_id, $u);
722    $sql = 'SELECT * FROM c_album WHERE c_member_id = ?'.//$pf_cond.
723           ' ORDER BY r_datetime DESC';
724    $params = array(intval($c_member_id));
725    $list = db_get_all_page($sql,$page, $page_size,$params);
726   
727    /*
728    foreach ($list as $key => $c_album) {
729        $list[$key]['num_comment'] = db_album_count_c_album_comment4c_album_id($c_album['c_album_id']);
730        $list[$key]['category'] = db_album_category_list4c_album_id($c_album['c_album_id']);
731    }
732    */
733   
734//    print "<pre>";
735//    echo "IN DATABASE<br><br>";
736//    print_r ($list);
737//    echo "IN DATABASE<br><br>";
738//    print "</pre>";
739   
740    $sql = 'SELECT COUNT(*) FROM c_album WHERE c_member_id = ?'. // $pf_cond;
741    //$params1 = array();
742    //↑これいらん
743    $total_num = db_get_one($sql, $params);
744   
745    if ($total_num != 0) {
746        $total_page_num =  ceil($total_num / $page_size);
747        if ($page >= $total_page_num) {
748            $next = false;
749        } else {
750            $next = true;
751        }
752
753        if ($page <= 1) {
754            $prev = false;
755        } else {
756            $prev = true;
757        }
758    }
759   
760    $temp = array($list, $prev, $next, $total_num); 
761   
762
763    return $temp;
764}
765
766/*
767function db_common_album_monthly_calendar($year, $month, $c_member_id, $u = null)
768{
769    include_once 'Calendar/Month/Weekdays.php';
770    $Month = new Calendar_Month_Weekdays($year, $month, 0);
771    $Month->build();
772
773    $is_album_list = p_h_album_is_album_written_list4date($year, $month, $c_member_id, $u);
774
775    $calendar = array();
776    $week = 0;
777    while ($Day = $Month->fetch()) {
778        if ($Day->isFirst()) $week++;
779
780        if ($Day->isEmpty()) {
781            $calendar['days'][$week][] = array();
782        } else {
783            $day = $Day->thisDay();
784            $item = array(
785                'day' => $day,
786                'is_diary' => in_array($day, $is_album_list),
787            );
788            $calendar['days'][$week][] = $item;
789        }
790    }
791
792    // 最初に日記を書いた日
793    $sql = 'SELECT r_datetime FROM c_album WHERE c_member_id = ? ORDER BY r_datetime';
794    $first_datetime = db_get_one($sql, array(intval($c_member_id)));
795
796    // 前の月、次の月
797    $prev_month = $Month->prevMonth('timestamp');
798    $this_month = $Month->thisMonth('timestamp');
799    $next_month = $Month->nextMonth('timestamp');
800
801    $ym = array(
802        'disp_year'  => $year,
803        'disp_month' => $month,
804        'prev_year'  => null,
805        'prev_month' => null,
806        'next_year'  => null,
807        'next_month' => null,
808    );
809    if ($first_datetime && strtotime($first_datetime) < $this_month) {
810        $ym['prev_year'] = date('Y', $prev_month);
811        $ym['prev_month'] = date('n', $prev_month);
812    }
813    if ($next_month < time()) {
814        $ym['next_year'] = date('Y', $next_month);
815        $ym['next_month'] = date('n', $next_month);
816    }
817    $calendar['ym'] = $ym;
818
819    return $calendar;
820}
821*/
822function count_members(){
823        $sql = 'select max(c_member_id) from c_album';
824        $params = array();
825       
826        return db_get_one($sql,$params);
827}
828
829function check_member_id($c_member_id){
830        $sql = 'select c_member_id from c_album where c_member_id = ?';
831        $params = array(intval($c_member_id));
832        $result = db_get_row($sql,$params);
833        if($result['c_member_id'])
834                return true;
835        else
836                return false;
837           
838}
839
840/**
841 * フレンドの最新日記リスト
842 */
843function p_h_album_list_friend_h_album_list_friend4c_member_id($c_member_id, $page_size, $page)
844{
845    $friends = db_friend_c_member_id_list($c_member_id, true);
846    $ids = implode(',', array_map('intval', $friends));
847
848    $hint = db_mysql_hint('USE INDEX (r_datetime_c_member_id, r_datetime)');
849    $sql = 'SELECT * FROM c_album' . $hint .
850            ' WHERE c_member_id IN (' . $ids . ')' .
851            ' AND public_flag <> \'private\'' .
852            ' ORDER BY c_album.r_datetime DESC';
853
854    $lst = db_get_all_page($sql, $page, $page_size);
855
856    foreach ($lst as $key=>$value) {
857        $lst[$key]['count_comments'] = db_album_count_c_album_comment4c_album_id($value['c_album_id']);
858        $lst[$key]['c_member'] = db_common_c_member4c_member_id($value['c_member_id']);
859    }
860
861    $sql = 'SELECT count(*) FROM c_album' .
862           ' WHERE c_member_id IN (' . $ids . ')' .
863           ' AND public_flag <> \'private\'';
864    $total_num = db_get_one($sql, $params);
865
866    if ($total_num != 0) {
867        $total_page_num =  ceil($total_num / $page_size);
868        if ($page >= $total_page_num) {
869            $next = false;
870        } else {
871            $next = true;
872        }
873
874        if ($page <= 1) {
875            $prev = false;
876        } else {
877            $prev = true;
878        }
879    }
880
881    return array($lst, $prev, $next, $total_num);
882}
883
884/**
885 * 未読コメントのある日記の数を数える
886 *
887 * @param int $c_member_id
888 * @return int 未読日記数
889 */
890function p_h_album_count_c_album_not_is_read4c_member_id($c_member_id)
891{
892    $sql = 'SELECT COUNT(*) FROM c_album WHERE c_member_id = ? AND is_checked = 0';
893    $params = array(intval($c_member_id));
894    return db_get_one($sql, $params);
895}
896
897function db_count_c_album_image($c_album_id)
898{
899    $sql = 'SELECT COUNT(*) FROM c_album_image WHERE c_album_id = ?';
900    $params = array(intval($c_album_id));
901    return db_get_one($sql, $params);
902}
903
904/**
905 * 未読コメントのある日記のうちもっとも古い日記IDを返す
906 *
907 * @param int $c_member_id
908 * @return int c_album_id
909 */
910function p_h_album_c_album_first_album_read4c_member_id($c_member_id)
911{
912    $sql = 'SELECT c_album_id FROM c_album WHERE c_member_id = ? AND is_checked = 0 ORDER BY r_datetime';
913    $params = array(intval($c_member_id));
914    return db_get_one($sql, $params);
915}
916
917/**
918 * フレンド最新日記リスト取得
919 * 日記公開範囲を考慮
920 *
921 * @param   int $c_member_id
922 * @param   int $limit
923 * @return  array_of_array  (c_album.*, nickname)
924 */
925function p_h_home_c_album_friend_list4c_member_id($c_member_id, $limit)
926{
927    static $is_recurred = false;  //再帰処理中かどうかの判定フラグ
928
929    if (!$is_recurred) {  //function cacheのために再帰処理を行う
930        $is_recurred = true;
931        $funcargs = func_get_args();
932        return pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_FAST, __FUNCTION__, $funcargs);
933    }
934
935    $is_recurred = false;
936
937    $friends = db_friend_c_member_id_list($c_member_id, true);
938    $ids = implode(',', array_map('intval', $friends));
939
940    $hint = db_mysql_hint('USE INDEX (r_datetime_c_member_id, r_datetime)');
941    $sql = 'SELECT * FROM c_album' . $hint .
942            ' WHERE c_member_id IN (' . $ids . ')' .
943            ' AND public_flag <> \'private\'' .
944            ' ORDER BY c_album.r_datetime DESC';
945
946    $c_album_friend_list = db_get_all_limit($sql, 0, $limit);
947
948    foreach ($c_album_friend_list as $key => $value) {
949        $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
950        $c_album_friend_list[$key]['nickname'] = $c_member['nickname'];
951        $c_album_friend_list[$key]['count_comments'] = db_album_count_c_album_comment4c_album_id($value['c_album_id']);
952    }
953    return $c_album_friend_list;
954}
955
956/**
957 * 日記コメント記入履歴取得
958 *
959 * @param   int $c_member_id
960 * @param   int $limit
961 * @return  array_of_array  (c_album.*, nickname)
962 */
963/*
964function p_h_home_c_album_my_comment_list4c_member_id($c_member_id, $limit)
965{
966    static $is_recurred = false;  //再帰処理中かどうかの判定フラグ
967
968    if (!$is_recurred) {  //function cacheのために再帰処理を行う
969        $is_recurred = true;
970        $funcargs = func_get_args();
971        return pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_FAST, __FUNCTION__, $funcargs);
972    }
973
974    $is_recurred = false;
975
976    $date = date('Y-m-d 00:00:00', strtotime('-15 days'));
977
978    $blocked = db_member_access_block_list4c_member_id_to($c_member_id);
979    $blocked[] = $c_member_id;
980    $except_ids = implode(',', $blocked);
981
982    $sql = 'SELECT c_album_comment.c_album_id' .
983            ' FROM c_album_comment INNER JOIN c_album USING (c_album_id)' .
984            ' WHERE c_album_comment.c_member_id = ?' .
985            ' AND c_album_comment.r_datetime > ?' .
986            ' AND c_album.c_member_id NOT IN (' . $except_ids . ')' .
987            ' AND c_album.public_flag <> \'private\'';
988    $params = array(intval($c_member_id), $date);
989    $c_album_id_list = db_get_col($sql, $params);
990    $c_album_id_list = array_unique($c_album_id_list);
991    if (!$c_album_id_list) {
992        return array();
993    }
994
995    $ids = implode(',', $c_album_id_list);
996    $sql = 'SELECT c_album_id, MAX(r_datetime) as maxdate' .
997           ' FROM c_album_comment' .
998           ' WHERE c_album_id IN (' . $ids . ')' .
999           ' GROUP BY c_album_id' .
1000           ' ORDER BY maxdate DESC';
1001    $list = db_get_assoc_limit($sql, 0, $limit);
1002
1003    $result = array();
1004    foreach ($list as $c_album_id => $r_datetime) {
1005        $item = db_album_get_c_album4id($c_album_id);
1006        if ($item['public_flag'] == 'friend' && !db_friend_is_friend($c_member_id, $item['c_member_id'])) {
1007            continue;
1008        }
1009        $item += db_common_c_member4c_member_id_LIGHT($item['c_member_id']);
1010        $item['r_datetime'] = $r_datetime;
1011        $item['num_comment'] = db_album_count_c_album_comment4c_album_id($c_album_id);
1012        $result[] = $item;
1013    }
1014    return $result;
1015}
1016*/
1017
1018function p_h_album_comment_list_c_album_my_comment_list4c_member_id($c_member_id, $page, $page_size)
1019{
1020    $blocked = db_member_access_block_list4c_member_id_to($c_member_id);
1021    $blocked[] = $c_member_id;
1022    $except_ids = implode(',', $blocked);
1023
1024    $friends = db_friend_c_member_id_list($c_member_id);
1025    $friend_ids = implode(',', $friends);
1026
1027    $sql = 'SELECT d.c_album_id' .
1028            ', d.subject' .
1029            ', d.c_member_id' .
1030            ', MAX(dc.r_datetime) AS r_datetime' .
1031            ', COUNT(DISTINCT dc.c_album_comment_id) AS num_comment' .
1032        ' FROM c_album AS d' .
1033            ' INNER JOIN c_album_comment AS dc USING (c_album_id)' .
1034            ', c_album_comment AS mydc' .
1035        ' WHERE mydc.c_member_id = ?' .
1036            ' AND mydc.c_album_id = d.c_album_id' .
1037            ' AND mydc.c_member_id <> d.c_member_id' .
1038            ' AND d.c_member_id NOT IN (' . $except_ids . ')' .
1039            ' AND (d.public_flag = \'public\' OR (d.public_flag = \'friend\' AND d.c_member_id IN (' . $friend_ids . ')))' .
1040        ' GROUP BY dc.c_album_id' .
1041        ' ORDER BY r_datetime DESC';
1042
1043    $params = array(intval($c_member_id));
1044    $list = db_get_all_page($sql, $page, $page_size, $params);
1045
1046    foreach ($list as $key => $value) {
1047        $list[$key] += db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
1048    }
1049
1050    $sql = 'SELECT COUNT(DISTINCT d.c_album_id)' .
1051        ' FROM c_album AS d' .
1052            ' INNER JOIN c_album_comment AS dc USING (c_album_id)' .
1053            ', c_album_comment AS mydc' .
1054        ' WHERE mydc.c_member_id = ?' .
1055            ' AND mydc.c_album_id = d.c_album_id' .
1056            ' AND mydc.c_member_id <> d.c_member_id' .
1057            ' AND d.c_member_id NOT IN (' . $except_ids . ')' .
1058            ' AND (d.public_flag = \'public\' OR (d.public_flag = \'friend\' AND d.c_member_id IN (' . $friend_ids . ')))';
1059    $total_num = db_get_one($sql, $params);
1060
1061    $is_prev = false;
1062    $is_next = false;
1063    if ($total_num) {
1064        $is_prev = (bool)($page > 1);
1065        $is_next = (bool)($page < ceil($total_num / $page_size));
1066    }
1067    return array($list, $is_prev, $is_next, $total_num);
1068}
1069
1070/**
1071 * あるメンバーの指定された年月日の日記のリストを得る
1072 */
1073function p_fh_album_list_album_list_date4c_member_id($c_member_id, $page_size, $page, $year, $month, $day=0 ,$u = null)
1074{
1075    if ($day) {
1076        $s_date = date('Y-m-d H:i:s', mktime(0, 0, 0, $month, $day, $year));
1077        $e_date = date('Y-m-d H:i:s', mktime(0, 0, 0, $month, $day+1, $year));
1078    } else {
1079        $s_date = date('Y-m-d H:i:s', mktime(0, 0, 0, $month, 1, $year));
1080        $e_date = date('Y-m-d H:i:s', mktime(0, 0, 0, $month+1, 1, $year));
1081    }
1082
1083    $pf_cond = db_album_public_flag_condition($c_member_id, $u);
1084    $where = ' WHERE c_member_id = ? AND c_album.r_datetime >= ? AND c_album.r_datetime < ?';
1085    $sql = 'SELECT * FROM c_album' .
1086            $where .                                //. $pf_cond .
1087            ' ORDER BY r_datetime DESC';
1088    $params = array(intval($c_member_id), $s_date, $e_date);
1089    $list = db_get_all_limit($sql, $page_size * ($page - 1), $page_size, $params);
1090       
1091       
1092       
1093    foreach ($list as $key => $c_album) {
1094        $list[$key]['num_comment'] = db_album_count_c_album_comment4c_album_id($c_album['c_album_id']);
1095    }
1096
1097    $sql = 'SELECT COUNT(*) FROM c_album_image' . $where;
1098    $total_num = db_get_one($sql, $params);
1099
1100    if ($total_num != 0) {
1101        $total_page_num =  ceil($total_num / $page_size);
1102        if ($page >= $total_page_num) {
1103            $next = false;
1104        } else {
1105            $next = true;
1106        }
1107        if ($page <= 1) {
1108            $prev = false;
1109        } else {
1110            $prev = true;
1111        }
1112    }
1113    return array($list , $prev , $next, $total_num);
1114}
1115
1116/**
1117 * 日記ページの「各月の日記」用
1118 *
1119 * 日記を最初に書いた月からスタートしてみる
1120 */
1121function p_fh_album_list_date_list4c_member_id($c_member_id)
1122{
1123    $sql = "SELECT r_datetime FROM c_album" .
1124        " WHERE c_member_id = ?" .
1125        " ORDER BY r_datetime";
1126    $params = array(intval($c_member_id));
1127    if (!$first_datetime = db_get_one($sql, $params)) {
1128        return array();
1129    }
1130
1131    $start_date = getdate(strtotime($first_datetime));
1132    $end_date =  getdate();
1133
1134    $date = array();
1135    $year = $start_date['year'];
1136    $month = $start_date['mon'];
1137    while (1) {
1138        $date[] =  array(
1139            'year' => $year,
1140            'month' => $month,
1141        );
1142
1143        if ($end_date['year'] <= $year
1144            && $end_date['mon'] <= $month) {
1145            break;
1146        }
1147
1148        $month++;
1149        if ($month > 12) {
1150            $month = 1;
1151            $year++;
1152        }
1153    }
1154    return array_reverse($date);
1155}
1156
1157//c_member_id から自分の日記についてるコメントID(複数)を取得
1158function p_fh_album_c_album_comment_id_list4c_member_id($c_member_id)
1159{
1160    $sql = "SELECT cdc.c_album_comment_id FROM c_album as cd,c_album_comment as cdc" .
1161        " WHERE cd.c_member_id = ?".
1162        " AND cd.c_album_id = cdc.c_album_id";
1163    $params = array(intval($c_member_id));
1164    return db_get_col($sql, $params);
1165}
1166
1167/**
1168 * 年月 から日記のある日(複数)を取得
1169 */
1170function p_fh_album_list_calendar_list4c_member_id($year, $month, $c_member_id)
1171{
1172    $sql = "SELECT cdc.c_album_comment_id FROM c_album as cd,c_album_comment as cdc" .
1173        " WHERE cd.c_member_id = ?".
1174        " AND cd.c_album_id = cdc.c_album_id";
1175    $params = array(intval($c_member_id));
1176    return db_get_col($sql, $params);
1177}
1178
1179/**
1180 * 新着日記検索
1181 * 検索ポイントはタイトル、本文
1182 * 空白(全角半角問わない)でand検索可
1183 */
1184function p_h_album_list_all_search_c_album4c_album($keyword, $page_size, $page)
1185{
1186    $params = array();
1187
1188    $select = 'SELECT *';
1189    $from = ' FROM c_album';
1190
1191    //自分の日記だけを対象にする事も出来る
1192//    if ($c_member_id) {
1193//        $where = ' WHERE c_member_id = ?';
1194//        $params[] = intval($c_member_id);
1195//    } else {
1196        $where = " WHERE subject LIKE ? OR description LIKE ?";
1197//    }
1198
1199    //and検索を実装
1200    //subject,body を検索
1201    if ($keyword) {
1202        //将全角空白转换成半角空白
1203        $keyword = str_replace(' ', ' ', $keyword);
1204                //把字符串转化为数组
1205        $keyword_list = explode(' ', $keyword);
1206        foreach ($keyword_list as $word) {
1207            $word = check_search_word($word);
1208
1209//            $where .= ' AND (subject LIKE ? OR description LIKE ?)';
1210            $params[] = '%'.$word.'%';
1211            $params[] = '%'.$word.'%';
1212        }
1213    }
1214    $order = " ORDER BY r_datetime DESC";
1215
1216    $sql = $select . $from . $where . $order;
1217    $sql1 = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
1218   
1219    $list = db_get_all_page($sql, $page, $page_size, $params);
1220    foreach ($list as $key => $value) {
1221        $list[$key]['c_member'] = db_common_c_member_with_profile($value['c_member_id']);
1222        $list[$key]['num_comment'] = db_album_count_c_album_comment4c_album_id($value['c_album_id']);
1223        $list[$key]['category'] = db_album_category_list4c_album_id($value['c_album_id']);
1224        $list[$key]['nickname'] = db_get_one($sql1,$value['c_member_id']);
1225    }
1226
1227    $sql = 'SELECT COUNT(*)' . $from . $where;
1228    $total_num = db_get_one($sql, $params);
1229
1230    if ($total_num != 0) {
1231        $total_page_num =  ceil($total_num / $page_size);
1232        if ($page >= $total_page_num) {
1233            $next = false;
1234        } else {
1235            $next = true;
1236        }
1237        if ($page <= 1) {
1238            $prev = false;
1239        } else {
1240            $prev = true;
1241        }
1242    }
1243    return array($list , $prev , $next, $total_num);
1244}
1245
1246/**
1247 * 指定された年月に日記を書いている日のリストを返す
1248 */
1249function p_h_album_is_album_written_list4date($year, $month, $c_member_id, $u = null)
1250{
1251    include_once 'Date/Calc.php';
1252
1253    $pf_cond = db_album_public_flag_condition($c_member_id, $u);
1254    $sql = 'SELECT DISTINCT DAYOFMONTH(r_datetime) FROM c_album' .
1255           ' WHERE c_member_id = ? AND r_datetime >= ? AND r_datetime < ?' . $pf_cond;
1256
1257    $date_format = '%Y-%m-%d 00:00:00';
1258    $thismonth = Date_Calc::beginOfMonth($month, $year, $date_format);
1259    $nextmonth = Date_Calc::beginOfNextMonth(0, $month, $year, $date_format);
1260
1261    $params = array(intval($c_member_id), $thismonth, $nextmonth);
1262
1263    return db_get_col($sql, $params);
1264}
1265
1266/**
1267 * 日記コメント情報をIDから取得
1268 *
1269 * @param   int $c_album_comment_id
1270 * @return array
1271 *              c_album_comemnt.*
1272 *              c_album.c_member_id AS c_member_id_author
1273 */
1274function _do_c_album_comment4c_album_comment_id($c_album_comment_id)
1275{
1276    $sql = "SELECT dc.*, d.c_member_id AS c_member_id_author";
1277    $sql .= " FROM c_album_comment AS dc, c_album AS d";
1278    $sql .= " WHERE dc.c_album_comment_id = ?";
1279    $sql .= " AND dc.c_album_id = d.c_album_id";
1280    $params = array(intval($c_album_comment_id));
1281    return db_get_row($sql, $params);
1282}
1283
1284/**
1285 * ターゲットメンバの最新日記のリストを返す
1286 */
1287function k_p_f_home_c_album_list4c_member_id($c_member_id, $limit)
1288{
1289    //日記リスト
1290    $sql = "SELECT c_album_id, r_date, subject ,image_filename_1";
1291    $sql .= " FROM c_album";
1292    $sql .= " WHERE c_member_id = ?";
1293    $sql .= " ORDER BY r_date DESC";
1294    $params = array(intval($c_member_id));
1295    $c_album_list = db_get_all_limit($sql, 0, $limit, $params);
1296
1297    //コメント数
1298    foreach ($c_album_list as $key => $value) {
1299        $c_album_id = $value['c_album_id'];
1300
1301        $sql = "SELECT COUNT(*) ";
1302        $sql .= "FROM c_album_comment ";
1303        $sql .= "WHERE c_album_id = ?";
1304        $params = array(intval($c_album_id));
1305        $c_album_list[$key]['count_comment'] = db_get_one($sql, $params);
1306    }
1307    return $c_album_list;
1308}
1309
1310/**
1311 * 最新日記リストを取得。
1312 * 取得範囲を指定できる。
1313 */
1314function k_p_fh_album_list_c_album_list4c_member_id($c_member_id, $page_size, $page)
1315{
1316    $sql = 'SELECT * FROM c_album WHERE c_member_id = ? ORDER BY r_datetime DESC';
1317    $params = array(intval($c_member_id));
1318    $c_album_list = db_get_all_page($sql, $page, $page_size, $params);
1319
1320    foreach ($c_album_list as $key => $value) {
1321        $c_album_list[$key]['count_comment'] =
1322            db_album_count_c_album_comment4c_album_id($value['c_album_id']);
1323    }
1324
1325    $sql = 'SELECT COUNT(*) FROM c_album WHERE c_member_id = ?';
1326    $total_num = db_get_one($sql, $params);
1327
1328    if ($total_num != 0) {
1329        $total_page_num =  ceil($total_num / $page_size);
1330        if ($page >= $total_page_num) {
1331            $next = false;
1332        } else {
1333            $next = true;
1334        }
1335        if ($page <= 1) {
1336            $prev = false;
1337        } else {
1338            $prev = true;
1339        }
1340    }
1341    return array($c_album_list , $prev , $next);
1342}
1343
1344/**
1345 * 日記へのコメントリストを取得
1346 */
1347function k_p_fh_album_c_album_comment_list4c_album_id($c_album_id, $page_size, $page)
1348{
1349    $sql = 'SELECT * FROM c_album_comment WHERE c_album_id = ? ORDER BY r_datetime DESC';
1350    $params = array(intval($c_album_id));
1351    $c_album_comment_list = db_get_all_page($sql, $page, $page_size, $params);
1352
1353    foreach ($c_album_comment_list as $key => $value) {
1354        $c_member = db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
1355        $c_album_comment_list[$key]['nickname'] = $c_member['nickname'];
1356    }
1357
1358    $sql = "SELECT COUNT(*) FROM c_album_comment WHERE c_album_id = ?";
1359    $params = array(intval($c_album_id));
1360    $total_num = db_get_one($sql, $params);
1361
1362    if ($total_num > 0) {
1363        $total_page_num =  ceil($total_num / $page_size);
1364        if ($page >= $total_page_num) {
1365            $next = false;
1366        } else {
1367            $next = true;
1368        }
1369        if ($page <= 1) {
1370            $prev = false;
1371        } else {
1372            $prev = true;
1373        }
1374    }
1375    return array($c_album_comment_list , $prev , $next, $total_num, $total_page_num);
1376}
1377
1378/**
1379 * 日記IDからその日記を書いたメンバIDとニックネームと日記公開範囲を得る
1380 */
1381function k_p_fh_album_c_member4c_album_id($c_album_id)
1382{
1383    $sql = "SELECT cm.c_member_id, cm.nickname,cm. public_flag_album ";
1384    $sql .= " FROM c_member AS cm, c_album AS cd ";
1385    $sql .= " WHERE cd.c_album_id = ?";
1386    $sql .= " AND cm.c_member_id=cd.c_member_id";
1387    $params = array(intval($c_album_id));
1388    return db_get_row($sql, $params);
1389}
1390
1391/**
1392 * フレンドの最新日記リスト
1393 */
1394function k_p_h_album_list_friend_h_album_list_friend4c_member_id($c_member_id, $page_size, $page)
1395{
1396    $from = "c_album, c_friend";
1397    $where = "c_friend.c_member_id_from = ?" .
1398            " AND c_album.c_member_id = c_friend.c_member_id_to";
1399
1400    $sql = "SELECT c_album.* FROM {$from} WHERE {$where}" .
1401            " ORDER BY c_album.r_datetime DESC";
1402    $params = array(intval($c_member_id));
1403    $lst = db_get_all_page($sql, $page, $page_size, $params);
1404
1405    foreach ($lst as $key=>$value) {
1406        $lst[$key]['count_comments'] = db_album_count_c_album_comment4c_album_id($value['c_album_id']);
1407        $lst[$key]['c_member'] = db_common_c_member4c_member_id($value['c_member_id']);
1408    }
1409
1410    $sql = "SELECT count(*) FROM {$from} WHERE {$where}";
1411    $total_num = db_get_one($sql, $params);
1412
1413    if ($total_num != 0) {
1414        $total_page_num =  ceil($total_num / $page_size);
1415        if ($page >= $total_page_num) {
1416            $next = false;
1417        } else {
1418            $next = true;
1419        }
1420
1421        if ($page <= 1) {
1422            $prev = false;
1423        } else {
1424            $prev = true;
1425        }
1426    }
1427
1428    return array($lst, $prev, $next, $total_num);
1429}
1430
1431//--- album
1432
1433function check_default_album_exist($c_member_id)
1434{
1435        $sql = 'SELECT default_flag FROM c_album_default_flag WHERE c_member_id = ?';
1436        $params = array(intval($c_member_id));
1437        $reault = db_get_one($sql,$params);
1438//      print_r ($reault);
1439
1440        if(empty($reault)){
1441                $sql1 = 'INSERT INTO c_album_default_flag VALUES('.$c_member_id.','.intval(1).')';
1442                db_query($sql1,array());
1443//              echo $sql1;
1444                return 0;
1445        }else{
1446                return 1;
1447        }
1448       
1449}
1450
1451
1452/**
1453 * アルバムを追加
1454 */
1455//function db_album_insert_c_album($c_member_id,$c_commu_id, $subject, $description,$is_shown, $public_flag, $album_pwd)
1456function db_album_insert_c_album($c_member_id, $subject, $description,$public_flag)
1457{
1458//    function cacheの削除
1459//    pne_cache_drop('db_album_get_c_album_list4c_member_id', $c_member_id, 5);
1460
1461    $data = array(
1462        'c_member_id' => intval($c_member_id),
1463        //'c_commu_id' => intval($c_commu_id),
1464        'subject' => $subject,
1465        'description' => $description,
1466        //'is_shown' => $is_shown,
1467        'public_flag' => $public_flag,
1468        'r_datetime' => db_now(),
1469        'r_date' => db_now(),
1470        //'is_checked' => 1,
1471        //'default_flag' => 1,
1472    );
1473   
1474    /*
1475    if($album_pwd)
1476    {
1477        $data['album_pwd'] = $album_pwd;
1478    }
1479    */
1480   
1481    return db_insert('c_album', $data);
1482}
1483
1484
1485function db_album_update_c_album($c_album_id,$subject,$description,$public_flag,$image_filename)
1486{
1487        $data = array(
1488        'subject' => $subject,
1489        'description' => $description,
1490        'public_flag' => $public_flag,
1491    );
1492    if ($image_filename) $data['album_cover_image'] = $image_filename;
1493
1494    $where = array(
1495        'c_album_id' => intval($c_album_id),
1496    );
1497    return db_update('c_album', $data, $where);
1498       
1499}
1500
1501function db_album_update_c_album_image($c_album_image_id,$image_filename,$image_description)
1502{
1503        $data = array(
1504        'image_description' => $image_description,
1505//        'r_datetime' => db_now(),
1506    );
1507    if ($image_filename) $data['image_filename'] = $image_filename;
1508
1509    $where = array(
1510        'c_album_image_id' => intval($c_album_image_id),
1511    );
1512   
1513    return db_update('c_album_image', $data, $where);
1514       
1515}
1516
1517/**
1518 * アルバムの表紙画像の名前を更新
1519 */
1520function db_album_update_c_album_album_cover_image($c_album_id,$album_cover_image)
1521{
1522        $data = array(
1523        'album_cover_image' => $album_cover_image,
1524    );
1525
1526    $where = array(
1527        'c_album_id' => intval($c_album_id),
1528    );
1529    return db_update('c_album', $data, $where);
1530       
1531}
1532
1533/**
1534 * 日記を編集
1535 */
1536function db_album_insert_c_album_image($c_album_image_id,$image_filename_1 = '',$image_description)
1537{
1538    //function cacheの削除
1539//    $c_album = db_album_get_c_album4id($c_album_id);
1540//    pne_cache_drop('db_album_get_c_album_list4c_member_id', $c_album['c_member_id'], 5);
1541
1542    $data = array(
1543                'c_album_image_id'=>$c_album_image_id,
1544                'image_description'=>$image_description,
1545                'r_datetime' => db_now(),
1546    );
1547    if ($image_filename_1) $data['image_filename'] = $image_filename_1;
1548
1549    $where = array(
1550        'c_album_image_id' => intval($c_album_image_id),
1551       
1552    );
1553    return db_insert('c_album_image', $data, $where);
1554}
1555
1556
1557
1558function db_insert_c_album_image($c_album_id,$image_filename_1 = '',$image_description)
1559{
1560    //function cacheの削除
1561//    $c_album = db_album_get_c_album4id($c_album_id);
1562//    pne_cache_drop('db_album_get_c_album_list4c_member_id', $c_album['c_member_id'], 5);
1563
1564    $data = array(
1565                'c_album_id'=>$c_album_id,
1566                'image_description'=>$image_description,
1567                'r_datetime' => db_now(),
1568    );
1569    if ($image_filename_1) $data['image_filename'] = $image_filename_1;
1570       
1571    return db_insert('c_album_image', $data);
1572}
1573
1574/**
1575 * アルバムの削除
1576 * 画像も削除
1577 * @param int $c_album_id
1578 */
1579function db_album_delete_c_album($c_album_id)
1580{
1581    //function cacheの削除
1582        $c_album_image = db_album_get_c_album4id($c_album_id);
1583    pne_cache_drop('db_album_get_c_album_list4c_member_id', $c_album_image['c_member_id'], 5);
1584
1585   // アルバムに登録された画像
1586        foreach($c_album_image as $key=>$value){
1587                //image_data_delete($c_album[$key]['image_filename']);
1588                db_album_image_data_delete($c_album_image[$key]['image_filename']);
1589        }
1590
1591        // アルバムの表紙
1592        $c_album = db_album_get_c_album4c_album_id($c_album_id);
1593        if($c_album['album_cover_image']){
1594                db_album_image_data_delete($c_album['album_cover_image']);
1595        }
1596
1597    // コメント
1598    /*
1599    $sql = 'SELECT image_filename_1, image_filename_2, image_filename_3 FROM c_album_comment WHERE c_album_id =?';
1600    $params = array(intval($c_album_id));
1601    $comment_images = db_get_all($sql, $params);
1602    */
1603
1604    //カテゴリ
1605    /*
1606    db_album_category_delete_c_album_category_album($c_album_id);
1607
1608    foreach ($comment_images as $value) {
1609        image_data_delete($value['image_filename_1']);
1610        image_data_delete($value['image_filename_2']);
1611        image_data_delete($value['image_filename_3']);
1612    }
1613    */
1614    $params = array(intval($c_album_id));
1615   
1616    //アルバムと画像の関連
1617    $sql = 'DELETE FROM c_album_image WHERE c_album_id = ?';
1618    db_query($sql, $params);
1619
1620    // アルバム
1621    $sql = 'DELETE FROM c_album WHERE c_album_id = ?';
1622    db_query($sql, $params);
1623
1624        return;
1625
1626    /*
1627    $sql = 'DELETE FROM c_album_comment WHERE c_album_id = ?';
1628    db_query($sql, $params);
1629    */
1630}
1631
1632/**
1633 * 指定した番号の日記画像を削除
1634 */
1635function db_album_delete_c_album_image($c_album_image_id)
1636{
1637    $sql = 'DELETE FROM c_album_image WHERE c_album_image_id = ?';
1638    $params = array(intval($c_album_image_id));
1639    return db_query($sql, $params);
1640//    $data = array(
1641//        'image_filename' => '',
1642//    );
1643//    $where = 'c_album_image_id = '.intval($c_album_image_id);
1644//    return db_update('c_album_image', $data, $where);
1645}
1646
1647/**
1648 * 日記に画像を追加する
1649 */
1650function db_album_update_c_album_image_filename($c_album_id, $image_filename, $image_num)
1651{
1652    $data = array(
1653        'image_filename_'.intval($image_num) => $image_filename,
1654    );
1655    $where = 'c_album_id = '.intval($c_album_id);
1656    return db_update('c_album', $data, $where);
1657}
1658
1659/**
1660 * 日記の未読/既読を変更
1661 * c_album.is_checkedを更新
1662 */
1663//kazuki diaryを参考にしたのでアルバムに未読フラグを追加したと思われる
1664/*
1665function db_album_update_c_album_is_checked($c_album_id, $value)
1666{
1667    $data = array(
1668        'is_checked' => (bool)$value,
1669    );
1670    $where = 'c_album_id = '.intval($c_album_id);
1671    return db_update('c_album', $data, $where);
1672}
1673*/
1674//--- album_comment
1675
1676/**
1677 * 日記コメント追加
1678 *
1679 * @param  int    $c_member_id
1680 * @param  int    $c_album_id
1681 * @param  string $body
1682 * @return int    insert_id
1683 */
1684function db_album_insert_c_album_comment($c_member_id, $c_album_id, $body)
1685{
1686    //function cache削除
1687    pne_cache_drop('p_h_home_c_album_my_comment_list4c_member_id', $c_member_id, 5);
1688
1689    $data = array(
1690        'c_member_id' => intval($c_member_id),
1691        'c_album_id' => intval($c_album_id),
1692        'body' => $body,
1693        'r_datetime' => db_now(),
1694    );
1695    return db_insert('c_album_comment', $data);
1696}
1697
1698/**
1699 * 日記コメント用画像追加
1700 */
1701function db_album_insert_c_album_comment_images($c_album_comment_id, $image_filename_1 = '', $image_filename_2 = '', $image_filename_3 = '')
1702{
1703    $data = array();
1704    if ($image_filename_1) $data['image_filename_1'] = $image_filename_1;
1705    if ($image_filename_2) $data['image_filename_2'] = $image_filename_2;
1706    if ($image_filename_3) $data['image_filename_3'] = $image_filename_3;
1707
1708    $where = array(
1709        'c_album_comment_id' => intval($c_album_comment_id),
1710    );
1711    return db_update('c_album_comment', $data, $where);
1712}
1713
1714/**
1715 * 日記コメント削除
1716 *
1717 * @param   int $c_album_comment_id
1718 * @param   int $u  : 削除しようとしている人の c_member_id
1719 */
1720function db_album_delete_c_album_comment($c_album_comment_id, $u)
1721{
1722    $dc = _do_c_album_comment4c_album_comment_id($c_album_comment_id);
1723    if ($dc['c_member_id'] != $u && $dc['c_member_id_author'] != $u) {
1724        return false;
1725    }
1726
1727    image_data_delete($dc['image_filename_1']);
1728    image_data_delete($dc['image_filename_2']);
1729    image_data_delete($dc['image_filename_3']);
1730
1731    $sql = 'DELETE FROM c_album_comment WHERE c_album_comment_id = ?';
1732    $params = array(intval($c_album_comment_id));
1733    return db_query($sql, $params);
1734}
1735
1736// 日記公開範囲の一括設定をする
1737function db_album_update_public_flag_album_all($c_member_id, $public_flag)
1738{
1739    $data = array(
1740        'public_flag' => $public_flag,
1741    );
1742
1743    $where = array(
1744        'c_member_id' => intval($c_member_id),
1745    );
1746    return db_update('c_album', $data, $where);
1747}
1748
1749function db_member_check_album_exist($c_member_id)
1750{
1751        $sql = 'SELECT c_album_id FROM c_album WHERE c_member_id = ?';
1752        $params = array(intval($c_member_id));
1753        return db_get_row($sql, $params);
1754}
1755
1756function db_update_c_album_r_datetime($c_album_id)
1757{
1758        $data = array(
1759                        'r_datetime' => db_now()
1760        );
1761       
1762        $where = array('c_album_id' => intval($c_album_id));
1763        return db_update('c_album',$data,$where);
1764}
1765
1766function monitor_album_list($keyword,$page_size,$page)
1767{
1768
1769    $page = intval($page);
1770    $page_size = intval($page_size);
1771   
1772    $where = " where 1 ";
1773
1774    if ($keyword) {
1775        //全角空白を半角に統一
1776        $keyword = str_replace(" ", " ", $keyword);
1777        $keyword_list = explode(" ", $keyword);
1778           
1779        for($i=0;$i < count($keyword_list);$i++) {
1780            $keyword = check_search_word( $keyword_list[$i] );
1781               
1782            $where .= " and (c_album.subject like ? ";
1783            $where .= " or c_album.description like ? ) ";
1784            $params[]="%$keyword%";
1785            $params[]="%$keyword%";
1786        }
1787    }
1788   
1789    $select = " select c_album.*";
1790    $from = " FROM c_album";
1791    $order = " ORDER BY r_datetime desc";
1792   
1793    $sql = $select . $from . $where . $order;
1794    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1795    foreach ($list as $key => $value) {
1796        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
1797        $list[$key]['count_comments'] = db_album_count_c_album_comment4c_album_id($value['c_album_id']); 
1798    }
1799   
1800    $sql = 
1801        "SELECT count(*) "
1802        . $from
1803        . $where ;
1804    $total_num = db_get_one($sql,$params);
1805   
1806    $total_page_num =  ceil($total_num / $page_size);
1807    $next = ($page < $total_page_num);
1808    $prev = ($page > 1);
1809   
1810    return array($list , $prev , $next, $total_num,$total_page_num); 
1811}
1812
1813function monitor_album_comment_list($keyword,$page_size,$page)
1814{
1815
1816    $page = intval($page);
1817    $page_size = intval($page_size);
1818   
1819    $where = " where 1 ";
1820
1821    if ($keyword) {
1822        //全角空白を半角に統一
1823        $keyword = str_replace(" ", " ", $keyword);
1824        $keyword_list = explode(" ", $keyword);
1825           
1826        for($i=0;$i < count($keyword_list);$i++) {
1827            $keyword = check_search_word( $keyword_list[$i] );
1828               
1829            $where .= " and (c_album_comment.body like ? ) ";
1830            $params[]="%$keyword%";
1831        }
1832    }
1833   
1834    $select = " select c_album_comment.*,c_album.subject";
1835    $from = " FROM c_album_comment"
1836        ." LEFT JOIN c_album ON c_album.c_album_id = c_album_comment.c_album_id ";
1837    $order = " ORDER BY r_datetime desc";
1838   
1839    $sql = $select . $from . $where . $order;
1840    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1841    foreach ($list as $key => $value) {
1842        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
1843        $list[$key]['count_comments'] = db_album_count_c_album_comment4c_album_id($value['c_album_id']); 
1844    }
1845   
1846    $sql = 
1847        "SELECT count(*) "
1848        . $from
1849        . $where ;
1850    $total_num = db_get_one($sql,$params);
1851   
1852    $total_page_num =  ceil($total_num / $page_size);
1853    $next = ($page < $total_page_num);
1854    $prev = ($page > 1);
1855   
1856    return array($list , $prev , $next, $total_num,$total_page_num); 
1857}
1858
1859/**
1860 * アルバム用の画像を登録
1861 */
1862function image_insert_c_image_album4tmp($prefix, $tmpfile)
1863{
1864    if (!$tmpfile || preg_match('/[^\.\w]/', $tmpfile)) return false;
1865
1866    $path_parts = pathinfo($tmpfile);
1867    $ext = $path_parts['extension'];
1868    $ext = strtolower($ext);
1869
1870    $allowed_ext = array('jpg', 'jpeg', 'gif', 'png');
1871    if (!in_array($ext, $allowed_ext)) {
1872        return false;
1873    }
1874
1875    $filename = sprintf('%s_%s.%s', $prefix, time(), $ext);
1876
1877    if (!OPENPNE_TMP_IMAGE_DB) {
1878        $img_tmp_dir_path = OPENPNE_VAR_DIR . '/tmp/';
1879        $filepath = $img_tmp_dir_path . basename($tmpfile);
1880
1881        if (db_image_insert_c_image_album2($filename, $filepath)) {
1882            return $filename;
1883        }
1884    } else {
1885       
1886        //TODO c_tmp_image4filename()内容チェック
1887        $c_tmp_image = c_tmp_image4filename($tmpfile);
1888
1889        $params = array(
1890            'filename' => $filename,
1891            'bin' => $c_tmp_image['bin'],
1892            'r_datetime' => db_now(),
1893            'type' => '',
1894        );
1895                //kazuki インスタンス作成する必要あり?
1896        //$db =& db_get_instance('image');
1897       
1898        if (db_insert("c_image_album", $params)) {
1899            return $filename;
1900        }
1901    }
1902    return false;
1903}
1904
1905/*
1906function _do_insert_c_image_album($filename, $filepath)
1907{
1908    return db_image_insert_c_image_album2($filename, $filepath);
1909}
1910*/
1911
1912function db_image_insert_c_image_album2($filename, $filepath)
1913{
1914    if (!is_readable($filepath)) return false;
1915
1916    $fp = fopen($filepath, 'rb');
1917    $image_data = fread($fp, filesize($filepath));
1918    fclose($fp);
1919
1920    // 画像かどうかのチェック
1921    if (!@imagecreatefromstring($image_data)) return false;
1922
1923    //TODO:typeフィールドを使う
1924    return db_image_insert_c_image_album($filename, $image_data);
1925}
1926
1927function db_image_insert_c_image_album($filename, $bin, $type = '')
1928{
1929    $db =& db_get_instance('image');
1930
1931    $data = array(
1932        'filename'   => $filename,
1933        'bin'        => base64_encode($bin),
1934        'type'       => $type,
1935        'r_datetime' => db_now(),
1936    );
1937    return $db->insert('c_image_album', $data, 'c_image_id');
1938}
1939
1940function db_image_c_album_image_list($page, $page_size, &$pager)
1941{
1942    $db =& db_get_instance('image');
1943
1944    $sql = 'SELECT c_image_id FROM c_image_album ORDER BY c_image_id DESC';
1945    $id_list = db_get_col_page($sql, $page, $page_size);
1946
1947    $c_image_list = array();
1948    foreach ($id_list as $c_image_id) {
1949        $sql = 'SELECT c_image_id, filename, r_datetime FROM c_image_album WHERE c_image_id = ?';
1950        $params = array(intval($c_image_id));
1951        $c_image_list[] = $db->get_row($sql, $params);
1952    }
1953
1954    $sql = 'SELECT COUNT(*) FROM c_image_album';
1955    $total_num = $db->get_one($sql);
1956
1957    $pager = admin_make_pager($page, $page_size, $total_num);
1958    return $c_image_list;
1959}
1960
1961function db_image_c_album_image4c_image_id($c_image_id)
1962{
1963    $db =& db_get_instance('image');
1964
1965    $sql = 'SELECT * FROM c_image_album WHERE c_image_id = ?';
1966    $params = array(intval($c_image_id));
1967    return $db->get_row($sql, $params);
1968}
1969
1970function album_image_data_delete($image_filename)
1971{
1972    return db_album_image_data_delete($image_filename);
1973}
1974
1975function db_album_image_data_delete($image_filename)
1976{
1977    if (!$image_filename) return false;
1978
1979    db_album_image_delete_c_image($image_filename);
1980
1981    // cacheの削除
1982    image_cache_delete($image_filename);
1983}
1984
1985
1986
1987function db_album_image_delete_c_image($filename)
1988{
1989    $db =& db_get_instance('image');
1990
1991    $sql = 'DELETE FROM c_image_album WHERE filename = ?';
1992    $params = array($filename);
1993    return $db->query($sql, $params);
1994}
1995
1996function db_admin_delete_c_album_image_link4image_filename($image_filename)
1997{
1998    // c_banner (削除)
1999    $sql = 'DELETE FROM c_banner WHERE image_filename = ?';
2000    $params = array($image_filename);
2001    db_query($sql, $params);
2002
2003    $tbl = 'c_album_image';
2004    _db_admin_empty_image_filename($tbl, $image_filename);
2005   
2006
2007    // c_diary_comment
2008    $tbl = 'c_album_comment';
2009    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_1');
2010    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_2');
2011    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_3');
2012
2013}
2014
2015function db_image_is_c_album_image4filename($filename)
2016{
2017    if (!$filename) return false;
2018
2019    $db =& db_get_instance('image');
2020
2021    $sql = 'SELECT c_image_id FROM c_image_album WHERE filename = ?';
2022    $params = array($filename);
2023    return (bool)$db->get_one($sql, $params);
2024}
2025
2026function admin_insert_c_image_album($upfile_obj, $filename)
2027{
2028    if ($upfile_obj &&
2029        is_uploaded_file($upfile_obj['tmp_name']) &&
2030        db_image_insert_c_image_album2($filename, $upfile_obj['tmp_name']) > 0)
2031    {
2032        return $filename;
2033    }
2034
2035    return false;
2036}
2037
2038//get open_album_list for login page
2039function db_album_get_album_list()
2040{
2041        $sql = "SELECT c_album_id,subject,album_cover_image FROM c_album WHERE public_flag = 'public' order by r_datetime desc";
2042        $params = array();
2043        return db_get_all($sql,$params);
2044}
2045
2046/**get community list to be selected in h_album_add
2047 *
2048 * @author Napster
2049 * @param string $sql
2050 * @param array $params
2051 * @return array contains c_commu_id & name
2052 *
2053 */ 
2054function db_album_get_commu_list4c_member_id($c_member_id)
2055{
2056        $sql = "SELECT c_commu.c_commu_id,c_commu.name " .
2057                   "FROM c_commu,c_commu_member " .
2058                   "WHERE c_commu_member.c_member_id = ? AND c_commu_member.c_commu_id = c_commu.c_commu_id";
2059        $params = array(intval($c_member_id));
2060        return db_get_all($sql,$params);
2061}
2062
2063function db_get_commu_name4c_commu_id($taget_c_commu_id)
2064{
2065        $sql = "SELECT name FROM c_commu WHERE c_commu_id = ?";
2066        $params = array(intval($taget_c_commu_id));
2067        return db_get_one($sql,$params);
2068}
2069
2070function db_o_album_category_list()
2071{
2072        $sql = "SELECT c.c_album_id,c.album_cover_image,ch.nickname,ch.c_member_id FROM c_album c,c_member ch WHERE ch.c_member_id =c.c_member_id and public_flag = 'public' order by r_datetime desc limit 4";
2073
2074        return db_get_all($sql);
2075}
2076function db_o_album_content_list($c_ablum_id)
2077{
2078        $sql = "SELECT image_filename,c_album_image_id FROM c_album_image WHERE c_album_id = ? limit 3";
2079        $params = array(intval($c_ablum_id));
2080        return db_get_all($sql,$params);
2081}
2082
2083function db_o_album_point($c_ablum_id)
2084{
2085        $sql = "SELECT point FROM c_album WHERE c_album_id = ? ";
2086        $params = array(intval($c_ablum_id));
2087        return db_get_one($sql,$params);
2088}
2089
2090function db_album_insert_c_album_point($c_member_id,$target_c_album_id)
2091{
2092    $data = array(
2093   
2094        'c_member_id' => $c_member_id,
2095        'c_album_id' => $target_c_album_id,
2096         'release_date' => db_now(),
2097    );
2098
2099   
2100
2101    return db_insert('c_album_rank_pre', $data);
2102}
2103
2104function db_o_album_point_list()
2105{
2106        $sql = "SELECT ch.c_member_id,c.subject,c.c_album_id,c.album_cover_image,c.r_datetime,ch.nickname,count(chc.c_album_rank_pre_id) as point_num " .
2107                        "FROM c_album c,c_member ch,c_album_rank_pre chc " .
2108                        "WHERE c.c_member_id=ch.c_member_id and c.c_album_id=chc.c_album_id " .
2109                        "group by chc.c_album_id " .
2110                        "order by point_num desc limit 5";
2111
2112        return db_get_all($sql);
2113}
2114
2115/**
2116 * アルバムの情報を更新
2117 */
2118function db_album_update_c_album_cover($c_album_id,$subject,$description,$album_cover_image,$public_flag)
2119{
2120        $data = array(
2121                'subject' => $subject,
2122        'description' => $description,
2123        'public_flag' => $public_flag,
2124    );
2125    if ($album_cover_image) $data['album_cover_image'] = $album_cover_image;
2126
2127    $where = array(
2128        'c_album_id' => intval($c_album_id),
2129    );
2130
2131    return db_update('c_album', $data, $where);
2132}
2133
2134?>
Note: See TracBrowser for help on using the repository browser.