function kboard_system_update() { global $wpdb; // 시스템 업데이트를 이미 진행 했다면 중단한다. if (KBOARD_VERSION <= get_option('kboard_version')) { return; } // 시스템 업데이트를 확인하기 위해서 버전 등록 if (get_option('kboard_version') !== false) { update_option('kboard_version', KBOARD_VERSION); } else { add_option('kboard_version', KBOARD_VERSION, null, 'no'); } // 관리자 알림 add_action('admin_notices', create_function('', "echo '<div class=\"updated\"><p>KBoard 게시판 : '.KBOARD_VERSION.' 버전으로 업그레이드 되었습니다. - <a href=\"http://www.cosmosfarm.com/products/kboard\" onclick=\"window.open(this.href); return false;\">홈페이지 열기</a></p></div>';")); $networkwide = is_plugin_active_for_network(__FILE__); /* * KBoard 2.0 * kboard_board_meta 테이블 추가 생성 */ if (!$wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}kboard_board_meta'")) { kboard_activation($networkwide); return; } /* * KBoard 2.5 * table 이름에 prefix 추가 */ $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N); foreach ($tables as $table) { $table = $table[0]; $prefix = substr($table, 0, 7); if ($prefix == 'kboard_') { kboard_activation($networkwide); return; } } unset($tables, $table, $prefix); /* * KBoard 2.9 * kboard_board_meta `value` 데이터형 text로 변경 */ list($name, $type) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_board_meta` `value`", ARRAY_N); if (stristr($type, 'varchar')) { kboard_activation($networkwide); return; } unset($name, $type); /* * KBoard 3.2 * captcha.php 파일 제거 */ @unlink(KBOARD_DIR_PATH . '/execute/captcha.php'); /* * KBoard 3.5 * kboard_board_content `search` 컬럼 생성 확인 * kboard_board_latestview, kboard_board_latestview_link 테이블 추가 생성 */ list($name) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_board_content` `search`", ARRAY_N); if (!$name) { kboard_activation($networkwide); return; } if (!$wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}kboard_board_latestview'")) { kboard_activation($networkwide); return; } unset($name); /* * KBoard 3.5 * 파일 제거 */ @unlink(KBOARD_DIR_PATH . '/BoardBuilder.class.php'); @unlink(KBOARD_DIR_PATH . '/Content.class.php'); @unlink(KBOARD_DIR_PATH . '/ContentList.class.php'); @unlink(KBOARD_DIR_PATH . '/KBBackup.class.php'); @unlink(KBOARD_DIR_PATH . '/KBCaptcha.class.php'); @unlink(KBOARD_DIR_PATH . '/KBFileHandler.class.php'); @unlink(KBOARD_DIR_PATH . '/KBMail.class.php'); @unlink(KBOARD_DIR_PATH . '/KBoard.class.php'); @unlink(KBOARD_DIR_PATH . '/KBoardMeta.class.php'); @unlink(KBOARD_DIR_PATH . '/KBoardSkin.class.php'); @unlink(KBOARD_DIR_PATH . '/KBSeo.class.php'); @unlink(KBOARD_DIR_PATH . '/KBUpgrader.class.php'); @unlink(KBOARD_DIR_PATH . '/Pagination.helper.php'); @unlink(KBOARD_DIR_PATH . '/Security.helper.php'); @unlink(KBOARD_DIR_PATH . '/Url.class.php'); @unlink(KBOARD_DIR_PATH . '/XML2Array.class.php'); /* * KBoard 4.1 * kboard_board_content `comment` 컬럼 생성 확인 */ list($name) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_board_content` `comment`", ARRAY_N); if (!$name) { kboard_activation($networkwide); return; } unset($name); /* * KBoard 4.2 * kboard_board_content `parent_uid` 컬럼 생성 확인 */ list($name) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_board_content` `parent_uid`", ARRAY_N); if (!$name) { kboard_activation($networkwide); return; } unset($name); /* * KBoard 4.5 * kboard_board_meta `content` 데이터형 longtext로 변경 */ list($name, $type) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_board_content` `content`", ARRAY_N); if (stristr($type, 'text')) { kboard_activation($networkwide); return; } unset($name, $type); /* * KBoard 4.5 * kboard_board_content `like` 컬럼 생성 확인 */ list($name) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_board_content` `like`", ARRAY_N); if (!$name) { kboard_activation($networkwide); return; } unset($name); }
function kboard_comments_system_update() { global $wpdb; // 시스템 업데이트를 이미 진행 했다면 중단한다. if (KBOARD_COMMNETS_VERSION <= get_option('kboard_comments_version')) { return; } // 시스템 업데이트를 확인하기 위해서 버전 등록 if (get_option('kboard_comments_version') !== false) { update_option('kboard_comments_version', KBOARD_COMMNETS_VERSION); } else { add_option('kboard_comments_version', KBOARD_COMMNETS_VERSION, null, 'no'); } // 관리자 알림 add_action('admin_notices', create_function('', "echo '<div class=\"updated\"><p>KBoard 댓글 : '.KBOARD_COMMNETS_VERSION.' 버전으로 업그레이드 되었습니다. - <a href=\"http://www.cosmosfarm.com/products/kboard\" onclick=\"window.open(this.href); return false;\">홈페이지 열기</a></p></div>';")); $networkwide = is_plugin_active_for_network(__FILE__); /* * KBoard 댓글 2.8 * 파일 제거 */ @unlink(KBOARD_COMMENTS_DIR_PATH . '/Comment.class.php'); @unlink(KBOARD_COMMENTS_DIR_PATH . '/CommentList.class.php'); @unlink(KBOARD_COMMENTS_DIR_PATH . '/CommentsBuilder.class.php'); @unlink(KBOARD_COMMENTS_DIR_PATH . '/KBCommentSkin.class.php'); @unlink(KBOARD_COMMENTS_DIR_PATH . '/KBCommentUrl.class.php'); /* * KBoard 댓글 3.2 * kboard_comments 테이블에 parent_uid 컬럼 생성 확인 */ list($name) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_comments` `parent_uid`", ARRAY_N); if (!$name) { kboard_comments_activation($networkwide); return; } unset($name); /* * KBoard 댓글 4.2 * kboard_comments 테이블에 like 컬럼 생성 확인 */ list($name) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_comments` `like`", ARRAY_N); if (!$name) { kboard_comments_activation($networkwide); return; } unset($name); /* * KBoard 댓글 4.2 * kboard_comments 테이블에 unlike 컬럼 생성 확인 */ list($name) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_comments` `unlike`", ARRAY_N); if (!$name) { kboard_comments_activation($networkwide); return; } unset($name); /* * KBoard 댓글 4.2 * kboard_comments 테이블에 vote 컬럼 생성 확인 */ list($name) = $wpdb->get_row("DESCRIBE `{$wpdb->prefix}kboard_comments` `vote`", ARRAY_N); if (!$name) { kboard_comments_activation($networkwide); return; } unset($name); /* * KBoard 댓글 4.2 * kboard_comments 테이블의 인덱스 생성 확인 */ $content_uid_index = $wpdb->get_results("SHOW INDEX FROM `{$wpdb->prefix}kboard_board_content` WHERE `Key_name`='content_uid'"); $parent_uid_index = $wpdb->get_results("SHOW INDEX FROM `{$wpdb->prefix}kboard_board_content` WHERE `Key_name`='parent_uid'"); if (!count($content_uid_index) || !count($parent_uid_index)) { kboard_activation($networkwide); return; } unset($index); }