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

source: OpenPNE/branches/ebihara/prj_dev28x/webapp/modules/admin/lib/db_admin.php @ 2761

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

#685:誕生日が0年のユーザを管理画面の「メンバーリスト」の生年月日による絞り込みの対象外とするように

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