게시판에 새로운 값 전달

안녕하세요?

 

현재 kboard_setting.php에 다음과 같이 새로운 값을 추가했습니다:

<tr valign="top">
						<th scope="row"><label for="myskin_number">게시물 표시</label></th>
						<td>
							<select name="myskin_number" id="myskin_number" class="">
								<?php if(!$board->myskin_number) $board->myskin_number=1;?>
								<option value="1"<?php if($board->myskin_number == 1):?> selected<?php endif?>>basic-grey</option>
								<option value="2"<?php if($board->myskin_number == 2):?> selected<?php endif?>>elegant-aero</option>
								<option value="3"<?php if($board->myskin_number == 3):?> selected<?php endif?>>smart-green</option>
								<option value="4"<?php if($board->myskin_number == 4):?> selected<?php endif?>>white-pink</option>
								<option value="5"<?php if($board->myskin_number == 5):?> selected<?php endif?>>bootstrap-frm</option>
								<option value="6"<?php if($board->myskin_number == 6):?> selected<?php endif?>>dark-matter</option>
								<option value="7"<?php if($board->myskin_number == 0):?> selected<?php endif?>>랜덤</option>
							
							</select>
							<p class="description">스킨 번호를 지정합니다.</p>
						</td>
					</tr>

 

그리고 index.php 파일에 다음과 같은 항목을 추가했습니다.

 

 

1.

if(!current_user_can('activate_plugins')) wp_die('KBoard : 관리 권한이 없습니다.');

    

    $board_id = isset($_POST['board_id'])?intval($_POST['board_id']):'';

    $board_name = isset($_POST['board_name'])?addslashes($_POST['board_name']):'';

    $skin = isset($_POST['skin'])?$_POST['skin']:'';

    $page_rpp = isset($_POST['page_rpp'])?$_POST['page_rpp']:'';
    
    $myskin_number = isset($_POST['myskin_number'])?$_POST['myskin_number']:'';

...

 

2. 

 

if(!$board_id){

        $wpdb->query("INSERT INTO `{$wpdb->prefix}kboard_board_setting` (`board_name`, `skin`, `page_rpp`, '$myskin_number', `use_comment`, `use_editor`, `permission_read`, `permission_write`, `admin_user`, `use_category`, `category1_list`, `category2_list`, `created`) VALUE ('$board_name', '$skin', '$page_rpp', '$myskin_number', '$use_comment', '$use_editor', '$permission_read', '$permission_write', '$admin_user', '$use_category', '$category1_list', '$category2_list', '$create')");

        $board_id = $wpdb->insert_id;

    }

    else{

        $wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_setting` SET `board_name`='$board_name', `skin`='$skin', `page_rpp`='$page_rpp', `myskin_number`='$myskin_number', `use_comment`='$use_comment', `use_editor`='$use_editor', `permission_read`='$permission_read', `permission_write`='$permission_write', `use_category`='$use_category', `category1_list`='$category1_list', `category2_list`='$category2_list', `admin_user`='$admin_user' WHERE `uid`='$board_id'");

    }

3.

 

    $wpdb->query("CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}kboard_board_setting` (

        `uid` bigint(20) unsigned NOT NULL auto_increment,

        `board_name` varchar(127) NOT NULL,

        `skin` varchar(127) NOT NULL,

        `use_comment` varchar(5) NOT NULL,

        `use_editor` varchar(5) NOT NULL,

        `permission_read` varchar(127) NOT NULL,

        `permission_write` varchar(127) NOT NULL,

        `admin_user` text NOT NULL,

        `use_category` varchar(5) NOT NULL,

        `category1_list` text NOT NULL,

        `category2_list` text NOT NULL,

        `page_rpp` int(10) unsigned NOT NULL,
            
        `myskin_number` int(10) unsigned NOT NULL,

 

이렇게 추가하고 editor.php 파일에서는 

 

$skinno = $board->myskin_number;
if ($skinno == 1) {
echo 'layout1';
}
elseif ($skinno == 2) {
echo 'layout2';
}

...

이런식으로 추가했습니다.

 

하지만 값이 제대로 전달이 되지 않고 있습니다. 누락된 부분이 오류가 있는 부분을 알려주시면 감사하겠습니다.

 

항상 감사합니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 쿼리가 정확한건가요?

    $wpdb->query("INSERT INTO `{$wpdb->prefix}kboard_board_setting` (`board_name`, `skin`, `page_rpp`, '$myskin_number', `use_comment`, `use_editor`, `permission_read`, `permission_write`, `admin_user`, `use_category`, `category1_list`, `category2_list`, `created`) VALUE ('$board_name', '$skin', '$page_rpp', '$myskin_number', '$use_comment', '$use_editor', '$permission_read', '$permission_write', '$admin_user', '$use_category', '$category1_list', '$category2_list', '$create')");

    위 코드에서 $myskin_number 값이 추가된 위치는 컬럼명이 들어가야 합니다. VALUE 부분에 해당 값을 넣어주셔야 합니다.

    테이블을 수정하지 말고

    $meta = new KBoardMeta($board_id);
    $meta->use_direct_url = isset($_POST['use_direct_url'])?$_POST['use_direct_url']:'';

    이런식으로 메타에 값을 추가해주시는걸 추천합니다!

    echo $meta->use_direct_url; 이렇게 해주시면 값을 출력할 수 있습니다.

  • 답변 감사합니다.

     

    index.php 파일에

    if($board_id){
            $meta = new KBoardMeta($board_id);
            $meta->use_direct_url = isset($_POST['use_direct_url'])?$_POST['use_direct_url']:'';
            $meta->mynew_skin_number = isset($_POST['mynew_skin_number'])?$_POST['mynew_skin_number']:'';

    ...

    와 같이 추가하고 

    kboard-setting.php 파일에

    <tr valign="top">
                            <th scope="row"><label for="mynew_skin_number">게시물 표시</label></th>
                            <td>
                                <select name="mynew_skin_number" id="mynew_skin_number" class="">
                                    <option value="1"<?php if($meta->mynew_skin_number == 1):?> selected<?php endif?>>basic-grey</option>
                                    <option value="2"<?php if($meta->mynew_skin_number == 2):?> selected<?php endif?>>elegant-aero</option>
                                    <option value="3"<?php if($meta->mynew_skin_number == 3):?> selected<?php endif?>>smart-green</option>
                               
                                </select>
                                <p class="description">스킨 번호를 지정합니다.</p>
                            </td>
                        </tr>

    위와 비슷하게 추가했는데도 editor.php에서 echo $meta->mynew_skin_number;를 해도 값이 출력되지 않습니다. 메타에 값을 추가할 경우 위의 두 군데 이외에 또 해 주어야 하는 설정이 있을까요?

     

    감사합니다.

     

  • 관리자쪽 설정에서는 $meta->mynew_skin_number 값이 제대로 저장되나요?

    관리자쪽에는 문제 없어 보입니다.

    스킨의 editor.php 파일에서 사용하시려면

    <?php
    $meta = new KBoardMeta($board->id);
    echo $meta->mynew_skin_number;
    ?>

    이렇게 먼저 KBoardMeta 클래스를 생성해주셔야 합니다^^

  • 말씀하신 방법대로 $meta를 editor.php에 추가하니 잘 되네요.

    대단히 감사합니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요