게시판에 새로운 값 전달

안녕하세요?

 

현재 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';
}

...

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

 

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

 

항상 감사합니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 말씀하신 방법대로 $meta를 editor.php에 추가하니 잘 되네요.

    대단히 감사합니다.

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

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

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

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

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

  • 답변 감사합니다.

     

    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;를 해도 값이 출력되지 않습니다. 메타에 값을 추가할 경우 위의 두 군데 이외에 또 해 주어야 하는 설정이 있을까요?

     

    감사합니다.

     

  • 쿼리가 정확한건가요?

    $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; 이렇게 해주시면 값을 출력할 수 있습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기