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

source: OpenPNE/branches/stable-2.10.x/webapp/modules/admin/lib/db_admin.php @ 6903

Last change on this file since 6903 was 6903, checked in by ebihara, 13 years ago

#2245:メッセージに関連づいた画像を削除した場合、メッセージと画像の関連付けも削除するようにした

File size: 85.2 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 */
10function db_admin_c_member_list($page, $page_size, &$pager)
11{
12    $sql = 'SELECT c_member_id FROM c_member ORDER BY c_member_id';
13    $ids = db_get_col_page($sql, $page, $page_size);
14
15    $c_member_list = array();
16    foreach ($ids as $id) {
17        $c_member_list[] = db_member_c_member4c_member_id($id, true, true, 'private');
18    }
19
20    $sql = 'SELECT COUNT(*) FROM c_member';
21    $total_num = db_get_one($sql);
22    $pager = admin_make_pager($page, $page_size, $total_num);
23
24    return $c_member_list;
25}
26
27function db_admin_c_member4mail_address($mail_address)
28{
29    $sql = 'SELECT c_member_id FROM c_member_secure' .
30            ' WHERE pc_address = ? OR ktai_address = ? OR regist_address = ?';
31    $enc_address = t_encrypt($mail_address);
32    $params = array($enc_address, $enc_address, $enc_address);
33    $list = db_get_col($sql, $params);
34
35    $c_member_list = array();
36    foreach ($list as $c_member_id) {
37        $c_member_list[] = db_member_c_member4c_member_id($c_member_id, true, true, 'private');
38    }
39    return $c_member_list;
40}
41
42function db_admin_c_siteadmin($target)
43{
44    $sql = 'SELECT * FROM c_siteadmin WHERE target = ?';
45    $params = array($target);
46    return db_get_row($sql, $params);
47}
48
49function db_admin_insert_c_siteadmin($target, $body)
50{
51    $data = array(
52        'target' => $target,
53        'body' => $body,
54        'r_date' => db_now(),
55    );
56    return db_insert('c_siteadmin', $data);
57}
58
59function db_admin_update_c_siteadmin($target, $body)
60{
61    $data = array(
62        'body' => $body,
63        'r_date' => db_now(),
64    );
65    $where = array('target' => $target);
66    return db_update('c_siteadmin', $data, $where);
67}
68
69function db_admin_delete_c_profile_option($c_profile_option_id)
70{
71    //function cache削除
72    pne_cache_drop('db_member_c_profile_list');
73
74    if (!$c_profile_option_id) {
75        return false;
76    }
77
78    $sql = 'DELETE FROM c_member_profile WHERE c_profile_option_id = ?';
79    $params = array(intval($c_profile_option_id));
80    db_query($sql, $params);
81
82    $sql = 'DELETE FROM c_profile_option WHERE c_profile_option_id = ?';
83    db_query($sql, $params);
84
85    return true;
86}
87
88function db_admin_insert_c_profile_option($c_profile_id, $value, $sort_order)
89{
90    //function cache削除
91    pne_cache_drop('db_member_c_profile_list');
92
93    $data = array(
94        'c_profile_id' => intval($c_profile_id),
95        'value' => $value,
96        'sort_order' => intval($sort_order),
97    );
98    return db_insert('c_profile_option', $data);
99}
100
101function db_admin_update_c_profile_option($c_profile_option_id, $value, $sort_order)
102{
103    //function cache削除
104    pne_cache_drop('db_member_c_profile_list');
105
106    $data = array('value' => $value);
107    $where = array('c_profile_option_id' => intval($c_profile_option_id));
108    db_update('c_member_profile', $data, $where);
109
110    $data = array(
111        'value' => $value,
112        'sort_order' => intval($sort_order),
113    );
114    db_update('c_profile_option', $data, $where);
115}
116
117function db_admin_insert_c_banner($a_href, $type, $nickname)
118{
119    $data = array(
120        'a_href' => $a_href,
121        'type' => $type,
122        'nickname' => $nickname,
123        'is_hidden_after' => 0,
124        'is_hidden_before' => 0,
125        'image_filename' => '',
126    );
127    return db_insert('c_banner', $data);
128}
129
130function db_admin_update_c_banner($c_banner_id, $sets)
131{
132    $where = array('c_banner_id' => intval($c_banner_id));
133    db_update('c_banner', $sets, $where);
134}
135
136function db_admin_delete_c_banner($c_banner_id)
137{
138    db_admin_delete_c_image4c_banner_id($c_banner_id);
139
140    $sql = 'DELETE FROM c_banner WHERE c_banner_id = ?';
141    $params = array(intval($c_banner_id));
142    db_query($sql, $params);
143}
144
145function db_admin_delete_c_image4c_banner_id($c_banner_id)
146{
147    $sql = 'SELECT image_filename FROM c_banner WHERE c_banner_id = ?';
148    $params = array(intval($c_banner_id));
149    $image_filename = db_get_one($sql, $params);
150    image_data_delete($image_filename);
151}
152
153function db_admin_insert_c_profile(
154    $name
155    , $caption
156    , $info
157    , $is_required
158    , $public_flag_edit
159    , $public_flag_default
160    , $form_type
161    , $sort_order
162    , $disp_regist
163    , $disp_config
164    , $disp_search
165    , $val_type
166    , $val_regexp
167    , $val_min
168    , $val_max
169    )
170{
171    pne_cache_drop('db_member_c_profile_list');
172
173    if (empty($info) || is_null($info)) {
174        $info = '';
175    }
176
177    $data = array(
178        'name' => $name,
179        'caption' => $caption,
180        'info' => $info,
181        'is_required' => (bool)$is_required,
182        'public_flag_edit' => (bool)$public_flag_edit,
183        'public_flag_default' => $public_flag_default,
184        'form_type' => $form_type,
185        'sort_order' => (int)$sort_order,
186        'disp_regist' => (bool)$disp_regist,
187        'disp_config' => (bool)$disp_config,
188        'disp_search' => (bool)$disp_search,
189        'val_type' => $val_type,
190        'val_regexp' => $val_regexp,
191        'val_min' => (int)$val_min,
192        'val_max' => (int)$val_max,
193    );
194    return db_insert('c_profile', $data);
195}
196
197function db_admin_update_c_profile($c_profile_id
198    , $name
199    , $caption
200    , $info
201    , $is_required
202    , $public_flag_edit
203    , $public_flag_default
204    , $form_type
205    , $sort_order
206    , $disp_regist
207    , $disp_config
208    , $disp_search
209    , $val_type
210    , $val_regexp
211    , $val_min
212    , $val_max
213    )
214{
215    if (empty($info) || is_null($info)) {
216        $info = '';
217    }
218
219    $data = array(
220        'name' => $name,
221        'caption' => $caption,
222        'info' => $info,
223        'is_required' => (bool)$is_required,
224        'public_flag_edit' => (bool)$public_flag_edit,
225        'public_flag_default' => $public_flag_default,
226        'form_type' => $form_type,
227        'sort_order' => intval($sort_order),
228        'disp_regist' => (bool)$disp_regist,
229        'disp_config' => (bool)$disp_config,
230        'disp_search' => (bool)$disp_search,
231        'val_type' => $val_type,
232        'val_regexp' => $val_regexp,
233        'val_min' => intval($val_min),
234        'val_max' => intval($val_max),
235    );
236    $where = array('c_profile_id' => intval($c_profile_id));
237    db_update('c_profile', $data, $where);
238
239    // 公開設定が固定のときはメンバーの設定値を上書き
240    if (!$public_flag_edit) {
241        $data = array('public_flag' => $public_flag_default);
242        db_update('c_member_profile', $data, $where);
243    }
244
245    pne_cache_drop('db_member_c_profile_list');
246}
247
248function db_admin_delete_c_profile($c_profile_id)
249{
250    $params = array(intval($c_profile_id));
251
252    // メンバーのプロフィールから削除
253    $sql = 'DELETE FROM c_member_profile WHERE c_profile_id = ?';
254    db_query($sql, $params);
255
256    // 選択肢項目を削除
257    $sql = 'DELETE FROM c_profile_option WHERE c_profile_id = ?';
258    db_query($sql, $params);
259
260    // プロフィール項目を削除
261    $sql = 'DELETE FROM c_profile WHERE c_profile_id = ?';
262    db_query($sql, $params);
263
264    pne_cache_drop('db_member_c_profile_list');
265}
266
267function db_admin_c_profile4c_profile_id($c_profile_id)
268{
269    $sql = 'SELECT * FROM c_profile WHERE c_profile_id = ?';
270    $params = array(intval($c_profile_id));
271    return db_get_row($sql, $params);
272}
273
274/**
275 * 全バナー取得
276 *
277 * @param  int $limit 取得最大件数
278 * @return array_of_array  c_banner_list バナー配列
279 */
280function db_admin_c_banner_list4null($type = '')
281{
282    $sql = 'SELECT * FROM c_banner';
283    $params = array();
284    if ($type) {
285        $sql .= ' WHERE type = ?';
286        $params[] = $type;
287    }
288    return db_get_all($sql, $params);
289}
290
291function db_admin_c_commu_category_parent_list()
292{
293    $sql = 'SELECT * FROM c_commu_category_parent ORDER BY sort_order';
294    return db_get_all($sql);
295}
296
297function db_admin_c_commu_category_list()
298{
299    $sql = 'SELECT * FROM c_commu_category ORDER BY sort_order';
300    $list = db_get_all($sql);
301
302    $category_list = array();
303    foreach ($list as $item) {
304        $category_list[$item['c_commu_category_parent_id']][] = $item;
305    }
306    return $category_list;
307}
308
309function db_admin_insert_c_commu_category_parent($name, $sort_order)
310{
311    $data = array(
312        'name' => $name,
313        'sort_order' => intval($sort_order),
314    );
315    return db_insert('c_commu_category_parent', $data);
316}
317
318function db_admin_update_c_commu_category_parent($c_commu_category_parent_id, $name, $sort_order)
319{
320    $data = array(
321        'name' => $name,
322        'sort_order' => intval($sort_order),
323    );
324    $where = array(
325        'c_commu_category_parent_id' => intval($c_commu_category_parent_id)
326    );
327    db_update('c_commu_category_parent', $data, $where);
328}
329
330function db_admin_delete_c_commu_category_parent($c_commu_category_parent_id)
331{
332    $params = array(intval($c_commu_category_parent_id));
333
334    // 小カテゴリを削除
335    $sql = 'DELETE FROM c_commu_category WHERE c_commu_category_parent_id = ?';
336    db_query($sql, $params);
337
338    // 中カテゴリを削除
339    $sql = 'DELETE FROM c_commu_category_parent WHERE c_commu_category_parent_id = ?';
340    db_query($sql, $params);
341}
342
343function db_admin_insert_c_commu_category($c_commu_category_parent_id, $name, $sort_order)
344{
345    $data = array(
346        'c_commu_category_parent_id' => intval($c_commu_category_parent_id),
347        'name' => $name,
348        'sort_order' => intval($sort_order),
349    );
350    return db_insert('c_commu_category', $data);
351}
352
353function db_admin_update_c_commu_category($c_commu_category_id, $name, $sort_order)
354{
355    $data = array(
356        'name' => $name,
357        'sort_order' => intval($sort_order)
358    );
359    $where = array('c_commu_category_id' => intval($c_commu_category_id));
360    db_update('c_commu_category', $data, $where);
361}
362
363function db_admin_delete_c_commu_category($c_commu_category_id)
364{
365    // 小カテゴリを削除
366    $sql = 'DELETE FROM c_commu_category WHERE c_commu_category_id = ?';
367    $params = array(intval($c_commu_category_id));
368    db_query($sql, $params);
369}
370
371function db_admin_c_admin_user_id4username($username)
372{
373    $sql = 'SELECT c_admin_user_id FROM c_admin_user WHERE username = ?';
374    $params = array($username);
375    return db_get_one($sql, $params);
376}
377
378function db_admin_authenticate_password($uid, $password)
379{
380    $sql = 'SELECT c_admin_user_id FROM c_admin_user WHERE c_admin_user_id = ? AND password = ?';
381    $params = array(intval($uid), md5($password));
382    return (bool)db_get_one($sql, $params);
383}
384
385function db_admin_update_c_admin_user_password($uid, $password)
386{
387    $data = array('password' => md5($password));
388    $where = array('c_admin_user_id' => intval($uid));
389    db_update('c_admin_user', $data, $where);
390}
391
392function db_admin_c_admin_config4name($name)
393{
394    $sql = 'SELECT value FROM c_admin_config WHERE name = ?';
395    $params = array($name);
396    return db_get_one($sql, $params);
397}
398
399function db_admin_insert_c_admin_config($name, $value)
400{
401    $data = array(
402        'name' => $name,
403        'value' => $value,
404    );
405    return db_insert('c_admin_config', $data);
406}
407
408function db_admin_update_c_admin_config($name, $value)
409{
410    $data = array('value' => $value);
411    $where = array('name' => $name);
412    db_update('c_admin_config', $data, $where);
413}
414
415function db_admin_replace_c_admin_config($name, $value)
416{
417    $sql = 'DELETE FROM c_admin_config WHERE name = ?';
418    $params = array($name);
419    db_query($sql, $params);
420
421    $data = array(
422        'name'  => strval($name),
423        'value' => strval($value),
424    );
425    return db_insert('c_admin_config', $data);
426}
427
428function db_admin_c_admin_config_all()
429{
430    $sql = 'SELECT name, value FROM c_admin_config';
431    return db_get_assoc($sql);
432}
433
434function db_admin_delete_c_image_link4image_filename($image_filename)
435{
436    // c_banner (削除)
437    $sql = 'DELETE FROM c_banner WHERE image_filename = ?';
438    $params = array($image_filename);
439    db_query($sql, $params);
440
441    // c_commu
442    $tbl = 'c_commu';
443    _db_admin_empty_image_filename($tbl, $image_filename);
444
445    // c_commu_topic_comment
446    $tbl = 'c_commu_topic_comment';
447    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename1');
448    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename2');
449    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename3');
450
451    // c_diary
452    $tbl = 'c_diary';
453    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_1');
454    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_2');
455    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_3');
456
457    // c_diary_comment
458    $tbl = 'c_diary_comment';
459    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_1');
460    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_2');
461    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_3');
462
463    // c_member
464    $tbl = 'c_member';
465    _db_admin_empty_image_filename($tbl, $image_filename);
466    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_1');
467    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_2');
468    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_3');
469
470    // c_message
471    $tbl = 'c_message';
472    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_1');
473    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_2');
474    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_3');
475}
476
477function _db_admin_empty_image_filename($tbl, $image_filename, $column = 'image_filename')
478{
479    $data = array(
480        db_escapeIdentifier($column) => '',
481    );
482    $where = array(
483        db_escapeIdentifier($column) => $image_filename,
484    );
485    db_update(db_escapeIdentifier($tbl), $data, $where);
486}
487
488function db_admin_c_profile_name_exists($name)
489{
490    $sql = 'SELECT c_profile_id FROM c_profile WHERE name = ?';
491    $params = array($name);
492    return db_get_one($sql, $params);
493}
494
495function db_admin_update_is_login_rejected($c_member_id)
496{
497    // function cacheを削除
498    cache_drop_c_member_profile($c_member_id);
499
500    $sql = 'SELECT is_login_rejected FROM c_member WHERE c_member_id = ?';
501    $params = array(intval($c_member_id));
502    $is_login_rejected = db_get_one($sql, $params);
503    if (is_null($is_login_rejected)) {
504        return false;
505    }
506
507    $data = array('is_login_rejected' => !($is_login_rejected));
508    $where = array('c_member_id' => intval($c_member_id));
509    return db_update('c_member', $data, $where);
510}
511
512function db_admin_c_admin_user_list()
513{
514    $sql = 'SELECT * FROM c_admin_user ORDER BY c_admin_user_id';
515    return db_get_all($sql);
516}
517
518function db_admin_exists_c_admin_username($username)
519{
520    $sql = 'SELECT c_admin_user_id FROM c_admin_user WHERE username = ?';
521    $params = array(strval($username));
522    return (bool)db_get_one($sql, $params);
523}
524
525function db_admin_insert_c_admin_user($username, $password, $auth_type)
526{
527    $data = array(
528        'username' => strval($username),
529        'password' => md5($password),
530        'auth_type' => strval($auth_type),
531    );
532    return db_insert('c_admin_user', $data);
533}
534
535function db_admin_delete_c_admin_user($c_admin_user_id)
536{
537    $sql = 'DELETE FROM c_admin_user WHERE c_admin_user_id = ?';
538    $params = array(intval($c_admin_user_id));
539    return db_query($sql, $params);
540}
541
542function db_admin_get_auth_type($c_admin_user_id)
543{
544    $sql = 'SELECT auth_type FROM c_admin_user WHERE c_admin_user_id = ?';
545    $params = array(intval($c_admin_user_id));
546    return db_get_one($sql, $params);
547}
548
549/**
550 * メンバーIDリスト取得(絞り込み対応)
551 */
552function _db_admin_c_member_id_list($cond_list, $order = null)
553{
554    $sql = 'SELECT c_member_id'.
555           ' FROM c_member';
556
557    $wheres = array();
558
559    //開始年
560    if (!empty($cond_list['s_year'])) {
561        $wheres[] = 'birth_year >= ?';
562        $params[] = $cond_list['s_year'];
563    }
564    //終了年
565    if (!empty($cond_list['e_year'])) {
566        $wheres[] = 'birth_year <= ?';
567        $params[] = $cond_list['e_year'];
568    }
569
570    // 誕生日による絞り込みの場合は、誕生年が0のメンバーを除外する
571    if (!empty($cond_list['s_year']) || !empty($cond_list['e_year'])) {
572        $wheres[] = 'birth_year <> 0';
573    }
574
575    //最終ログイン時間で絞り込み
576    if (isset($cond_list['last_login'])) {
577        //期間で分ける
578        switch($cond_list['last_login']) {
579        case 1: //3日以内
580            $wheres[] = 'access_date >= ?';
581            $params[] = date('Y-m-d', strtotime('-3 day'));
582            break;
583        case 2: //3~7日以内
584            $wheres[] = 'access_date >= ? AND access_date < ?';
585            $params[] = date('Y-m-d', strtotime('-7 day'));
586            $params[] = date('Y-m-d', strtotime('-3 day'));
587            break;
588        case 3: //7~30日以内
589            $wheres[] = 'access_date >= ? AND access_date < ?';
590            $params[] = date('Y-m-d', strtotime('-30 day'));
591            $params[] = date('Y-m-d', strtotime('-7 day'));
592            break;
593        case 4: //30日以上
594            $wheres[] = 'access_date > ? AND access_date < ?';
595            $params[] = '0000-00-00 00:00:00';
596            $params[] = date('Y-m-d', strtotime('-30 day'));
597            break;
598        case 5: //未ログイン
599            $wheres[] = 'access_date = ?';
600            $params[] = '0000-00-00 00:00:00';
601            break;
602        }
603    }
604
605    if ($wheres) {
606        $where = ' WHERE ' . implode(' AND ', $wheres);
607    } else {
608        $where = '';
609    }
610    $sql .= $where;
611   
612    // --- ソートオーダーここから
613
614    // $orderの例:id_1 , id_2
615    // 「-」の前が項目名であとが1なら昇順 2なら降順
616    $type = explode("-",$order);
617
618    //ランクでソートとポイントでソートは同等
619    if ($type[0] == 'RANK') {
620        $type[0] = 'PNE_POINT';
621    }
622
623    $is_order = false;
624    if ($order) {
625        $is_order = true;
626
627        switch ($type[0]) {
628            case "c_member_id":
629                $sql .= ' ORDER BY c_member_id';
630            break;
631            case "nickname":
632                $sql .= ' ORDER BY nickname';
633            break;
634            case "image_filename":
635                $sql .= ' ORDER BY image_filename';
636            break;
637            case "c_member_id_invite":
638                $sql .= ' ORDER BY c_member_id_invite';
639            break;
640
641            case "access_date":
642                $sql .= ' ORDER BY access_date';
643            break;
644
645            case "r_date":
646                $sql .= ' ORDER BY r_date';
647            break;
648            case "birth":
649                //降順指定
650                if ($type[1] == "2") {
651                    $sql .= ' ORDER BY birth_year DESC, birth_month DESC, birth_day';
652                } else {
653                    $sql .= ' ORDER BY birth_year, birth_month, birth_day';
654                }
655            break;
656            default :
657                $is_order = false;
658
659        }
660
661        //降順指定
662        if ($is_order && $type[1] == "2") {
663            $sql .= ' DESC';
664        }
665
666    }
667    // --- ソートオーダーここまで
668
669    $ids = db_get_col($sql, $params);
670
671    // --- ポイントで絞り込み ここから
672    if ( isset($cond_list['s_point']) || isset($cond_list['e_point'])) {
673
674        $sql = 'SELECT c_member_id'.
675               ' FROM c_member_profile '.
676               ' INNER JOIN c_profile USING (c_profile_id) '.
677               ' WHERE name = ? ';
678        $params = array(
679            'PNE_POINT',
680        );
681        //開始ポイント
682        if (!empty($cond_list['s_point'])) {
683            $sql .= ' AND value >= ?';
684            $params[] = $cond_list['s_point'];
685        }
686        //終了ポイント
687        if (!empty($cond_list['e_point'])) {
688            $sql .= ' AND value < ?';
689            $params[] = $cond_list['e_point'];
690        }
691
692        $point_ids = db_get_col($sql, $params);
693
694        //ポイントで絞り込み
695        $ids = array_intersect($ids, $point_ids);
696
697    }
698    // --- ポイントで絞り込み ここまで
699
700    // --- メールアドレスで絞り込み ここから
701    if (!empty($cond_list['is_pc_address']) || !empty($cond_list['is_ktai_address'])) {
702
703        $sql = 'SELECT c_member_id FROM c_member_secure';
704        $wheres = array();
705
706        //PCメールアドレスの有無で絞る
707        if ($cond_list['is_pc_address'] == 1) {
708            $wheres[] = "pc_address <> ''";
709        } elseif ($cond_list['is_pc_address'] == 2) {
710            $wheres[] = "pc_address = ''";
711        }
712
713        //携帯メールアドレスの有無で絞る
714        if ($cond_list['is_ktai_address'] == 1) {
715            $wheres[] = "ktai_address <> ''";
716        } elseif ($cond_list['is_ktai_address'] == 2) {
717            $wheres[] = "ktai_address = ''";
718        }
719
720        if ($wheres) {
721            $where = ' WHERE ' . implode(' AND ', $wheres);
722        } else {
723            $where = '';
724        }
725        $sql .= $where;
726
727        $temp_ids = db_get_col($sql);
728
729        //メールアドレスで絞り込み
730        $ids = array_intersect($ids, $temp_ids);
731
732    }
733    // --- メールアドレスで絞り込み ここまで
734
735    //各プロフィールごとで絞り結果をマージする(ソートオーダーつき)
736    $_sql = 'SELECT name, form_type, c_profile_id FROM c_profile';
737    $profile = db_get_all($_sql);
738
739    if ( $profile ) {
740        foreach ($profile as $value) {
741            if(!empty($cond_list[$value['name']])
742           && ($value['form_type'] == 'radio' || $value['form_type'] == 'select')) {
743                $sql = 'SELECT c_member_id FROM c_member_profile WHERE c_profile_option_id = ?';
744                $params = array($cond_list[$value['name']]);
745                $temp_ids = db_get_col($sql, $params);
746                $ids = array_intersect($ids, $temp_ids);
747            }
748            if($value['name'] == $type[0]) {
749                $sql = 'SELECT c_member_id FROM c_member_profile WHERE c_profile_id = ?';
750
751                if ($value['form_type'] == 'radio'
752                 || $value['form_type'] == 'select'
753                 || $value['form_type'] == 'checkbox'
754                ) {
755                    $sql .= ' ORDER BY c_profile_option_id';
756                } else {
757                    if ($value['name'] == "PNE_POINT") {
758                        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
759                            $sql .= ' ORDER BY cast(value as integer)';
760                        } else {
761                            $sql .= ' ORDER BY cast(value as signed)';
762                        }
763                    } else {
764                        $sql .= ' ORDER BY value';
765                    }
766                }
767
768                if ($type[1] == "2") {
769                    $sql .= ' DESC';
770                }
771                $params = array($value['c_profile_id']);
772                $temp_ids = db_get_col($sql, $params);
773                $ids = array_intersect($temp_ids, $ids);
774            }
775
776        }
777    }
778
779    return $ids;
780}
781
782/**
783 * メンバーリスト取得
784 * 誕生年+プロフィール(select,radioのみ)
785 */
786function _db_admin_c_member_list($page, $page_size, &$pager, $cond_list, $order)
787{
788    $ids = _db_admin_c_member_id_list($cond_list, $order);
789    $total_num = count($ids);
790    $ids = array_slice($ids, ($page - 1) * $page_size, $page_size);
791
792    $c_member_list = array();
793    foreach ($ids as $id) {
794        $c_member_list[] = db_member_c_member4c_member_id($id, true, true, 'private');
795    }
796
797    if ($total_num > 0) {
798        $pager = admin_make_pager($page, $page_size, $total_num);
799    } else {
800        $pager = array('page_size' => $page_size);
801    }
802
803    return $c_member_list;
804}
805
806function db_c_profile_option4c_profile_option_id($c_profile_option_id)
807{
808    $sql = "SELECT * FROM c_profile_option WHERE c_profile_option_id = ? ";
809    $params = array(intval($c_profile_option_id));
810    return db_get_row($sql, $params);
811}
812
813/**
814 * メンバー絞込みパラメータ取得
815 */
816function validate_cond($requests)
817{
818    $cond_list = array();
819    //誕生年
820    if (!empty($requests['s_year'])) {
821        $cond_list['s_year'] = intval($requests['s_year']);
822    }
823    if (!empty($requests['e_year'])) {
824        $cond_list['e_year'] = intval($requests['e_year']);
825    }
826    //プロフィール
827    $profile_list = db_member_c_profile_list();
828
829    foreach ($profile_list as $key => $value) {
830        if (!empty($requests[$key])) {
831            $cond_list[$key] = intval($requests[$key]);
832        }
833    }
834
835    // 最終ログイン時間
836    if (!empty($requests['last_login'])) {
837        $cond_list['last_login'] = intval($requests['last_login']);
838    }
839
840    //PCメールアドレスの有無
841    if (!empty($requests['is_pc_address'])) {
842        $cond_list['is_pc_address'] = intval($requests['is_pc_address']);
843    }
844    //携帯メールアドレスの有無
845    if (!empty($requests['is_ktai_address'])) {
846        $cond_list['is_ktai_address'] = intval($requests['is_ktai_address']);
847    }
848
849    //ポイント
850    if (isset($requests['s_point']) && $requests['s_point'] !== '') {
851        $cond_list['s_point'] = intval($requests['s_point']);
852    }
853    if (isset($requests['e_point']) && $requests['e_point'] !== '') {
854        $cond_list['e_point'] = intval($requests['e_point']);
855    }
856
857    return $cond_list;
858}
859
860function do_admin_send_mail($c_member_id, $subject, $body)
861{
862    $c_member = db_member_c_member4c_member_id($c_member_id, true);
863
864    if ($c_member['secure']['pc_address']) {
865        $send_address = $c_member['secure']['pc_address'];
866    } else {
867        $send_address = $c_member['secure']['ktai_address'];
868    }
869
870    if (OPENPNE_MAIL_QUEUE) {
871        //メールキューに蓄積
872        put_mail_queue($send_address, $subject, $body);
873    } else {
874        t_send_email($send_address, $subject, $body);
875    }
876}
877
878//メッセージ受信メール(メール&メッセージキュー蓄積対応)
879function do_admin_send_message($c_member_id_from, $c_member_id_to, $subject, $body)
880{
881    //メッセージ
882    if (OPENPNE_MESSAGE_QUEUE) {
883        //メッセージキューに蓄積
884        db_admin_insert_c_message_queue($c_member_id_from, $c_member_id_to, $subject, $body);
885        return true;
886    } else {
887        db_message_insert_c_message($c_member_id_from, $c_member_id_to, $subject, $body);
888        do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from);
889        do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from);
890        return true;
891    }
892
893    return false;
894}
895
896//メッセージ受信メール(メールキュー蓄積対応)
897function do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from)
898{
899    $c_member_to = db_member_c_member4c_member_id($c_member_id_to, true);
900    $pc_address = $c_member_to['secure']['pc_address'];
901    $is_receive_mail = $c_member_to['is_receive_mail'];
902
903    $params = array(
904        "c_member_to"   => db_member_c_member4c_member_id($c_member_id_to),
905        "c_member_from" => db_member_c_member4c_member_id($c_member_id_from),
906    );
907    return admin_fetch_send_mail($pc_address, 'm_pc_message_zyushin', $params, $is_receive_mail);
908}
909
910//◆メッセージ受信メール(携帯)
911function do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from)
912{
913    $c_member_to = db_member_c_member4c_member_id($c_member_id_to, true);
914    $ktai_address = $c_member_to['secure']['ktai_address'];
915    $is_receive_ktai_mail = $c_member_to['is_receive_ktai_mail'];
916    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_to['c_member_id'], true)));
917    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
918
919    $params = array(
920        'c_member_to'   => db_member_c_member4c_member_id($c_member_id_to),
921        'c_member_from' => db_member_c_member4c_member_id($c_member_id_from),
922        'login_url' => $login_url,
923    );
924    return admin_fetch_send_mail($ktai_address, 'm_ktai_message_zyushin', $params, $is_receive_ktai_mail);
925}
926
927function admin_fetch_send_mail($address, $tpl_name, $params = array(), $force = true, $from = '')
928{
929    $tpl_name .= '.tpl';
930    if ($tpl = fetch_mail_m_tpl($tpl_name, $params)) {
931        list($subject, $body) = $tpl;
932        if ($from) {
933            if (OPENPNE_MAIL_QUEUE) {
934                //メールキューに蓄積
935                put_mail_queue($address, $subject, $body, $force, $from);
936            } else {
937                t_send_email($address, $subject, $body, $force, $from);
938            }
939        } else {
940            if (OPENPNE_MAIL_QUEUE) {
941                //メールキューに蓄積
942                put_mail_queue($address, $subject, $body, $force);
943            } else {
944                t_send_email($address, $subject, $body, $force);
945            }
946        }
947        return true;
948    } else {
949        return false;
950    }
951}
952
953function db_access_analysis_c_admin_user_id4username($username)
954{
955    $sql = "SELECT c_admin_user_id FROM c_admin_user" .
956        " WHERE username = ?";
957    $params = array($username);
958    return db_get_one($sql,$params);
959}
960
961function p_access_analysis_month_access_analysis_month($ktai_flag)
962{
963    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
964        $sql = "SELECT to_char(r_datetime, 'YYYY-MM-01') as ym, count(*) as count" .
965                " FROM c_access_log " .
966                " where ktai_flag = ?" .
967                " group by ym";
968    } else {
969        $sql = "SELECT date_format(r_datetime, '%Y-%m-01') as ym, count(*) as count" .
970                " FROM c_access_log " .
971                " where ktai_flag = ?" .
972                " group by ym";
973    }
974
975    $params = array(intval($ktai_flag));
976    $list = db_get_all($sql,$params);
977    return $list;
978}
979
980
981function p_access_analysis_day_access_analysis_day($ym, $ktai_flag)
982{
983    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
984        $sql = "SELECT substr(r_datetime,1,10) as ymd , count(*) as count" .
985            " FROM c_access_log " .
986            " where substr(r_datetime,1,7) = ?" .
987            " and ktai_flag = ? " .
988            " group by ymd";
989    } else {
990        $sql = "SELECT left(r_datetime,10) as ymd , count(*) as count" .
991                " FROM c_access_log " .
992                " where left(r_datetime, 7) = ?" .
993                " and ktai_flag = ? " .
994                " group by ymd";
995    }
996    $params = array(intval(substr($ym,0,7)),intval($ktai_flag));
997    $list = db_get_all($sql,$params);
998   
999    $year = substr($ym, 0, 4);
1000    $month = substr($ym, 5,2);
1001   
1002    $return = array();
1003    $days_num = date("t", mktime (0,0,0,$month,1,$year));
1004    for($i=1 ; $i<=$days_num; $i++) {
1005        $date = substr($ym,0,8) . substr("00".$i, -2, 2);
1006
1007        $count = 0;
1008        foreach($list as $value) {
1009            if ($value['ymd'] == $date) {
1010                $count = $value['count'];
1011            }
1012        }
1013        $return[] = array("ymd"=>$date, "count"=>$count);
1014    }
1015    return $return;
1016}
1017
1018function get_page_name($ktai_flag, $orderby=1)
1019{
1020    if ($orderby == 1) {
1021        $orderby_str = " order by page_name asc";
1022    } elseif ($orderby == -1) {
1023        $orderby_str = " order by page_name desc";
1024    }
1025    $sql = "select distinct page_name from c_access_log " .
1026            " where ktai_flag = ? " .
1027            $orderby_str;
1028    $params = array(intval($ktai_flag));
1029    return db_get_col($sql,$params);
1030}
1031
1032function p_access_analysis_page_access_analysis_page4ym($ymd, $month_flag, $ktai_flag, $orderby)
1033{
1034
1035    if ($orderby == 1) {
1036        $orderby_str = " order by page_name asc";
1037    } elseif ($orderby == -1) {
1038        $orderby_str = " order by page_name desc";
1039    } elseif ($orderby == 2) {
1040        $orderby_str = " order by count asc";
1041    } elseif ($orderby == -2) {
1042        $orderby_str = " order by count desc";
1043    }
1044    $sql = "select page_name , count(*) as count from c_access_log where ktai_flag = ? ";
1045    $params = array(intval($ktai_flag));
1046    if ($month_flag) {
1047        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1048            $sql .= " and substr(r_datetime,1,7) = ? ";
1049        } else {
1050            $sql .= " and left(r_datetime, 7) = ? ";
1051        }
1052
1053        array_push($params,substr($ymd,0,7));
1054    } else {
1055        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1056            $sql .= " and substr(r_datetime,1,10) = ? ";
1057        } else {
1058            $sql .= " and left(r_datetime,10) = ? ";
1059        }
1060        array_push($params,$ymd);
1061    }
1062    $sql .= " group by page_name ".    $orderby_str;
1063    $list = db_get_all($sql,$params);
1064
1065    $sum = 0;
1066    $return = array();
1067    if (abs($orderby) == 1) {
1068        $page_name = get_page_name($ktai_flag, $orderby);
1069        foreach($page_name as $name) {
1070            $count = 0;
1071            foreach($list as $value) {
1072                if ($value['page_name'] == $name) $count = $value['count'];
1073            }
1074
1075                list($is_target_c_member_id,$is_target_c_commu_id,$is_target_c_topic_id,$is_target_c_diary_id,$is_c_member_id) = get_is_show($name);
1076
1077            $return[] = array("page_name"=>$name, "count"=> $count, "is_target_c_member_id"=> $is_target_c_member_id, "is_target_c_commu_id"=> $is_target_c_commu_id, "is_target_c_topic_id"=> $is_target_c_topic_id, "is_target_c_diary_id"=> $is_target_c_diary_id, "is_c_member_id"=> $is_c_member_id);
1078            $sum += $count;
1079        }
1080    } elseif (abs($orderby) == 2) {
1081        $page_name = get_page_name($ktai_flag);
1082
1083        $t_page_name = $page_name;
1084
1085        //アクセスがゼロのページを取得する
1086        foreach($page_name as $key=>$name) {
1087            foreach($list as $value) {
1088                if ($value['page_name'] == $name) {
1089                    unset($page_name[$key]);//$listに含まれるページネームを削除
1090                }
1091            }
1092        }
1093
1094        foreach($page_name as $key=>$name) {
1095            $page_name[$key] = array("page_name"=>$name, "count"=>0);
1096        }
1097
1098        if ($orderby == 2) {
1099            $return = array_merge($page_name , $list);
1100        } elseif ($orderby == -2) {
1101            $return = array_merge($list, $page_name);
1102        }
1103        foreach($list as $value) {
1104            $sum += $value['count'];
1105        }
1106
1107        foreach($return as $value) {
1108
1109            list($is_target_c_member_id,$is_target_c_commu_id,$is_target_c_topic_id,$is_target_c_diary_id,$is_c_member_id) = get_is_show($value['page_name']);
1110
1111            $value['is_target_c_member_id'] = $is_target_c_member_id;
1112            $value['is_target_c_commu_id'] = $is_target_c_commu_id;
1113            $value['is_target_c_topic_id'] = $is_target_c_topic_id;
1114            $value['is_target_c_diary_id'] = $is_target_c_diary_id;
1115            $value['is_c_member_id'] = $is_c_member_id;
1116            $t_return[] = $value;
1117
1118        }
1119
1120        $return = $t_return;
1121
1122    }
1123   
1124    return array($return, $sum);
1125}
1126
1127
1128/*
1129 * target_commu
1130 *
1131 */
1132function p_access_analysis_target_commu_target_commu4ym_page_name
1133($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1134{
1135   
1136    $start = ($page - 1) * $page_size;
1137   
1138    if ($orderby == 1) {
1139        $orderby_str = " order by target_c_commu_id asc";
1140    } elseif ($orderby == -1) {
1141        $orderby_str = " order by target_c_commu_id desc";
1142    } elseif ($orderby == 2) {
1143        $orderby_str = " order by count asc";
1144    } elseif ($orderby == -2) {
1145        $orderby_str = " order by count desc";
1146    }
1147   
1148    $sql = "select target_c_commu_id , count(*) as count from c_access_log  where ktai_flag = ? ";
1149    $params = array(intval($ktai_flag));
1150    if ($month_flag) {
1151        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1152            $sql .= " and substr(r_datetime,1,7) = ? ";
1153        } else {
1154            $sql .= " and left(r_datetime, 7) = ? ";
1155        }
1156        array_push($params,substr($ymd,0,7));
1157    } else {
1158        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1159            $sql .= " and substr(r_datetime,1,10) = ? ";
1160        } else {
1161            $sql .= " and left(r_datetime,10) = ? ";
1162        }
1163        array_push($params,$ymd);
1164    }
1165    if ($page_name!="all") {
1166            $sql .= " and page_name = ? ";
1167            array_push($params,$page_name);
1168    }
1169    $sql .= " and target_c_commu_id <> 0 ";
1170
1171    $sql .= " group by target_c_commu_id " .$orderby_str;
1172    $list = db_get_all_limit($sql, $start, $page_size, $params);
1173
1174    $return = array();
1175    $sum = 0;
1176    foreach($list as $key => $value) {
1177        if ($value['target_c_commu_id']) {
1178            if ($c_commu = db_commu_c_commu4c_commu_id($value['target_c_commu_id'])) {
1179                $return[] = array_merge($value, $c_commu);
1180                $sum += $value['count'];
1181            }
1182        }
1183    }
1184
1185    $sql =   "select count(*) from c_access_log  where ktai_flag = ? ";
1186    $params = array(intval($ktai_flag));
1187    if ($month_flag) {
1188        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1189            $sql .= " and substr(r_datetime,1,7) = ? ";
1190        } else {
1191            $sql .= " and left(r_datetime, 7) = ? ";
1192        }
1193        array_push($params,substr($ymd,0,7));
1194    } else {
1195        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1196            $sql .= " and substr(r_datetime,1,10) = ? ";
1197        } else {
1198            $sql .= " and left(r_datetime,10) = ? ";
1199        }
1200        array_push($params,$ymd);
1201    }
1202    if ($page_name!="all") {
1203        $sql .= " and page_name = ? ";
1204        array_push($params,$page_name);
1205    }
1206    $sql .= " and target_c_commu_id <> 0 ";
1207    $sql .= " group by target_c_commu_id ";
1208    $result = db_get_all($sql,$params);
1209    $total_num = count($result);
1210
1211    if ($total_num != 0) {
1212        $total_page_num =  ceil($total_num / $page_size);
1213        if ($page >= $total_page_num) {
1214            $next = false;
1215        }else{
1216            $next = true;
1217        }
1218        if ($page <= 1) {
1219            $prev = false;
1220        }else{
1221            $prev = true;
1222        }
1223    }
1224    $start_num = ($page - 1) * $page_size + 1 ;
1225    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1226
1227    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1228}
1229
1230function p_access_analysis_target_topic_target_topic4ym_page_name
1231($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1232{
1233    $start = ($page - 1) * $page_size;
1234   
1235    if ($orderby == 1) {
1236        $orderby_str = " order by target_c_commu_topic_id asc";
1237    } elseif ($orderby == -1) {
1238        $orderby_str = " order by target_c_commu_topic_id desc";
1239    } elseif ($orderby == 2) {
1240        $orderby_str = " order by count asc";
1241    } elseif ($orderby == -2) {
1242        $orderby_str = " order by count desc";
1243    }
1244    $where =" where ktai_flag = ? ";
1245    $params = array(intval($ktai_flag));
1246    if ($month_flag) {
1247        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1248            $where .= " and substr(r_datetime,1, 7) = ? ";
1249        } else {
1250            $where .= " and left(r_datetime, 7) = ? ";
1251        }
1252        array_push($params,substr($ymd,0,7));
1253    } else {
1254        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1255            $where .= " and substr(r_datetime,1,10) = ? ";
1256        } else {
1257            $where .= " and left(r_datetime,10) = ? ";
1258        }
1259        array_push($params,$ymd);
1260    }
1261    if ($page_name!="all") {
1262            $where .= " and page_name = ? ";
1263            array_push($params,$page_name);
1264    }
1265    $sql = "select target_c_commu_topic_id , count(*) as count from c_access_log ";
1266    $sql .= $where." group by target_c_commu_topic_id " .$orderby_str;
1267    $list = db_get_all_limit($sql, $start, $page_size, $params);
1268    $sql = "select count(*) from c_access_log ";
1269    $sql .= $where ." group by target_c_commu_topic_id ";
1270    $result = db_get_all($sql,$params);
1271    $total_num = count($result);
1272
1273    $return = array();
1274    $sum = 0;
1275    foreach ($list as $key => $value) {
1276        if ($value['target_c_commu_topic_id']) {
1277            if ($c_commu_topic = c_topic_detail_c_topic4c_commu_topic_id($value['target_c_commu_topic_id'])) {
1278                $c_commu_topic['topic_name'] = $c_commu_topic['name'];
1279                $c_commu = db_commu_c_commu4c_commu_id($c_commu_topic['c_commu_id']);
1280                $c_commu_topic['commu_name'] = $c_commu['name'];
1281                $return[] = array_merge($value, $c_commu_topic);
1282                $sum += $value['count'];
1283            }
1284        }
1285    }
1286
1287    if ($total_num != 0) {
1288        $total_page_num =  ceil($total_num / $page_size);
1289        if ($page >= $total_page_num) {
1290            $next = false;
1291        } else {
1292            $next = true;
1293        }
1294        if ($page <= 1) {
1295            $prev = false;
1296        } else {
1297            $prev = true;
1298        }
1299    }
1300    $start_num = ($page - 1) * $page_size + 1 ;
1301    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1302
1303    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1304}
1305
1306function p_access_analysis_target_diary_target_diary4ym_page_name
1307($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1308{
1309   
1310    $start = ($page - 1) * $page_size;
1311   
1312    if ($orderby == 1) {
1313        $orderby_str = " order by target_c_diary_id asc";
1314    } elseif ($orderby == -1) {
1315        $orderby_str = " order by target_c_diary_id desc";
1316    } elseif ($orderby == 2) {
1317        $orderby_str = " order by count asc";
1318    } elseif ($orderby == -2) {
1319        $orderby_str = " order by count desc";
1320    }
1321   
1322    $sql = "select target_c_diary_id , count(*) as count from c_access_log where ktai_flag = ? ";
1323    $params = array(intval($ktai_flag));
1324    if ($month_flag) {
1325        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1326            $sql .= " and substr(r_datetime,1,7) = ? ";
1327        } else {
1328            $sql .= " and left(r_datetime, 7) = ? ";
1329        }
1330        array_push($params,substr($ymd,0,7));
1331    } else {
1332        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1333            $sql .= " and substr(r_datetime,1,10) = ? ";
1334        } else {
1335            $sql .= " and left(r_datetime,10) = ? ";
1336        }
1337        array_push($params,$ymd);
1338    }
1339    if ($page_name!="all") {
1340        $sql .= " and page_name = ? ";
1341        array_push($params,$page_name);
1342    }
1343    $sql .= " and target_c_diary_id <> 0 ";
1344    $sql .= " group by target_c_diary_id " . $orderby_str;
1345    $list = db_get_all_limit($sql, $start, $page_size, $params);
1346
1347    $return = array();
1348    $sum = 0;
1349    foreach ($list as $key => $value) {
1350        if ($value['target_c_diary_id']) {
1351            if ($c_diary = db_diary_get_c_diary4id($value['target_c_diary_id'])) {
1352                $c_member = db_member_c_member4c_member_id($c_diary['c_member_id']);
1353                $c_diary['nickname'] = $c_member['nickname'];
1354                $return[] = array_merge($value, $c_diary);
1355                $sum += $value['count'];
1356            }
1357        }
1358    }
1359
1360    $sql =   "select count(*) from c_access_log where ktai_flag = ? ";
1361    $params = array(intval($ktai_flag));
1362    if ($month_flag) {
1363        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1364            $sql .= " and substr(r_datetime,1,7) = ? ";
1365        } else {
1366            $sql .= " and left(r_datetime, 7) = ? ";
1367        }
1368        array_push($params,substr($ymd,0,7));
1369    } else {
1370        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1371            $sql .= " and substr(r_datetime,1,10) = ? ";
1372        } else {
1373            $sql .= " and left(r_datetime,10) = ? ";
1374        }
1375        array_push($params,$ymd);
1376    }
1377    $sql .= " and target_c_diary_id <> 0 ";
1378    $sql .= " group by target_c_diary_id ";
1379    $result = db_get_all($sql,$params);
1380    $total_num = count($result);
1381
1382    if ($total_num != 0) {
1383        $total_page_num =  ceil($total_num / $page_size);
1384        if ($page >= $total_page_num) {
1385            $next = false;
1386        }else{
1387            $next = true;
1388        }
1389        if ($page <= 1) {
1390            $prev = false;
1391        }else{
1392            $prev = true;
1393        }
1394    }
1395    $start_num = ($page - 1) * $page_size + 1 ;
1396    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1397
1398    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1399}
1400
1401function p_access_analysis_member_access_member4ym_page_name
1402($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1403{
1404    $start = ($page - 1) * $page_size;
1405   
1406    if ($orderby == 1) {
1407        $orderby_str = " order by c_member_id asc";
1408    } elseif ($orderby == -1) {
1409        $orderby_str = " order by c_member_id desc";
1410    } elseif ($orderby == 2) {
1411        $orderby_str = " order by count asc";
1412    } elseif ($orderby == -2) {
1413        $orderby_str = " order by count desc";
1414    }
1415   
1416    $where =" where ktai_flag = ? ";
1417    $params = array(intval($ktai_flag));
1418    if ($month_flag) {
1419        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1420            $where .= " and substr(r_datetime,1,7) = ? ";
1421        } else {
1422            $where .= " and left(r_datetime, 7) = ? ";
1423        }
1424        array_push($params,substr($ymd,0,7));
1425    } else {
1426        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1427            $where .= " and substr(r_datetime,1,10) = ? ";
1428        } else {
1429            $where .= " and left(r_datetime,10) = ? ";
1430        }
1431        array_push($params,$ymd);
1432    }
1433    if ($page_name!="all") {
1434        $where .= " and page_name = ? ";
1435        array_push($params,$page_name);
1436    }
1437
1438    $sql = "select c_member_id , count(*) as count from c_access_log";
1439    $sql .= $where." group by c_member_id $orderby_str";
1440    $list = db_get_all_limit($sql, $start, $page_size, $params);
1441    $sql = "select count(*) from c_access_log ";
1442    $sql .=    $where ." group by c_member_id ";
1443    $result = db_get_all($sql,$params);
1444    $total_num = count($result);
1445
1446    $return = array();
1447    $sum = 0;
1448    foreach($list as $key => $value) {
1449        if ($value['c_member_id']) {
1450            if ($c_member = _db_c_member4c_member_id($value['c_member_id'])) {
1451                $return[] = array_merge($value, $c_member);
1452                $sum += $value['count'];
1453            }
1454        }
1455    }
1456
1457
1458    if ($total_num != 0) {
1459        $total_page_num =  ceil($total_num / $page_size);
1460        if ($page >= $total_page_num) {
1461            $next = false;
1462        }else{
1463            $next = true;
1464        }
1465        if ($page <= 1) {
1466            $prev = false;
1467        }else{
1468            $prev = true;
1469        }
1470    }
1471    $start_num = ($page - 1) * $page_size + 1 ;
1472    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1473    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1474}
1475
1476function p_access_analysis_target_member_access_member4ym_page_name
1477($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1478{
1479    $start = ($page - 1) * $page_size;
1480   
1481    if ($orderby == 1) {
1482        $orderby_str = " order by target_c_member_id asc";
1483    } elseif ($orderby == -1) {
1484        $orderby_str = " order by target_c_member_id desc";
1485    } elseif ($orderby == 2) {
1486        $orderby_str = " order by count asc";
1487    } elseif ($orderby == -2) {
1488        $orderby_str = " order by count desc";
1489    }
1490    $where =" where ktai_flag = ? ";
1491    $params = array(intval($ktai_flag));
1492    if ($month_flag) {
1493        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1494            $where .= " and substr(r_datetime,1,7) = ? ";
1495        } else {
1496            $where .= " and left(r_datetime, 7) = ? ";
1497        }
1498        array_push($params,substr($ymd,0,7));
1499    } else {
1500        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1501            $where .= " and substr(r_datetime,1,10) = ? ";
1502        } else {
1503            $where .= " and left(r_datetime,10) = ? ";
1504        }
1505        array_push($params,$ymd);
1506    }
1507    if ($page_name != "all") {
1508        $where .= " and page_name = ? ";
1509        array_push($params,$page_name);
1510    }
1511    $sql = "select target_c_member_id , count(*) as count from c_access_log ";
1512    $sql .= $where;
1513    $sql .= " AND target_c_member_id <> 0 ";
1514    $sql .= " group by target_c_member_id " . $orderby_str;
1515
1516    $list = db_get_all_limit($sql, $start, $page_size, $params);
1517
1518    $return = array();
1519    $sum = 0;
1520    foreach($list as $key => $value) {
1521        if ($value['target_c_member_id']) {
1522            if ($c_member = db_member_c_member4c_member_id($value['target_c_member_id'])) {
1523                $return[] = array_merge($value, $c_member);
1524                $sum += $value['count'];
1525            }
1526        }
1527    }
1528
1529    $where =" where ktai_flag = ? ";
1530    $params = array(intval($ktai_flag));
1531    if ($month_flag) {
1532        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1533            $where .= " and substr(r_datetime,1,7) = ? ";
1534        } else {
1535            $where .= " and left(r_datetime, 7) = ? ";
1536        }
1537        array_push($params,substr($ymd,0,7));
1538    } else {
1539        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1540            $where .= " and substr(r_datetime,1,10) = ? ";
1541        } else {
1542            $where .= " and left(r_datetime,10) = ? ";
1543        }
1544        array_push($params,$ymd);
1545    }
1546    if ($page_name != "all") {
1547        $where .= " and page_name = ? ";
1548        array_push($params,$page_name);
1549    }
1550    $sql = "select count(*) from c_access_log " ;
1551    $sql .= $where;
1552    $sql .= " AND target_c_member_id <> 0 ";
1553    $sql .= " group by target_c_member_id ";
1554   
1555    $result = db_get_all($sql,$params);
1556    $total_num = count($result);
1557
1558    if ($total_num != 0) {
1559        $total_page_num =  ceil($total_num / $page_size);
1560        if ($page >= $total_page_num) {
1561            $next = false;
1562        } else {
1563            $next = true;
1564        }
1565        if ($page <= 1) {
1566            $prev = false;
1567        } else {
1568            $prev = true;
1569        }
1570    }
1571    $start_num = ($page - 1) * $page_size + 1 ;
1572    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1573
1574    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1575}
1576
1577function get_is_show($name)
1578{
1579
1580    $is_target_c_member_id = 0;
1581    $is_target_c_commu_id  = 0;
1582    $is_target_c_topic_id  = 0;
1583    $is_target_c_diary_id  = 0;
1584    $is_c_member_id        = 1;
1585
1586
1587    //必要のない詳細ボタンを消す
1588    $list = explode("_", $name);
1589    $is_c_member_id = 1;
1590
1591    if (strpos($list[0], 'f') !== false) {
1592        $is_target_c_member_id = 1;
1593    }
1594    if (strpos($list[0], 'c') !== false) {
1595        $is_target_c_commu_id = 1;
1596    }
1597
1598    if (strpos($name, 'topic') !== false || strpos($name, 'event') !== false) {
1599        $is_target_c_topic_id = 1;
1600    }
1601    if (strpos($name, 'diary') !== false) {
1602        $is_target_c_diary_id = 1;
1603    }
1604
1605
1606    return array($is_target_c_member_id,$is_target_c_commu_id,$is_target_c_topic_id,$is_target_c_diary_id,$is_c_member_id);
1607
1608}
1609
1610/**
1611
1612カラムごとに条件を指定して絞ったメンバーの一覧を返す
1613
1614[引数]
1615適時追加していく
1616
1617$s_access_date    最終ログイン時刻 開始年月日
1618$e_access_date    最終ログイン時刻 終了年月日
1619
1620[返り値]
1621c_member_list
1622
1623*/
1624function p_member_edit_c_member_list($page_size, $page, $s_access_date='', $e_access_date='')
1625{
1626    $page = intval($page);
1627    $page_size = intval($page_size);
1628
1629    $wheres = array();
1630    $params = array();
1631
1632    //指定された条件で絞っていく
1633    if ($s_access_date != '') {
1634        $wheres[] = 'access_date >= ?';
1635        $params[] = $s_access_date;
1636    }
1637
1638    if ($e_access_date != '') {
1639        $wheres[] = 'access_date < ?';
1640        $params[] = $e_access_date;
1641    }
1642
1643    if ($wheres) {
1644        $where = ' WHERE ' . implode(' AND ', $wheres);
1645    } else {
1646        $where = '';
1647    }
1648
1649    $select = "SELECT * FROM c_member";
1650    $order = " order by c_member_id";
1651    $sql = $select . $where . $order;
1652    if ($page_size > 0) {
1653        $list = db_get_all_page($sql, $page, $page_size, $params);
1654    } else {
1655        $list = db_get_all($sql, $params);
1656    }
1657   
1658    $sql = "select count(*) from c_member".$where;
1659
1660    $total_num = db_get_one($sql, $params);
1661   
1662    if ($total_num != 0 && $page_size != 0) {
1663        $total_page_num =  ceil($total_num / $page_size);
1664        if ($page >= $total_page_num) {
1665            $next = false;
1666        } else {
1667            $next = true;
1668        }
1669        if ($page <= 1) {
1670            $prev = false;
1671        } else {
1672            $prev = true;
1673        }
1674    }
1675
1676    return array($list , $prev , $next, $total_num);
1677}
1678
1679function _db_c_member4c_member_id($c_member_id)
1680{
1681    $sql = "SELECT * FROM c_member WHERE c_member_id= ? ";
1682        $params = array(intval($c_member_id));
1683    return db_get_row($sql,$params);
1684}
1685
1686/**
1687 * 男と女の人数を取得
1688 */
1689function get_analysis_sex()
1690{
1691    $sql = "select count(*) from c_member where sex = '男'";
1692    $analysis_sex['male'] = get_one4db($sql);
1693    $sql = "select count(*) from c_member where sex = '女'";
1694    $analysis_sex['female'] = get_one4db($sql);
1695   
1696    return $analysis_sex;
1697   
1698}
1699
1700/**
1701 * 世代の人数を取得
1702 */
1703function get_analysis_generation()
1704{
1705    $analysis_generation = array(
1706            '0~9' => 0,
1707            '10~19' => 0,
1708            '20~29' => 0,
1709            '30~39' => 0,
1710            '40~49' => 0,
1711            '50~59' => 0,
1712            '60~69' => 0,
1713            '70~79' => 0,
1714            '80~' =>0
1715    );
1716   
1717    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1718        $sql = "SELECT ((date_part('year', now()) - birth_year)- " .
1719            "cast(substring(CURRENT_DATE,'.....$')<(to_char(birth_month, '00') || '-' || to_char(birth_day, '00')) as int)) " .
1720            "AS age FROM c_member WHERE birth_year <> 0;";
1721    } else {
1722        $today = getdate();
1723        $mmdd = $today['mon'] * 100 + $today['mday'];
1724        $sql = 'SELECT ' . $today['year'] . ' - birth_year'
1725             . ' - (' . $mmdd . ' < (birth_month * 100 + birth_day))'
1726             . ' AS age FROM c_member WHERE birth_year <> 0';
1727    }
1728    $lst = db_get_all($sql);
1729
1730    $temp = array_keys($analysis_generation);
1731    foreach($lst as $value) {
1732        $key = (int)($value['age'] / 10);
1733        if ($key > count($analysis_generation)-1) {
1734            $analysis_generation[$temp[count($analysis_generation)-1]]++;
1735        } else {
1736            $analysis_generation[$temp[$key]]++;
1737        }
1738    }
1739
1740    return $analysis_generation;
1741   
1742}
1743
1744/**
1745 * 地域別の人数を取得
1746 */
1747function get_analysis_region()
1748{
1749    $pref = p_regist_prof_c_profile_pref_list4null();
1750    $sql = "select pre_addr_c_profile_pref_id as pref_id from c_member";
1751    $lst = get_array_list4db($sql);
1752
1753    foreach($pref as $value) {
1754        $analysis_region[$value] = 0;
1755    }
1756
1757    foreach ($lst as $value) {
1758        if ($value['pref_id'] == 0) {
1759            $analysis_region['その他']++;
1760        } else {
1761            $analysis_region[$pref[$value['pref_id']]]++;
1762        }
1763    }
1764
1765    return $analysis_region;
1766   
1767}
1768
1769function get_analysis_date_month($year = "", $month = "")
1770{
1771    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1772        $sql = "select to_char(r_date,'YYYY-MM') from c_member order by r_date";
1773    } else {
1774        $sql = "select date_format(r_date,'%Y-%m') from c_member order by r_date";
1775    }
1776    $start_date = db_get_one($sql);
1777
1778    $i = 0;
1779    list($y, $m) = split("-",$start_date);
1780    do{
1781        $date = date("Y-m", mktime (0,0,0,$m+$i++,1,$y));
1782        $analysis_date_month[$date] = 0;
1783    }while($date < date("Y-m"));
1784   
1785    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1786        $sql = "select to_char(r_date,'YYYY-MM') as d from c_member";
1787    } else {
1788        $sql = "select date_format(r_date,'%Y-%m') as d from c_member";
1789    }
1790    $lst = db_get_all($sql);
1791    foreach ($lst as $value) {
1792        $analysis_date_month[$value['d']]++;
1793    }
1794    return $analysis_date_month;
1795}
1796
1797function get_analysis_date_day_d($date="")
1798{
1799    if ($date == "") {
1800       $date = date("Y-m-d");
1801    }
1802    return $date;
1803}
1804
1805
1806function get_analysis_date_day($date="")
1807{
1808    if ($date == "") {
1809        $date = date("Y-m");
1810    }
1811    //一ヶ月の日数
1812    $day_num = date("t");
1813
1814    for($i=1 ; $i<=$day_num; $i++) {
1815        //一桁の数を二桁にする
1816        if ($i < 10) {
1817            $i = "0".$i;
1818        }
1819        $analysis_date_day[$i] = 0;
1820    }
1821
1822    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1823        $sql = "select to_char(r_date,'DD') as d from c_member where to_char(r_date,'YYYY-MM') = ?";
1824    } else {
1825        $sql = "select date_format(r_date,'%d') as d from c_member where date_format(r_date,'%Y-%m') = ?";
1826    }
1827    $params = array($date);
1828    $lst = db_get_all($sql,$params);
1829
1830    foreach($lst as $value) {
1831        $analysis_date_day[$value['d']]++;
1832    }
1833   
1834    return $analysis_date_day;
1835}
1836
1837function p_access_analysis_select_profile_list()
1838{
1839    $sql = "SELECT * " .
1840            " FROM c_profile " .
1841            " where form_type = 'select' ";
1842           
1843    $list = db_get_all($sql);
1844    return $list;
1845}
1846
1847/**
1848 * 指定されたIDのプロフィールの人数別一覧を作成
1849 */
1850function get_analysis_profile($c_profile_id)
1851{
1852    $sql = "select count(*) as count,value,c_profile.caption from c_member_profile " .
1853        " LEFT JOIN c_profile ON c_profile.c_profile_id = c_member_profile.c_profile_id " .
1854        " WHERE c_member_profile.c_profile_id = ? GROUP BY value ";
1855    $params = array(intval($c_profile_id));
1856    $analysis_profile = db_get_all($sql,$params);
1857   
1858    return $analysis_profile;
1859}
1860
1861function get_analysis_count_profile_all($c_profile_id)
1862{
1863    $sql = "select count(*) as count from c_member_profile " .
1864        " WHERE c_profile_id = ? ";
1865    $params = array(intval($c_profile_id));
1866    $analysis_profile = db_get_one($sql,$params);
1867   
1868    return $analysis_profile;
1869}
1870
1871function analysis_profile4c_profile_id($c_profile_id)
1872{
1873    $sql = "SELECT * FROM c_profile" .
1874            " WHERE c_profile_id = ? ";
1875    $params = array(intval($c_profile_id));
1876    $profile = db_get_row($sql,$params);
1877   
1878    return $profile;
1879}
1880
1881function monitor_diary_list($keyword, $page_size, $page)
1882{
1883    $page = intval($page);
1884    $page_size = intval($page_size);
1885   
1886    $wheres = array();
1887
1888    if ($keyword) {
1889        //全角空白を半角に統一
1890        $keyword = str_replace(' ', ' ', $keyword);
1891        $keyword_list = explode(' ', $keyword);
1892
1893        for ($i = 0; $i < count($keyword_list); $i++) {
1894            $keyword = check_search_word($keyword_list[$i]);
1895
1896            $wheres[] = '(subject LIKE ? OR body LIKE ?)';
1897            $params[] = '%' . $keyword . '%';
1898            $params[] = '%' . $keyword . '%';
1899        }
1900    }
1901    if ($wheres) {
1902        $where = ' WHERE ' . implode(' AND ', $wheres);
1903    } else {
1904        $where = '';
1905    }
1906   
1907    $select = "SELECT *";
1908    $from = " FROM c_diary";
1909    $order = " ORDER BY r_datetime DESC";
1910   
1911    $sql = $select . $from . $where . $order;
1912    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1913    foreach ($list as $key => $value) {
1914        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
1915        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']);
1916    }
1917   
1918    $sql = 
1919        "SELECT COUNT(*) "
1920        . $from
1921        . $where ;
1922    $total_num = db_get_one($sql, $params);
1923   
1924    $total_page_num =  ceil($total_num / $page_size);
1925    $next = ($page < $total_page_num);
1926    $prev = ($page > 1);
1927   
1928    return array($list , $prev , $next, $total_num, $total_page_num);
1929}
1930
1931function monitor_diary_list4c_diary_id($c_diary_id, $page_size, $page)
1932{
1933    $page = intval($page);
1934    $page_size = intval($page_size);
1935   
1936    $where = " WHERE c_diary_id = ? ";
1937    $params[] = intval($c_diary_id);
1938   
1939    $select = "SELECT c_diary.*";
1940    $from = " FROM c_diary";
1941    $order = " ORDER BY r_datetime DESC";
1942   
1943    $sql = $select . $from . $where . $order;
1944    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1945    foreach ($list as $key => $value) {
1946        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
1947        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']);
1948    }
1949   
1950    $sql = 
1951        "SELECT COUNT(*) "
1952        . $from
1953        . $where ;
1954    $total_num = db_get_one($sql, $params);
1955   
1956    $total_page_num =  ceil($total_num / $page_size);
1957    $next = ($page < $total_page_num);
1958    $prev = ($page > 1);
1959   
1960    return array($list , $prev , $next, $total_num, $total_page_num);
1961}
1962
1963function monitor_diary_comment_list($keyword, $page_size, $page)
1964{
1965    $page = intval($page);
1966    $page_size = intval($page_size);
1967   
1968    $wheres = array();
1969
1970    if ($keyword) {
1971        //全角空白を半角に統一
1972        $keyword = str_replace(' ', ' ', $keyword);
1973        $keyword_list = explode(' ', $keyword);
1974
1975        for($i = 0; $i < count($keyword_list); $i++) {
1976            $keyword = check_search_word($keyword_list[$i]);
1977
1978            $wheres[] = 'c_diary_comment.body LIKE ?';
1979            $params[] = '%' . $keyword . '%';
1980        }
1981    }
1982
1983    if ($wheres) {
1984        $where = ' WHERE ' . implode(' AND ', $wheres);
1985    } else {
1986        $where = '';
1987    }
1988
1989    $select = "SELECT c_diary_comment.*, c_diary.subject";
1990    $from = " FROM c_diary_comment"
1991        ." LEFT JOIN c_diary ON c_diary.c_diary_id = c_diary_comment.c_diary_id ";
1992    $order = " ORDER BY r_datetime desc";
1993   
1994    $sql = $select . $from . $where . $order;
1995    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1996    foreach ($list as $key => $value) {
1997        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
1998        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']);
1999    }
2000   
2001    $sql = 
2002        "SELECT COUNT(*) "
2003        . $from
2004        . $where ;
2005    $total_num = db_get_one($sql, $params);
2006   
2007    $total_page_num =  ceil($total_num / $page_size);
2008    $next = ($page < $total_page_num);
2009    $prev = ($page > 1);
2010   
2011    return array($list , $prev , $next, $total_num, $total_page_num);
2012}
2013
2014function monitor_diary_comment_list4c_diary_comment_id($c_diary_comment_id, $page_size, $page)
2015{
2016    $page = intval($page);
2017    $page_size = intval($page_size);
2018
2019    $where = " WHERE c_diary_comment.c_diary_comment_id = ? ";
2020    $params[] = intval($c_diary_comment_id);
2021   
2022    $select = "SELECT c_diary_comment.*, c_diary.subject";
2023    $from = " FROM c_diary_comment"
2024        ." LEFT JOIN c_diary ON c_diary.c_diary_id = c_diary_comment.c_diary_id ";
2025    $order = " ORDER BY r_datetime desc";
2026   
2027    $sql = $select . $from . $where . $order;
2028    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2029   
2030    foreach ($list as $key => $value) {
2031        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
2032        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']);
2033    }
2034   
2035    $sql = 
2036        "SELECT COUNT(*) "
2037        . $from
2038        . $where ;
2039    $total_num = db_get_one($sql, $params);
2040   
2041    $total_page_num =  ceil($total_num / $page_size);
2042    $next = ($page < $total_page_num);
2043    $prev = ($page > 1);
2044   
2045    return array($list , $prev , $next, $total_num, $total_page_num);
2046}
2047
2048function monitor_commu_list($keyword, $page_size, $page)
2049{
2050    $page = intval($page);
2051    $page_size = intval($page_size);
2052   
2053    $wheres = array();
2054
2055    if ($keyword) {
2056        $keyword = str_replace(' ', ' ', $keyword);
2057        $keyword_list = explode(' ', $keyword);
2058           
2059        for($i = 0; $i < count($keyword_list); $i++) {
2060            $keyword = check_search_word($keyword_list[$i]);
2061               
2062            $wheres[] = '(name LIKE ? OR info LIKE ?)';
2063            $params[] = '%' . $keyword . '%';
2064            $params[] = '%' . $keyword . '%';
2065        }
2066    }
2067
2068    if ($wheres) {
2069        $where = ' WHERE ' . implode(' AND ', $wheres);
2070    } else {
2071        $where = '';
2072    }
2073
2074    $select = "SELECT * ";
2075    $from = " FROM c_commu";
2076    $order = " ORDER BY r_datetime DESC";
2077   
2078    $sql = $select . $from . $where . $order;
2079   
2080    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2081   
2082    foreach ($list as $key => $value) {
2083        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id_admin']);
2084    }
2085   
2086    $sql = 
2087        "SELECT COUNT(*) "
2088        . $from
2089        . $where ;
2090    $total_num = db_get_one($sql, $params);
2091   
2092    $total_page_num =  ceil($total_num / $page_size);
2093    $next = ($page < $total_page_num);
2094    $prev = ($page > 1);
2095   
2096    return array($list, $prev, $next, $total_num, $total_page_num);
2097}
2098
2099function monitor_commu_list4c_commu_id($c_commu_id, $page_size, $page)
2100{
2101    $page = intval($page);
2102    $page_size = intval($page_size);
2103   
2104    $where = " WHERE c_commu_id = ? ";
2105    $params[] = intval($c_commu_id);
2106   
2107    $select = "SELECT * ";
2108    $from = " FROM c_commu";
2109    $order = " ORDER BY r_datetime DESC";
2110   
2111    $sql = $select . $from . $where . $order;
2112   
2113    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2114   
2115    foreach ($list as $key => $value) {
2116        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id_admin']);;
2117    }
2118   
2119    $sql = 
2120        "SELECT COUNT(*) "
2121        . $from
2122        . $where ;
2123    $total_num = db_get_one($sql, $params);
2124   
2125    $total_page_num =  ceil($total_num / $page_size);
2126    $next = ($page < $total_page_num);
2127    $prev = ($page > 1);
2128   
2129    return array($list , $prev , $next, $total_num, $total_page_num);
2130}
2131
2132function monitor_topic_comment_list($keyword, $page_size, $page)
2133{
2134    $page = intval($page);
2135    $page_size = intval($page_size);
2136   
2137    $where = " WHERE ctc.number <> 0  ";
2138
2139    if ($keyword) {
2140        $keyword = str_replace("?@", " ", $keyword);
2141        $keyword_list = explode(" ", $keyword);
2142           
2143        for($i=0;$i < count($keyword_list);$i++) {
2144            $keyword = check_search_word( $keyword_list[$i] );
2145               
2146            $where .= " AND (ctc.body LIKE ? )";
2147            $params[]="%$keyword%";
2148        }
2149    }
2150   
2151    $select = "SELECT ctc.*,ct.name as topic_name,c.name as commu_name";
2152    $from = " FROM c_commu_topic_comment as ctc"
2153            ." LEFT JOIN c_commu_topic as ct ON ct.c_commu_topic_id = ctc.c_commu_topic_id "
2154            ." LEFT JOIN c_commu as c ON c.c_commu_id = ct.c_commu_id ";
2155    $order = " ORDER BY r_datetime desc";
2156   
2157    $sql = $select . $from . $where . $order;
2158   
2159    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2160   
2161    foreach ($list as $key => $value) {
2162        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
2163        $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
2164        $list[$key]['nickname'] = $c_member['nickname'];
2165    }
2166   
2167    $sql = 
2168        "SELECT COUNT(*) "
2169        . $from
2170        . $where ;
2171    $total_num = db_get_one($sql, $params);
2172   
2173    $total_page_num =  ceil($total_num / $page_size);
2174    $next = ($page < $total_page_num);
2175    $prev = ($page > 1);
2176   
2177    return array($list , $prev , $next, $total_num, $total_page_num);
2178}
2179
2180function monitor_topic_comment_list4c_commu_topic_comment_id($c_commu_topic_comment_id, $page_size, $page)
2181{
2182    $page = intval($page);
2183    $page_size = intval($page_size);
2184   
2185    $where = " WHERE ctc.number <> 0 AND ctc.c_commu_topic_comment_id = ? ";
2186    $params[] = intval($c_commu_topic_comment_id);
2187   
2188    $select = "SELECT ctc.*,ct.name as topic_name,c.name as commu_name";
2189    $from = " FROM c_commu_topic_comment as ctc"
2190            ." LEFT JOIN c_commu_topic as ct ON ct.c_commu_topic_id = ctc.c_commu_topic_id "
2191            ." LEFT JOIN c_commu as c ON c.c_commu_id = ct.c_commu_id ";
2192    $order = " ORDER BY r_datetime desc";
2193   
2194    $sql = $select . $from . $where . $order;
2195   
2196    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2197   
2198    foreach ($list as $key => $value) {
2199        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
2200        $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
2201        $list[$key]['nickname'] = $c_member['nickname'];
2202    }
2203   
2204    $sql = 
2205        "SELECT COUNT(*) "
2206        . $from
2207        . $where ;
2208    $total_num = db_get_one($sql, $params);
2209   
2210    $total_page_num =  ceil($total_num / $page_size);
2211    $next = ($page < $total_page_num);
2212    $prev = ($page > 1);
2213   
2214    return array($list , $prev , $next, $total_num, $total_page_num);
2215}
2216
2217function monitor_topic_list($keyword, $page_size, $page)
2218{
2219    $page = intval($page);
2220    $page_size = intval($page_size);
2221   
2222    $wheres = array();
2223
2224    if ($keyword) {
2225        $keyword = str_replace(' ', ' ', $keyword);
2226        $keyword_list = explode(' ', $keyword);
2227
2228        for ($i = 0; $i < count($keyword_list); $i++) {
2229            $keyword = check_search_word($keyword_list[$i]);
2230
2231            $wheres[] = '(ctc.body like ? OR ct.name like ? OR c.name like ?)';
2232            $params[] = '%' . $keyword . '%';
2233            $params[] = '%' . $keyword . '%';
2234            $params[] = '%' . $keyword . '%';
2235        }
2236    }
2237   
2238    if ($wheres) {
2239        $where = ' WHERE ' . implode(' AND ', $wheres);
2240    } else {
2241        $where = '';
2242    }
2243
2244    $select = "SELECT ct.*," .
2245            "ct.name AS topic_name, c.name AS commu_name," .
2246            "ctc.body, ctc.filename, ctc.image_filename1, ctc.image_filename2, ctc.image_filename3";
2247
2248    $from = " FROM c_commu_topic AS ct"
2249            ." LEFT JOIN c_commu AS c ON c.c_commu_id = ct.c_commu_id "
2250            ." LEFT JOIN c_commu_topic_comment AS ctc ON (ctc.c_commu_topic_id = ct.c_commu_topic_id AND ctc.number = 0)";
2251
2252    $order = " ORDER BY r_datetime desc";
2253
2254    $sql = $select . $from . $where . $order;
2255
2256    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2257
2258    foreach ($list as $key => $value) {
2259        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
2260        $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
2261        $list[$key]['nickname'] = $c_member['nickname'];
2262        if (!empty($value['filename'])) {
2263            $list[$key]['original_filename'] = db_file_original_filename4filename($value['filename']);
2264        }
2265    }
2266
2267    $sql = 
2268        "SELECT COUNT(*) "
2269        . $from
2270        . $where ;
2271    $total_num = db_get_one($sql, $params);
2272   
2273    $total_page_num =  ceil($total_num / $page_size);
2274    $next = ($page < $total_page_num);
2275    $prev = ($page > 1);
2276   
2277    return array($list , $prev , $next, $total_num, $total_page_num);
2278}
2279
2280function monitor_topic_list4target_c_commu_topic_id($c_commu_topic_id, $page_size, $page)
2281{
2282    $page = intval($page);
2283    $page_size = intval($page_size);
2284   
2285    $where = " where ct.c_commu_topic_id = ? ";
2286    $params[] = intval($c_commu_topic_id);
2287   
2288    $select = "SELECT ct.*," .
2289            "ct.name as topic_name,c.name as commu_name," .
2290            "m.nickname,ctc.body as body," .
2291            "ctc.image_filename1 as image_filename1,ctc.image_filename2 as image_filename2,ctc.image_filename3 as image_filename3," .
2292            "ctc.filename as filename,f.original_filename as original_filename";
2293   
2294    $from = " FROM c_commu_topic as ct"
2295            ." LEFT JOIN c_member as m ON ct.c_member_id = m.c_member_id "
2296            ." LEFT JOIN c_commu as c ON c.c_commu_id = ct.c_commu_id "
2297            ." LEFT JOIN c_commu_topic_comment as ctc ON (ctc.c_commu_topic_id = ct.c_commu_topic_id AND ctc.number = 0)"
2298            ." LEFT JOIN c_file as f ON f.filename = ctc.filename "
2299            ;
2300    $order = " ORDER BY r_datetime desc";
2301   
2302    $sql = $select . $from . $where . $order;
2303   
2304    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2305   
2306    foreach ($list as $key => $value) {
2307        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
2308    }
2309   
2310    $sql = 
2311        "SELECT count(*) "
2312        . $from
2313        . $where ;
2314    $total_num = db_get_one($sql, $params);
2315   
2316    $total_page_num =  ceil($total_num / $page_size);
2317    $next = ($page < $total_page_num);
2318    $prev = ($page > 1);
2319   
2320    return array($list , $prev , $next, $total_num, $total_page_num);
2321}
2322
2323function monitor_review_list($keyword, $page_size, $page)
2324{
2325    $page = intval($page);
2326    $page_size = intval($page_size);
2327   
2328    $wheres = array();
2329
2330    if ($keyword) {
2331        //全角空白を半角に統一
2332        $keyword = str_replace(' ', ' ', $keyword);
2333        $keyword_list = explode(' ', $keyword);
2334
2335        for ($i = 0; $i < count($keyword_list); $i++) {
2336            $keyword = check_search_word($keyword_list[$i]);
2337
2338            $wheres[] = 'c_review_comment.body like ?';
2339            $params[] = '%' . $keyword . '%';
2340        }
2341    }
2342   
2343    if ($wheres) {
2344        $where = ' WHERE ' . implode(' AND ', $wheres);
2345    } else {
2346        $where = '';
2347    }
2348   
2349    $select = "SELECT c_review_comment.*";
2350    $from = " FROM c_review_comment";
2351    $order = " ORDER BY r_datetime desc";
2352   
2353    $sql = $select . $from . $where . $order;
2354    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2355   
2356
2357    foreach ($list as $key => $value) {
2358        $list[$key]['c_member'] = db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
2359        $list[$key]['c_review'] = db_review_list_product_c_review4c_review_id($value['c_review_id']);
2360    }
2361
2362    $sql = 
2363        "SELECT COUNT(*) "
2364        . $from
2365        . $where ;
2366    $total_num = db_get_one($sql,$params);
2367   
2368    $total_page_num =  ceil($total_num / $page_size);
2369    $next = ($page < $total_page_num);
2370    $prev = ($page > 1);
2371   
2372    return array($list , $prev , $next, $total_num, $total_page_num);
2373}
2374
2375function monitor_review_list4c_review_id($c_review_comment_id, $page_size, $page)
2376{
2377    $page = intval($page);
2378    $page_size = intval($page_size);
2379   
2380    $where = " WHERE c_review_comment_id = ? ";
2381    $params[] = intval($c_review_comment_id);
2382   
2383    $select = "SELECT c_review_comment.*";
2384    $from = " FROM c_review_comment";
2385    $order = " ORDER BY r_datetime desc";
2386   
2387    $sql = $select . $from . $where . $order;
2388    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2389   
2390    foreach ($list as $key => $value) {
2391        $list[$key]['c_member'] = db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
2392        $list[$key]['c_review'] = db_review_list_product_c_review4c_review_id($value['c_review_id']);
2393    }
2394
2395    $sql = 
2396        "SELECT COUNT(*) "
2397        . $from
2398        . $where ;
2399    $total_num = db_get_one($sql, $params);
2400   
2401    $total_page_num =  ceil($total_num / $page_size);
2402    $next = ($page < $total_page_num);
2403    $prev = ($page > 1);
2404   
2405    return array($list , $prev , $next, $total_num, $total_page_num);
2406}
2407
2408function _db_count_c_commu_topic_comments4c_commu_topic_id($c_commu_topic_id)
2409{
2410    $sql = "SELECT count(*) FROM c_commu_topic_comment" .
2411        " WHERE c_commu_topic_id = ? AND number > 0";
2412    $params = array($c_commu_topic_id);
2413    return db_get_one($sql, $params);
2414}
2415//フリーページを追加
2416function db_admin_insert_c_free_page($title, $body, $auth, $type)
2417{
2418    $data = array(
2419        'title' => strval($title),
2420        'body'  => strval($body),
2421        'auth'  => intval($auth),
2422        'type'  => strval($type),
2423    );
2424    return db_insert('c_free_page', $data);
2425}
2426
2427//フリーページを編集
2428function db_admin_update_c_free_page($c_free_page_id, $title, $body, $auth, $type)
2429{
2430    $data = array(
2431        'title' => strval($title),
2432        'body'  => strval($body),
2433        'auth'  => intval($auth),
2434        'type'  => strval($type),
2435    );
2436    $where = array('c_free_page_id' => intval($c_free_page_id));
2437    return db_update('c_free_page', $data, $where);
2438}
2439
2440//フリーページを削除
2441function db_admin_delete_c_free_page($c_free_page_id)
2442{
2443    $sql = "DELETE FROM c_free_page WHERE c_free_page_id = ?";
2444    $params = array(intval($c_free_page_id));
2445    return db_query($sql, $params);
2446}
2447
2448
2449//フリーページを全て取得(ページャー付き)
2450function db_admin_get_c_free_page_all($page, $page_size, &$pager)
2451{
2452    $sql = 'SELECT * FROM c_free_page ORDER BY c_free_page_id DESC';
2453
2454    $list = db_get_all_page($sql, $page, $page_size, $params);
2455
2456    $sql = 'SELECT count(*) FROM c_free_page';
2457    $total_num = db_get_one($sql, $params);
2458    $pager = admin_make_pager($page, $page_size, $total_num);
2459
2460    return $list;
2461}
2462
2463//フリーページを一つ取得
2464function db_admin_get_c_free_page_one($c_free_page_id)
2465{
2466    $sql = 'SELECT * FROM c_free_page WHERE c_free_page_id = ?';
2467    $params = array(intval($c_free_page_id));
2468
2469    return db_get_row($sql, $params);
2470}
2471
2472//APIを全て取得(ページャー付き)
2473function db_admin_get_c_api_all($page, $page_size, &$pager)
2474{
2475    $sql = 'SELECT * FROM c_api ORDER BY c_api_id';
2476
2477    $list = db_get_all_page($sql, $page, $page_size, $params);
2478
2479    $sql = 'SELECT count(*) FROM c_api';
2480    $total_num = db_get_one($sql, $params);
2481    $pager = admin_make_pager($page, $page_size, $total_num);
2482
2483    return $list;
2484}
2485
2486//APIを編集
2487function db_admin_update_c_api($c_api_id, $name, $ip)
2488{
2489    $data = array(
2490        'name' => strval($name),
2491        'ip' => strval($ip),
2492    );
2493    $where = array('c_api_id' => intval($c_api_id));
2494    return db_update('c_api', $data, $where);
2495}
2496
2497//CMDを追加
2498function db_admin_insert_c_cmd($name, $permit)
2499{
2500    $data = array(
2501        'name' => strval($name),
2502        'permit' => intval($permit),
2503    );
2504    return db_insert('c_cmd', $data);
2505}
2506
2507//CMDを編集
2508function db_admin_update_c_cmd($c_cmd_id, $name, $permit)
2509{
2510    $data = array(
2511        'name' => strval($name),
2512        'permit' => intval($permit),
2513    );
2514    $where = array('c_cmd_id' => intval($c_cmd_id));
2515    return db_update('c_cmd', $data, $where);
2516}
2517
2518//CMDを削除
2519function db_admin_delete_c_cmd($c_cmd_id)
2520{
2521    $sql = "DELETE FROM c_cmd WHERE c_cmd_id = ?";
2522    $params = array(intval($c_cmd_id));
2523    return db_query($sql, $params);
2524}
2525
2526
2527//CMDを全て取得
2528function db_admin_get_c_cmd_all()
2529{
2530    $sql = 'SELECT * FROM c_cmd ORDER BY c_cmd_id';
2531    return db_get_all($sql);
2532}
2533
2534//CMDを一つ取得
2535function db_admin_get_c_cmd_one($c_cmd_id)
2536{
2537    $sql = 'SELECT * FROM c_cmd WHERE c_cmd_id = ?';
2538    $params = array(intval($c_cmd_id));
2539
2540    return db_get_row($sql, $params);
2541}
2542
2543/***
2544 * CMD(小窓)の設定リストを取得する
2545 *
2546 * @return array 小窓の設定リスト
2547 */
2548function db_admin_get_c_cmd_list4name()
2549{
2550    $sql = 'SELECT * FROM c_cmd';
2551    return db_get_all($sql);
2552}
2553
2554/**
2555 * 祝日のリストを取得
2556 */
2557function db_admin_c_holiday_list()
2558{
2559    $sql = 'SELECT * FROM c_holiday ORDER BY month';
2560    $holiday_list = db_get_all($sql);
2561
2562    return $holiday_list;
2563}
2564
2565/**
2566 * 休日を追加
2567 */
2568function db_admin_insert_c_holiday($name, $month, $day)
2569{
2570    $data = array(
2571        'name' => strval($name),
2572        'month' => intval($month),
2573        'day' => intval($day),
2574    );
2575    return db_insert('c_holiday', $data);
2576}
2577
2578/**
2579 * 休日を編集
2580 */
2581function db_admin_update_c_holiday($c_holiday_id, $name, $month, $day)
2582{
2583    $data = array(
2584        'name' => strval($name),
2585        'month' => intval($month),
2586        'day' => intval($day),
2587    );
2588    $where = array('c_holiday_id' => intval($c_holiday_id));
2589    return db_update('c_holiday', $data, $where);
2590}
2591
2592/**
2593 * 休日を削除
2594 */
2595function db_admin_delete_c_holiday($c_holiday_id)
2596{
2597    $sql = "DELETE FROM c_holiday WHERE c_holiday_id = ?";
2598    $params = array(intval($c_holiday_id));
2599    return db_query($sql, $params);
2600}
2601
2602//メッセージ送信履歴を挿入
2603function db_admin_insert_c_send_messages_history($subject, $body, $send_num, $type, $c_member_ids)
2604{
2605
2606    //配列を文字列に変換
2607    if($c_member_ids) {
2608        $c_member_ids = implode("-",$c_member_ids);
2609    } else {
2610        return;
2611    }
2612
2613    $data = array(
2614        'subject'       => strval($subject),
2615        'body'          => strval($body),
2616        'send_num'      => intval($send_num),
2617        'type'          => strval($type),
2618        'c_member_ids'  => strval($c_member_ids),
2619        'r_datetime'    => db_now()
2620    );
2621
2622    return db_insert('c_send_messages_history', $data);
2623
2624}
2625
2626//メッセージ送信履歴を全て取得(ページャー付き)
2627function db_admin_get_c_send_messages_history_all($page, $page_size, &$pager)
2628{
2629
2630    $sql = 'SELECT * FROM c_send_messages_history ORDER BY c_send_messages_history_id DESC';
2631
2632    $history_list = db_get_all_page($sql, $page, $page_size, $params);
2633
2634    foreach ($history_list as $key => $history) {
2635        $history_list[$key]['c_member_ids'] = explode("-", $history['c_member_ids']);
2636    }
2637
2638    $sql = 'SELECT count(*) FROM c_send_messages_history';
2639    $total_num = db_get_one($sql, $params);
2640    $pager = admin_make_pager($page, $page_size, $total_num);
2641
2642    return $history_list;
2643}
2644
2645//メッセージ送信履歴を一つ取得
2646function db_admin_get_c_send_messages_history($c_send_messages_history_id)
2647{
2648
2649    $sql = 'SELECT * FROM c_send_messages_history WHERE c_send_messages_history_id = ?';
2650
2651    $params = array(intval($c_send_messages_history_id));
2652
2653    $history = db_get_row($sql, $params);
2654
2655    $history['c_member_ids'] = explode("-", $history['c_member_ids']);
2656
2657    return $history;
2658}
2659
2660//メッセージをキューに入れる
2661function db_admin_insert_c_message_queue($c_member_id_from, $c_member_id_to, $subject, $body)
2662{
2663    $data = array(
2664        'c_member_id_from' => intval($c_member_id_from),
2665        'c_member_id_to'   => intval($c_member_id_to),
2666        'subject'          => strval($subject),
2667        'body'             => strval($body),
2668    );
2669    return db_insert('c_message_queue', $data);
2670}
2671
2672//メッセージをキューから削除
2673function db_admin_delete_c_message_queue($c_message_queue_id)
2674{
2675
2676    $sql = "DELETE FROM c_message_queue WHERE c_message_queue_id = ?";
2677    $params = array(intval($c_message_queue_id));
2678
2679    return db_query($sql, $params);
2680}
2681
2682//ランクを追加
2683function db_admin_insert_c_rank($name, $image_filename, $point)
2684{
2685    $data = array(
2686        'name' => strval($name),
2687        'image_filename' => strval($image_filename),
2688        'point' => intval($point),
2689    );
2690    return db_insert('c_rank', $data);
2691}
2692
2693//ランクを編集
2694function db_admin_update_c_rank($c_rank_id, $name, $image_filename, $point)
2695{
2696    $data = array(
2697        'name' => strval($name),
2698        'image_filename' => strval($image_filename),
2699        'point' => intval($point),
2700    );
2701    $where = array('c_rank_id' => intval($c_rank_id));
2702    return db_update('c_rank', $data, $where);
2703}
2704
2705//ランクを削除
2706function db_admin_delete_c_rank($c_rank_id)
2707{
2708    $sql = "DELETE FROM c_rank WHERE c_rank_id = ?";
2709    $params = array(intval($c_rank_id));
2710    return db_query($sql, $params);
2711}
2712
2713//ランクを全て取得
2714function db_admin_get_c_rank_all()
2715{
2716    $sql = 'SELECT * FROM c_rank ORDER BY point';
2717    return db_get_all($sql);
2718}
2719
2720//ランクを一つ取得
2721function db_admin_get_c_rank_one($c_rank_id)
2722{
2723    $sql = 'SELECT * FROM c_rank WHERE c_rank_id = ?';
2724    $params = array(intval($c_rank_id));
2725
2726    return db_get_row($sql, $params);
2727}
2728
2729//アクションを編集
2730function db_admin_update_c_action($c_action_id, $point)
2731{
2732    $data = array(
2733        'point' => intval($point),
2734    );
2735    $where = array('c_action_id' => intval($c_action_id));
2736    return db_update('c_action', $data, $where);
2737}
2738
2739//アクションを全て取得
2740function db_admin_get_c_action_all()
2741{
2742    $sql = 'SELECT * FROM c_action ORDER BY c_action_id';
2743    return db_get_all($sql);
2744}
2745
2746/**
2747 * 指定したファイル名のファイルへのリンクを削除する
2748 *
2749 * @param string $filename
2750 */
2751function db_admin_delete_c_file_link4filename($filename)
2752{
2753    // c_commu_topic_comment
2754    $tbl = 'c_commu_topic_comment';
2755    _db_admin_empty_image_filename($tbl, $filename, 'filename');
2756}
2757
2758function db_admin_get_c_member_profile_pnepoint($c_member_id)
2759{
2760    $sql = 'SELECT c_profile_id FROM c_profile where name = \'PNE_POINT\'';
2761    $c_profile_id =  db_get_one($sql);
2762    $params = array($c_member_id , $c_profile_id);
2763    $sql = 'SELECT * FROM c_member_profile where c_member_id = ? and c_profile_id = ?';
2764    $c_member_profile = db_get_row($sql, $params);
2765
2766    return  $c_member_profile;
2767}
2768
2769function db_admin_c_blacklist_list($page, $page_size)
2770{
2771    $sql = 'SELECT b.c_blacklist_id,ms.c_member_id,b.info,m.nickname,b.easy_access_id ' .
2772            ' FROM c_blacklist AS b' .
2773            ' LEFT JOIN c_member_secure AS ms ON b.easy_access_id = ms.easy_access_id'.
2774            ' LEFT JOIN c_member AS m ON ms.c_member_id = m.c_member_id' .
2775            ' ORDER BY b.c_blacklist_id ASC';
2776    $list = db_get_all_page($sql, $page, $page_size);
2777   
2778    $sql = 'SELECT count(*) FROM c_blacklist';
2779    $total_num = db_get_one($sql);
2780   
2781    $total_page_num = ceil($total_num / $page_size);
2782    $next = ($page < $total_page_num);
2783    $prev = ($page > 1);
2784   
2785    return array($list, $prev, $next, $total_num, $total_page_num);
2786}
2787
2788function db_admin_insert_c_blacklist($easy_access_id, $info)
2789{
2790    $data = array(
2791        'easy_access_id' => $easy_access_id,
2792        'info' => (string)$info,
2793    );
2794    return db_insert('c_blacklist', $data);
2795}
2796
2797function db_admin_update_c_blacklist($c_blacklist_id, $easy_access_id, $info)
2798{
2799    $data = array(
2800        'easy_access_id' => $easy_access_id,
2801        'info' => (string)$info,
2802    );
2803    $where = array('c_blacklist_id' => $c_blacklist_id);
2804    return db_update('c_blacklist', $data, $where);
2805}
2806
2807function db_admin_delete_c_blacklist($c_blacklist_id)
2808{
2809    $sql = 'DELETE FROM c_blacklist WHERE c_blacklist_id = ?';
2810    $params = array(intval($c_blacklist_id));
2811    db_query($sql, $params);
2812}
2813
2814function db_admin_c_blacklist($c_blacklist_id)
2815{
2816    $sql = 'SELECT b.c_blacklist_id,ms.c_member_id,b.info,m.nickname,b.easy_access_id ' .
2817            ' FROM c_blacklist AS b' .
2818            ' LEFT JOIN c_member_secure AS ms ON b.easy_access_id = ms.easy_access_id'.
2819            ' LEFT JOIN c_member AS m ON ms.c_member_id = m.c_member_id' .
2820            ' WHERE b.c_blacklist_id = ? '
2821            ;
2822    $param = array($c_blacklist_id);
2823    $blacklist = db_get_row($sql, $param);
2824   
2825    return $blacklist;
2826}
2827
2828?>
Note: See TracBrowser for help on using the repository browser.