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

source: OpenPNE/branches/ishida/prj_dev26/webapp/modules/admin/lib/db_admin.php @ 699

Last change on this file since 699 was 699, checked in by ishida, 14 years ago

・一斉Email/メッセージ送信の送信ログ保存機能
・一斉送信時のメッセージキュー機能
上記機能実装

sql/update/061113_update_2.4to2.6.sql
追加

File size: 22.8 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 WHERE c_profile_option_id = ? ";
582    $params = array(intval($c_profile_option_id));
583    return db_get_row($sql, $params);
584}
585
586/**
587 * メンバー絞込みパラメータ取得
588 */
589function validate_cond($requests)
590{
591    $cond_list = array();
592    //誕生年
593    if (!empty($requests['s_year'])) {
594        $cond_list['s_year'] = intval($requests['s_year']);
595    }
596    if (!empty($requests['e_year'])) {
597        $cond_list['e_year'] = intval($requests['e_year']);
598    }
599    //プロフィール
600    $profile_list = db_common_c_profile_list();
601
602    foreach ($profile_list as $key => $value) {
603        if (!empty($requests[$key])) {
604            $cond_list[$key] = intval($requests[$key]);
605        }
606    }
607    return $cond_list;
608}
609
610function do_admin_send_mail($c_member_id, $subject, $body)
611{
612    $c_member = db_common_c_member4c_member_id($c_member_id, true);
613    $pc_address = $c_member['secure']['pc_address'];
614
615    if (OPENPNE_MAIL_QUEUE) {
616        //メールキューに蓄積
617        put_mail_queue($pc_address, $subject, $body);
618    } else {
619        t_send_email($pc_address, $subject, $body);
620    }
621}
622
623//メッセージ受信メール(メール&メッセージキュー蓄積対応)
624function do_admin_send_message($c_member_id_from, $c_member_id_to, $subject, $body)
625{
626    //メッセージ
627    if (OPENPNE_MESSAGE_QUEUE) {
628        //メッセージキューに蓄積
629        db_admin_insert_c_message_queue($c_member_id_from, $c_member_id_to, $subject, $body);
630        return true;
631    } else {
632        _do_insert_c_message($c_member_id_from, $c_member_id_to, $subject, $body);
633        do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from);
634        do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from);
635        return true;
636    }
637
638    return false;
639}
640
641//メッセージ受信メール(メールキュー蓄積対応)
642function do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from)
643{
644    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
645    $pc_address = $c_member_to['secure']['pc_address'];
646    $is_receive_mail = $c_member_to['is_receive_mail'];
647
648    $params = array(
649        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
650        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
651    );
652    return admin_fetch_send_mail($pc_address, 'm_pc_message_zyushin', $params, $is_receive_mail);
653}
654
655//◆メッセージ受信メール(携帯)
656function do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from)
657{
658    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
659    $ktai_address = $c_member_to['secure']['ktai_address'];
660    $is_receive_ktai_mail = $c_member_to['is_receive_ktai_mail'];
661    $p = array('kad' => t_encrypt($c_member_to['secure']['ktai_address']));
662    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
663
664    $params = array(
665        'c_member_to'   => db_common_c_member4c_member_id($c_member_id_to),
666        'c_member_from' => db_common_c_member4c_member_id($c_member_id_from),
667        'login_url' => $login_url,
668    );
669    return admin_fetch_send_mail($ktai_address, 'm_ktai_message_zyushin', $params, $is_receive_ktai_mail);
670}
671
672function admin_fetch_send_mail($address, $tpl_name, $params = array(), $force = true, $from = '')
673{
674    $tpl_name .= '.tpl';
675    if ($tpl = fetch_mail_m_tpl($tpl_name, $params)) {
676        list($subject, $body) = $tpl;
677        if ($from) {
678            if (OPENPNE_MAIL_QUEUE) {
679                //メールキューに蓄積
680                put_mail_queue($address, $subject, $body, $force, $from);
681            } else {
682                t_send_email($address, $subject, $body, $force, $from);
683            }
684        } else {
685            if (OPENPNE_MAIL_QUEUE) {
686                //メールキューに蓄積
687                put_mail_queue($address, $subject, $body, $force);
688            } else {
689                t_send_email($address, $subject, $body, $force);
690            }
691        }
692        return true;
693    } else {
694        return false;
695    }
696}
697
698/*--------------------------------
699ここからメッセージ送信履歴
700---------------------------------*/
701
702//メッセージ送信履歴を挿入
703function db_admin_insert_c_send_messages_history($subject, $body, $send_num, $type, $c_member_ids)
704{
705
706    //配列を文字列に変換
707    if($c_member_ids) {
708        $c_member_ids = implode("-",$c_member_ids);
709    } else {
710        return;
711    }
712
713    $data = array(
714        'subject'       => strval($subject),
715        'body'          => strval($body),
716        'send_num'      => intval($send_num),
717        'type'          => strval($type),
718        'c_member_ids'  => strval($c_member_ids),
719        'r_datetime'    => db_now()
720    );
721
722    return db_insert('c_send_messages_history', $data);
723
724}
725
726//メッセージ送信履歴を全て取得(ページャー付き)
727function db_admin_get_c_send_messages_history_all($page, $page_size, &$pager)
728{
729
730    $sql = 'SELECT * FROM c_send_messages_history ORDER BY c_send_messages_history_id DESC';
731
732    $history_list = db_get_all_page($sql, $page, $page_size, $params);
733
734    foreach ($history_list as $key => $history) {
735        $history_list[$key]['c_member_ids'] = explode("-", $history['c_member_ids']);
736    }
737
738    $sql = 'SELECT count(*) FROM c_send_messages_history';
739    $total_num = db_get_one($sql, $params);
740    $pager = admin_make_pager($page, $page_size, $total_num);
741
742    return $history_list;
743}
744
745//メッセージ送信履歴を一つ取得
746function db_admin_get_c_send_messages_history($c_send_messages_history_id)
747{
748
749    $sql = 'SELECT * FROM c_send_messages_history WHERE c_send_messages_history_id = ?';
750
751    $params = array(intval($c_send_messages_history_id));
752
753    $history = db_get_row($sql, $params);
754
755    $history['c_member_ids'] = explode("-", $history['c_member_ids']);
756
757    return $history;
758}
759
760/*--------------------------------
761ここからメッセージキュー
762---------------------------------*/
763
764//メッセージをキューに入れる
765function db_admin_insert_c_message_queue($c_member_id_from, $c_member_id_to, $subject, $body)
766{
767    $data = array(
768        'c_member_id_from' => intval($c_member_id_from),
769        'c_member_id_to'   => intval($c_member_id_to),
770        'subject'          => strval($subject),
771        'body'             => strval($body),
772    );
773    return db_insert('c_message_queue', $data);
774}
775
776//メッセージをキューから削除
777function db_admin_delete_c_message_queue($c_message_queue_id)
778{
779
780    $sql = "DELETE FROM c_message_queue WHERE c_message_queue_id = ?";
781    $params = array(intval($c_message_queue_id));
782
783    return db_query($sql, $params);
784}
785
786?>
Note: See TracBrowser for help on using the repository browser.