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

source: OpenPNE/branches/2_8/webapp/modules/admin/lib/db_admin.php @ 2296

Last change on this file since 2296 was 2296, checked in by takanashi, 13 years ago

#558:ファイルアップロード関連の改善。管理画面からのファイル削除、トピック削除契機のファイル削除など

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