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 | * setup が完了しているかどうかの判定に使う |
---|
10 | * |
---|
11 | * @return bool 存在するかどうか |
---|
12 | */ |
---|
13 | function 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 | */ |
---|
22 | function 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 | */ |
---|
32 | function 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 | */ |
---|
41 | function 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 | */ |
---|
51 | function 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 | */ |
---|
62 | function 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 | */ |
---|
72 | function 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 | */ |
---|
82 | function 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 | */ |
---|
97 | function 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 | |
---|
104 | function 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 | |
---|
113 | function 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 | |
---|
120 | function 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 | */ |
---|
134 | function db_common_authenticate_password($c_member_id, $password) |
---|
135 | { |
---|
136 | $sql = 'SELECT c_member_secure_id FROM c_member_secure' . |
---|
137 | ' WHERE c_member_id = ? AND hashed_password = ?'; |
---|
138 | return (bool)db_get_one($sql, array(intval($c_member_id), md5($password)));; |
---|
139 | } |
---|
140 | |
---|
141 | /** |
---|
142 | * 日記ページのカレンダー生成 |
---|
143 | */ |
---|
144 | function db_common_diary_monthly_calendar($year, $month, $c_member_id, $u = null) |
---|
145 | { |
---|
146 | include_once 'Calendar/Month/Weekdays.php'; |
---|
147 | $Month = new Calendar_Month_Weekdays($year, $month, 0); |
---|
148 | $Month->build(); |
---|
149 | |
---|
150 | $is_diary_list = p_h_diary_is_diary_written_list4date($year, $month, $c_member_id, $u); |
---|
151 | |
---|
152 | $calendar = array(); |
---|
153 | $week = 0; |
---|
154 | while ($Day = $Month->fetch()) { |
---|
155 | if ($Day->isFirst()) $week++; |
---|
156 | |
---|
157 | if ($Day->isEmpty()) { |
---|
158 | $calendar['days'][$week][] = array(); |
---|
159 | } else { |
---|
160 | $day = $Day->thisDay(); |
---|
161 | $item = array( |
---|
162 | 'day' => $day, |
---|
163 | 'is_diary' => in_array($day, $is_diary_list), |
---|
164 | ); |
---|
165 | $calendar['days'][$week][] = $item; |
---|
166 | } |
---|
167 | } |
---|
168 | |
---|
169 | // 最初に日記を書いた日 |
---|
170 | $sql = 'SELECT r_datetime FROM c_diary WHERE c_member_id = ? ORDER BY r_datetime'; |
---|
171 | $first_datetime = db_get_one($sql, array(intval($c_member_id))); |
---|
172 | |
---|
173 | // 前の月、次の月 |
---|
174 | $prev_month = $Month->prevMonth('timestamp'); |
---|
175 | $this_month = $Month->thisMonth('timestamp'); |
---|
176 | $next_month = $Month->nextMonth('timestamp'); |
---|
177 | |
---|
178 | $ym = array( |
---|
179 | 'disp_year' => $year, |
---|
180 | 'disp_month' => $month, |
---|
181 | 'prev_year' => null, |
---|
182 | 'prev_month' => null, |
---|
183 | 'next_year' => null, |
---|
184 | 'next_month' => null, |
---|
185 | ); |
---|
186 | if ($first_datetime && strtotime($first_datetime) < $this_month) { |
---|
187 | $ym['prev_year'] = date('Y', $prev_month); |
---|
188 | $ym['prev_month'] = date('n', $prev_month); |
---|
189 | } |
---|
190 | if ($next_month < time()) { |
---|
191 | $ym['next_year'] = date('Y', $next_month); |
---|
192 | $ym['next_month'] = date('n', $next_month); |
---|
193 | } |
---|
194 | $calendar['ym'] = $ym; |
---|
195 | |
---|
196 | return $calendar; |
---|
197 | } |
---|
198 | |
---|
199 | /** |
---|
200 | * メッセージページのカレンダー生成 |
---|
201 | */ |
---|
202 | function db_common_message_monthly_calendar($u, $year, $month, $c_member_id, $box) |
---|
203 | { |
---|
204 | include_once 'Calendar/Month/Weekdays.php'; |
---|
205 | $Month = new Calendar_Month_Weekdays($year, $month, 0); |
---|
206 | $Month->build(); |
---|
207 | |
---|
208 | $is_message_list = db_message_is_message_list4date($u, $year, $month, $box); |
---|
209 | |
---|
210 | $calendar = array(); |
---|
211 | $week = 0; |
---|
212 | while ($Day = $Month->fetch()) { |
---|
213 | if ($Day->isFirst()) $week++; |
---|
214 | |
---|
215 | if ($Day->isEmpty()) { |
---|
216 | $calendar['days'][$week][] = array(); |
---|
217 | } else { |
---|
218 | $day = $Day->thisDay(); |
---|
219 | $item = array( |
---|
220 | 'day' => $day, |
---|
221 | 'is_message' => @in_array($day, $is_message_list), |
---|
222 | ); |
---|
223 | $calendar['days'][$week][] = $item; |
---|
224 | } |
---|
225 | } |
---|
226 | |
---|
227 | if ($box == 'inbox' || !$box) { |
---|
228 | $where = "c_member_id_to = ?". |
---|
229 | " AND is_deleted_to = 0" . |
---|
230 | " AND is_send = 1"; |
---|
231 | } elseif ($box == 'outbox') { |
---|
232 | $where = "c_member_id_from = ?". |
---|
233 | " AND is_deleted_from = 0" . |
---|
234 | " AND is_send = 1"; |
---|
235 | } else { |
---|
236 | return null; |
---|
237 | } |
---|
238 | |
---|
239 | // 最初にメッセージを書いた日 |
---|
240 | $sql = "SELECT r_datetime FROM c_message WHERE $where ORDER BY r_datetime"; |
---|
241 | $first_datetime = db_get_one($sql, array(intval($u))); |
---|
242 | |
---|
243 | // 前の月、次の月 |
---|
244 | $prev_month = $Month->prevMonth('timestamp'); |
---|
245 | $this_month = $Month->thisMonth('timestamp'); |
---|
246 | $next_month = $Month->nextMonth('timestamp'); |
---|
247 | |
---|
248 | $ym = array( |
---|
249 | 'disp_year' => $year, |
---|
250 | 'disp_month' => $month, |
---|
251 | 'prev_year' => null, |
---|
252 | 'prev_month' => null, |
---|
253 | 'next_year' => null, |
---|
254 | 'next_month' => null, |
---|
255 | ); |
---|
256 | if ($first_datetime && strtotime($first_datetime) < $this_month) { |
---|
257 | $ym['prev_year'] = date('Y', $prev_month); |
---|
258 | $ym['prev_month'] = date('n', $prev_month); |
---|
259 | } |
---|
260 | if ($next_month < time()) { |
---|
261 | $ym['next_year'] = date('Y', $next_month); |
---|
262 | $ym['next_month'] = date('n', $next_month); |
---|
263 | } |
---|
264 | $calendar['ym'] = $ym; |
---|
265 | |
---|
266 | return $calendar; |
---|
267 | } |
---|
268 | |
---|
269 | //--- |
---|
270 | |
---|
271 | /** |
---|
272 | * スキン画像のfilenameを取得 |
---|
273 | */ |
---|
274 | function db_get_c_skin_filename_list() |
---|
275 | { |
---|
276 | $sql = 'SELECT skinname, filename FROM c_skin_filename'; |
---|
277 | return db_get_assoc($sql); |
---|
278 | } |
---|
279 | |
---|
280 | function db_get_c_skin_filename4skinname($skinname) |
---|
281 | { |
---|
282 | static $table; |
---|
283 | if (!isset($table)) { |
---|
284 | $table = (array)db_get_c_skin_filename_list(); |
---|
285 | } |
---|
286 | |
---|
287 | if (empty($table[$skinname])) { |
---|
288 | return ''; |
---|
289 | } else { |
---|
290 | return $table[$skinname]; |
---|
291 | } |
---|
292 | } |
---|
293 | |
---|
294 | //--- |
---|
295 | |
---|
296 | /** |
---|
297 | * DBテンプレートを読み込み |
---|
298 | */ |
---|
299 | function db_get_c_template_source($name) |
---|
300 | { |
---|
301 | $sql = 'SELECT source FROM c_template WHERE name = ?'; |
---|
302 | $params = array(strval($name)); |
---|
303 | return db_get_one($sql, $params); |
---|
304 | } |
---|
305 | |
---|
306 | /** |
---|
307 | * ナビゲーション項目を取得 |
---|
308 | */ |
---|
309 | function db_get_c_navi($navi_type = 'h') |
---|
310 | { |
---|
311 | $sql = 'SELECT * FROM c_navi WHERE navi_type = ? ORDER BY sort_order'; |
---|
312 | $params = array(strval($navi_type)); |
---|
313 | return db_get_all($sql, $params); |
---|
314 | } |
---|
315 | |
---|
316 | ?> |
---|
317 | <?php |
---|
318 | /** |
---|
319 | * @copyright 2005-2006 OpenPNE Project |
---|
320 | * @license http://www.php.net/license/3_01.txt PHP License 3.01 |
---|
321 | */ |
---|
322 | |
---|
323 | //--- 退会 |
---|
324 | |
---|
325 | /** |
---|
326 | * SNSメンバー退会 |
---|
327 | * |
---|
328 | * @param int $c_member_id |
---|
329 | */ |
---|
330 | function db_common_delete_c_member($c_member_id) |
---|
331 | { |
---|
332 | //function cache削除 |
---|
333 | cache_drop_c_member($c_member_id); |
---|
334 | |
---|
335 | //// --- 双方向パターン |
---|
336 | $double = array(intval($c_member_id), intval($c_member_id)); |
---|
337 | |
---|
338 | // c_access_block |
---|
339 | $sql = 'DELETE FROM c_access_block WHERE c_member_id = ? OR c_member_id_block = ?'; |
---|
340 | db_query($sql, $double); |
---|
341 | |
---|
342 | // c_bookmark |
---|
343 | $sql = 'DELETE FROM c_bookmark WHERE c_member_id_from = ? OR c_member_id_to = ?'; |
---|
344 | db_query($sql, $double); |
---|
345 | |
---|
346 | // c_friend |
---|
347 | $sql = 'DELETE FROM c_friend WHERE c_member_id_from = ? OR c_member_id_to = ?'; |
---|
348 | db_query($sql, $double); |
---|
349 | |
---|
350 | // c_friend_confirm |
---|
351 | $sql = 'DELETE FROM c_friend_confirm WHERE c_member_id_from = ? OR c_member_id_to = ?'; |
---|
352 | db_query($sql, $double); |
---|
353 | |
---|
354 | |
---|
355 | //// --- 単一パターン |
---|
356 | $single = array(intval($c_member_id)); |
---|
357 | |
---|
358 | // c_ktai_address_pre |
---|
359 | $sql = 'DELETE FROM c_ktai_address_pre WHERE c_member_id = ?'; |
---|
360 | db_query($sql, $single); |
---|
361 | |
---|
362 | // c_member_ktai_pre |
---|
363 | $sql = 'DELETE FROM c_member_ktai_pre WHERE c_member_id_invite = ?'; |
---|
364 | db_query($sql, $single); |
---|
365 | |
---|
366 | // c_pc_address_pre |
---|
367 | $sql = 'DELETE FROM c_pc_address_pre WHERE c_member_id = ?'; |
---|
368 | db_query($sql, $single); |
---|
369 | |
---|
370 | // c_review_clip |
---|
371 | $sql = 'DELETE FROM c_review_clip WHERE c_member_id = ?'; |
---|
372 | db_query($sql, $single); |
---|
373 | |
---|
374 | // c_review_comment |
---|
375 | $sql = 'DELETE FROM c_review_comment WHERE c_member_id = ?'; |
---|
376 | db_query($sql, $single); |
---|
377 | |
---|
378 | // c_rss_cache |
---|
379 | $sql = 'DELETE FROM c_rss_cache WHERE c_member_id = ?'; |
---|
380 | db_query($sql, $single); |
---|
381 | |
---|
382 | // c_schedule |
---|
383 | $sql = 'DELETE FROM c_schedule WHERE c_member_id = ?'; |
---|
384 | db_query($sql, $single); |
---|
385 | |
---|
386 | |
---|
387 | //// --- 特殊パターン |
---|
388 | |
---|
389 | ///コミュニティ関連 |
---|
390 | // c_commu_member |
---|
391 | $sql = 'DELETE FROM c_commu_member WHERE c_member_id = ?'; |
---|
392 | db_query($sql, $single); |
---|
393 | |
---|
394 | // c_commu (画像) |
---|
395 | $sql = 'SELECT * FROM c_commu WHERE c_member_id_admin = ?'; |
---|
396 | $c_commu_list = db_get_all($sql, $single); |
---|
397 | |
---|
398 | foreach ($c_commu_list as $c_commu) { |
---|
399 | if (!_db_count_c_commu_member_list4c_commu_id($c_commu['c_commu_id'])) { |
---|
400 | // コミュニティ削除 |
---|
401 | db_common_delete_c_commu($c_commu['c_commu_id']); |
---|
402 | } else { |
---|
403 | // 管理者交代 |
---|
404 | // 参加日時が一番古い人 |
---|
405 | $sql = 'SELECT c_member_id FROM c_commu_member WHERE c_commu_id = ?'. |
---|
406 | ' ORDER BY r_datetime'; |
---|
407 | $params = array(intval($c_commu['c_commu_id'])); |
---|
408 | $new_admin_id = db_get_one($sql, $params); |
---|
409 | |
---|
410 | $data = array('c_member_id_admin' => intval($new_admin_id)); |
---|
411 | $where = array('c_commu_id' => intval($c_commu['c_commu_id'])); |
---|
412 | db_update('c_commu', $data, $where); |
---|
413 | } |
---|
414 | } |
---|
415 | |
---|
416 | // c_commu_admin_confirm |
---|
417 | $sql = 'DELETE FROM c_commu_admin_confirm WHERE c_member_id_to = ?'; |
---|
418 | db_query($sql, $single); |
---|
419 | |
---|
420 | // c_commu_member_confirm |
---|
421 | $sql = 'DELETE FROM c_commu_member_confirm WHERE c_member_id = ?'; |
---|
422 | db_query($sql, $single); |
---|
423 | |
---|
424 | // c_commu_review |
---|
425 | $sql = 'DELETE FROM c_commu_review WHERE c_member_id = ?'; |
---|
426 | db_query($sql, $single); |
---|
427 | |
---|
428 | // c_event_member |
---|
429 | $sql = 'DELETE FROM c_event_member WHERE c_member_id = ?'; |
---|
430 | db_query($sql, $single); |
---|
431 | |
---|
432 | |
---|
433 | ///日記関連 |
---|
434 | // c_diary (画像) |
---|
435 | $sql = 'SELECT * FROM c_diary WHERE c_member_id = ?'; |
---|
436 | $c_diary_list = db_get_all($sql, $single); |
---|
437 | foreach ($c_diary_list as $c_diary) { |
---|
438 | image_data_delete($c_diary['image_filename_1']); |
---|
439 | image_data_delete($c_diary['image_filename_2']); |
---|
440 | image_data_delete($c_diary['image_filename_3']); |
---|
441 | |
---|
442 | // c_diary_comment |
---|
443 | $sql = 'SELECT * FROM c_diary_comment WHERE c_diary_id = ?'; |
---|
444 | $params = array(intval($c_diary['c_diary_id'])); |
---|
445 | $c_diary_comment_list = db_get_all($sql, $params); |
---|
446 | foreach ($c_diary_comment_list as $c_diary_comment) { |
---|
447 | image_data_delete($c_diary_comment['image_filename_1']); |
---|
448 | image_data_delete($c_diary_comment['image_filename_2']); |
---|
449 | image_data_delete($c_diary_comment['image_filename_3']); |
---|
450 | } |
---|
451 | |
---|
452 | $sql = 'DELETE FROM c_diary_comment WHERE c_diary_id = ?'; |
---|
453 | db_query($sql, $params); |
---|
454 | } |
---|
455 | $sql = 'DELETE FROM c_diary WHERE c_member_id = ?'; |
---|
456 | db_query($sql, $single); |
---|
457 | |
---|
458 | |
---|
459 | ///メンバー関連 |
---|
460 | // c_member_pre |
---|
461 | $sql = 'SELECT * FROM c_member_pre WHERE c_member_id_invite = ?'; |
---|
462 | $c_member_pre_list = db_get_all($sql, $single); |
---|
463 | foreach ($c_member_pre_list as $c_member_pre) { |
---|
464 | // c_member_pre_profile |
---|
465 | $sql = 'DELETE FROM c_member_pre_profile WHERE c_member_pre_id = ?'; |
---|
466 | $params = array(intval($c_member_pre['c_member_pre_id'])); |
---|
467 | db_query($sql, $params); |
---|
468 | } |
---|
469 | $sql = 'DELETE FROM c_member_pre WHERE c_member_id_invite = ?'; |
---|
470 | db_query($sql, $single); |
---|
471 | |
---|
472 | // c_member_profile |
---|
473 | $sql = 'DELETE FROM c_member_profile WHERE c_member_id = ?'; |
---|
474 | db_query($sql, $single); |
---|
475 | |
---|
476 | // c_member_secure |
---|
477 | $sql = 'DELETE FROM c_member_secure WHERE c_member_id = ?'; |
---|
478 | db_query($sql, $single); |
---|
479 | |
---|
480 | // c_member (画像) |
---|
481 | $sql = 'SELECT image_filename_1, image_filename_2, image_filename_3' . |
---|
482 | ' FROM c_member WHERE c_member_id = ?'; |
---|
483 | $c_member = db_get_row($sql, $single); |
---|
484 | image_data_delete($c_member['image_filename_1']); |
---|
485 | image_data_delete($c_member['image_filename_2']); |
---|
486 | image_data_delete($c_member['image_filename_3']); |
---|
487 | |
---|
488 | $sql = 'DELETE FROM c_member WHERE c_member_id = ?'; |
---|
489 | db_query($sql, $single); |
---|
490 | } |
---|
491 | |
---|
492 | /** |
---|
493 | * コミュニティ削除 |
---|
494 | * 関連情報を合わせて削除する |
---|
495 | * |
---|
496 | * @param int $c_commu_id |
---|
497 | */ |
---|
498 | function db_common_delete_c_commu($c_commu_id) |
---|
499 | { |
---|
500 | //function cacheの削除 |
---|
501 | cache_drop_c_commu($c_commu_id); |
---|
502 | |
---|
503 | $single = array(intval($c_commu_id)); |
---|
504 | |
---|
505 | $sql = 'SELECT * FROM c_commu WHERE c_commu_id = ?'; |
---|
506 | $c_commu = db_get_row($sql, $single); |
---|
507 | |
---|
508 | // 画像削除 |
---|
509 | image_data_delete($c_commu['image_filename']); |
---|
510 | |
---|
511 | // c_commu_admin_confirm |
---|
512 | $sql = 'DELETE FROM c_commu_admin_confirm WHERE c_commu_id = ?'; |
---|
513 | db_query($sql, $single); |
---|
514 | |
---|
515 | // c_commu_member |
---|
516 | $sql = 'DELETE FROM c_commu_member WHERE c_commu_id = ?'; |
---|
517 | db_query($sql, $single); |
---|
518 | |
---|
519 | // c_commu_member_confirm |
---|
520 | $sql = 'DELETE FROM c_commu_member_confirm WHERE c_commu_id = ?'; |
---|
521 | db_query($sql, $single); |
---|
522 | |
---|
523 | // c_commu_review |
---|
524 | $sql = 'DELETE FROM c_commu_review WHERE c_commu_id = ?'; |
---|
525 | db_query($sql, $single); |
---|
526 | |
---|
527 | ///トピック関連 |
---|
528 | $sql = 'SELECT * FROM c_commu_topic WHERE c_commu_id = ?'; |
---|
529 | $topic_list = db_get_all($sql, $single); |
---|
530 | |
---|
531 | foreach ($topic_list as $topic) { |
---|
532 | // c_commu_topic_comment(画像) |
---|
533 | $sql = 'SELECT image_filename1, image_filename2, image_filename3' . |
---|
534 | ' FROM c_commu_topic_comment WHERE c_commu_topic_id = ?'; |
---|
535 | $params = array(intval($topic['c_commu_topic_id'])); |
---|
536 | $topic_comment_list = db_get_all($sql, $params); |
---|
537 | foreach ($topic_comment_list as $topic_comment) { |
---|
538 | image_data_delete($topic_comment['image_filename1']); |
---|
539 | image_data_delete($topic_comment['image_filename2']); |
---|
540 | image_data_delete($topic_comment['image_filename3']); |
---|
541 | } |
---|
542 | $sql = 'DELETE FROM c_commu_topic_comment WHERE c_commu_topic_id = ?'; |
---|
543 | db_query($sql, $params); |
---|
544 | |
---|
545 | // c_event_member |
---|
546 | $sql = 'DELETE FROM c_event_member WHERE c_commu_topic_id = ?'; |
---|
547 | db_query($sql, $params); |
---|
548 | } |
---|
549 | |
---|
550 | // c_commu_topic |
---|
551 | $sql = 'DELETE FROM c_commu_topic WHERE c_commu_id = ?'; |
---|
552 | db_query($sql, $single); |
---|
553 | |
---|
554 | // c_commu |
---|
555 | $sql = 'DELETE FROM c_commu WHERE c_commu_id = ?'; |
---|
556 | db_query($sql, $single); |
---|
557 | } |
---|
558 | |
---|
559 | //--- ログ |
---|
560 | |
---|
561 | /** |
---|
562 | * バナーのクリックログを追加 |
---|
563 | */ |
---|
564 | function db_banner_insert_c_banner_log($c_banner_id, $c_member_id, $clicked_from) |
---|
565 | { |
---|
566 | $data = array( |
---|
567 | 'c_banner_id' => intval($c_banner_id), |
---|
568 | 'c_member_id' => intval($c_member_id), |
---|
569 | 'clicked_from' => $clicked_from, |
---|
570 | 'r_datetime' => db_now(), |
---|
571 | 'r_date' => db_now(), |
---|
572 | ); |
---|
573 | return db_insert('c_banner_log', $data); |
---|
574 | } |
---|
575 | |
---|
576 | /** |
---|
577 | * 検索ログを追加 |
---|
578 | */ |
---|
579 | function do_common_insert_search_log($c_member_id, $searchword) |
---|
580 | { |
---|
581 | if (!$searchword) return false; |
---|
582 | |
---|
583 | $data = array( |
---|
584 | 'c_member_id' => intval($c_member_id), |
---|
585 | 'searchword' => $searchword, |
---|
586 | 'r_datetime' => db_now(), |
---|
587 | ); |
---|
588 | return db_insert('c_searchlog', $data); |
---|
589 | } |
---|
590 | |
---|
591 | function p_access_log($c_member_id, $page_name, $ktai_flag = "0") |
---|
592 | { |
---|
593 | if (!$page_name) return false; |
---|
594 | |
---|
595 | $data = array( |
---|
596 | 'c_member_id' => intval($c_member_id), |
---|
597 | 'page_name' => $page_name, |
---|
598 | 'target_c_member_id' => '', |
---|
599 | 'target_c_commu_id' => '', |
---|
600 | 'target_c_commu_topic_id' => '', |
---|
601 | 'target_c_diary_id' => '', |
---|
602 | 'ktai_flag' => (bool)$ktai_flag, |
---|
603 | 'r_datetime' => db_now(), |
---|
604 | ); |
---|
605 | |
---|
606 | $target_ids = array( |
---|
607 | 'target_c_member_id', |
---|
608 | 'target_c_commu_id', |
---|
609 | 'target_c_commu_topic_id', |
---|
610 | 'target_c_diary_id', |
---|
611 | ); |
---|
612 | foreach ($target_ids as $key) { |
---|
613 | if (isset($_REQUEST[$key])) { |
---|
614 | $data[$key] = intval($_REQUEST[$key]); |
---|
615 | } |
---|
616 | } |
---|
617 | |
---|
618 | db_insert('c_access_log', $data); |
---|
619 | } |
---|
620 | |
---|
621 | /** |
---|
622 | * スキン画像のfilenameを登録 |
---|
623 | */ |
---|
624 | function db_replace_c_skin_filename($skinname, $filename) |
---|
625 | { |
---|
626 | db_delete_c_skin_filename($skinname); |
---|
627 | |
---|
628 | $data = array( |
---|
629 | 'skinname' => strval($skinname), |
---|
630 | 'filename' => strval($filename), |
---|
631 | ); |
---|
632 | return db_insert('c_skin_filename', $data); |
---|
633 | } |
---|
634 | |
---|
635 | /** |
---|
636 | * スキン画像を削除(デフォルトに戻す) |
---|
637 | */ |
---|
638 | function db_delete_c_skin_filename($skinname) |
---|
639 | { |
---|
640 | $sql = 'SELECT * FROM c_skin_filename WHERE skinname = ?'; |
---|
641 | $params = array(strval($skinname)); |
---|
642 | if ($skin_filename = db_get_row($sql, $params)) { |
---|
643 | image_data_delete($skin_filename['filename']); |
---|
644 | $sql = 'DELETE FROM c_skin_filename WHERE skinname = ?'; |
---|
645 | return db_query($sql, $params); |
---|
646 | } else { |
---|
647 | return false; |
---|
648 | } |
---|
649 | } |
---|
650 | |
---|
651 | //--- |
---|
652 | |
---|
653 | /** |
---|
654 | * DBテンプレートを削除 |
---|
655 | */ |
---|
656 | function db_delete_c_template($name) |
---|
657 | { |
---|
658 | $sql = 'DELETE FROM c_template WHERE name = ?'; |
---|
659 | $params = array(strval($name)); |
---|
660 | return db_query($sql, $params); |
---|
661 | } |
---|
662 | |
---|
663 | /** |
---|
664 | * DBテンプレートを登録 |
---|
665 | */ |
---|
666 | function db_replace_c_template($name, $source) |
---|
667 | { |
---|
668 | db_delete_c_template($name); |
---|
669 | |
---|
670 | $data = array( |
---|
671 | 'name' => strval($name), |
---|
672 | 'source' => strval($source), |
---|
673 | 'r_datetime' => db_now(), |
---|
674 | ); |
---|
675 | return db_insert('c_template', $data); |
---|
676 | } |
---|
677 | |
---|
678 | /** |
---|
679 | * ナビゲーション項目を削除 |
---|
680 | */ |
---|
681 | function db_delete_c_navi($navi_type, $sort_order) |
---|
682 | { |
---|
683 | $sql = 'DELETE FROM c_navi WHERE navi_type = ? AND sort_order = ?'; |
---|
684 | $params = array(strval($navi_type), intval($sort_order)); |
---|
685 | return db_query($sql, $params); |
---|
686 | } |
---|
687 | |
---|
688 | /** |
---|
689 | * ナビゲーション項目を登録 |
---|
690 | */ |
---|
691 | function db_replace_c_navi($navi_type, $sort_order, $url, $caption) |
---|
692 | { |
---|
693 | db_delete_c_navi($navi_type, $sort_order); |
---|
694 | |
---|
695 | $data = array( |
---|
696 | 'navi_type' => strval($navi_type), |
---|
697 | 'sort_order' => intval($sort_order), |
---|
698 | 'url' => strval($url), |
---|
699 | 'caption' => strval($caption), |
---|
700 | ); |
---|
701 | return db_insert('c_navi', $data); |
---|
702 | } |
---|
703 | |
---|
704 | ?> |
---|