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

source: OpenPNE/branches/2.8.x/webapp/lib/db/etc.php @ 2658

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

#660:18禁コミュニティ機能を削除

File size: 21.8 KB
Line 
1<?php
2/**
3 * @copyright 2005-2007 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7/**
8 * 管理用アカウントが存在するかどうか
9 * setup が完了しているかどうかの判定に使う
10 *
11 * @return bool 存在するかどうか
12 */
13function db_admin_user_exists()
14{
15    $sql = 'SELECT c_admin_user_id FROM c_admin_user';
16    return (bool)db_get_one($sql);
17}
18
19/**
20 * 配色設定を取得
21 */
22function db_select_c_sns_config($target_id = 1)
23{
24    $sql = 'SELECT * FROM c_sns_config WHERE c_sns_config_id = ?';
25    $params = array(intval($target_id));
26    return db_get_row($sql, $params);
27}
28
29/**
30 * 配色設定を全て取得
31 */
32function db_select_c_sns_config_all()
33{
34    $sql = 'SELECT * FROM c_sns_config';
35    return db_get_all($sql);
36}
37
38/**
39 * siteadminを取得
40 */
41function p_common_c_siteadmin4target_pagename($target_pagename)
42{
43    $sql = 'SELECT body FROM c_siteadmin WHERE target = ?';
44    $params = array($target_pagename);
45    return db_get_one($sql, $params);
46}
47
48/**
49 * 都道府県リストを取得
50 */
51function p_regist_prof_c_profile_pref_list4null()
52{
53    $hint = db_mysql_hint('FORCE INDEX (sort_order)');
54    $sql = 'SELECT c_profile_pref_id, pref FROM c_profile_pref' . $hint .
55           ' ORDER BY sort_order';
56    return db_get_assoc($sql);
57}
58
59/**
60 * 都道府県リスト(全データ)を取得
61 */
62function db_etc_c_profile_pref_list()
63{
64    $hint = db_mysql_hint('FORCE INDEX (sort_order)');
65    $sql = 'SELECT * FROM c_profile_pref' . $hint . ' ORDER BY sort_order';
66    return db_get_all($sql);
67}
68
69/**
70 * IDから都道府県リスト(全データ)を取得
71 */
72function db_etc_c_profile_pref4id($c_profile_pref_id)
73{
74    $sql = 'SELECT * FROM c_profile_pref WHERE c_profile_pref_id = ?';
75    $params = array(intval($c_profile_pref_id));
76    return db_get_row($sql, $params);
77}
78
79/**
80 * 特定の緯度経度の都道府県を取得
81 */
82function db_etc_c_profile_pref_id4latlng($lat, $lng, $zoom)
83{
84    if (!$lat || !$lng) {
85        return false;
86    }
87
88    $sql = 'SELECT c_profile_pref_id FROM c_profile_pref' .
89        ' WHERE map_latitude = ? AND map_longitude = ? AND map_zoom = ?';
90    $params = array($lat, $lng, intval($zoom));
91    return db_get_one($sql, $params);
92}
93
94/**
95 * 秘密の質問を取得
96 */
97function p_common_c_password_query4null()
98{
99    $sql = 'SELECT c_password_query_id, c_password_query_question FROM c_password_query';
100    return db_get_assoc($sql);
101}
102
103
104function check_search_word($search_word)
105{
106    $search_word = str_replace("_", "\_", $search_word);
107    $search_word = str_replace("%", "\%", $search_word);
108    return $search_word;
109}
110
111//---
112
113function do_common_c_pc_address_pre4pc_address($pc_address)
114{
115    $sql = 'SELECT * FROM c_pc_address_pre WHERE pc_address = ?';
116    $params = array($pc_address);
117    return db_get_row($sql, $params);
118}
119
120function do_common_c_pc_address_pre4sid($sid)
121{
122    $sql = 'SELECT * FROM c_pc_address_pre WHERE session = ?';
123    $params = array($sid);
124    return db_get_row($sql, $params);
125}
126
127/**
128 * パスワードが正しいかどうか認証する
129 *
130 * @param int $c_member_id
131 * @param string $password 平文のパスワード
132 * @return bool パスワードが正しいかどうか
133 */
134function db_common_authenticate_password($c_member_id, $password, $is_ktai = false)
135{
136    $auth_config = get_auth_config($is_ktai);
137   
138    if (IS_SLAVEPNE) {
139        $username = db_member_username4c_member_id($c_member_id, $is_ktai);
140    } else {
141        $auth_config['options']['usernamecol'] = 'c_member_id';
142        $username = $c_member_id;
143    }
144   
145    $storage = Auth::_factory($auth_config['storage'],$auth_config['options']);
146    return $storage->fetchData($username, $password, false);
147}
148
149/**
150 * 日記ページのカレンダー生成
151 */
152function db_common_diary_monthly_calendar($year, $month, $c_member_id, $u = null)
153{
154    include_once 'Calendar/Month/Weekdays.php';
155    $Month = new Calendar_Month_Weekdays($year, $month, 0);
156    $Month->build();
157
158    $is_diary_list = p_h_diary_is_diary_written_list4date($year, $month, $c_member_id, $u);
159
160    $calendar = array();
161    $week = 0;
162    while ($Day = $Month->fetch()) {
163        if ($Day->isFirst()) $week++;
164
165        if ($Day->isEmpty()) {
166            $calendar['days'][$week][] = array();
167        } else {
168            $day = $Day->thisDay();
169            $item = array(
170                'day' => $day,
171                'is_diary' => in_array($day, $is_diary_list),
172            );
173            $calendar['days'][$week][] = $item;
174        }
175    }
176
177    // 最初に日記を書いた日
178    $sql = 'SELECT r_datetime FROM c_diary WHERE c_member_id = ? ORDER BY r_datetime';
179    $first_datetime = db_get_one($sql, array(intval($c_member_id)));
180
181    // 前の月、次の月
182    $prev_month = $Month->prevMonth('timestamp');
183    $this_month = $Month->thisMonth('timestamp');
184    $next_month = $Month->nextMonth('timestamp');
185
186    $ym = array(
187        'disp_year'  => $year,
188        'disp_month' => $month,
189        'prev_year'  => null,
190        'prev_month' => null,
191        'next_year'  => null,
192        'next_month' => null,
193    );
194    if ($first_datetime && strtotime($first_datetime) < $this_month) {
195        $ym['prev_year'] = date('Y', $prev_month);
196        $ym['prev_month'] = date('n', $prev_month);
197    }
198    if ($next_month < time()) {
199        $ym['next_year'] = date('Y', $next_month);
200        $ym['next_month'] = date('n', $next_month);
201    }
202    $calendar['ym'] = $ym;
203
204    return $calendar;
205}
206
207/**
208 * メッセージページのカレンダー生成
209 */
210function db_common_message_monthly_calendar($u, $year, $month, $c_member_id, $box)
211{
212    include_once 'Calendar/Month/Weekdays.php';
213    $Month = new Calendar_Month_Weekdays($year, $month, 0);
214    $Month->build();
215
216    $is_message_list = db_message_is_message_list4date($u, $year, $month, $box);
217
218    $calendar = array();
219    $week = 0;
220    while ($Day = $Month->fetch()) {
221        if ($Day->isFirst()) $week++;
222
223        if ($Day->isEmpty()) {
224            $calendar['days'][$week][] = array();
225        } else {
226            $day = $Day->thisDay();
227            $item = array(
228                'day' => $day,
229                'is_message' => @in_array($day, $is_message_list),
230            );
231            $calendar['days'][$week][] = $item;
232        }
233    }
234
235    if ($box == 'inbox' || !$box) {
236        $where = "c_member_id_to = ?".
237                 " AND is_deleted_to = 0" .
238                 " AND is_send = 1";
239    } elseif ($box == 'outbox') {
240        $where = "c_member_id_from = ?".
241                 " AND is_deleted_from = 0" .
242                 " AND is_send = 1";
243    } else {
244        return null;
245    }
246
247    // 最初にメッセージを書いた日
248    $sql = "SELECT r_datetime FROM c_message WHERE $where ORDER BY r_datetime";
249    $first_datetime = db_get_one($sql, array(intval($u)));
250
251    // 前の月、次の月
252    $prev_month = $Month->prevMonth('timestamp');
253    $this_month = $Month->thisMonth('timestamp');
254    $next_month = $Month->nextMonth('timestamp');
255
256    $ym = array(
257        'disp_year'  => $year,
258        'disp_month' => $month,
259        'prev_year'  => null,
260        'prev_month' => null,
261        'next_year'  => null,
262        'next_month' => null,
263    );
264    if ($first_datetime && strtotime($first_datetime) < $this_month) {
265        $ym['prev_year'] = date('Y', $prev_month);
266        $ym['prev_month'] = date('n', $prev_month);
267    }
268    if ($next_month < time()) {
269        $ym['next_year'] = date('Y', $next_month);
270        $ym['next_month'] = date('n', $next_month);
271    }
272    $calendar['ym'] = $ym;
273
274    return $calendar;
275}
276
277//---
278
279/**
280 * スキン画像のfilenameを取得
281 */
282function db_get_c_skin_filename_list()
283{
284    $sql = 'SELECT skinname, filename FROM c_skin_filename';
285    return db_get_assoc($sql);
286}
287
288function db_get_c_skin_filename4skinname($skinname)
289{
290    static $table;
291    if (!isset($table)) {
292        $table = (array)db_get_c_skin_filename_list();
293    }
294
295    if (empty($table[$skinname])) {
296        return '';
297    } else {
298        return $table[$skinname];
299    }
300}
301
302//---
303
304/**
305 * DBテンプレートを読み込み
306 */
307function db_get_c_template_source($name)
308{
309    $sql = 'SELECT source FROM c_template WHERE name = ?';
310    $params = array(strval($name));
311    return db_get_one($sql, $params);
312}
313
314/**
315 * ナビゲーション項目を取得
316 */
317function db_get_c_navi($navi_type = 'h')
318{
319    $sql = 'SELECT * FROM c_navi WHERE navi_type = ? ORDER BY sort_order';
320    $params = array(strval($navi_type));
321    return db_get_all($sql, $params);
322}
323
324?>
325<?php
326/**
327 * @copyright 2005-2007 OpenPNE Project
328 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
329 */
330
331//--- 退会
332
333/**
334 * SNSメンバー退会
335 *
336 * @param int $c_member_id
337 */
338function db_common_delete_c_member($c_member_id)
339{
340    //function cache削除
341    cache_drop_c_member($c_member_id);
342
343    //// --- 双方向パターン
344    $double = array(intval($c_member_id), intval($c_member_id));
345
346    // c_access_block
347    $sql = 'DELETE FROM c_access_block WHERE c_member_id = ? OR c_member_id_block = ?';
348    db_query($sql, $double);
349
350    // c_bookmark
351    $sql = 'DELETE FROM c_bookmark WHERE c_member_id_from = ? OR c_member_id_to = ?';
352    db_query($sql, $double);
353
354    // c_friend
355    $sql = 'DELETE FROM c_friend WHERE c_member_id_from = ? OR c_member_id_to = ?';
356    db_query($sql, $double);
357
358    // c_friend_confirm
359    $sql = 'DELETE FROM c_friend_confirm WHERE c_member_id_from = ? OR c_member_id_to = ?';
360    db_query($sql, $double);
361
362
363    //// --- 単一パターン
364    $single = array(intval($c_member_id));
365
366    // c_ktai_address_pre
367    $sql = 'DELETE FROM c_ktai_address_pre WHERE c_member_id = ?';
368    db_query($sql, $single);
369
370    // c_member_ktai_pre
371    $sql = 'DELETE FROM c_member_ktai_pre WHERE c_member_id_invite = ?';
372    db_query($sql, $single);
373
374    // c_pc_address_pre
375    $sql = 'DELETE FROM c_pc_address_pre WHERE c_member_id = ?';
376    db_query($sql, $single);
377
378    // c_review_clip
379    $sql = 'DELETE FROM c_review_clip WHERE c_member_id = ?';
380    db_query($sql, $single);
381
382    // c_review_comment
383    $sql = 'DELETE FROM c_review_comment WHERE c_member_id = ?';
384    db_query($sql, $single);
385
386    // c_rss_cache
387    $sql = 'DELETE FROM c_rss_cache WHERE c_member_id = ?';
388    db_query($sql, $single);
389
390    // c_schedule
391    $sql = 'DELETE FROM c_schedule WHERE c_member_id = ?';
392    db_query($sql, $single);
393
394
395    //// --- 特殊パターン
396
397    ///コミュニティ関連
398    // c_commu_member
399    $sql = 'DELETE FROM c_commu_member WHERE c_member_id = ?';
400    db_query($sql, $single);
401
402    // c_commu (画像)
403    $sql = 'SELECT * FROM c_commu WHERE c_member_id_admin = ?';
404    $c_commu_list = db_get_all($sql, $single);
405
406    foreach ($c_commu_list as $c_commu) {
407        if (!_db_count_c_commu_member_list4c_commu_id($c_commu['c_commu_id'])) {
408            // コミュニティ削除
409            db_common_delete_c_commu($c_commu['c_commu_id']);
410        } else {
411            // 管理者交代
412            // 参加日時が一番古い人
413            $sql = 'SELECT c_member_id FROM c_commu_member WHERE c_commu_id = ?'.
414                ' ORDER BY r_datetime';
415            $params = array(intval($c_commu['c_commu_id']));
416            $new_admin_id = db_get_one($sql, $params);
417
418            $data = array('c_member_id_admin' => intval($new_admin_id));
419            $where = array('c_commu_id' => intval($c_commu['c_commu_id']));
420            db_update('c_commu', $data, $where);
421        }
422    }
423
424    // c_commu_admin_confirm
425    $sql = 'DELETE FROM c_commu_admin_confirm WHERE c_member_id_to = ?';
426    db_query($sql, $single);
427
428    // c_commu_member_confirm
429    $sql = 'DELETE FROM c_commu_member_confirm WHERE c_member_id = ?';
430    db_query($sql, $single);
431
432    // c_commu_review
433    $sql = 'DELETE FROM c_commu_review WHERE c_member_id = ?';
434    db_query($sql, $single);
435
436    // c_event_member
437    $sql = 'DELETE FROM c_event_member WHERE c_member_id = ?';
438    db_query($sql, $single);
439
440
441    ///日記関連
442    // c_diary (画像)
443    $sql = 'SELECT * FROM c_diary WHERE c_member_id = ?';
444    $c_diary_list = db_get_all($sql, $single);
445    foreach ($c_diary_list as $c_diary) {
446        image_data_delete($c_diary['image_filename_1']);
447        image_data_delete($c_diary['image_filename_2']);
448        image_data_delete($c_diary['image_filename_3']);
449
450        // c_diary_comment
451        $sql = 'SELECT * FROM c_diary_comment WHERE c_diary_id = ?';
452        $params = array(intval($c_diary['c_diary_id']));
453        $c_diary_comment_list = db_get_all($sql, $params);
454        foreach ($c_diary_comment_list as $c_diary_comment) {
455            image_data_delete($c_diary_comment['image_filename_1']);
456            image_data_delete($c_diary_comment['image_filename_2']);
457            image_data_delete($c_diary_comment['image_filename_3']);
458        }
459
460        $sql = 'DELETE FROM c_diary_comment WHERE c_diary_id = ?';
461        db_query($sql, $params);
462    }
463    $sql = 'DELETE FROM c_diary WHERE c_member_id = ?';
464    db_query($sql, $single);
465
466
467    ///メンバー関連
468    // c_member_pre
469    $sql = 'SELECT * FROM c_member_pre WHERE c_member_id_invite = ?';
470    $c_member_pre_list = db_get_all($sql, $single);
471    foreach ($c_member_pre_list as $c_member_pre) {
472        // c_member_pre_profile
473        $sql = 'DELETE FROM c_member_pre_profile WHERE c_member_pre_id = ?';
474        $params = array(intval($c_member_pre['c_member_pre_id']));
475        db_query($sql, $params);
476    }
477    $sql = 'DELETE FROM c_member_pre WHERE c_member_id_invite = ?';
478    db_query($sql, $single);
479
480    // c_member_profile
481    $sql = 'DELETE FROM c_member_profile WHERE c_member_id = ?';
482    db_query($sql, $single);
483
484    // c_member_secure
485    $sql = 'DELETE FROM c_member_secure WHERE c_member_id = ?';
486    db_query($sql, $single);
487
488    // c_member (画像)
489    $sql = 'SELECT image_filename_1, image_filename_2, image_filename_3' .
490        ' FROM c_member WHERE c_member_id = ?';
491    $c_member = db_get_row($sql, $single);
492    image_data_delete($c_member['image_filename_1']);
493    image_data_delete($c_member['image_filename_2']);
494    image_data_delete($c_member['image_filename_3']);
495
496    $sql = 'DELETE FROM c_member WHERE c_member_id = ?';
497    db_query($sql, $single);
498   
499    $sql = 'DELETE FROM c_username WHERE c_member_id = ?';
500    db_query($sql, $single);
501}
502
503/**
504 * コミュニティ削除
505 * 関連情報を合わせて削除する
506 *
507 * @param int $c_commu_id
508 */
509function db_common_delete_c_commu($c_commu_id)
510{
511    //function cacheの削除
512    cache_drop_c_commu($c_commu_id);
513
514    $single = array(intval($c_commu_id));
515
516    $sql = 'SELECT * FROM c_commu WHERE c_commu_id = ?';
517    $c_commu = db_get_row($sql, $single);
518
519    // 画像削除
520    image_data_delete($c_commu['image_filename']);
521
522    // c_commu_admin_confirm
523    $sql = 'DELETE FROM c_commu_admin_confirm WHERE c_commu_id = ?';
524    db_query($sql, $single);
525
526    // c_commu_member
527    $sql = 'DELETE FROM c_commu_member WHERE c_commu_id = ?';
528    db_query($sql, $single);
529
530    // c_commu_member_confirm
531    $sql = 'DELETE FROM c_commu_member_confirm WHERE c_commu_id = ?';
532    db_query($sql, $single);
533
534    // c_commu_review
535    $sql = 'DELETE FROM c_commu_review WHERE c_commu_id = ?';
536    db_query($sql, $single);
537
538    ///トピック関連
539    $sql = 'SELECT * FROM c_commu_topic WHERE c_commu_id = ?';
540    $topic_list = db_get_all($sql, $single);
541
542    foreach ($topic_list as $topic) {
543        // c_commu_topic_comment(画像)
544        $sql = 'SELECT image_filename1, image_filename2, image_filename3' .
545            ' FROM c_commu_topic_comment WHERE c_commu_topic_id = ?';
546        $params = array(intval($topic['c_commu_topic_id']));
547        $topic_comment_list = db_get_all($sql, $params);
548        foreach ($topic_comment_list as $topic_comment) {
549            image_data_delete($topic_comment['image_filename1']);
550            image_data_delete($topic_comment['image_filename2']);
551            image_data_delete($topic_comment['image_filename3']);
552        }
553        $sql = 'DELETE FROM c_commu_topic_comment WHERE c_commu_topic_id = ?';
554        db_query($sql, $params);
555
556        // c_event_member
557        $sql = 'DELETE FROM c_event_member WHERE c_commu_topic_id = ?';
558        db_query($sql, $params);
559    }
560
561    // c_commu_topic
562    $sql = 'DELETE FROM c_commu_topic WHERE c_commu_id = ?';
563    db_query($sql, $single);
564
565    // c_commu
566    $sql = 'DELETE FROM c_commu WHERE c_commu_id = ?';
567    db_query($sql, $single);
568}
569
570//--- ログ
571
572/**
573 * バナーのクリックログを追加
574 */
575function db_banner_insert_c_banner_log($c_banner_id, $c_member_id, $clicked_from)
576{
577    $data = array(
578        'c_banner_id' => intval($c_banner_id),
579        'c_member_id' => intval($c_member_id),
580        'clicked_from' => $clicked_from,
581        'r_datetime' => db_now(),
582        'r_date' => db_now(),
583    );
584    return db_insert('c_banner_log', $data);
585}
586
587/**
588 * 検索ログを追加
589 */
590function do_common_insert_search_log($c_member_id, $searchword)
591{
592    if (!$searchword) return false;
593
594    $data = array(
595        'c_member_id' => intval($c_member_id),
596        'searchword'  => $searchword,
597        'r_datetime'  => db_now(),
598    );
599    return db_insert('c_searchlog', $data);
600}
601
602function p_access_log($c_member_id, $page_name, $ktai_flag = "0")
603{
604    if (!$page_name) return false;
605
606    $data = array(
607        'c_member_id'             => intval($c_member_id),
608        'page_name'               => $page_name,
609        'target_c_member_id'      => '',
610        'target_c_commu_id'       => '',
611        'target_c_commu_topic_id' => '',
612        'target_c_diary_id'       => '',
613        'ktai_flag'               => (bool)$ktai_flag,
614        'r_datetime' => db_now(),
615    );
616
617    $target_ids = array(
618        'target_c_member_id',
619        'target_c_commu_id',
620        'target_c_commu_topic_id',
621        'target_c_diary_id',
622    );
623    foreach ($target_ids as $key) {
624        if (isset($_REQUEST[$key])) {
625            $data[$key] = intval($_REQUEST[$key]);
626        }
627    }
628
629    db_insert('c_access_log', $data);
630}
631
632/**
633 * スキン画像のfilenameを登録
634 */
635function db_replace_c_skin_filename($skinname, $filename)
636{
637    db_delete_c_skin_filename($skinname);
638
639    $data = array(
640        'skinname' => strval($skinname),
641        'filename' => strval($filename),
642    );
643    return db_insert('c_skin_filename', $data);
644}
645
646/**
647 * スキン画像を削除(デフォルトに戻す)
648 */
649function db_delete_c_skin_filename($skinname)
650{
651    $sql = 'SELECT * FROM c_skin_filename WHERE skinname = ?';
652    $params = array(strval($skinname));
653    if ($skin_filename = db_get_row($sql, $params)) {
654        image_data_delete($skin_filename['filename']);
655        $sql = 'DELETE FROM c_skin_filename WHERE skinname = ?';
656        return db_query($sql, $params);
657    } else {
658        return false;
659    }
660}
661
662/**
663 * デフォルト画像をマスター画像からコピー(デフォルトに戻すの一環)
664 */
665function db_master_copy_c_skin_filename($skinname)
666{
667
668    $data = array(
669        'skinname' => strval($skinname),
670        'filename' => 'skin_'.strval($skinname).'.gif',
671    );
672    db_insert('c_skin_filename', $data);
673
674    $sql = "INSERT INTO c_image (SELECT '', ?, bin, ?, type FROM c_image WHERE filename = ?)";
675    $params = array(
676        'skin_'.strval($skinname).'.gif',
677        db_now(),
678        'skin_'.strval($skinname).'_master.gif',
679    );
680    db_query($sql, $params);
681}
682
683//---
684
685/**
686 * DBテンプレートを削除
687 */
688function db_delete_c_template($name)
689{
690    $sql = 'DELETE FROM c_template WHERE name = ?';
691    $params = array(strval($name));
692    return db_query($sql, $params);
693}
694
695/**
696 * DBテンプレートを登録
697 */
698function db_replace_c_template($name, $source)
699{
700    db_delete_c_template($name);
701
702    $data = array(
703        'name' => strval($name),
704        'source' => strval($source),
705        'r_datetime' => db_now(),
706    );
707    return db_insert('c_template', $data);
708}
709
710/**
711 * ナビゲーション項目を削除
712 */
713function db_delete_c_navi($navi_type, $sort_order)
714{
715    $sql = 'DELETE FROM c_navi WHERE navi_type = ? AND sort_order = ?';
716    $params = array(strval($navi_type), intval($sort_order));
717    return db_query($sql, $params);
718}
719
720/**
721 * ナビゲーション項目を登録
722 */
723function db_replace_c_navi($navi_type, $sort_order, $url, $caption)
724{
725    db_delete_c_navi($navi_type, $sort_order);
726
727    $data = array(
728        'navi_type' => strval($navi_type),
729        'sort_order' => intval($sort_order),
730        'url' => strval($url),
731        'caption' => strval($caption),
732    );
733    return db_insert('c_navi', $data);
734}
735
736//小窓の使用範囲をチェック
737function db_is_use_cmd($src, $type)
738{
739    $sql = 'SELECT * FROM c_cmd WHERE name = ?';
740    $params = array(strval($src));
741    $c_cmd = db_get_row($sql, $params);
742
743    $permit_list = db_get_permit_list();
744
745    foreach ($permit_list as $key => $name) {
746        if (($c_cmd['permit'] & $key)
747         && preg_match('/'.$c_cmd['name'].'/', $src)
748         && $name == $type) {
749            return true;
750        }
751    }
752
753    return false;
754}
755
756//小窓の使用範囲のリスト
757function db_get_permit_list()
758{
759    return array(
760        '1' => 'community',
761        '2' => 'diary',
762        '4' => 'profile',
763        '8' => 'side_banner',
764        '16' => 'info',
765        '32' => 'entry_point',
766        '64' => 'message',
767    );
768}
769
770//小窓のurl2aを無効にするリスト
771function db_get_url2a_denied_list()
772{
773    return array(
774        'side_banner',
775        'info',
776        'entry_point',
777    );
778}
779
780/**
781 * カレンダーの祝日を取得する
782 */
783function db_c_holiday_list4date($m, $d)
784{
785    $sql = 'SELECT name FROM c_holiday WHERE month = ? AND day = ?';
786    $params = array(intval($m), intval($d));
787    return db_get_col($sql, $params);
788}
789
790// 指定されたファイルの拡張子はアップロード許可があるのかどうか
791function db_is_permit_file_type($filename)
792{
793    $file_type = FILE_TYPE;
794    $permit_list = explode(',', $file_type);
795
796    // 指定がなければ全許容
797    if (empty($file_type)) {
798        return true;
799    }
800
801    $pieces = explode('.', $filename);
802
803    if (in_array(array_pop($pieces), $permit_list)) {
804        return true;
805    } else {
806        return false;
807    }
808}
809
810?>
Note: See TracBrowser for help on using the repository browser.