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

source: OpenPNE/trunk/webapp/modules/admin/lib/db_admin.php @ 276

Last change on this file since 276 was 276, checked in by ogawa, 14 years ago

remove extra spaces

File size: 20.0 KB
Line 
1<?php
2/**
3 * @copyright 2005-2006 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_common_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_common_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    if (!$c_profile_option_id) return false;
78
79    $sql = 'DELETE FROM c_member_profile WHERE c_profile_option_id = ?';
80    $params = array(intval($c_profile_option_id));
81    db_query($sql, $params);
82
83    $sql = 'DELETE FROM c_profile_option WHERE c_profile_option_id = ?';
84    db_query($sql, $params);
85
86    return true;
87}
88
89function db_admin_insert_c_profile_option($c_profile_id, $value, $sort_order)
90{
91    $data = array(
92        'c_profile_id' => intval($c_profile_id),
93        'value' => $value,
94        'sort_order' => intval($sort_order),
95    );
96    return db_insert('c_profile_option', $data);
97}
98
99function db_admin_update_c_profile_option($c_profile_option_id, $value, $sort_order)
100{
101    $data = array('value' => $value);
102    $where = array('c_profile_option_id' => intval($c_profile_option_id));
103    db_update('c_member_profile', $data, $where);
104
105    $data = array(
106        'value' => $value,
107        'sort_order' => intval($sort_order),
108    );
109    db_update('c_profile_option', $data, $where);
110}
111
112function db_admin_insert_c_banner($a_href, $type, $nickname)
113{
114    $data = array(
115        'a_href' => $a_href,
116        'type' => $type,
117        'nickname' => $nickname,
118        'is_hidden_after' => 0,
119        'is_hidden_before' => 0,
120    );
121    return db_insert('c_banner', $data);
122}
123
124function db_admin_update_c_banner($c_banner_id, $sets)
125{
126    $where = array('c_banner_id' => intval($c_banner_id));
127    db_update('c_banner', $sets, $where);
128}
129
130function db_admin_delete_c_banner($c_banner_id)
131{
132    db_admin_delete_c_image4c_banner_id($c_banner_id);
133
134    $sql = 'DELETE FROM c_banner WHERE c_banner_id = ?';
135    $params = array(intval($c_banner_id));
136    db_query($sql, $params);
137}
138
139function db_admin_delete_c_image4c_banner_id($c_banner_id)
140{
141    $sql = 'SELECT image_filename FROM c_banner WHERE c_banner_id = ?';
142    $params = array(intval($c_banner_id));
143    $image_filename = db_get_one($sql, $params);
144    image_data_delete($image_filename);
145}
146
147function db_admin_insert_c_profile(
148    $name
149    , $caption
150    , $is_required
151    , $public_flag_edit
152    , $public_flag_default
153    , $form_type
154    , $sort_order
155    , $disp_regist
156    , $disp_config
157    , $disp_search
158    , $val_type
159    , $val_regexp
160    , $val_min
161    , $val_max
162    )
163{
164    $data = array(
165        'name' => $name,
166        'caption' => $caption,
167        'is_required' => (bool)$is_required,
168        'public_flag_edit' => (bool)$public_flag_edit,
169        'public_flag_default' => $public_flag_default,
170        'form_type' => $form_type,
171        'sort_order' => (int)$sort_order,
172        'disp_regist' => (bool)$disp_regist,
173        'disp_config' => (bool)$disp_config,
174        'disp_search' => (bool)$disp_search,
175        'val_type' => $val_type,
176        'val_regexp' => $val_regexp,
177        'val_min' => (int)$val_min,
178        'val_max' => (int)$val_max,
179    );
180    return db_insert('c_profile', $data);
181}
182
183function db_admin_update_c_profile($c_profile_id
184    , $name
185    , $caption
186    , $is_required
187    , $public_flag_edit
188    , $public_flag_default
189    , $form_type
190    , $sort_order
191    , $disp_regist
192    , $disp_config
193    , $disp_search
194    , $val_type
195    , $val_regexp
196    , $val_min
197    , $val_max
198    )
199{
200    $data = array(
201        'name' => $name,
202        'caption' => $caption,
203        'is_required' => (bool)$is_required,
204        'public_flag_edit' => (bool)$public_flag_edit,
205        'public_flag_default' => $public_flag_default,
206        'form_type' => $form_type,
207        'sort_order' => intval($sort_order),
208        'disp_regist' => (bool)$disp_regist,
209        'disp_config' => (bool)$disp_config,
210        'disp_search' => (bool)$disp_search,
211        'val_type' => $val_type,
212        'val_regexp' => $val_regexp,
213        'val_min' => intval($val_min),
214        'val_max' => intval($val_max),
215    );
216    $where = array('c_profile_id' => intval($c_profile_id));
217    db_update('c_profile', $data, $where);
218
219    // 公開設定が固定のときはユーザーの設定値を上書き
220    if (!$public_flag_edit) {
221        $data = array('public_flag' => $public_flag_default);
222        db_update('c_member_profile', $data, $where);
223    }
224}
225
226function db_admin_delete_c_profile($c_profile_id)
227{
228    $params = array(intval($c_profile_id));
229
230    // メンバーのプロフィールから削除
231    $sql = 'DELETE FROM c_member_profile WHERE c_profile_id = ?';
232    db_query($sql, $params);
233
234    // 選択肢項目を削除
235    $sql = 'DELETE FROM c_profile_option WHERE c_profile_id = ?';
236    db_query($sql, $params);
237
238    // プロフィール項目を削除
239    $sql = 'DELETE FROM c_profile WHERE c_profile_id = ?';
240    db_query($sql, $params);
241}
242
243function db_admin_c_profile4c_profile_id($c_profile_id)
244{
245    $sql = 'SELECT * FROM c_profile WHERE c_profile_id = ?';
246    $params = array(intval($c_profile_id));
247    return db_get_row($sql, $params);
248}
249
250/**
251 * 全バナー取得
252 *
253 * @param  int $limit 取得最大件数
254 * @return array_of_array  c_banner_list バナー配列
255 */
256function db_admin_c_banner_list4null($type = '')
257{
258    $sql = 'SELECT * FROM c_banner';
259    $params = array();
260    if ($type) {
261        $sql .= ' WHERE type = ?';
262        $params[] = $type;
263    }
264    return db_get_all($sql, $params);
265}
266
267function db_admin_c_commu_category_parent_list()
268{
269    $sql = 'SELECT * FROM c_commu_category_parent ORDER BY sort_order';
270    return db_get_all($sql);
271}
272
273function db_admin_c_commu_category_list()
274{
275    $sql = 'SELECT * FROM c_commu_category ORDER BY sort_order';
276    $list = db_get_all($sql);
277
278    $category_list = array();
279    foreach ($list as $item) {
280        $category_list[$item['c_commu_category_parent_id']][] = $item;
281    }
282    return $category_list;
283}
284
285function db_admin_insert_c_commu_category_parent($name, $sort_order)
286{
287    $data = array(
288        'name' => $name,
289        'sort_order' => intval($sort_order),
290    );
291    return db_insert('c_commu_category_parent', $data);
292}
293
294function db_admin_update_c_commu_category_parent($c_commu_category_parent_id, $name, $sort_order)
295{
296    $data = array(
297        'name' => $name,
298        'sort_order' => intval($sort_order),
299    );
300    $where = array(
301        'c_commu_category_parent_id' => intval($c_commu_category_parent_id)
302    );
303    db_update('c_commu_category_parent', $data, $where);
304}
305
306function db_admin_delete_c_commu_category_parent($c_commu_category_parent_id)
307{
308    $params = array(intval($c_commu_category_parent_id));
309
310    // 小カテゴリを削除
311    $sql = 'DELETE FROM c_commu_category WHERE c_commu_category_parent_id = ?';
312    db_query($sql, $params);
313
314    // 中カテゴリを削除
315    $sql = 'DELETE FROM c_commu_category_parent WHERE c_commu_category_parent_id = ?';
316    db_query($sql, $params);
317}
318
319function db_admin_insert_c_commu_category($c_commu_category_parent_id, $name, $sort_order)
320{
321    $data = array(
322        'c_commu_category_parent_id' => intval($c_commu_category_parent_id),
323        'name' => $name,
324        'sort_order' => intval($sort_order),
325    );
326    return db_insert('c_commu_category', $data);
327}
328
329function db_admin_update_c_commu_category($c_commu_category_id, $name, $sort_order)
330{
331    $data = array(
332        'name' => $name,
333        'sort_order' => intval($sort_order)
334    );
335    $where = array('c_commu_category_id' => intval($c_commu_category_id));
336    db_update('c_commu_category', $data, $where);
337}
338
339function db_admin_delete_c_commu_category($c_commu_category_id)
340{
341    // 小カテゴリを削除
342    $sql = 'DELETE FROM c_commu_category WHERE c_commu_category_id = ?';
343    $params = array(intval($c_commu_category_id));
344    db_query($sql, $params);
345}
346
347function db_admin_c_admin_user_id4username($username)
348{
349    $sql = 'SELECT c_admin_user_id FROM c_admin_user WHERE username = ?';
350    $params = array($username);
351    return db_get_one($sql, $params);
352}
353
354function db_admin_authenticate_password($uid, $password)
355{
356    $sql = 'SELECT c_admin_user_id FROM c_admin_user WHERE c_admin_user_id = ? AND password = ?';
357    $params = array(intval($uid), md5($password));
358    return (bool)db_get_one($sql, $params);
359}
360
361function db_admin_update_c_admin_user_password($uid, $password)
362{
363    $data = array('password' => md5($password));
364    $where = array('c_admin_user_id' => intval($uid));
365    db_update('c_admin_user', $data, $where);
366}
367
368function db_admin_c_admin_config4name($name)
369{
370    $sql = 'SELECT value FROM c_admin_config WHERE name = ?';
371    $params = array($name);
372    return db_get_one($sql, $params);
373}
374
375function db_admin_insert_c_admin_config($name, $value)
376{
377    $data = array(
378        'name' => $name,
379        'value' => $value,
380    );
381    return db_insert('c_admin_config', $data);
382}
383
384function db_admin_update_c_admin_config($name, $value)
385{
386    $data = array('value' => $value);
387    $where = array('name' => $name);
388    db_update('c_admin_config', $data, $where);
389}
390
391function db_admin_replace_c_admin_config($name, $value)
392{
393    $sql = 'DELETE FROM c_admin_config WHERE name = ?';
394    $params = array($name);
395    db_query($sql, $params);
396
397    $data = array(
398        'name'  => strval($name),
399        'value' => strval($value),
400    );
401    return db_insert('c_admin_config', $data);
402}
403
404function db_admin_c_admin_config_all()
405{
406    $sql = 'SELECT name, value FROM c_admin_config';
407    return db_get_assoc($sql);
408}
409
410function db_admin_delete_c_image_link4image_filename($image_filename)
411{
412    // c_banner (削除)
413    $sql = 'DELETE FROM c_banner WHERE image_filename = ?';
414    $params = array($image_filename);
415    db_query($sql, $params);
416
417    // c_commu
418    $tbl = 'c_commu';
419    _db_admin_empty_image_filename($tbl, $image_filename);
420
421    // c_commu_topic_comment
422    $tbl = 'c_commu_topic_comment';
423    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename1');
424    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename2');
425    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename3');
426
427    // c_diary
428    $tbl = 'c_diary';
429    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_1');
430    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_2');
431    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_3');
432
433    // c_diary_comment
434    $tbl = 'c_diary_comment';
435    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_1');
436    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_2');
437    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_3');
438
439    // c_member
440    $tbl = 'c_member';
441    _db_admin_empty_image_filename($tbl, $image_filename);
442    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_1');
443    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_2');
444    _db_admin_empty_image_filename($tbl, $image_filename, 'image_filename_3');
445}
446
447function _db_admin_empty_image_filename($tbl, $image_filename, $column = 'image_filename')
448{
449    $data = array(
450        db_escapeIdentifier($column) => '',
451    );
452    $where = array(
453        db_escapeIdentifier($column) => $image_filename,
454    );
455    db_update(db_escapeIdentifier($tbl), $data, $where);
456}
457
458function db_admin_c_profile_name_exists($name)
459{
460    $sql = 'SELECT c_profile_id FROM c_profile WHERE name = ?';
461    $params = array($name);
462    return db_get_one($sql, $params);
463}
464
465function db_admin_update_is_login_rejected($c_member_id)
466{
467    $sql = 'SELECT is_login_rejected FROM c_member WHERE c_member_id = ?';
468    $params = array(intval($c_member_id));
469    $is_login_rejected = db_get_one($sql, $params);
470    if (is_null($is_login_rejected)) {
471        return false;
472    }
473
474    $data = array('is_login_rejected' => !($is_login_rejected));
475    $where = array('c_member_id' => intval($c_member_id));
476    return db_update('c_member', $data, $where);
477}
478
479function db_admin_c_admin_user_list()
480{
481    $sql = 'SELECT * FROM c_admin_user ORDER BY c_admin_user_id';
482    return db_get_all($sql);
483}
484
485function db_admin_exists_c_admin_username($username)
486{
487    $sql = 'SELECT c_admin_user_id FROM c_admin_user WHERE username = ?';
488    $params = array(strval($username));
489    return (bool)db_get_one($sql, $params);
490}
491
492function db_admin_insert_c_admin_user($username, $password, $auth_type)
493{
494    $data = array(
495        'username' => strval($username),
496        'password' => md5($password),
497        'auth_type' => strval($auth_type),
498    );
499    return db_insert('c_admin_user', $data);
500}
501
502function db_admin_delete_c_admin_user($c_admin_user_id)
503{
504    $sql = 'DELETE FROM c_admin_user WHERE c_admin_user_id = ?';
505    $params = array(intval($c_admin_user_id));
506    return db_query($sql, $params);
507}
508
509function db_admin_get_auth_type($c_admin_user_id)
510{
511    $sql = 'SELECT auth_type FROM c_admin_user WHERE c_admin_user_id = ?';
512    $params = array(intval($c_admin_user_id));
513    return db_get_one($sql, $params);
514}
515
516/**
517 * ユーザーIDリスト取得(絞り込み対応)
518 */
519function _db_admin_c_member_id_list($cond_list)
520{
521    $sql = 'SELECT c_member_id'.
522           ' FROM c_member'.
523           ' WHERE 1';
524
525    //開始年
526    if (!empty($cond_list['s_year'])) {
527        $sql .= ' AND birth_year >= ?';
528        $params[] = $cond_list['s_year'];
529    }
530    //終了年
531    if (!empty($cond_list['e_year'])) {
532        $sql .= ' AND birth_year <= ?';
533        $params[] = $cond_list['e_year'];
534    }
535    $sql .= ' ORDER BY c_member_id';
536
537    $ids = db_get_col($sql, $params);
538
539    //各プロフィールごとで絞り結果をマージする
540    $_sql = 'SELECT name FROM c_profile WHERE (form_type = ? OR form_type = ?)';
541    $profile = db_get_col($_sql, array('select', 'radio'));
542
543    if ( $profile ) {
544        foreach ($profile as $value) {
545            if (!empty($cond_list[$value])) {
546                $sql = 'SELECT c_member_id FROM c_member_profile WHERE c_profile_option_id = ?';
547                $params = array($cond_list[$value]);
548                $temp_ids = db_get_col($sql, $params);
549                $ids = array_intersect($ids, $temp_ids);
550            }
551        }
552    }
553
554    return $ids;
555}
556
557/**
558 * ユーザーリスト取得
559 * 誕生年+プロフィール(select,radioのみ)
560 */
561function _db_admin_c_member_list($page, $page_size, &$pager, $cond_list)
562{
563    $ids = _db_admin_c_member_id_list($cond_list);
564    $total_num = count($ids);
565    $ids = array_slice( $ids, ($page - 1)*$page_size, $page_size);
566
567    $c_member_list = array();
568    foreach ($ids as $id) {
569        $c_member_list[] = db_common_c_member4c_member_id($id, true, true, 'private');
570    }
571
572    if ($total_num > 0) {
573        $pager = admin_make_pager($page, $page_size, $total_num);
574    }
575
576    return $c_member_list;
577}
578
579function db_c_profile_option4c_profile_option_id($c_profile_option_id)
580{
581    $sql = "SELECT * FROM c_profile_option" .
582            " WHERE c_profile_option_id = ? ";
583
584    return db_get_row($sql,array($c_profile_option_id));
585}
586
587/**
588 * メンバー絞込みパラメータ取得
589 */
590function validate_cond($requests)
591{
592    $cond_list = array();
593    //誕生年
594    if ( !empty($requests['s_year']) ) {
595        $cond_list['s_year'] = intval($requests['s_year']);
596    }
597    if ( !empty($requests['e_year']) ) {
598        $cond_list['e_year'] = intval($requests['e_year']);
599    }
600    //プロフィール
601    $profile_list = db_common_c_profile_list();
602
603    foreach ($profile_list as $key => $value) {
604        if ( !empty($requests[$key]) ) {
605            $cond_list[$key] = intval($requests[$key]);
606        }
607    }
608    return $cond_list;
609}
610
611function do_admin_send_mail($c_member_id, $subject, $body)
612{
613    $c_member = db_common_c_member4c_member_id($c_member_id, true);
614    $pc_address = $c_member['secure']['pc_address'];
615
616    if (OPENPNE_MAIL_QUEUE) {
617        //メールキューに蓄積
618        put_mail_queue($pc_address, $subject, $body);
619    } else {
620        t_send_email($pc_address, $subject, $body);
621    }
622}
623
624//メッセージ受信メール(メールキュー蓄積対応)
625function do_admin_send_message($c_member_id_from, $c_member_id_to, $subject, $body)
626{
627    //メッセージ
628    $c_message_id = _do_insert_c_message($c_member_id_from, $c_member_id_to, $subject, $body);
629
630    do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from);
631    do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from);
632
633    return $c_message_id;
634}
635
636//メッセージ受信メール(メールキュー蓄積対応)
637function do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from)
638{
639    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
640    $pc_address = $c_member_to['secure']['pc_address'];
641    $is_receive_mail = $c_member_to['is_receive_mail'];
642
643    $params = array(
644        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
645        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
646    );
647    return admin_fetch_send_mail($pc_address, 'm_pc_message_zyushin', $params, $is_receive_mail);
648}
649
650//◆メッセージ受信メール(携帯)
651function do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from)
652{
653    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
654    $ktai_address = $c_member_to['secure']['ktai_address'];
655    $is_receive_ktai_mail = $c_member_to['is_receive_ktai_mail'];
656    $p = array('kad' => t_encrypt($c_member_to['secure']['ktai_address']));
657    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
658
659    $params = array(
660        'c_member_to'   => db_common_c_member4c_member_id($c_member_id_to),
661        'c_member_from' => db_common_c_member4c_member_id($c_member_id_from),
662        'login_url' => $login_url,
663    );
664    return admin_fetch_send_mail($ktai_address, 'm_ktai_message_zyushin', $params, $is_receive_ktai_mail);
665}
666
667function admin_fetch_send_mail($address, $tpl_name, $params = array(), $force = true, $from = '')
668{
669    $tpl_name .= '.tpl';
670    if ($tpl = fetch_mail_m_tpl($tpl_name, $params)) {
671        list($subject, $body) = $tpl;
672        if ($from) {
673            if (OPENPNE_MAIL_QUEUE) {
674                //メールキューに蓄積
675                put_mail_queue($address, $subject, $body, $force, $from);
676            } else {
677                t_send_email($address, $subject, $body, $force, $from);
678            }
679        } else {
680            if (OPENPNE_MAIL_QUEUE) {
681                //メールキューに蓄積
682                put_mail_queue($address, $subject, $body, $force);
683            } else {
684                t_send_email($address, $subject, $body, $force);
685            }
686        }
687        return true;
688    } else {
689        return false;
690    }
691}
692
693?>
Note: See TracBrowser for help on using the repository browser.