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

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

Last change on this file since 6937 was 6937, checked in by ebihara, 12 years ago

#2350:とりあえずプレフィックスに応じた画像のリンクを削除するように修正

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