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

source: OpenPNE/branches/ebihara/prj_dev28_misc03/webapp/modules/admin/lib/db_admin.php @ 2405

Last change on this file since 2405 was 2405, checked in by ebihara, 16 years ago

#600:管理画面のプロフィール追加時、function cacheが削除できなかった現象を修正

File size: 69.0 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
561    //最終ログイン時間で絞り込み
562
563    if (isset($cond_list['last_login'])) {
564
565        //期間で分ける
566        switch($cond_list['last_login']) {
567            case 1: //3日以内
568                $sql .= ' AND access_date >= ?';
569                $params[] = date('Y-m-d', strtotime('-3 day'));
570            break;
571
572            case 2: //3~7日以内
573                $sql .= ' AND access_date >= ? AND access_date < ?';
574                $params[] = date('Y-m-d', strtotime('-7 day'));
575                $params[] = date('Y-m-d', strtotime('-3 day'));
576            break;
577
578            case 3: //7~30日以内
579                $sql .= ' AND access_date >= ? AND access_date < ?';
580                $params[] = date('Y-m-d', strtotime('-30 day'));
581                $params[] = date('Y-m-d', strtotime('-7 day'));
582            break;
583
584            case 4: //30~90日以内
585                $sql .= ' AND access_date >= ? AND access_date < ?';
586                $params[] = date('Y-m-d', strtotime('-90 day'));
587                $params[] = date('Y-m-d', strtotime('-30 day'));
588            break;
589        }
590    }
591
592    // --- ソートオーダーここから
593
594    // $orderの例:id_1 , id_2
595    // 「-」の前が項目名であとが1なら昇順 2なら降順
596    $type = explode("-",$order);
597
598    //ランクでソートとポイントでソートは同等
599    if ($type[0] == 'RANK') {
600        $type[0] = 'PNE_POINT';
601    }
602
603    $is_order = false;
604    if ($order) {
605        $is_order = true;
606
607        switch ($type[0]) {
608            case "c_member_id":
609                $sql .= ' ORDER BY c_member_id';
610            break;
611            case "nickname":
612                $sql .= ' ORDER BY nickname';
613            break;
614            case "image_filename":
615                $sql .= ' ORDER BY image_filename';
616            break;
617            case "c_member_id_invite":
618                $sql .= ' ORDER BY c_member_id_invite';
619            break;
620
621            case "access_date":
622                $sql .= ' ORDER BY access_date';
623            break;
624
625            case "r_date":
626                $sql .= ' ORDER BY r_date';
627            break;
628            case "birth":
629                //降順指定
630                if ($type[1] == "2") {
631                    $sql .= ' ORDER BY birth_year DESC, birth_month DESC, birth_day';
632                } else {
633                    $sql .= ' ORDER BY birth_year, birth_month, birth_day';
634                }
635            break;
636            default :
637                $is_order = false;
638
639        }
640
641        //降順指定
642        if ($is_order && $type[1] == "2") {
643            $sql .= ' DESC';
644        }
645
646    }
647    // --- ソートオーダーここまで
648
649    $ids = db_get_col($sql, $params);
650
651    // --- ポイントで絞り込み ここから
652    if ( isset($cond_list['s_point']) || isset($cond_list['e_point'])) {
653
654        $sql = 'SELECT c_member_id'.
655               ' FROM c_member_profile '.
656               ' INNER JOIN c_profile USING (c_profile_id) '.
657               ' WHERE name = ? ';
658        $params = array(
659            'PNE_POINT',
660        );
661        //開始ポイント
662        if( isset($cond_list['s_point']) ){
663            $sql .= ' AND value >= ?';
664            $params[] = $cond_list['s_point'];
665        }
666        //終了ポイント
667        if( isset($cond_list['e_point']) ){
668            $sql .= ' AND value <= ?';
669            $params[] = $cond_list['e_point'];
670        }
671
672        $point_ids = db_get_col($sql, $params);
673
674        //ポイントで絞り込み
675        $ids = array_intersect($ids, $point_ids);
676
677    }
678    // --- ポイントで絞り込み ここまで
679
680    //各プロフィールごとで絞り結果をマージする(ソートオーダーつき)
681    $_sql = 'SELECT name, form_type, c_profile_id FROM c_profile';
682    $profile = db_get_all($_sql);
683
684    if ( $profile ) {
685        foreach ($profile as $value) {
686            if(!empty($cond_list[$value['name']])
687           && ($value['form_type'] == 'radio' || $value['form_type'] == 'select')) {
688                $sql = 'SELECT c_member_id FROM c_member_profile WHERE c_profile_option_id = ?';
689                $params = array($cond_list[$value['name']]);
690                $temp_ids = db_get_col($sql, $params);
691                $ids = array_intersect($ids, $temp_ids);
692            }
693            if($value['name'] == $type[0]) {
694                $sql = 'SELECT c_member_id FROM c_member_profile WHERE c_profile_id = ?';
695
696                if ($value['form_type'] == 'radio'
697                 || $value['form_type'] == 'select'
698                 || $value['form_type'] == 'checkbox'
699                ) {
700                    $sql .= ' ORDER BY c_profile_option_id';
701                } else {
702                    if ($value['name'] == "PNE_POINT") {
703                        $sql .= ' ORDER BY cast(value as signed)';
704                    } else {
705                        $sql .= ' ORDER BY value';
706                    }
707                }
708
709                if ($type[1] == "2") {
710                    $sql .= ' DESC';
711                }
712                $params = array($value['c_profile_id']);
713                $temp_ids = db_get_col($sql, $params);
714                $ids = array_intersect($temp_ids, $ids);
715            }
716
717        }
718    }
719
720    return $ids;
721}
722
723/**
724 * ユーザーリスト取得
725 * 誕生年+プロフィール(select,radioのみ)
726 */
727function _db_admin_c_member_list($page, $page_size, &$pager, $cond_list, $order)
728{
729    $ids = _db_admin_c_member_id_list($cond_list, $order);
730    $total_num = count($ids);
731    $ids = array_slice($ids, ($page - 1) * $page_size, $page_size);
732
733    $c_member_list = array();
734    foreach ($ids as $id) {
735        $c_member_list[] = db_member_c_member4c_member_id($id, true, true, 'private');
736    }
737
738    if ($total_num > 0) {
739        $pager = admin_make_pager($page, $page_size, $total_num);
740    }
741
742    return $c_member_list;
743}
744
745function db_c_profile_option4c_profile_option_id($c_profile_option_id)
746{
747    $sql = "SELECT * FROM c_profile_option WHERE c_profile_option_id = ? ";
748    $params = array(intval($c_profile_option_id));
749    return db_get_row($sql, $params);
750}
751
752/**
753 * メンバー絞込みパラメータ取得
754 */
755function validate_cond($requests)
756{
757    $cond_list = array();
758    //誕生年
759    if (!empty($requests['s_year'])) {
760        $cond_list['s_year'] = intval($requests['s_year']);
761    }
762    if (!empty($requests['e_year'])) {
763        $cond_list['e_year'] = intval($requests['e_year']);
764    }
765    //プロフィール
766    $profile_list = db_member_c_profile_list();
767
768    foreach ($profile_list as $key => $value) {
769        if (!empty($requests[$key])) {
770            $cond_list[$key] = intval($requests[$key]);
771        }
772    }
773
774    // 最終ログイン時間
775    if (!empty($requests['last_login'])) {
776        $cond_list['last_login'] = intval($requests['last_login']);
777    }
778
779
780    //ポイント
781    if (!empty($requests['s_point'])) {
782        $cond_list['s_point'] = intval($requests['s_point']);
783    }
784    if (!empty($requests['e_point'])) {
785        $cond_list['e_point'] = intval($requests['e_point']);
786    }
787
788
789
790    return $cond_list;
791}
792
793function do_admin_send_mail($c_member_id, $subject, $body)
794{
795    $c_member = db_member_c_member4c_member_id($c_member_id, true);
796
797    if ($c_member['secure']['pc_address']) {
798        $send_address = $c_member['secure']['pc_address'];
799    } else {
800        $send_address = $c_member['secure']['ktai_address'];
801    }
802
803    if (OPENPNE_MAIL_QUEUE) {
804        //メールキューに蓄積
805        put_mail_queue($send_address, $subject, $body);
806    } else {
807        t_send_email($send_address, $subject, $body);
808    }
809}
810
811//メッセージ受信メール(メール&メッセージキュー蓄積対応)
812function do_admin_send_message($c_member_id_from, $c_member_id_to, $subject, $body)
813{
814    //メッセージ
815    if (OPENPNE_MESSAGE_QUEUE) {
816        //メッセージキューに蓄積
817        db_admin_insert_c_message_queue($c_member_id_from, $c_member_id_to, $subject, $body);
818        return true;
819    } else {
820        db_message_insert_c_message($c_member_id_from, $c_member_id_to, $subject, $body);
821        do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from);
822        do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from);
823        return true;
824    }
825
826    return false;
827}
828
829//メッセージ受信メール(メールキュー蓄積対応)
830function do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from)
831{
832    $c_member_to = db_member_c_member4c_member_id($c_member_id_to, true);
833    $pc_address = $c_member_to['secure']['pc_address'];
834    $is_receive_mail = $c_member_to['is_receive_mail'];
835
836    $params = array(
837        "c_member_to"   => db_member_c_member4c_member_id($c_member_id_to),
838        "c_member_from" => db_member_c_member4c_member_id($c_member_id_from),
839    );
840    return admin_fetch_send_mail($pc_address, 'm_pc_message_zyushin', $params, $is_receive_mail);
841}
842
843//◆メッセージ受信メール(携帯)
844function do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from)
845{
846    $c_member_to = db_member_c_member4c_member_id($c_member_id_to, true);
847    $ktai_address = $c_member_to['secure']['ktai_address'];
848    $is_receive_ktai_mail = $c_member_to['is_receive_ktai_mail'];
849    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_to['c_member_id'], true)));
850    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
851
852    $params = array(
853        'c_member_to'   => db_member_c_member4c_member_id($c_member_id_to),
854        'c_member_from' => db_member_c_member4c_member_id($c_member_id_from),
855        'login_url' => $login_url,
856    );
857    return admin_fetch_send_mail($ktai_address, 'm_ktai_message_zyushin', $params, $is_receive_ktai_mail);
858}
859
860function admin_fetch_send_mail($address, $tpl_name, $params = array(), $force = true, $from = '')
861{
862    $tpl_name .= '.tpl';
863    if ($tpl = fetch_mail_m_tpl($tpl_name, $params)) {
864        list($subject, $body) = $tpl;
865        if ($from) {
866            if (OPENPNE_MAIL_QUEUE) {
867                //メールキューに蓄積
868                put_mail_queue($address, $subject, $body, $force, $from);
869            } else {
870                t_send_email($address, $subject, $body, $force, $from);
871            }
872        } else {
873            if (OPENPNE_MAIL_QUEUE) {
874                //メールキューに蓄積
875                put_mail_queue($address, $subject, $body, $force);
876            } else {
877                t_send_email($address, $subject, $body, $force);
878            }
879        }
880        return true;
881    } else {
882        return false;
883    }
884}
885
886function db_access_analysis_c_admin_user_id4username($username)
887{
888    $sql = "SELECT c_admin_user_id FROM c_admin_user" .
889        " WHERE username = ?";
890    $params = array($username);
891    return db_get_one($sql,$params);
892}
893
894function p_access_analysis_month_access_analysis_month($ktai_flag)
895{
896    $sql = "SELECT concat(left(r_datetime, 7), '-01') as ym, count(*) as count" .
897            " FROM c_access_log " .
898            " where ktai_flag = ?" .
899            " group by ym";
900    $params = array(intval($ktai_flag));           
901    $list = db_get_all($sql,$params);
902    return $list;
903}
904
905
906function p_access_analysis_day_access_analysis_day($ym, $ktai_flag)
907{
908    $sql = "SELECT left(r_datetime,10) as ymd , count(*) as count" .
909            " FROM c_access_log " .
910            " where left(r_datetime, 7) = ?" .
911            " and ktai_flag = ? " .
912            " group by ymd";           
913    $params = array(intval(substr($ym,0,7)),intval($ktai_flag));
914    $list = db_get_all($sql,$params);
915   
916    $year = substr($ym, 0, 4);
917    $month = substr($ym, 5,2);
918   
919    $return = array();
920    $days_num = date("t", mktime (0,0,0,$month,1,$year));
921    for($i=1 ; $i<=$days_num; $i++) {
922        $date = substr($ym,0,8) . substr("00".$i, -2, 2);
923
924        $count = 0;
925        foreach($list as $value) {
926            if ($value['ymd'] == $date) {
927                $count = $value['count'];
928            }
929        }
930        $return[] = array("ymd"=>$date, "count"=>$count);
931    }
932    return $return;
933}
934
935function get_page_name($ktai_flag, $orderby=1)
936{
937    if ($orderby == 1) {
938        $orderby_str = " order by page_name asc";
939    } elseif ($orderby == -1) {
940        $orderby_str = " order by page_name desc";
941    }
942    $sql = "select distinct page_name from c_access_log " .
943            " where ktai_flag = ? " .
944            $orderby_str;
945    $params = array(intval($ktai_flag));
946    return db_get_col($sql,$params);
947}
948
949function p_access_analysis_page_access_analysis_page4ym($ymd, $month_flag, $ktai_flag, $orderby)
950{
951
952    if ($orderby == 1) {
953        $orderby_str = " order by page_name asc";
954    } elseif ($orderby == -1) {
955        $orderby_str = " order by page_name desc";
956    } elseif ($orderby == 2) {
957        $orderby_str = " order by count asc";
958    } elseif ($orderby == -2) {
959        $orderby_str = " order by count desc";
960    }
961    $sql = "select page_name , count(*) as count from c_access_log where ktai_flag = ? ";
962    $params = array(intval($ktai_flag));
963    if ($month_flag) {
964        $sql .= " and left(r_datetime, 7) = ? ";
965        array_push($params,substr($ymd,0,7));
966    } else {
967        $sql .= " and left(r_datetime,10) = ? ";
968        array_push($params,$ymd);
969    }
970    $sql .= " group by page_name ".    $orderby_str;
971    $list = db_get_all($sql,$params);
972
973    $sum = 0;
974    $return = array();
975    if (abs($orderby) == 1) {
976        $page_name = get_page_name($ktai_flag, $orderby);
977        foreach($page_name as $name) {
978            $count = 0;
979            foreach($list as $value) {
980                if ($value['page_name'] == $name) $count = $value['count'];
981            }
982
983                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);
984
985            $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);
986            $sum += $count;
987        }
988    } elseif (abs($orderby) == 2) {
989        $page_name = get_page_name($ktai_flag);
990
991        $t_page_name = $page_name;
992
993        //アクセスがゼロのページを取得する
994        foreach($page_name as $key=>$name) {
995            foreach($list as $value) {
996                if ($value['page_name'] == $name) {
997                    unset($page_name[$key]);//$listに含まれるページネームを削除
998                }
999            }
1000        }
1001
1002        foreach($page_name as $key=>$name) {
1003            $page_name[$key] = array("page_name"=>$name, "count"=>0);
1004        }
1005
1006        if ($orderby == 2) {
1007            $return = array_merge($page_name , $list);
1008        } elseif ($orderby == -2) {
1009            $return = array_merge($list, $page_name);
1010        }
1011        foreach($list as $value) {
1012            $sum += $value['count'];
1013        }
1014
1015        foreach($return as $value) {
1016
1017            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']);
1018
1019            $value['is_target_c_member_id'] = $is_target_c_member_id;
1020            $value['is_target_c_commu_id'] = $is_target_c_commu_id;
1021            $value['is_target_c_topic_id'] = $is_target_c_topic_id;
1022            $value['is_target_c_diary_id'] = $is_target_c_diary_id;
1023            $value['is_c_member_id'] = $is_c_member_id;
1024            $t_return[] = $value;
1025
1026        }
1027
1028        $return = $t_return;
1029
1030    }
1031   
1032    return array($return, $sum);
1033}
1034
1035
1036/*
1037 * target_commu
1038 *
1039 */
1040function p_access_analysis_target_commu_target_commu4ym_page_name
1041($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1042{
1043   
1044    $start = ($page - 1) * $page_size;
1045   
1046    if ($orderby == 1) {
1047        $orderby_str = " order by target_c_commu_id asc";
1048    } elseif ($orderby == -1) {
1049        $orderby_str = " order by target_c_commu_id desc";
1050    } elseif ($orderby == 2) {
1051        $orderby_str = " order by count asc";
1052    } elseif ($orderby == -2) {
1053        $orderby_str = " order by count desc";
1054    }
1055   
1056    $sql = "select target_c_commu_id , count(*) as count from c_access_log  where ktai_flag = ? ";
1057    $params = array(intval($ktai_flag));
1058    if ($month_flag) {
1059            $sql .= " and left(r_datetime, 7) = ? ";
1060            array_push($params,substr($ymd,0,7));
1061    } else {
1062            $sql .= " and left(r_datetime,10) = ? ";
1063            array_push($params,$ymd);
1064    }
1065    if ($page_name!="all") {
1066            $sql .= " and page_name = ? ";
1067            array_push($params,$page_name);
1068    }
1069    $sql .= " and target_c_commu_id <> 0 ";
1070    $sql .= " group by target_c_commu_id " .$orderby_str." limit $start, $page_size";
1071    $list = db_get_all($sql,$params);
1072
1073    $return = array();
1074    $sum = 0;
1075    foreach($list as $key => $value) {
1076        if ($value['target_c_commu_id']) {
1077            $c_commu = db_commu_c_commu4c_commu_id($value['target_c_commu_id']);
1078            $return[] = array_merge($value, $c_commu);
1079            $sum += $value['count'];
1080        }
1081    }
1082
1083    $sql =   "select count(*) from c_access_log  where ktai_flag = ? ";
1084    $params = array(intval($ktai_flag));
1085    if ($month_flag) {
1086        $sql .= " and left(r_datetime, 7) = ? ";
1087        array_push($params,substr($ymd,0,7));
1088    } else {
1089        $sql .= " and left(r_datetime,10) = ? ";
1090        array_push($params,$ymd);
1091    }
1092    if ($page_name!="all") {
1093        $sql .= " and page_name = ? ";
1094        array_push($params,$page_name);
1095    }
1096    $sql .= " and target_c_commu_id <> 0 ";
1097    $sql .= " group by target_c_commu_id ";
1098    $result = db_get_all($sql,$params);
1099    $total_num = count($result);
1100
1101    if ($total_num != 0) {
1102        $total_page_num =  ceil($total_num / $page_size);
1103        if ($page >= $total_page_num) {
1104            $next = false;
1105        }else{
1106            $next = true;
1107        }
1108        if ($page <= 1) {
1109            $prev = false;
1110        }else{
1111            $prev = true;
1112        }
1113    }
1114    $start_num = ($page - 1) * $page_size + 1 ;
1115    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1116
1117    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);   
1118}
1119
1120function p_access_analysis_target_topic_target_topic4ym_page_name
1121($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1122{
1123    $start = ($page - 1) * $page_size;
1124   
1125    if ($orderby == 1) {
1126        $orderby_str = " order by target_c_commu_topic_id asc";
1127    } elseif ($orderby == -1) {
1128        $orderby_str = " order by target_c_commu_topic_id desc";
1129    } elseif ($orderby == 2) {
1130        $orderby_str = " order by count asc";
1131    } elseif ($orderby == -2) {
1132        $orderby_str = " order by count desc";
1133    }
1134    $where =" where ktai_flag = ? ";
1135    $params = array(intval($ktai_flag));
1136    if ($month_flag) {
1137            $where .= " and left(r_datetime, 7) = ? ";
1138            array_push($params,substr($ymd,0,7));
1139    } else {
1140            $where .= " and left(r_datetime,10) = ? ";
1141            array_push($params,$ymd);
1142    }
1143    if ($page_name!="all") {
1144            $where .= " and page_name = ? ";
1145            array_push($params,$page_name);
1146    }
1147    $sql = "select target_c_commu_topic_id , count(*) as count from c_access_log ";
1148    $sql .= $where." group by target_c_commu_topic_id " .$orderby_str." limit $start, $page_size";
1149    $list = db_get_all($sql,$params);
1150    $sql = "select count(*) from c_access_log ";
1151    $sql .= $where ." group by target_c_commu_topic_id ";
1152    $result = db_get_all($sql,$params);
1153    $total_num = count($result);
1154
1155    $return = array();
1156    $sum = 0;
1157    foreach ($list as $key => $value) {
1158        if ($value['target_c_commu_topic_id']) {
1159            $c_commu_topic = c_topic_detail_c_topic4c_commu_topic_id($value['target_c_commu_topic_id']);
1160            $c_commu_topic['topic_name'] = $c_commu_topic['name'];
1161            $c_commu = db_commu_c_commu4c_commu_id($c_commu_topic['c_commu_id']);
1162            $c_commu_topic['commu_name'] = $c_commu['name'];
1163            $return[] = array_merge($value, $c_commu_topic);
1164            $sum += $value['count'];
1165        }
1166    }
1167
1168    if ($total_num != 0) {
1169        $total_page_num =  ceil($total_num / $page_size);
1170        if ($page >= $total_page_num) {
1171            $next = false;
1172        } else {
1173            $next = true;
1174        }
1175        if ($page <= 1) {
1176            $prev = false;
1177        } else {
1178            $prev = true;
1179        }
1180    }
1181    $start_num = ($page - 1) * $page_size + 1 ;
1182    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1183
1184    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1185}
1186
1187function p_access_analysis_target_diary_target_diary4ym_page_name
1188($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1189{
1190   
1191    $start = ($page - 1) * $page_size;
1192   
1193    if ($orderby == 1) {
1194        $orderby_str = " order by target_c_diary_id asc";
1195    } elseif ($orderby == -1) {
1196        $orderby_str = " order by target_c_diary_id desc";
1197    } elseif ($orderby == 2) {
1198        $orderby_str = " order by count asc";
1199    } elseif ($orderby == -2) {
1200        $orderby_str = " order by count desc";
1201    }
1202   
1203    $sql = "select target_c_diary_id , count(*) as count from c_access_log where ktai_flag = ? ";
1204    $params = array(intval($ktai_flag));
1205    if ($month_flag) {
1206        $sql .= " and left(r_datetime, 7) = ? ";
1207        array_push($params,substr($ymd,0,7));
1208    } else {
1209        $sql .= " and left(r_datetime,10) = ? ";
1210        array_push($params,$ymd);
1211    }
1212    if ($page_name!="all") {
1213        $sql .= " and page_name = ? ";
1214        array_push($params,$page_name);
1215    }
1216    $sql .= " and target_c_diary_id <> 0 ";
1217    $sql .= " group by target_c_diary_id " . $orderby_str. " limit $start, $page_size";
1218    $list = db_get_all($sql,$params);
1219
1220    $return = array();
1221    $sum = 0;
1222    foreach ($list as $key => $value) {
1223        if ($value['target_c_diary_id']) {
1224            $c_diary = db_diary_get_c_diary4id($value['target_c_diary_id']);
1225            $c_member = db_member_c_member4c_member_id($c_diary['c_member_id']);
1226            $c_diary['nickname'] = $c_member['nickname'];
1227            $return[] = array_merge($value, $c_diary);
1228            $sum += $value['count'];
1229        }
1230    }
1231
1232    $sql =   "select count(*) from c_access_log where ktai_flag = ? ";
1233    $params = array(intval($ktai_flag));
1234    if ($month_flag) {
1235            $sql .= " and left(r_datetime, 7) = ? ";
1236            array_push($params,substr($ymd,0,7));
1237    } else {
1238            $sql .= " and left(r_datetime,10) = ? ";
1239            array_push($params,$ymd);
1240    }
1241    $sql .= " and target_c_diary_id <> 0 ";
1242    $sql .= " group by target_c_diary_id ";
1243    $result = db_get_all($sql,$params);
1244    $total_num = count($result);
1245
1246    if ($total_num != 0) {
1247        $total_page_num =  ceil($total_num / $page_size);
1248        if ($page >= $total_page_num) {
1249            $next = false;
1250        }else{
1251            $next = true;
1252        }
1253        if ($page <= 1) {
1254            $prev = false;
1255        }else{
1256            $prev = true;
1257        }
1258    }
1259    $start_num = ($page - 1) * $page_size + 1 ;
1260    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1261
1262    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);   
1263}
1264
1265function p_access_analysis_member_access_member4ym_page_name
1266($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1267{
1268    $start = ($page - 1) * $page_size;
1269   
1270    if ($orderby == 1) {
1271        $orderby_str = " order by c_member_id asc";
1272    } elseif ($orderby == -1) {
1273        $orderby_str = " order by c_member_id desc";
1274    } elseif ($orderby == 2) {
1275        $orderby_str = " order by count asc";
1276    } elseif ($orderby == -2) {
1277        $orderby_str = " order by count desc";
1278    }
1279   
1280    $where =" where ktai_flag = ? ";
1281    $params = array(intval($ktai_flag));
1282    if ($month_flag) {
1283        $where .= " and left(r_datetime, 7) = ? ";
1284        array_push($params,substr($ymd,0,7));
1285    } else {
1286        $where .= " and left(r_datetime,10) = ? ";
1287        array_push($params,$ymd);
1288    }
1289    if ($page_name!="all") {
1290        $where .= " and page_name = ? ";
1291        array_push($params,$page_name);
1292    }
1293
1294    $sql = "select c_member_id , count(*) as count from c_access_log";
1295    $sql .= $where." group by c_member_id $orderby_str limit $start, $page_size";
1296    $list = db_get_all($sql,$params);
1297    $sql = "select count(*) from c_access_log ";
1298    $sql .=    $where ." group by c_member_id ";
1299    $result = db_get_all($sql,$params);
1300    $total_num = count($result);
1301
1302    $return = array();
1303    $sum = 0;
1304    foreach($list as $key => $value) {
1305        if ($value['c_member_id']) {
1306            $c_member = _db_c_member4c_member_id($value['c_member_id']);
1307            $return[] = array_merge($value, $c_member);
1308            $sum += $value['count'];
1309        }
1310    }
1311
1312
1313    if ($total_num != 0) {
1314        $total_page_num =  ceil($total_num / $page_size);
1315        if ($page >= $total_page_num) {
1316            $next = false;
1317        }else{
1318            $next = true;
1319        }
1320        if ($page <= 1) {
1321            $prev = false;
1322        }else{
1323            $prev = true;
1324        }
1325    }
1326    $start_num = ($page - 1) * $page_size + 1 ;
1327    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1328    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);   
1329}
1330
1331function p_access_analysis_target_member_access_member4ym_page_name
1332($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1333{
1334    $start = ($page - 1) * $page_size;
1335   
1336    if ($orderby == 1) {
1337        $orderby_str = " order by target_c_member_id asc";
1338    } elseif ($orderby == -1) {
1339        $orderby_str = " order by target_c_member_id desc";
1340    } elseif ($orderby == 2) {
1341        $orderby_str = " order by count asc";
1342    } elseif ($orderby == -2) {
1343        $orderby_str = " order by count desc";
1344    }
1345    $where =" where ktai_flag = ? ";
1346    $params = array(intval($ktai_flag));
1347        if ($month_flag) {
1348                $where .= " and left(r_datetime, 7) = ? ";
1349                array_push($params,substr($ymd,0,7));
1350        } else {
1351                $where .= " and left(r_datetime,10) = ? ";
1352                array_push($params,$ymd);
1353        }
1354        if ($page_name!="all") {
1355                $where .= " and page_name = ? ";
1356                array_push($params,$page_name);
1357        }
1358    $sql = "select target_c_member_id , count(*) as count from c_access_log ";
1359    $sql .= $where;
1360    $sql .= " AND target_c_member_id <> 0 ";
1361    $sql .= " group by target_c_member_id " . $orderby_str. " limit $start, $page_size";
1362
1363    $list = db_get_all($sql,$params);
1364
1365    $return = array();
1366    $sum = 0;
1367    foreach($list as $key => $value) {
1368        if ($value['target_c_member_id']) {
1369            $c_member = db_member_c_member4c_member_id($value['target_c_member_id']);
1370            $return[] = array_merge($value, $c_member);
1371            $sum += $value['count'];
1372        }
1373    }
1374
1375    $where =" where ktai_flag = ? ";
1376    $params = array(intval($ktai_flag));
1377        if ($month_flag) {
1378                $where .= " and left(r_datetime, 7) = ? ";
1379                array_push($params,substr($ymd,0,7));
1380        } else {
1381                $where .= " and left(r_datetime,10) = ? ";
1382                array_push($params,$ymd);
1383        }
1384        if ($page_name != "all") {
1385                $where .= " and page_name = ? ";
1386                array_push($params,$page_name);
1387        }
1388    $sql = "select count(*) from c_access_log " ;
1389    $sql .= $where;
1390    $sql .= " AND target_c_member_id <> 0 ";
1391    $sql .= " group by target_c_member_id ";
1392   
1393    $result = db_get_all($sql,$params);
1394    $total_num = count($result);
1395
1396    if ($total_num != 0) {
1397        $total_page_num =  ceil($total_num / $page_size);
1398        if ($page >= $total_page_num) {
1399            $next = false;
1400        } else {
1401            $next = true;
1402        }
1403        if ($page <= 1) {
1404            $prev = false;
1405        } else {
1406            $prev = true;
1407        }
1408    }
1409    $start_num = ($page - 1) * $page_size + 1 ;
1410    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1411
1412    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1413}
1414
1415function get_is_show($name)
1416{
1417
1418    $is_target_c_member_id = 0;
1419    $is_target_c_commu_id  = 0;
1420    $is_target_c_topic_id  = 0;
1421    $is_target_c_diary_id  = 0;
1422    $is_c_member_id        = 1;
1423
1424
1425    //必要のない詳細ボタンを消す
1426    $list = explode("_", $name);
1427    $is_c_member_id = 1;
1428
1429    if (strpos($list[0], 'f') !== false) {
1430        $is_target_c_member_id = 1;
1431    }
1432    if (strpos($list[0], 'c') !== false) {
1433        $is_target_c_commu_id = 1;
1434    }
1435
1436    if (strpos($name, 'topic') !== false || strpos($name, 'event') !== false) {
1437        $is_target_c_topic_id = 1;
1438    }
1439    if (strpos($name, 'diary') !== false) {
1440        $is_target_c_diary_id = 1;
1441    }
1442
1443
1444    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);
1445
1446}
1447
1448/**
1449
1450カラムごとに条件を指定して絞ったメンバーの一覧を返す
1451
1452[引数]
1453適時追加していく
1454
1455$s_access_date    最終ログイン時刻 開始年月日
1456$e_access_date    最終ログイン時刻 終了年月日
1457
1458[返り値]
1459c_member_list
1460
1461*/
1462function p_member_edit_c_member_list($page_size, $page,$s_access_date='', $e_access_date='')
1463{
1464
1465    $page = intval($page);
1466    $page_size = intval($page_size);
1467
1468    $limit = "";
1469
1470    //page_sizeが0の時は全て表示(pagerなし)
1471    if ($page_size != 0) {
1472        $limit = " LIMIT ".($page_size*($page-1)).",$page_size";
1473    }
1474    $where = " WHERE 1 ";
1475
1476    //指定された条件で絞っていく
1477    if ($s_access_date != "") {
1478        $where = $where . " and access_date >= ?";
1479        $params = array($s_access_date);
1480    }
1481
1482    if ($e_access_date != "") {
1483        $where = $where . " and access_date < ?";
1484        $params = array($e_access_date);
1485    }
1486
1487    $select = "SELECT * FROM c_member";
1488    $order = " order by c_member_id";
1489
1490    $sql = $select . $where . $order . $limit;
1491    $list = db_get_all_limit($sql, 0, $limit, $params);
1492   
1493    $sql = "select count(*) from c_member".$where;
1494
1495    $total_num = db_get_one($sql, $params);
1496   
1497    if ($total_num != 0 && $page_size != 0) {
1498        $total_page_num =  ceil($total_num / $page_size);
1499        if ($page >= $total_page_num) {
1500            $next = false;
1501        } else {
1502            $next = true;
1503        }
1504        if ($page <= 1) {
1505            $prev = false;
1506        } else {
1507            $prev = true;
1508        }
1509    }
1510
1511    return array($list , $prev , $next, $total_num);
1512}
1513
1514function _db_c_member4c_member_id($c_member_id)
1515{
1516    $sql = "SELECT * FROM c_member WHERE c_member_id= ? ";
1517        $params = array(intval($c_member_id));
1518    return db_get_row($sql,$params);
1519}
1520
1521/**
1522 * 男と女の人数を取得
1523 */
1524function get_analysis_sex()
1525{
1526    $sql = "select count(*) from c_member where sex = '男'";
1527    $analysis_sex['male'] = get_one4db($sql);
1528    $sql = "select count(*) from c_member where sex = '女'";
1529    $analysis_sex['female'] = get_one4db($sql);
1530   
1531    return $analysis_sex;
1532   
1533}
1534
1535/**
1536 * 世代の人数を取得
1537 */
1538function get_analysis_generation()
1539{
1540    $analysis_generation = array(
1541            '0~9' => 0,
1542            '10~19' => 0,
1543            '20~29' => 0,
1544            '30~39' => 0,
1545            '40~49' => 0,
1546            '50~59' => 0,
1547            '60~69' => 0,
1548            '70~79' => 0,
1549            '80~' =>0
1550    );
1551   
1552    $sql = "select ((year(curdate()) - birth_year)- (RIGHT(CURDATE(),5)<concat(birth_month,'-',birth_day))) as age from c_member;";
1553    $lst = db_get_all($sql);
1554
1555    $temp = array_keys($analysis_generation);
1556    foreach($lst as $value) {
1557        $key = (int)($value['age'] / 10);
1558        if ($key > count($analysis_generation)-1) {
1559            $analysis_generation[$temp[count($analysis_generation)-1]]++;
1560        } else {
1561            $analysis_generation[$temp[$key]]++;
1562        }
1563    }
1564
1565    return $analysis_generation;
1566   
1567}
1568
1569/**
1570 * 地域別の人数を取得
1571 */
1572function get_analysis_region()
1573{
1574    $pref = p_regist_prof_c_profile_pref_list4null();
1575    $sql = "select pre_addr_c_profile_pref_id as pref_id from c_member";
1576    $lst = get_array_list4db($sql);
1577
1578    foreach($pref as $value) {
1579        $analysis_region[$value] = 0;   
1580    }
1581
1582    foreach ($lst as $value) {
1583        if ($value['pref_id'] == 0) {
1584            $analysis_region['その他']++;
1585        } else {
1586            $analysis_region[$pref[$value['pref_id']]]++;
1587        }
1588    }
1589
1590    return $analysis_region;
1591   
1592}
1593
1594function get_analysis_date_month($year = "", $month = "")
1595{
1596    $sql = "select date_format(r_date,'%Y-%m') from c_member order by r_date";
1597    $start_date = db_get_one($sql);
1598
1599    $i = 0;
1600    list($y, $m) = split("-",$start_date);
1601    do{
1602        $date = date("Y-m", mktime (0,0,0,$m+$i++,1,$y));
1603        $analysis_date_month[$date] = 0;
1604    }while($date < date("Y-m"));   
1605   
1606    $sql = "select date_format(r_date,'%Y-%m') as d from c_member";
1607    $lst = db_get_all($sql);
1608    foreach ($lst as $value) {
1609        $analysis_date_month[$value['d']]++;
1610    }
1611    return $analysis_date_month;
1612}
1613
1614function get_analysis_date_day_d($date="")
1615{
1616    if ($date == "") {
1617       $date = date("Y-m-d");
1618    }
1619    return $date;
1620}
1621
1622
1623function get_analysis_date_day($date="")
1624{
1625    if ($date == "") {
1626        $date = date("Y-m");
1627    }
1628    //一ヶ月の日数
1629    $day_num = date("t");
1630
1631    for($i=1 ; $i<=$day_num; $i++) {
1632        //一桁の数を二桁にする
1633        if ($i < 10) {
1634            $i = "0".$i;
1635        }
1636        $analysis_date_day[$i] = 0;
1637    }
1638
1639   
1640    $sql = "select date_format(r_date,'%d') as d from c_member where date_format(r_date,'%Y-%m') = ?";
1641    $params = array($date);
1642    $lst = db_get_all($sql,$params);
1643
1644    foreach($lst as $value) {
1645        $analysis_date_day[$value['d']]++;
1646    }
1647   
1648    return $analysis_date_day;
1649}
1650
1651function p_access_analysis_select_profile_list()
1652{
1653    $sql = "SELECT * " .
1654            " FROM c_profile " .
1655            " where form_type = 'select' ";
1656           
1657    $list = db_get_all($sql);
1658    return $list;
1659}
1660
1661/**
1662 * 指定されたIDのプロフィールの人数別一覧を作成
1663 */
1664function get_analysis_profile($c_profile_id)
1665{
1666    $sql = "select count(*) as count,value,c_profile.caption from c_member_profile " .
1667        " LEFT JOIN c_profile ON c_profile.c_profile_id = c_member_profile.c_profile_id " .
1668        " WHERE c_member_profile.c_profile_id = ? GROUP BY value ";
1669    $params = array(intval($c_profile_id));
1670    $analysis_profile = db_get_all($sql,$params);
1671   
1672    return $analysis_profile;
1673}
1674
1675function get_analysis_count_profile_all($c_profile_id)
1676{
1677    $sql = "select count(*) as count from c_member_profile " .
1678        " WHERE c_profile_id = ? ";
1679    $params = array(intval($c_profile_id));
1680    $analysis_profile = db_get_one($sql,$params);
1681   
1682    return $analysis_profile;
1683}
1684
1685function analysis_profile4c_profile_id($c_profile_id)
1686{
1687    $sql = "SELECT * FROM c_profile" .
1688            " WHERE c_profile_id = ? ";
1689    $params = array(intval($c_profile_id));
1690    $profile = db_get_row($sql,$params);
1691   
1692    return $profile;
1693}
1694function monitor_diary_list($keyword,$page_size,$page)
1695{
1696
1697    $page = intval($page);
1698    $page_size = intval($page_size);
1699   
1700    $where = " where 1 ";
1701
1702    if ($keyword) {
1703        //全角空白を半角に統一
1704        $keyword = str_replace(" ", " ", $keyword);
1705        $keyword_list = explode(" ", $keyword);
1706           
1707        for($i=0;$i < count($keyword_list);$i++) {
1708            $keyword = check_search_word( $keyword_list[$i] );
1709               
1710            $where .= " and (c_diary.subject like ? ";
1711            $where .= " or c_diary.body like ? ) ";
1712            $params[]="%$keyword%";
1713            $params[]="%$keyword%";
1714        }
1715    }
1716   
1717    $select = " select c_diary.*";
1718    $from = " FROM c_diary";
1719    $order = " ORDER BY r_datetime desc";
1720   
1721    $sql = $select . $from . $where . $order;
1722    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1723    foreach ($list as $key => $value) {
1724        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
1725        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']); 
1726    }
1727   
1728    $sql = 
1729        "SELECT count(*) "
1730        . $from
1731        . $where ;
1732    $total_num = db_get_one($sql,$params);
1733   
1734    $total_page_num =  ceil($total_num / $page_size);
1735    $next = ($page < $total_page_num);
1736    $prev = ($page > 1);
1737   
1738    return array($list , $prev , $next, $total_num,$total_page_num); 
1739}
1740
1741function monitor_diary_comment_list($keyword,$page_size,$page)
1742{
1743
1744    $page = intval($page);
1745    $page_size = intval($page_size);
1746   
1747    $where = " where 1 ";
1748
1749    if ($keyword) {
1750        //全角空白を半角に統一
1751        $keyword = str_replace(" ", " ", $keyword);
1752        $keyword_list = explode(" ", $keyword);
1753           
1754        for($i=0;$i < count($keyword_list);$i++) {
1755            $keyword = check_search_word( $keyword_list[$i] );
1756               
1757            $where .= " and (c_diary_comment.body like ? ) ";
1758            $params[]="%$keyword%";
1759        }
1760    }
1761   
1762    $select = " select c_diary_comment.*,c_diary.subject";
1763    $from = " FROM c_diary_comment"
1764        ." LEFT JOIN c_diary ON c_diary.c_diary_id = c_diary_comment.c_diary_id ";
1765    $order = " ORDER BY r_datetime desc";
1766   
1767    $sql = $select . $from . $where . $order;
1768    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1769    foreach ($list as $key => $value) {
1770        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
1771        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']); 
1772    }
1773   
1774    $sql = 
1775        "SELECT count(*) "
1776        . $from
1777        . $where ;
1778    $total_num = db_get_one($sql,$params);
1779   
1780    $total_page_num =  ceil($total_num / $page_size);
1781    $next = ($page < $total_page_num);
1782    $prev = ($page > 1);
1783   
1784    return array($list , $prev , $next, $total_num,$total_page_num); 
1785}
1786
1787
1788function monitor_topic_comment_list($keyword,$page_size,$page)
1789{
1790
1791    $page = intval($page);
1792    $page_size = intval($page_size);
1793   
1794    $where = " where 1 ";
1795
1796    if ($keyword) {
1797        $keyword = str_replace("?@", " ", $keyword);
1798        $keyword_list = explode(" ", $keyword);
1799           
1800        for($i=0;$i < count($keyword_list);$i++) {
1801            $keyword = check_search_word( $keyword_list[$i] );
1802               
1803            $where .= " AND (ctc.body like ? )";
1804            $params[]="%$keyword%";
1805        }
1806    }
1807   
1808    $select = " SELECT ctc.*,ct.name as topic_name,c.name as commu_name,m.nickname";
1809    $from = " FROM c_commu_topic_comment as ctc"
1810            ." LEFT JOIN c_member as m ON ctc.c_member_id = m.c_member_id "
1811            ." LEFT JOIN c_commu_topic as ct ON ct.c_commu_topic_id = ctc.c_commu_topic_id "
1812            ." LEFT JOIN c_commu as c ON c.c_commu_id = ct.c_commu_id ";
1813    $order = " ORDER BY r_datetime desc";
1814   
1815    $sql = $select . $from . $where . $order;
1816   
1817    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1818   
1819    foreach ($list as $key => $value) {
1820        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']); 
1821    }
1822   
1823    $sql = 
1824        "SELECT count(*) "
1825        . $from
1826        . $where ;
1827    $total_num = db_get_one($sql,$params);
1828   
1829    $total_page_num =  ceil($total_num / $page_size);
1830    $next = ($page < $total_page_num);
1831    $prev = ($page > 1);
1832   
1833    return array($list , $prev , $next, $total_num,$total_page_num); 
1834}
1835
1836function monitor_topic_list($keyword,$page_size,$page)
1837{
1838    $page = intval($page);
1839    $page_size = intval($page_size);
1840   
1841    $where = " where 1 ";
1842
1843    if ($keyword) {
1844        $keyword = str_replace("?@", " ", $keyword);
1845        $keyword_list = explode(" ", $keyword);
1846           
1847        for($i=0;$i < count($keyword_list);$i++) {
1848            $keyword = check_search_word( $keyword_list[$i] );
1849               
1850            $where .= " AND (ctc.body like ? ";
1851            $where .= " OR ct.name like ? ";
1852            $where .= " OR c.name like ? ) ";
1853            $params[]="%$keyword%";
1854            $params[]="%$keyword%";
1855            $params[]="%$keyword%";
1856        }
1857    }
1858   
1859    $select = " SELECT ct.*,ct.name as topic_name,c.name as commu_name,m.nickname,ctc.body as body";
1860    $from = " FROM c_commu_topic as ct"
1861            ." LEFT JOIN c_member as m ON ct.c_member_id = m.c_member_id "
1862            ." LEFT JOIN c_commu as c ON c.c_commu_id = ct.c_commu_id "
1863            ." LEFT JOIN c_commu_topic_comment as ctc ON (ctc.c_commu_topic_id = ct.c_commu_topic_id AND ctc.number = 0)";
1864    $order = " ORDER BY r_datetime desc";
1865   
1866    $sql = $select . $from . $where . $order;
1867   
1868    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1869   
1870    foreach ($list as $key => $value) {
1871        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']); 
1872    }
1873   
1874    $sql = 
1875        "SELECT count(*) "
1876        . $from
1877        . $where ;
1878    $total_num = db_get_one($sql,$params);
1879   
1880    $total_page_num =  ceil($total_num / $page_size);
1881    $next = ($page < $total_page_num);
1882    $prev = ($page > 1);
1883   
1884    return array($list , $prev , $next, $total_num,$total_page_num); 
1885}
1886
1887function monitor_review_list($keyword,$page_size,$page)
1888{
1889
1890    $page = intval($page);
1891    $page_size = intval($page_size);
1892   
1893    $where = " where 1 ";
1894
1895    if ($keyword) {
1896        //全角空白を半角に統一
1897        $keyword = str_replace(" ", " ", $keyword);
1898        $keyword_list = explode(" ", $keyword);
1899           
1900        for($i=0;$i < count($keyword_list);$i++) {
1901            $keyword = check_search_word( $keyword_list[$i] );
1902               
1903            $where .= " and c_review_comment.body like ? ";
1904            $params[]="%$keyword%";
1905        }
1906    }
1907   
1908    $select = " select c_review_comment.*";
1909    $from = " FROM c_review_comment";
1910    $order = " ORDER BY r_datetime desc";
1911   
1912    $sql = $select . $from . $where . $order;
1913    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1914   
1915
1916    foreach ($list as $key => $value) {
1917        $list[$key]['c_member'] = db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
1918        $list[$key]['c_review'] = db_review_list_product_c_review4c_review_id($value['c_review_id']);
1919    }
1920
1921    $sql = 
1922        "SELECT count(*) "
1923        . $from
1924        . $where ;
1925    $total_num = db_get_one($sql,$params);
1926   
1927    $total_page_num =  ceil($total_num / $page_size);
1928    $next = ($page < $total_page_num);
1929    $prev = ($page > 1);
1930   
1931    return array($list , $prev , $next, $total_num,$total_page_num); 
1932}
1933
1934function _db_count_c_commu_topic_comments4c_commu_topic_id($c_commu_topic_id)
1935{
1936    $sql = "SELECT count(*) FROM c_commu_topic_comment" .
1937        " WHERE c_commu_topic_id = ? AND number > 0";
1938    $params = array($c_commu_topic_id);
1939    return db_get_one($sql, $params);
1940}
1941//フリーページを追加
1942function db_admin_insert_c_free_page($title, $body, $auth, $type)
1943{
1944    $data = array(
1945        'title' => strval($title),
1946        'body'  => strval($body),
1947        'auth'  => intval($auth),
1948        'type'  => strval($type),
1949    );
1950    return db_insert('c_free_page', $data);
1951}
1952
1953//フリーページを編集
1954function db_admin_update_c_free_page($c_free_page_id, $title, $body, $auth, $type)
1955{
1956    $data = array(
1957        'title' => strval($title),
1958        'body'  => strval($body),
1959        'auth'  => intval($auth),
1960        'type'  => strval($type),
1961    );
1962    $where = array('c_free_page_id' => intval($c_free_page_id));
1963    return db_update('c_free_page', $data, $where);
1964}
1965
1966//フリーページを削除
1967function db_admin_delete_c_free_page($c_free_page_id)
1968{
1969    $sql = "DELETE FROM c_free_page WHERE c_free_page_id = ?";
1970    $params = array(intval($c_free_page_id));
1971    return db_query($sql, $params);
1972}
1973
1974
1975//フリーページを全て取得(ページャー付き)
1976function db_admin_get_c_free_page_all($page, $page_size, &$pager)
1977{
1978    $sql = 'SELECT * FROM c_free_page ORDER BY c_free_page_id DESC';
1979
1980    $list = db_get_all_page($sql, $page, $page_size, $params);
1981
1982    $sql = 'SELECT count(*) FROM c_free_page';
1983    $total_num = db_get_one($sql, $params);
1984    $pager = admin_make_pager($page, $page_size, $total_num);
1985
1986    return $list;
1987}
1988
1989//フリーページを一つ取得
1990function db_admin_get_c_free_page_one($c_free_page_id)
1991{
1992    $sql = 'SELECT * FROM c_free_page WHERE c_free_page_id = ?';
1993    $params = array(intval($c_free_page_id));
1994
1995    return db_get_row($sql, $params);
1996}
1997
1998//APIを全て取得(ページャー付き)
1999function db_admin_get_c_api_all($page, $page_size, &$pager)
2000{
2001    $sql = 'SELECT * FROM c_api ORDER BY c_api_id';
2002
2003    $list = db_get_all_page($sql, $page, $page_size, $params);
2004
2005    $sql = 'SELECT count(*) FROM c_api';
2006    $total_num = db_get_one($sql, $params);
2007    $pager = admin_make_pager($page, $page_size, $total_num);
2008
2009    return $list;
2010}
2011
2012//APIを編集
2013function db_admin_update_c_api($c_api_id, $name, $ip)
2014{
2015    $data = array(
2016        'name' => strval($name),
2017        'ip' => strval($ip),
2018    );
2019    $where = array('c_api_id' => intval($c_api_id));
2020    return db_update('c_api', $data, $where);
2021}
2022
2023//CMDを追加
2024function db_admin_insert_c_cmd($name, $permit)
2025{
2026    $data = array(
2027        'name' => strval($name),
2028        'permit' => intval($permit),
2029    );
2030    return db_insert('c_cmd', $data);
2031}
2032
2033//CMDを編集
2034function db_admin_update_c_cmd($c_cmd_id, $name, $permit)
2035{
2036    $data = array(
2037        'name' => strval($name),
2038        'permit' => intval($permit),
2039    );
2040    $where = array('c_cmd_id' => intval($c_cmd_id));
2041    return db_update('c_cmd', $data, $where);
2042}
2043
2044//CMDを削除
2045function db_admin_delete_c_cmd($c_cmd_id)
2046{
2047    $sql = "DELETE FROM c_cmd WHERE c_cmd_id = ?";
2048    $params = array(intval($c_cmd_id));
2049    return db_query($sql, $params);
2050}
2051
2052
2053//CMDを全て取得(ページャー付き)
2054function db_admin_get_c_cmd_all($page, $page_size, &$pager)
2055{
2056    $sql = 'SELECT * FROM c_cmd ORDER BY c_cmd_id';
2057
2058    $list = db_get_all_page($sql, $page, $page_size, $params);
2059
2060    $sql = 'SELECT count(*) FROM c_cmd';
2061    $total_num = db_get_one($sql, $params);
2062    $pager = admin_make_pager($page, $page_size, $total_num);
2063
2064    return $list;
2065}
2066
2067//CMDを一つ取得
2068function db_admin_get_c_cmd_one($c_cmd_id)
2069{
2070    $sql = 'SELECT * FROM c_cmd WHERE c_cmd_id = ?';
2071    $params = array(intval($c_cmd_id));
2072
2073    return db_get_row($sql, $params);
2074}
2075
2076/**
2077 * 祝日のリストを取得
2078 */
2079function db_admin_c_holiday_list()
2080{
2081    $sql = 'SELECT * FROM c_holiday ORDER BY month';
2082    $holiday_list = db_get_all($sql);
2083
2084    return $holiday_list;
2085}
2086
2087/**
2088 * 休日を追加
2089 */
2090function db_admin_insert_c_holiday($name, $month, $day)
2091{
2092    $data = array(
2093        'name' => strval($name),
2094        'month' => intval($month),
2095        'day' => intval($day),
2096    );
2097    return db_insert('c_holiday', $data);
2098}
2099
2100/**
2101 * 休日を編集
2102 */
2103function db_admin_update_c_holiday($c_holiday_id, $name, $month, $day)
2104{
2105    $data = array(
2106        'name' => strval($name),
2107        'month' => intval($month),
2108        'day' => intval($day),
2109    );
2110    $where = array('c_holiday_id' => intval($c_holiday_id));
2111    return db_update('c_holiday', $data, $where);
2112}
2113
2114/**
2115 * 休日を削除
2116 */
2117function db_admin_delete_c_holiday($c_holiday_id)
2118{
2119    $sql = "DELETE FROM c_holiday WHERE c_holiday_id = ?";
2120    $params = array(intval($c_holiday_id));
2121    return db_query($sql, $params);
2122}
2123
2124//メッセージ送信履歴を挿入
2125function db_admin_insert_c_send_messages_history($subject, $body, $send_num, $type, $c_member_ids)
2126{
2127
2128    //配列を文字列に変換
2129    if($c_member_ids) {
2130        $c_member_ids = implode("-",$c_member_ids);
2131    } else {
2132        return;
2133    }
2134
2135    $data = array(
2136        'subject'       => strval($subject),
2137        'body'          => strval($body),
2138        'send_num'      => intval($send_num),
2139        'type'          => strval($type),
2140        'c_member_ids'  => strval($c_member_ids),
2141        'r_datetime'    => db_now()
2142    );
2143
2144    return db_insert('c_send_messages_history', $data);
2145
2146}
2147
2148//メッセージ送信履歴を全て取得(ページャー付き)
2149function db_admin_get_c_send_messages_history_all($page, $page_size, &$pager)
2150{
2151
2152    $sql = 'SELECT * FROM c_send_messages_history ORDER BY c_send_messages_history_id DESC';
2153
2154    $history_list = db_get_all_page($sql, $page, $page_size, $params);
2155
2156    foreach ($history_list as $key => $history) {
2157        $history_list[$key]['c_member_ids'] = explode("-", $history['c_member_ids']);
2158    }
2159
2160    $sql = 'SELECT count(*) FROM c_send_messages_history';
2161    $total_num = db_get_one($sql, $params);
2162    $pager = admin_make_pager($page, $page_size, $total_num);
2163
2164    return $history_list;
2165}
2166
2167//メッセージ送信履歴を一つ取得
2168function db_admin_get_c_send_messages_history($c_send_messages_history_id)
2169{
2170
2171    $sql = 'SELECT * FROM c_send_messages_history WHERE c_send_messages_history_id = ?';
2172
2173    $params = array(intval($c_send_messages_history_id));
2174
2175    $history = db_get_row($sql, $params);
2176
2177    $history['c_member_ids'] = explode("-", $history['c_member_ids']);
2178
2179    return $history;
2180}
2181
2182//メッセージをキューに入れる
2183function db_admin_insert_c_message_queue($c_member_id_from, $c_member_id_to, $subject, $body)
2184{
2185    $data = array(
2186        'c_member_id_from' => intval($c_member_id_from),
2187        'c_member_id_to'   => intval($c_member_id_to),
2188        'subject'          => strval($subject),
2189        'body'             => strval($body),
2190    );
2191    return db_insert('c_message_queue', $data);
2192}
2193
2194//メッセージをキューから削除
2195function db_admin_delete_c_message_queue($c_message_queue_id)
2196{
2197
2198    $sql = "DELETE FROM c_message_queue WHERE c_message_queue_id = ?";
2199    $params = array(intval($c_message_queue_id));
2200
2201    return db_query($sql, $params);
2202}
2203
2204//ランクを追加
2205function db_admin_insert_c_rank($name, $image_filename, $point)
2206{
2207    $data = array(
2208        'name' => strval($name),
2209        'image_filename' => strval($image_filename),
2210        'point' => intval($point),
2211    );
2212    return db_insert('c_rank', $data);
2213}
2214
2215//ランクを編集
2216function db_admin_update_c_rank($c_rank_id, $name, $image_filename, $point)
2217{
2218    $data = array(
2219        'name' => strval($name),
2220        'image_filename' => strval($image_filename),
2221        'point' => intval($point),
2222    );
2223    $where = array('c_rank_id' => intval($c_rank_id));
2224    return db_update('c_rank', $data, $where);
2225}
2226
2227//ランクを削除
2228function db_admin_delete_c_rank($c_rank_id)
2229{
2230    $sql = "DELETE FROM c_rank WHERE c_rank_id = ?";
2231    $params = array(intval($c_rank_id));
2232    return db_query($sql, $params);
2233}
2234
2235
2236//ランクを全て取得(ページャー付き)
2237function db_admin_get_c_rank_all($page, $page_size, &$pager)
2238{
2239    $sql = 'SELECT * FROM c_rank ORDER BY point';
2240
2241    $list = db_get_all_page($sql, $page, $page_size, $params);
2242
2243    $sql = 'SELECT count(*) FROM c_rank';
2244    $total_num = db_get_one($sql, $params);
2245    $pager = admin_make_pager($page, $page_size, $total_num);
2246
2247    return $list;
2248}
2249
2250//ランクを一つ取得
2251function db_admin_get_c_rank_one($c_rank_id)
2252{
2253    $sql = 'SELECT * FROM c_rank WHERE c_rank_id = ?';
2254    $params = array(intval($c_rank_id));
2255
2256    return db_get_row($sql, $params);
2257}
2258
2259//アクションを編集
2260function db_admin_update_c_action($c_action_id, $name, $point)
2261{
2262    $data = array(
2263        'name' => strval($name),
2264        'point' => intval($point),
2265    );
2266    $where = array('c_action_id' => intval($c_action_id));
2267    return db_update('c_action', $data, $where);
2268}
2269
2270//アクションを全て取得(ページャー付き)
2271function db_admin_get_c_action_all($page, $page_size, &$pager)
2272{
2273    $sql = 'SELECT * FROM c_action ORDER BY c_action_id';
2274
2275    $list = db_get_all_page($sql, $page, $page_size, $params);
2276
2277    $sql = 'SELECT count(*) FROM c_action';
2278    $total_num = db_get_one($sql, $params);
2279    $pager = admin_make_pager($page, $page_size, $total_num);
2280
2281    return $list;
2282}
2283
2284
2285//ブラックリストを追加
2286function db_admin_insert_c_black_list($address, $memo)
2287{
2288    $data = array(
2289        'address' => t_encrypt(strval($address)),
2290        'memo' => strval($memo),
2291        'r_datetime' => db_now()
2292    );
2293    return db_insert('c_black_list', $data);
2294}
2295
2296//ブラックリストを編集
2297function db_admin_update_c_black_list($c_black_list_id, $address, $memo)
2298{
2299    $data = array(
2300        'address' => t_encrypt(strval($address)),
2301        'memo' => strval($memo),
2302        'r_datetime' => db_now()
2303    );
2304    $where = array('c_black_list_id' => intval($c_black_list_id));
2305    return db_update('c_black_list', $data, $where);
2306}
2307
2308//ブラックリストを削除
2309function db_admin_delete_c_black_list($c_black_list_id)
2310{
2311    $sql = "DELETE FROM c_black_list WHERE c_black_list_id = ?";
2312    $params = array(intval($c_black_list_id));
2313    return db_query($sql, $params);
2314}
2315
2316
2317//ブラックリストを全て取得(ページャー付き)
2318function db_admin_get_c_black_list_all($page, $page_size, &$pager)
2319{
2320    $sql = 'SELECT * FROM c_black_list ORDER BY c_black_list_id';
2321
2322    $list = db_get_all_page($sql, $page, $page_size, $params);
2323
2324    foreach ($list as $key => $item) {
2325        $list[$key]['address'] = t_decrypt($item['address']);
2326    }
2327
2328    $sql = 'SELECT count(*) FROM c_black_list';
2329    $total_num = db_get_one($sql, $params);
2330    $pager = admin_make_pager($page, $page_size, $total_num);
2331
2332    return $list;
2333}
2334
2335//ブラックリストを一つ取得
2336function db_admin_get_c_black_list_one($c_black_list_id)
2337{
2338    $sql = 'SELECT * FROM c_black_list WHERE c_black_list_id = ?';
2339    $params = array(intval($c_black_list_id));
2340    $list = db_get_row($sql, $params);
2341    $list['address'] = t_decrypt($list['address']);
2342
2343    return $list;
2344}
2345
2346/**
2347 * 指定したファイル名のファイルへのリンクを削除する
2348 *
2349 * @param string $filename
2350 */
2351function db_admin_delete_c_file_link4filename($filename)
2352{
2353    // c_commu_topic_comment
2354    $tbl = 'c_commu_topic_comment';
2355    _db_admin_empty_image_filename($tbl, $filename, 'filename');
2356}
2357
2358?>
Note: See TracBrowser for help on using the repository browser.