Example #1
0
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);
}
Example #2
0
 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);
 }