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

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

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

#2727:トピック別アクセス数表示にて、1ページ目の件数表示と実際に表示されている表示数が一致していなかったのを修正

File size: 87.8 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 ($c_commu = db_commu_c_commu4c_commu_id($value['target_c_commu_id'])) {
1190            $value['is_c_commu_exists'] = true;
1191            $return[] = array_merge($value, $c_commu);
1192        } else {
1193            $value['is_c_commu_exists'] = false;
1194            $return[] = $value;
1195        }
1196        $sum += $value['count'];
1197    }
1198
1199    $sql =   "select count(*) from c_access_log  where ktai_flag = ? ";
1200    $params = array(intval($ktai_flag));
1201    if ($month_flag) {
1202        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1203            $sql .= " and substr(r_datetime,1,7) = ? ";
1204        } else {
1205            $sql .= " and left(r_datetime, 7) = ? ";
1206        }
1207        array_push($params,substr($ymd,0,7));
1208    } else {
1209        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1210            $sql .= " and substr(r_datetime,1,10) = ? ";
1211        } else {
1212            $sql .= " and left(r_datetime,10) = ? ";
1213        }
1214        array_push($params,$ymd);
1215    }
1216    if ($page_name!="all") {
1217        $sql .= " and page_name = ? ";
1218        array_push($params,$page_name);
1219    }
1220    $sql .= " and target_c_commu_id <> 0 ";
1221    $sql .= " group by target_c_commu_id ";
1222    $result = db_get_all($sql,$params);
1223    $total_num = count($result);
1224
1225    if ($total_num != 0) {
1226        $total_page_num =  ceil($total_num / $page_size);
1227        if ($page >= $total_page_num) {
1228            $next = false;
1229        }else{
1230            $next = true;
1231        }
1232        if ($page <= 1) {
1233            $prev = false;
1234        }else{
1235            $prev = true;
1236        }
1237    }
1238    $start_num = ($page - 1) * $page_size + 1 ;
1239    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1240
1241    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1242}
1243
1244function p_access_analysis_target_topic_target_topic4ym_page_name
1245($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1246{
1247    $start = ($page - 1) * $page_size;
1248   
1249    if ($orderby == 1) {
1250        $orderby_str = " order by target_c_commu_topic_id asc";
1251    } elseif ($orderby == -1) {
1252        $orderby_str = " order by target_c_commu_topic_id desc";
1253    } elseif ($orderby == 2) {
1254        $orderby_str = " order by count asc";
1255    } elseif ($orderby == -2) {
1256        $orderby_str = " order by count desc";
1257    }
1258    $where =" where ktai_flag = ? ";
1259    $params = array(intval($ktai_flag));
1260    if ($month_flag) {
1261        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1262            $where .= " and substr(r_datetime,1, 7) = ? ";
1263        } else {
1264            $where .= " and left(r_datetime, 7) = ? ";
1265        }
1266        array_push($params,substr($ymd,0,7));
1267    } else {
1268        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1269            $where .= " and substr(r_datetime,1,10) = ? ";
1270        } else {
1271            $where .= " and left(r_datetime,10) = ? ";
1272        }
1273        array_push($params,$ymd);
1274    }
1275    if ($page_name!="all") {
1276            $where .= " and page_name = ? ";
1277            array_push($params,$page_name);
1278    }
1279    $where .= ' and target_c_commu_topic_id <> 0 ';
1280    $sql = "select target_c_commu_topic_id , count(*) as count from c_access_log ";
1281    $sql .= $where." group by target_c_commu_topic_id " .$orderby_str;
1282    $list = db_get_all_limit($sql, $start, $page_size, $params);
1283    $sql = "select count(*) from c_access_log ";
1284    $sql .= $where ." group by target_c_commu_topic_id ";
1285    $result = db_get_all($sql,$params);
1286    $total_num = count($result);
1287
1288    $return = array();
1289    $sum = 0;
1290    foreach ($list as $key => $value) {
1291        if ($value['target_c_commu_topic_id']) {
1292            if ($c_commu_topic = c_topic_detail_c_topic4c_commu_topic_id($value['target_c_commu_topic_id'])) {
1293                $c_commu_topic['topic_name'] = $c_commu_topic['name'];
1294                $c_commu = db_commu_c_commu4c_commu_id($c_commu_topic['c_commu_id']);
1295                $c_commu_topic['commu_name'] = $c_commu['name'];
1296                $value['is_c_commu_topic_exists'] = true;
1297                $return[] = array_merge($value, $c_commu_topic);
1298            } else {
1299                $value['is_c_commu_topic_exists'] = false;
1300                $return[] = $value;
1301            }
1302            $sum += $value['count'];
1303        }
1304    }
1305
1306    if ($total_num != 0) {
1307        $total_page_num =  ceil($total_num / $page_size);
1308        if ($page >= $total_page_num) {
1309            $next = false;
1310        } else {
1311            $next = true;
1312        }
1313        if ($page <= 1) {
1314            $prev = false;
1315        } else {
1316            $prev = true;
1317        }
1318    }
1319    $start_num = ($page - 1) * $page_size + 1 ;
1320    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1321
1322    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1323}
1324
1325function p_access_analysis_target_diary_target_diary4ym_page_name
1326($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1327{
1328   
1329    $start = ($page - 1) * $page_size;
1330   
1331    if ($orderby == 1) {
1332        $orderby_str = " order by target_c_diary_id asc";
1333    } elseif ($orderby == -1) {
1334        $orderby_str = " order by target_c_diary_id desc";
1335    } elseif ($orderby == 2) {
1336        $orderby_str = " order by count asc";
1337    } elseif ($orderby == -2) {
1338        $orderby_str = " order by count desc";
1339    }
1340   
1341    $sql = "select target_c_diary_id , count(*) as count from c_access_log where ktai_flag = ? ";
1342    $params = array(intval($ktai_flag));
1343    if ($month_flag) {
1344        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1345            $sql .= " and substr(r_datetime,1,7) = ? ";
1346        } else {
1347            $sql .= " and left(r_datetime, 7) = ? ";
1348        }
1349        array_push($params,substr($ymd,0,7));
1350    } else {
1351        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1352            $sql .= " and substr(r_datetime,1,10) = ? ";
1353        } else {
1354            $sql .= " and left(r_datetime,10) = ? ";
1355        }
1356        array_push($params,$ymd);
1357    }
1358    if ($page_name!="all") {
1359        $sql .= " and page_name = ? ";
1360        array_push($params,$page_name);
1361    }
1362    $sql .= " and target_c_diary_id <> 0 ";
1363    $sql .= " group by target_c_diary_id " . $orderby_str;
1364    $list = db_get_all_limit($sql, $start, $page_size, $params);
1365
1366    $return = array();
1367    $sum = 0;
1368    foreach ($list as $key => $value) {
1369        if ($c_diary = db_diary_get_c_diary4id($value['target_c_diary_id'])) {
1370            $c_member = db_member_c_member4c_member_id($c_diary['c_member_id']);
1371            $c_diary['nickname'] = $c_member['nickname'];
1372            $value['is_c_diary_exists'] = true;
1373            $return[] = array_merge($value, $c_diary);
1374        } else {
1375            $value['is_c_diary_exists'] = false;
1376            $return[] = $value;
1377        }
1378        $sum += $value['count'];
1379    }
1380
1381    $sql =   "select count(*) from c_access_log where ktai_flag = ? ";
1382    $params = array(intval($ktai_flag));
1383    if ($month_flag) {
1384        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1385            $sql .= " and substr(r_datetime,1,7) = ? ";
1386        } else {
1387            $sql .= " and left(r_datetime, 7) = ? ";
1388        }
1389        array_push($params,substr($ymd,0,7));
1390    } else {
1391        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1392            $sql .= " and substr(r_datetime,1,10) = ? ";
1393        } else {
1394            $sql .= " and left(r_datetime,10) = ? ";
1395        }
1396        array_push($params,$ymd);
1397    }
1398    $sql .= " and target_c_diary_id <> 0 ";
1399    $sql .= " group by target_c_diary_id ";
1400    $result = db_get_all($sql,$params);
1401    $total_num = count($result);
1402
1403    if ($total_num != 0) {
1404        $total_page_num =  ceil($total_num / $page_size);
1405        if ($page >= $total_page_num) {
1406            $next = false;
1407        }else{
1408            $next = true;
1409        }
1410        if ($page <= 1) {
1411            $prev = false;
1412        }else{
1413            $prev = true;
1414        }
1415    }
1416    $start_num = ($page - 1) * $page_size + 1 ;
1417    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1418
1419    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1420}
1421
1422function p_access_analysis_member_access_member4ym_page_name
1423($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1424{
1425    $start = ($page - 1) * $page_size;
1426   
1427    if ($orderby == 1) {
1428        $orderby_str = " order by c_member_id asc";
1429    } elseif ($orderby == -1) {
1430        $orderby_str = " order by c_member_id desc";
1431    } elseif ($orderby == 2) {
1432        $orderby_str = " order by count asc";
1433    } elseif ($orderby == -2) {
1434        $orderby_str = " order by count desc";
1435    }
1436   
1437    $where =" where ktai_flag = ? ";
1438    $params = array(intval($ktai_flag));
1439    if ($month_flag) {
1440        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1441            $where .= " and substr(r_datetime,1,7) = ? ";
1442        } else {
1443            $where .= " and left(r_datetime, 7) = ? ";
1444        }
1445        array_push($params,substr($ymd,0,7));
1446    } else {
1447        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1448            $where .= " and substr(r_datetime,1,10) = ? ";
1449        } else {
1450            $where .= " and left(r_datetime,10) = ? ";
1451        }
1452        array_push($params,$ymd);
1453    }
1454    if ($page_name!="all") {
1455        $where .= " and page_name = ? ";
1456        array_push($params,$page_name);
1457    }
1458
1459    $sql = "select c_member_id , count(*) as count from c_access_log";
1460    $sql .= $where." group by c_member_id $orderby_str";
1461    $list = db_get_all_limit($sql, $start, $page_size, $params);
1462    $sql = "select count(*) from c_access_log ";
1463    $sql .=    $where ." group by c_member_id ";
1464    $result = db_get_all($sql,$params);
1465    $total_num = count($result);
1466
1467    $return = array();
1468    $sum = 0;
1469    foreach($list as $key => $value) {
1470        if ($value['c_member_id']) {
1471            if ($c_member = _db_c_member4c_member_id($value['c_member_id'])) {
1472                $value['is_c_member_exists'] = true;
1473                $return[] = array_merge($value, $c_member);
1474            } else {
1475                $value['is_c_member_exists'] = false;
1476                $return[] = $value;
1477            }
1478            $sum += $value['count'];
1479        }
1480    }
1481
1482
1483    if ($total_num != 0) {
1484        $total_page_num =  ceil($total_num / $page_size);
1485        if ($page >= $total_page_num) {
1486            $next = false;
1487        }else{
1488            $next = true;
1489        }
1490        if ($page <= 1) {
1491            $prev = false;
1492        }else{
1493            $prev = true;
1494        }
1495    }
1496    $start_num = ($page - 1) * $page_size + 1 ;
1497    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1498    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1499}
1500
1501function p_access_analysis_target_member_access_member4ym_page_name
1502($ymd, $month_flag, $page_name, $ktai_flag, $page, $page_size, $orderby=1)
1503{
1504    $start = ($page - 1) * $page_size;
1505   
1506    if ($orderby == 1) {
1507        $orderby_str = " order by target_c_member_id asc";
1508    } elseif ($orderby == -1) {
1509        $orderby_str = " order by target_c_member_id desc";
1510    } elseif ($orderby == 2) {
1511        $orderby_str = " order by count asc";
1512    } elseif ($orderby == -2) {
1513        $orderby_str = " order by count desc";
1514    }
1515    $where =" where ktai_flag = ? ";
1516    $params = array(intval($ktai_flag));
1517    if ($month_flag) {
1518        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1519            $where .= " and substr(r_datetime,1,7) = ? ";
1520        } else {
1521            $where .= " and left(r_datetime, 7) = ? ";
1522        }
1523        array_push($params,substr($ymd,0,7));
1524    } else {
1525        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1526            $where .= " and substr(r_datetime,1,10) = ? ";
1527        } else {
1528            $where .= " and left(r_datetime,10) = ? ";
1529        }
1530        array_push($params,$ymd);
1531    }
1532    if ($page_name != "all") {
1533        $where .= " and page_name = ? ";
1534        array_push($params,$page_name);
1535    }
1536    $sql = "select target_c_member_id , count(*) as count from c_access_log ";
1537    $sql .= $where;
1538    $sql .= " AND target_c_member_id <> 0 ";
1539    $sql .= " group by target_c_member_id " . $orderby_str;
1540
1541    $list = db_get_all_limit($sql, $start, $page_size, $params);
1542
1543    $return = array();
1544    $sum = 0;
1545    foreach ($list as $key => $value) {
1546        if ($c_member = db_member_c_member4c_member_id($value['target_c_member_id'])) {
1547            $value['is_c_member_exists'] = true;
1548            $return[] = array_merge($value, $c_member);
1549        } else {
1550            $value['is_c_member_exists'] = false;
1551            $return[] = $value;
1552        }
1553        $sum += $value['count'];
1554    }
1555
1556    $where =" where ktai_flag = ? ";
1557    $params = array(intval($ktai_flag));
1558    if ($month_flag) {
1559        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1560            $where .= " and substr(r_datetime,1,7) = ? ";
1561        } else {
1562            $where .= " and left(r_datetime, 7) = ? ";
1563        }
1564        array_push($params,substr($ymd,0,7));
1565    } else {
1566        if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1567            $where .= " and substr(r_datetime,1,10) = ? ";
1568        } else {
1569            $where .= " and left(r_datetime,10) = ? ";
1570        }
1571        array_push($params,$ymd);
1572    }
1573    if ($page_name != "all") {
1574        $where .= " and page_name = ? ";
1575        array_push($params,$page_name);
1576    }
1577    $sql = "select count(*) from c_access_log " ;
1578    $sql .= $where;
1579    $sql .= " AND target_c_member_id <> 0 ";
1580    $sql .= " group by target_c_member_id ";
1581   
1582    $result = db_get_all($sql,$params);
1583    $total_num = count($result);
1584
1585    if ($total_num != 0) {
1586        $total_page_num =  ceil($total_num / $page_size);
1587        if ($page >= $total_page_num) {
1588            $next = false;
1589        } else {
1590            $next = true;
1591        }
1592        if ($page <= 1) {
1593            $prev = false;
1594        } else {
1595            $prev = true;
1596        }
1597    }
1598    $start_num = ($page - 1) * $page_size + 1 ;
1599    $end_num =   ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size ;
1600
1601    return array($return, $sum, $prev, $next, $total_num, $start_num, $end_num);
1602}
1603
1604function get_is_show($name)
1605{
1606
1607    $is_target_c_member_id = 0;
1608    $is_target_c_commu_id  = 0;
1609    $is_target_c_topic_id  = 0;
1610    $is_target_c_diary_id  = 0;
1611    $is_c_member_id        = 1;
1612
1613
1614    //必要のない詳細ボタンを消す
1615    $list = explode("_", $name);
1616    $is_c_member_id = 1;
1617
1618    if (strpos($list[0], 'f') !== false) {
1619        $is_target_c_member_id = 1;
1620    }
1621    if (strpos($list[0], 'c') !== false) {
1622        $is_target_c_commu_id = 1;
1623    }
1624
1625    if (strpos($name, 'topic') !== false || strpos($name, 'event') !== false) {
1626        $is_target_c_topic_id = 1;
1627    }
1628    if (strpos($name, 'diary') !== false) {
1629        $is_target_c_diary_id = 1;
1630    }
1631
1632
1633    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);
1634
1635}
1636
1637/**
1638
1639カラムごとに条件を指定して絞ったメンバーの一覧を返す
1640
1641[引数]
1642適時追加していく
1643
1644$s_access_date    最終ログイン時刻 開始年月日
1645$e_access_date    最終ログイン時刻 終了年月日
1646
1647[返り値]
1648c_member_list
1649
1650*/
1651function p_member_edit_c_member_list($page_size, $page, $s_access_date='', $e_access_date='')
1652{
1653    $page = intval($page);
1654    $page_size = intval($page_size);
1655
1656    $wheres = array();
1657    $params = array();
1658
1659    //指定された条件で絞っていく
1660    if ($s_access_date != '') {
1661        $wheres[] = 'access_date >= ?';
1662        $params[] = $s_access_date;
1663    }
1664
1665    if ($e_access_date != '') {
1666        $wheres[] = 'access_date < ?';
1667        $params[] = $e_access_date;
1668    }
1669
1670    if ($wheres) {
1671        $where = ' WHERE ' . implode(' AND ', $wheres);
1672    } else {
1673        $where = '';
1674    }
1675
1676    $select = "SELECT * FROM c_member";
1677    $order = " order by c_member_id";
1678    $sql = $select . $where . $order;
1679    if ($page_size > 0) {
1680        $list = db_get_all_page($sql, $page, $page_size, $params);
1681    } else {
1682        $list = db_get_all($sql, $params);
1683    }
1684   
1685    $sql = "select count(*) from c_member".$where;
1686
1687    $total_num = db_get_one($sql, $params);
1688   
1689    if ($total_num != 0 && $page_size != 0) {
1690        $total_page_num =  ceil($total_num / $page_size);
1691        if ($page >= $total_page_num) {
1692            $next = false;
1693        } else {
1694            $next = true;
1695        }
1696        if ($page <= 1) {
1697            $prev = false;
1698        } else {
1699            $prev = true;
1700        }
1701    }
1702
1703    return array($list , $prev , $next, $total_num);
1704}
1705
1706function _db_c_member4c_member_id($c_member_id)
1707{
1708    $sql = "SELECT * FROM c_member WHERE c_member_id= ? ";
1709        $params = array(intval($c_member_id));
1710    return db_get_row($sql,$params);
1711}
1712
1713/**
1714 * 男と女の人数を取得
1715 */
1716function get_analysis_sex()
1717{
1718    $sql = "select count(*) from c_member where sex = '男'";
1719    $analysis_sex['male'] = get_one4db($sql);
1720    $sql = "select count(*) from c_member where sex = '女'";
1721    $analysis_sex['female'] = get_one4db($sql);
1722   
1723    return $analysis_sex;
1724   
1725}
1726
1727/**
1728 * 世代の人数を取得
1729 */
1730function get_analysis_generation()
1731{
1732    $analysis_generation = array(
1733            '0~9' => 0,
1734            '10~19' => 0,
1735            '20~29' => 0,
1736            '30~39' => 0,
1737            '40~49' => 0,
1738            '50~59' => 0,
1739            '60~69' => 0,
1740            '70~79' => 0,
1741            '80~' =>0
1742    );
1743   
1744    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1745        $sql = "SELECT ((date_part('year', now()) - birth_year)- " .
1746            "cast(substring(CURRENT_DATE,'.....$')<(to_char(birth_month, '00') || '-' || to_char(birth_day, '00')) as int)) " .
1747            "AS age FROM c_member WHERE birth_year <> 0;";
1748    } else {
1749        $today = getdate();
1750        $mmdd = $today['mon'] * 100 + $today['mday'];
1751        $sql = 'SELECT ' . $today['year'] . ' - birth_year'
1752             . ' - (' . $mmdd . ' < (birth_month * 100 + birth_day))'
1753             . ' AS age FROM c_member WHERE birth_year <> 0';
1754    }
1755    $lst = db_get_all($sql);
1756
1757    $temp = array_keys($analysis_generation);
1758    foreach($lst as $value) {
1759        $key = (int)($value['age'] / 10);
1760        if ($key > count($analysis_generation)-1) {
1761            $analysis_generation[$temp[count($analysis_generation)-1]]++;
1762        } else {
1763            $analysis_generation[$temp[$key]]++;
1764        }
1765    }
1766
1767    return $analysis_generation;
1768   
1769}
1770
1771/**
1772 * 地域別の人数を取得
1773 */
1774function get_analysis_region()
1775{
1776    $pref = p_regist_prof_c_profile_pref_list4null();
1777    $sql = "select pre_addr_c_profile_pref_id as pref_id from c_member";
1778    $lst = get_array_list4db($sql);
1779
1780    foreach($pref as $value) {
1781        $analysis_region[$value] = 0;
1782    }
1783
1784    foreach ($lst as $value) {
1785        if ($value['pref_id'] == 0) {
1786            $analysis_region['その他']++;
1787        } else {
1788            $analysis_region[$pref[$value['pref_id']]]++;
1789        }
1790    }
1791
1792    return $analysis_region;
1793   
1794}
1795
1796function get_analysis_date_month($year = "", $month = "")
1797{
1798    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1799        $sql = "select to_char(r_date,'YYYY-MM') from c_member order by r_date";
1800    } else {
1801        $sql = "select date_format(r_date,'%Y-%m') from c_member order by r_date";
1802    }
1803    $start_date = db_get_one($sql);
1804
1805    $i = 0;
1806    list($y, $m) = split("-",$start_date);
1807    do{
1808        $date = date("Y-m", mktime (0,0,0,$m+$i++,1,$y));
1809        $analysis_date_month[$date] = 0;
1810    }while($date < date("Y-m"));
1811   
1812    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1813        $sql = "select to_char(r_date,'YYYY-MM') as d from c_member";
1814    } else {
1815        $sql = "select date_format(r_date,'%Y-%m') as d from c_member";
1816    }
1817    $lst = db_get_all($sql);
1818    foreach ($lst as $value) {
1819        $analysis_date_month[$value['d']]++;
1820    }
1821    return $analysis_date_month;
1822}
1823
1824function get_analysis_date_day_d($date="")
1825{
1826    if ($date == "") {
1827       $date = date("Y-m-d");
1828    }
1829    return $date;
1830}
1831
1832
1833function get_analysis_date_day($date="")
1834{
1835    if ($date == "") {
1836        $date = date("Y-m");
1837    }
1838    //一ヶ月の日数
1839    $day_num = date("t");
1840
1841    for($i=1 ; $i<=$day_num; $i++) {
1842        //一桁の数を二桁にする
1843        if ($i < 10) {
1844            $i = "0".$i;
1845        }
1846        $analysis_date_day[$i] = 0;
1847    }
1848
1849    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
1850        $sql = "select to_char(r_date,'DD') as d from c_member where to_char(r_date,'YYYY-MM') = ?";
1851    } else {
1852        $sql = "select date_format(r_date,'%d') as d from c_member where date_format(r_date,'%Y-%m') = ?";
1853    }
1854    $params = array($date);
1855    $lst = db_get_all($sql,$params);
1856
1857    foreach($lst as $value) {
1858        $analysis_date_day[$value['d']]++;
1859    }
1860   
1861    return $analysis_date_day;
1862}
1863
1864function p_access_analysis_select_profile_list()
1865{
1866    $sql = "SELECT * " .
1867            " FROM c_profile " .
1868            " where form_type = 'select' ";
1869           
1870    $list = db_get_all($sql);
1871    return $list;
1872}
1873
1874/**
1875 * 指定されたIDのプロフィールの人数別一覧を作成
1876 */
1877function get_analysis_profile($c_profile_id)
1878{
1879    $sql = "select count(*) as count,value,c_profile.caption from c_member_profile " .
1880        " LEFT JOIN c_profile ON c_profile.c_profile_id = c_member_profile.c_profile_id " .
1881        " WHERE c_member_profile.c_profile_id = ? GROUP BY value ";
1882    $params = array(intval($c_profile_id));
1883    $analysis_profile = db_get_all($sql,$params);
1884   
1885    return $analysis_profile;
1886}
1887
1888function get_analysis_count_profile_all($c_profile_id)
1889{
1890    $sql = "select count(*) as count from c_member_profile " .
1891        " WHERE c_profile_id = ? ";
1892    $params = array(intval($c_profile_id));
1893    $analysis_profile = db_get_one($sql,$params);
1894   
1895    return $analysis_profile;
1896}
1897
1898function analysis_profile4c_profile_id($c_profile_id)
1899{
1900    $sql = "SELECT * FROM c_profile" .
1901            " WHERE c_profile_id = ? ";
1902    $params = array(intval($c_profile_id));
1903    $profile = db_get_row($sql,$params);
1904   
1905    return $profile;
1906}
1907
1908function monitor_diary_list($keyword, $page_size, $page)
1909{
1910    $page = intval($page);
1911    $page_size = intval($page_size);
1912   
1913    $wheres = array();
1914
1915    if ($keyword) {
1916        //全角空白を半角に統一
1917        $keyword = str_replace(' ', ' ', $keyword);
1918        $keyword_list = explode(' ', $keyword);
1919
1920        for ($i = 0; $i < count($keyword_list); $i++) {
1921            $keyword = check_search_word($keyword_list[$i]);
1922
1923            $wheres[] = '(subject LIKE ? OR body LIKE ?)';
1924            $params[] = '%' . $keyword . '%';
1925            $params[] = '%' . $keyword . '%';
1926        }
1927    }
1928    if ($wheres) {
1929        $where = ' WHERE ' . implode(' AND ', $wheres);
1930    } else {
1931        $where = '';
1932    }
1933   
1934    $select = "SELECT *";
1935    $from = " FROM c_diary";
1936    $order = " ORDER BY r_datetime DESC";
1937   
1938    $sql = $select . $from . $where . $order;
1939    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1940    foreach ($list as $key => $value) {
1941        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
1942        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']);
1943    }
1944   
1945    $sql = 
1946        "SELECT COUNT(*) "
1947        . $from
1948        . $where ;
1949    $total_num = db_get_one($sql, $params);
1950   
1951    $total_page_num =  ceil($total_num / $page_size);
1952    $next = ($page < $total_page_num);
1953    $prev = ($page > 1);
1954   
1955    return array($list , $prev , $next, $total_num, $total_page_num);
1956}
1957
1958function monitor_diary_list4c_diary_id($c_diary_id, $page_size, $page)
1959{
1960    $page = intval($page);
1961    $page_size = intval($page_size);
1962   
1963    $where = " WHERE c_diary_id = ? ";
1964    $params[] = intval($c_diary_id);
1965   
1966    $select = "SELECT c_diary.*";
1967    $from = " FROM c_diary";
1968    $order = " ORDER BY r_datetime DESC";
1969   
1970    $sql = $select . $from . $where . $order;
1971    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
1972    foreach ($list as $key => $value) {
1973        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
1974        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']);
1975    }
1976   
1977    $sql = 
1978        "SELECT COUNT(*) "
1979        . $from
1980        . $where ;
1981    $total_num = db_get_one($sql, $params);
1982   
1983    $total_page_num =  ceil($total_num / $page_size);
1984    $next = ($page < $total_page_num);
1985    $prev = ($page > 1);
1986   
1987    return array($list , $prev , $next, $total_num, $total_page_num);
1988}
1989
1990function monitor_diary_comment_list($keyword, $page_size, $page)
1991{
1992    $page = intval($page);
1993    $page_size = intval($page_size);
1994   
1995    $wheres = array();
1996
1997    if ($keyword) {
1998        //全角空白を半角に統一
1999        $keyword = str_replace(' ', ' ', $keyword);
2000        $keyword_list = explode(' ', $keyword);
2001
2002        for($i = 0; $i < count($keyword_list); $i++) {
2003            $keyword = check_search_word($keyword_list[$i]);
2004
2005            $wheres[] = 'c_diary_comment.body LIKE ?';
2006            $params[] = '%' . $keyword . '%';
2007        }
2008    }
2009
2010    if ($wheres) {
2011        $where = ' WHERE ' . implode(' AND ', $wheres);
2012    } else {
2013        $where = '';
2014    }
2015
2016    $select = "SELECT c_diary_comment.*, c_diary.subject";
2017    $from = " FROM c_diary_comment"
2018        ." LEFT JOIN c_diary ON c_diary.c_diary_id = c_diary_comment.c_diary_id ";
2019    $order = " ORDER BY r_datetime desc";
2020   
2021    $sql = $select . $from . $where . $order;
2022    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2023    foreach ($list as $key => $value) {
2024        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
2025        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']);
2026    }
2027   
2028    $sql = 
2029        "SELECT COUNT(*) "
2030        . $from
2031        . $where ;
2032    $total_num = db_get_one($sql, $params);
2033   
2034    $total_page_num =  ceil($total_num / $page_size);
2035    $next = ($page < $total_page_num);
2036    $prev = ($page > 1);
2037   
2038    return array($list , $prev , $next, $total_num, $total_page_num);
2039}
2040
2041function monitor_diary_comment_list4c_diary_comment_id($c_diary_comment_id, $page_size, $page)
2042{
2043    $page = intval($page);
2044    $page_size = intval($page_size);
2045
2046    $where = " WHERE c_diary_comment.c_diary_comment_id = ? ";
2047    $params[] = intval($c_diary_comment_id);
2048   
2049    $select = "SELECT c_diary_comment.*, c_diary.subject";
2050    $from = " FROM c_diary_comment"
2051        ." LEFT JOIN c_diary ON c_diary.c_diary_id = c_diary_comment.c_diary_id ";
2052    $order = " ORDER BY r_datetime desc";
2053   
2054    $sql = $select . $from . $where . $order;
2055    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2056   
2057    foreach ($list as $key => $value) {
2058        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
2059        $list[$key]['count_comments'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']);
2060    }
2061   
2062    $sql = 
2063        "SELECT COUNT(*) "
2064        . $from
2065        . $where ;
2066    $total_num = db_get_one($sql, $params);
2067   
2068    $total_page_num =  ceil($total_num / $page_size);
2069    $next = ($page < $total_page_num);
2070    $prev = ($page > 1);
2071   
2072    return array($list , $prev , $next, $total_num, $total_page_num);
2073}
2074
2075function monitor_commu_list($keyword, $page_size, $page)
2076{
2077    $page = intval($page);
2078    $page_size = intval($page_size);
2079   
2080    $wheres = array();
2081
2082    if ($keyword) {
2083        $keyword = str_replace(' ', ' ', $keyword);
2084        $keyword_list = explode(' ', $keyword);
2085           
2086        for($i = 0; $i < count($keyword_list); $i++) {
2087            $keyword = check_search_word($keyword_list[$i]);
2088               
2089            $wheres[] = '(name LIKE ? OR info LIKE ?)';
2090            $params[] = '%' . $keyword . '%';
2091            $params[] = '%' . $keyword . '%';
2092        }
2093    }
2094
2095    if ($wheres) {
2096        $where = ' WHERE ' . implode(' AND ', $wheres);
2097    } else {
2098        $where = '';
2099    }
2100
2101    $select = "SELECT * ";
2102    $from = " FROM c_commu";
2103    $order = " ORDER BY r_datetime DESC";
2104   
2105    $sql = $select . $from . $where . $order;
2106   
2107    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2108   
2109    foreach ($list as $key => $value) {
2110        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id_admin']);
2111    }
2112   
2113    $sql = 
2114        "SELECT COUNT(*) "
2115        . $from
2116        . $where ;
2117    $total_num = db_get_one($sql, $params);
2118   
2119    $total_page_num =  ceil($total_num / $page_size);
2120    $next = ($page < $total_page_num);
2121    $prev = ($page > 1);
2122   
2123    return array($list, $prev, $next, $total_num, $total_page_num);
2124}
2125
2126function monitor_commu_list4c_commu_id($c_commu_id, $page_size, $page)
2127{
2128    $page = intval($page);
2129    $page_size = intval($page_size);
2130   
2131    $where = " WHERE c_commu_id = ? ";
2132    $params[] = intval($c_commu_id);
2133   
2134    $select = "SELECT * ";
2135    $from = " FROM c_commu";
2136    $order = " ORDER BY r_datetime DESC";
2137   
2138    $sql = $select . $from . $where . $order;
2139   
2140    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2141   
2142    foreach ($list as $key => $value) {
2143        $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id_admin']);;
2144    }
2145   
2146    $sql = 
2147        "SELECT COUNT(*) "
2148        . $from
2149        . $where ;
2150    $total_num = db_get_one($sql, $params);
2151   
2152    $total_page_num =  ceil($total_num / $page_size);
2153    $next = ($page < $total_page_num);
2154    $prev = ($page > 1);
2155   
2156    return array($list , $prev , $next, $total_num, $total_page_num);
2157}
2158
2159function monitor_topic_comment_list($keyword, $page_size, $page)
2160{
2161    $page = intval($page);
2162    $page_size = intval($page_size);
2163   
2164    $where = " WHERE ctc.number <> 0  ";
2165
2166    if ($keyword) {
2167        $keyword = str_replace("?@", " ", $keyword);
2168        $keyword_list = explode(" ", $keyword);
2169           
2170        for($i=0;$i < count($keyword_list);$i++) {
2171            $keyword = check_search_word( $keyword_list[$i] );
2172               
2173            $where .= " AND (ctc.body LIKE ? )";
2174            $params[]="%$keyword%";
2175        }
2176    }
2177   
2178    $select = "SELECT ctc.*,ct.name as topic_name,c.name as commu_name";
2179    $from = " FROM c_commu_topic_comment as ctc"
2180            ." LEFT JOIN c_commu_topic as ct ON ct.c_commu_topic_id = ctc.c_commu_topic_id "
2181            ." LEFT JOIN c_commu as c ON c.c_commu_id = ct.c_commu_id ";
2182    $order = " ORDER BY r_datetime desc";
2183   
2184    $sql = $select . $from . $where . $order;
2185   
2186    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2187   
2188    foreach ($list as $key => $value) {
2189        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
2190        $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
2191        $list[$key]['nickname'] = $c_member['nickname'];
2192    }
2193   
2194    $sql = 
2195        "SELECT COUNT(*) "
2196        . $from
2197        . $where ;
2198    $total_num = db_get_one($sql, $params);
2199   
2200    $total_page_num =  ceil($total_num / $page_size);
2201    $next = ($page < $total_page_num);
2202    $prev = ($page > 1);
2203   
2204    return array($list , $prev , $next, $total_num, $total_page_num);
2205}
2206
2207function monitor_topic_comment_list4c_commu_topic_comment_id($c_commu_topic_comment_id, $page_size, $page)
2208{
2209    $page = intval($page);
2210    $page_size = intval($page_size);
2211   
2212    $where = " WHERE ctc.number <> 0 AND ctc.c_commu_topic_comment_id = ? ";
2213    $params[] = intval($c_commu_topic_comment_id);
2214   
2215    $select = "SELECT ctc.*,ct.name as topic_name,c.name as commu_name";
2216    $from = " FROM c_commu_topic_comment as ctc"
2217            ." LEFT JOIN c_commu_topic as ct ON ct.c_commu_topic_id = ctc.c_commu_topic_id "
2218            ." LEFT JOIN c_commu as c ON c.c_commu_id = ct.c_commu_id ";
2219    $order = " ORDER BY r_datetime desc";
2220   
2221    $sql = $select . $from . $where . $order;
2222   
2223    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2224   
2225    foreach ($list as $key => $value) {
2226        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
2227        $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
2228        $list[$key]['nickname'] = $c_member['nickname'];
2229    }
2230   
2231    $sql = 
2232        "SELECT COUNT(*) "
2233        . $from
2234        . $where ;
2235    $total_num = db_get_one($sql, $params);
2236   
2237    $total_page_num =  ceil($total_num / $page_size);
2238    $next = ($page < $total_page_num);
2239    $prev = ($page > 1);
2240   
2241    return array($list , $prev , $next, $total_num, $total_page_num);
2242}
2243
2244function monitor_topic_list($keyword, $page_size, $page)
2245{
2246    $page = intval($page);
2247    $page_size = intval($page_size);
2248   
2249    $wheres = array();
2250
2251    if ($keyword) {
2252        $keyword = str_replace(' ', ' ', $keyword);
2253        $keyword_list = explode(' ', $keyword);
2254
2255        for ($i = 0; $i < count($keyword_list); $i++) {
2256            $keyword = check_search_word($keyword_list[$i]);
2257
2258            $wheres[] = '(ctc.body like ? OR ct.name like ? OR c.name like ?)';
2259            $params[] = '%' . $keyword . '%';
2260            $params[] = '%' . $keyword . '%';
2261            $params[] = '%' . $keyword . '%';
2262        }
2263    }
2264   
2265    if ($wheres) {
2266        $where = ' WHERE ' . implode(' AND ', $wheres);
2267    } else {
2268        $where = '';
2269    }
2270
2271    $select = "SELECT ct.*," .
2272            " ct.name AS topic_name, c.name AS commu_name," .
2273            " ctc.body, ctc.filename, ctc.image_filename1, ctc.image_filename2, ctc.image_filename3";
2274
2275    $from = " FROM c_commu_topic AS ct"
2276          . " LEFT JOIN c_commu AS c ON c.c_commu_id = ct.c_commu_id "
2277          . " LEFT JOIN c_commu_topic_comment AS ctc ON (ctc.c_commu_topic_id = ct.c_commu_topic_id AND ctc.number = 0)";
2278
2279    $order = " ORDER BY r_datetime desc";
2280
2281    $sql = $select . $from . $where . $order;
2282
2283    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2284
2285    foreach ($list as $key => $value) {
2286        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
2287        $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
2288        $list[$key]['nickname'] = $c_member['nickname'];
2289        if (!empty($value['filename'])) {
2290            $list[$key]['original_filename'] = db_file_original_filename4filename($value['filename']);
2291        }
2292    }
2293
2294    $sql = 
2295        "SELECT COUNT(*) "
2296        . $from
2297        . $where ;
2298    $total_num = db_get_one($sql, $params);
2299   
2300    $total_page_num =  ceil($total_num / $page_size);
2301    $next = ($page < $total_page_num);
2302    $prev = ($page > 1);
2303   
2304    return array($list , $prev , $next, $total_num, $total_page_num);
2305}
2306
2307function monitor_topic_list4target_c_commu_topic_id($c_commu_topic_id, $page_size, $page)
2308{
2309    $page = intval($page);
2310    $page_size = intval($page_size);
2311   
2312    $where = " where ct.c_commu_topic_id = ? ";
2313    $params[] = intval($c_commu_topic_id);
2314   
2315    $select = "SELECT ct.*," .
2316            "ct.name as topic_name,c.name as commu_name," .
2317            "m.nickname,ctc.body as body," .
2318            "ctc.image_filename1 as image_filename1,ctc.image_filename2 as image_filename2,ctc.image_filename3 as image_filename3," .
2319            "ctc.filename as filename,f.original_filename as original_filename";
2320   
2321    $from = " FROM c_commu_topic as ct"
2322            ." LEFT JOIN c_member as m ON ct.c_member_id = m.c_member_id "
2323            ." LEFT JOIN c_commu as c ON c.c_commu_id = ct.c_commu_id "
2324            ." LEFT JOIN c_commu_topic_comment as ctc ON (ctc.c_commu_topic_id = ct.c_commu_topic_id AND ctc.number = 0)"
2325            ." LEFT JOIN c_file as f ON f.filename = ctc.filename "
2326            ;
2327    $order = " ORDER BY r_datetime desc";
2328   
2329    $sql = $select . $from . $where . $order;
2330   
2331    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2332   
2333    foreach ($list as $key => $value) {
2334        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
2335    }
2336   
2337    $sql = 
2338        "SELECT count(*) "
2339        . $from
2340        . $where ;
2341    $total_num = db_get_one($sql, $params);
2342   
2343    $total_page_num =  ceil($total_num / $page_size);
2344    $next = ($page < $total_page_num);
2345    $prev = ($page > 1);
2346   
2347    return array($list , $prev , $next, $total_num, $total_page_num);
2348}
2349
2350function monitor_new_topic_list($page_size, $page)
2351{
2352    $page = intval($page);
2353    $page_size = intval($page_size); 
2354    $wheres = array();
2355
2356    if ($wheres) {
2357        $where = ' WHERE ' . implode(' AND ', $wheres);
2358    } else {
2359        $where = '';
2360    }
2361
2362    $select = 'SELECT c.name AS commu_name, c.image_filename' 
2363            . ', ct.*, MAX(ctc.r_datetime) AS max_datetime';
2364    $from   = ' FROM c_commu AS c, c_commu_topic AS ct, c_commu_topic_comment AS ctc';
2365    $params = array();
2366    $where = ' WHERE ct.c_commu_topic_id = ctc.c_commu_topic_id'
2367           . ' AND c.c_commu_id = ct.c_commu_id';
2368    $group = ' GROUP BY ct.c_commu_topic_id';
2369    $order = ' ORDER BY max_datetime DESC';
2370                             
2371    $sql = $select . $from . $where . $group . $order;
2372
2373    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2374
2375    foreach ($list as $key => $value) {
2376        $list[$key]['count_comments'] = _db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
2377        $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
2378        $list[$key]['nickname'] = $c_member['nickname'];
2379        if (!empty($value['filename'])) {
2380            $list[$key]['original_filename'] = db_file_original_filename4filename($value['filename']);
2381        }
2382    }
2383
2384    $sql = 
2385        "SELECT COUNT(*) "
2386        . $from
2387        . $where ;
2388    $total_num = db_get_one($sql, $params);
2389   
2390    $total_page_num =  ceil($total_num / $page_size);
2391    $next = ($page < $total_page_num);
2392    $prev = ($page > 1);
2393   
2394    return array($list , $prev , $next, $total_num, $total_page_num);
2395}
2396
2397function monitor_review_list($keyword, $page_size, $page)
2398{
2399    $page = intval($page);
2400    $page_size = intval($page_size);
2401   
2402    $wheres = array();
2403
2404    if ($keyword) {
2405        //全角空白を半角に統一
2406        $keyword = str_replace(' ', ' ', $keyword);
2407        $keyword_list = explode(' ', $keyword);
2408
2409        for ($i = 0; $i < count($keyword_list); $i++) {
2410            $keyword = check_search_word($keyword_list[$i]);
2411
2412            $wheres[] = 'c_review_comment.body like ?';
2413            $params[] = '%' . $keyword . '%';
2414        }
2415    }
2416   
2417    if ($wheres) {
2418        $where = ' WHERE ' . implode(' AND ', $wheres);
2419    } else {
2420        $where = '';
2421    }
2422   
2423    $select = "SELECT c_review_comment.*";
2424    $from = " FROM c_review_comment";
2425    $order = " ORDER BY r_datetime desc";
2426   
2427    $sql = $select . $from . $where . $order;
2428    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2429   
2430
2431    foreach ($list as $key => $value) {
2432        $list[$key]['c_member'] = db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
2433        $list[$key]['c_review'] = db_review_list_product_c_review4c_review_id($value['c_review_id']);
2434    }
2435
2436    $sql = 
2437        "SELECT COUNT(*) "
2438        . $from
2439        . $where ;
2440    $total_num = db_get_one($sql,$params);
2441   
2442    $total_page_num =  ceil($total_num / $page_size);
2443    $next = ($page < $total_page_num);
2444    $prev = ($page > 1);
2445   
2446    return array($list , $prev , $next, $total_num, $total_page_num);
2447}
2448
2449function monitor_review_list4c_review_id($c_review_comment_id, $page_size, $page)
2450{
2451    $page = intval($page);
2452    $page_size = intval($page_size);
2453   
2454    $where = " WHERE c_review_comment_id = ? ";
2455    $params[] = intval($c_review_comment_id);
2456   
2457    $select = "SELECT c_review_comment.*";
2458    $from = " FROM c_review_comment";
2459    $order = " ORDER BY r_datetime desc";
2460   
2461    $sql = $select . $from . $where . $order;
2462    $list = db_get_all_limit($sql,($page-1)*$page_size,$page_size,$params);
2463   
2464    foreach ($list as $key => $value) {
2465        $list[$key]['c_member'] = db_common_c_member4c_member_id_LIGHT($value['c_member_id']);
2466        $list[$key]['c_review'] = db_review_list_product_c_review4c_review_id($value['c_review_id']);
2467    }
2468
2469    $sql = 
2470        "SELECT COUNT(*) "
2471        . $from
2472        . $where ;
2473    $total_num = db_get_one($sql, $params);
2474   
2475    $total_page_num =  ceil($total_num / $page_size);
2476    $next = ($page < $total_page_num);
2477    $prev = ($page > 1);
2478   
2479    return array($list , $prev , $next, $total_num, $total_page_num);
2480}
2481
2482function _db_count_c_commu_topic_comments4c_commu_topic_id($c_commu_topic_id)
2483{
2484    $sql = "SELECT count(*) FROM c_commu_topic_comment" .
2485        " WHERE c_commu_topic_id = ? AND number > 0";
2486    $params = array($c_commu_topic_id);
2487    return db_get_one($sql, $params);
2488}
2489//フリーページを追加
2490function db_admin_insert_c_free_page($title, $body, $auth, $type)
2491{
2492    $data = array(
2493        'title' => strval($title),
2494        'body'  => strval($body),
2495        'auth'  => intval($auth),
2496        'type'  => strval($type),
2497    );
2498    return db_insert('c_free_page', $data);
2499}
2500
2501//フリーページを編集
2502function db_admin_update_c_free_page($c_free_page_id, $title, $body, $auth, $type)
2503{
2504    $data = array(
2505        'title' => strval($title),
2506        'body'  => strval($body),
2507        'auth'  => intval($auth),
2508        'type'  => strval($type),
2509    );
2510    $where = array('c_free_page_id' => intval($c_free_page_id));
2511    return db_update('c_free_page', $data, $where);
2512}
2513
2514//フリーページを削除
2515function db_admin_delete_c_free_page($c_free_page_id)
2516{
2517    $sql = "DELETE FROM c_free_page WHERE c_free_page_id = ?";
2518    $params = array(intval($c_free_page_id));
2519    return db_query($sql, $params);
2520}
2521
2522
2523//フリーページを全て取得(ページャー付き)
2524function db_admin_get_c_free_page_all($page, $page_size, &$pager)
2525{
2526    $sql = 'SELECT * FROM c_free_page ORDER BY c_free_page_id DESC';
2527
2528    $list = db_get_all_page($sql, $page, $page_size, $params);
2529
2530    $sql = 'SELECT count(*) FROM c_free_page';
2531    $total_num = db_get_one($sql, $params);
2532    $pager = admin_make_pager($page, $page_size, $total_num);
2533
2534    return $list;
2535}
2536
2537//フリーページを一つ取得
2538function db_admin_get_c_free_page_one($c_free_page_id)
2539{
2540    $sql = 'SELECT * FROM c_free_page WHERE c_free_page_id = ?';
2541    $params = array(intval($c_free_page_id));
2542
2543    return db_get_row($sql, $params);
2544}
2545
2546//APIを全て取得(ページャー付き)
2547function db_admin_get_c_api_all($page, $page_size, &$pager)
2548{
2549    $sql = 'SELECT * FROM c_api ORDER BY c_api_id';
2550
2551    $list = db_get_all_page($sql, $page, $page_size, $params);
2552
2553    $sql = 'SELECT count(*) FROM c_api';
2554    $total_num = db_get_one($sql, $params);
2555    $pager = admin_make_pager($page, $page_size, $total_num);
2556
2557    return $list;
2558}
2559
2560//APIを編集
2561function db_admin_update_c_api($c_api_id, $name, $ip)
2562{
2563    $data = array(
2564        'name' => strval($name),
2565        'ip' => strval($ip),
2566    );
2567    $where = array('c_api_id' => intval($c_api_id));
2568    return db_update('c_api', $data, $where);
2569}
2570
2571//CMDを追加
2572function db_admin_insert_c_cmd($name, $permit)
2573{
2574    $data = array(
2575        'name' => strval($name),
2576        'permit' => intval($permit),
2577    );
2578    return db_insert('c_cmd', $data);
2579}
2580
2581//CMDを編集
2582function db_admin_update_c_cmd($c_cmd_id, $name, $permit)
2583{
2584    $data = array(
2585        'name' => strval($name),
2586        'permit' => intval($permit),
2587    );
2588    $where = array('c_cmd_id' => intval($c_cmd_id));
2589    return db_update('c_cmd', $data, $where);
2590}
2591
2592//CMDを削除
2593function db_admin_delete_c_cmd($c_cmd_id)
2594{
2595    $sql = "DELETE FROM c_cmd WHERE c_cmd_id = ?";
2596    $params = array(intval($c_cmd_id));
2597    return db_query($sql, $params);
2598}
2599
2600
2601//CMDを全て取得
2602function db_admin_get_c_cmd_all()
2603{
2604    $sql = 'SELECT * FROM c_cmd ORDER BY c_cmd_id';
2605    return db_get_all($sql);
2606}
2607
2608//CMDを一つ取得
2609function db_admin_get_c_cmd_one($c_cmd_id)
2610{
2611    $sql = 'SELECT * FROM c_cmd WHERE c_cmd_id = ?';
2612    $params = array(intval($c_cmd_id));
2613
2614    return db_get_row($sql, $params);
2615}
2616
2617/***
2618 * CMD(小窓)の設定リストを取得する
2619 *
2620 * @return array 小窓の設定リスト
2621 */
2622function db_admin_get_c_cmd_list4name()
2623{
2624    $sql = 'SELECT * FROM c_cmd';
2625    return db_get_all($sql);
2626}
2627
2628/**
2629 * 祝日のリストを取得
2630 */
2631function db_admin_c_holiday_list()
2632{
2633    $sql = 'SELECT * FROM c_holiday ORDER BY month';
2634    $holiday_list = db_get_all($sql);
2635
2636    return $holiday_list;
2637}
2638
2639/**
2640 * 休日を追加
2641 */
2642function db_admin_insert_c_holiday($name, $month, $day)
2643{
2644    $data = array(
2645        'name' => strval($name),
2646        'month' => intval($month),
2647        'day' => intval($day),
2648    );
2649    return db_insert('c_holiday', $data);
2650}
2651
2652/**
2653 * 休日を編集
2654 */
2655function db_admin_update_c_holiday($c_holiday_id, $name, $month, $day)
2656{
2657    $data = array(
2658        'name' => strval($name),
2659        'month' => intval($month),
2660        'day' => intval($day),
2661    );
2662    $where = array('c_holiday_id' => intval($c_holiday_id));
2663    return db_update('c_holiday', $data, $where);
2664}
2665
2666/**
2667 * 休日を削除
2668 */
2669function db_admin_delete_c_holiday($c_holiday_id)
2670{
2671    $sql = "DELETE FROM c_holiday WHERE c_holiday_id = ?";
2672    $params = array(intval($c_holiday_id));
2673    return db_query($sql, $params);
2674}
2675
2676//メッセージ送信履歴を挿入
2677function db_admin_insert_c_send_messages_history($subject, $body, $send_num, $type, $c_member_ids)
2678{
2679
2680    //配列を文字列に変換
2681    if($c_member_ids) {
2682        $c_member_ids = implode("-",$c_member_ids);
2683    } else {
2684        return;
2685    }
2686
2687    $data = array(
2688        'subject'       => strval($subject),
2689        'body'          => strval($body),
2690        'send_num'      => intval($send_num),
2691        'type'          => strval($type),
2692        'c_member_ids'  => strval($c_member_ids),
2693        'r_datetime'    => db_now()
2694    );
2695
2696    return db_insert('c_send_messages_history', $data);
2697
2698}
2699
2700//メッセージ送信履歴を全て取得(ページャー付き)
2701function db_admin_get_c_send_messages_history_all($page, $page_size, &$pager)
2702{
2703
2704    $sql = 'SELECT * FROM c_send_messages_history ORDER BY c_send_messages_history_id DESC';
2705
2706    $history_list = db_get_all_page($sql, $page, $page_size, $params);
2707
2708    foreach ($history_list as $key => $history) {
2709        $history_list[$key]['c_member_ids'] = explode("-", $history['c_member_ids']);
2710    }
2711
2712    $sql = 'SELECT count(*) FROM c_send_messages_history';
2713    $total_num = db_get_one($sql, $params);
2714    $pager = admin_make_pager($page, $page_size, $total_num);
2715
2716    return $history_list;
2717}
2718
2719//メッセージ送信履歴を一つ取得
2720function db_admin_get_c_send_messages_history($c_send_messages_history_id)
2721{
2722
2723    $sql = 'SELECT * FROM c_send_messages_history WHERE c_send_messages_history_id = ?';
2724
2725    $params = array(intval($c_send_messages_history_id));
2726
2727    $history = db_get_row($sql, $params);
2728
2729    $history['c_member_ids'] = explode("-", $history['c_member_ids']);
2730
2731    return $history;
2732}
2733
2734//メッセージをキューに入れる
2735function db_admin_insert_c_message_queue($c_member_id_from, $c_member_id_to, $subject, $body)
2736{
2737    $data = array(
2738        'c_member_id_from' => intval($c_member_id_from),
2739        'c_member_id_to'   => intval($c_member_id_to),
2740        'subject'          => strval($subject),
2741        'body'             => strval($body),
2742    );
2743    return db_insert('c_message_queue', $data);
2744}
2745
2746//メッセージをキューから削除
2747function db_admin_delete_c_message_queue($c_message_queue_id)
2748{
2749
2750    $sql = "DELETE FROM c_message_queue WHERE c_message_queue_id = ?";
2751    $params = array(intval($c_message_queue_id));
2752
2753    return db_query($sql, $params);
2754}
2755
2756//ランクを追加
2757function db_admin_insert_c_rank($name, $image_filename, $point)
2758{
2759    $data = array(
2760        'name' => strval($name),
2761        'image_filename' => strval($image_filename),
2762        'point' => intval($point),
2763    );
2764    return db_insert('c_rank', $data);
2765}
2766
2767//ランクを編集
2768function db_admin_update_c_rank($c_rank_id, $name, $image_filename, $point)
2769{
2770    $data = array(
2771        'name' => strval($name),
2772        'image_filename' => strval($image_filename),
2773        'point' => intval($point),
2774    );
2775    $where = array('c_rank_id' => intval($c_rank_id));
2776    return db_update('c_rank', $data, $where);
2777}
2778
2779//ランクを削除
2780function db_admin_delete_c_rank($c_rank_id)
2781{
2782    $sql = "DELETE FROM c_rank WHERE c_rank_id = ?";
2783    $params = array(intval($c_rank_id));
2784    return db_query($sql, $params);
2785}
2786
2787//ランクを全て取得
2788function db_admin_get_c_rank_all()
2789{
2790    $sql = 'SELECT * FROM c_rank ORDER BY point';
2791    return db_get_all($sql);
2792}
2793
2794//ランクを一つ取得
2795function db_admin_get_c_rank_one($c_rank_id)
2796{
2797    $sql = 'SELECT * FROM c_rank WHERE c_rank_id = ?';
2798    $params = array(intval($c_rank_id));
2799
2800    return db_get_row($sql, $params);
2801}
2802
2803//アクションを編集
2804function db_admin_update_c_action($c_action_id, $point)
2805{
2806    $data = array(
2807        'point' => intval($point),
2808    );
2809    $where = array('c_action_id' => intval($c_action_id));
2810    return db_update('c_action', $data, $where);
2811}
2812
2813//アクションを全て取得
2814function db_admin_get_c_action_all()
2815{
2816    $sql = 'SELECT * FROM c_action ORDER BY c_action_id';
2817    return db_get_all($sql);
2818}
2819
2820/**
2821 * 指定したファイル名のファイルへのリンクを削除する
2822 *
2823 * @param string $filename
2824 */
2825function db_admin_delete_c_file_link4filename($filename)
2826{
2827    // c_commu_topic_comment
2828    $tbl = 'c_commu_topic_comment';
2829    _db_admin_empty_image_filename($tbl, $filename, 'filename');
2830}
2831
2832function db_admin_get_c_member_profile_pnepoint($c_member_id)
2833{
2834    $sql = 'SELECT c_profile_id FROM c_profile where name = \'PNE_POINT\'';
2835    $c_profile_id =  db_get_one($sql);
2836    $params = array($c_member_id , $c_profile_id);
2837    $sql = 'SELECT * FROM c_member_profile where c_member_id = ? and c_profile_id = ?';
2838    $c_member_profile = db_get_row($sql, $params);
2839
2840    return  $c_member_profile;
2841}
2842
2843function db_admin_c_blacklist_list($page, $page_size)
2844{
2845    $sql = 'SELECT b.c_blacklist_id,ms.c_member_id,b.info,m.nickname,b.easy_access_id ' .
2846            ' FROM c_blacklist AS b' .
2847            ' LEFT JOIN c_member_secure AS ms ON b.easy_access_id = ms.easy_access_id'.
2848            ' LEFT JOIN c_member AS m ON ms.c_member_id = m.c_member_id' .
2849            ' ORDER BY b.c_blacklist_id ASC';
2850    $list = db_get_all_page($sql, $page, $page_size);
2851   
2852    $sql = 'SELECT count(*) FROM c_blacklist';
2853    $total_num = db_get_one($sql);
2854   
2855    $total_page_num = ceil($total_num / $page_size);
2856    $next = ($page < $total_page_num);
2857    $prev = ($page > 1);
2858   
2859    return array($list, $prev, $next, $total_num, $total_page_num);
2860}
2861
2862function db_admin_insert_c_blacklist($easy_access_id, $info)
2863{
2864    $data = array(
2865        'easy_access_id' => $easy_access_id,
2866        'info' => (string)$info,
2867    );
2868    return db_insert('c_blacklist', $data);
2869}
2870
2871function db_admin_update_c_blacklist($c_blacklist_id, $easy_access_id, $info)
2872{
2873    $data = array(
2874        'easy_access_id' => $easy_access_id,
2875        'info' => (string)$info,
2876    );
2877    $where = array('c_blacklist_id' => $c_blacklist_id);
2878    return db_update('c_blacklist', $data, $where);
2879}
2880
2881function db_admin_delete_c_blacklist($c_blacklist_id)
2882{
2883    $sql = 'DELETE FROM c_blacklist WHERE c_blacklist_id = ?';
2884    $params = array(intval($c_blacklist_id));
2885    db_query($sql, $params);
2886}
2887
2888function db_admin_c_blacklist($c_blacklist_id)
2889{
2890    $sql = 'SELECT b.c_blacklist_id,ms.c_member_id,b.info,m.nickname,b.easy_access_id ' .
2891            ' FROM c_blacklist AS b' .
2892            ' LEFT JOIN c_member_secure AS ms ON b.easy_access_id = ms.easy_access_id'.
2893            ' LEFT JOIN c_member AS m ON ms.c_member_id = m.c_member_id' .
2894            ' WHERE b.c_blacklist_id = ? '
2895            ;
2896    $param = array($c_blacklist_id);
2897    $blacklist = db_get_row($sql, $param);
2898   
2899    return $blacklist;
2900}
2901
2902?>
Note: See TracBrowser for help on using the repository browser.