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

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

Last change on this file since 7715 was 7715, checked in by asma, 13 years ago

#2689:管理画面最新コミュニティ書き込みがの日時をコメント書き込み日時に修正

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