코스모스팜 스레드

게시판 설렉트박스에 옵션선택에 따라 게시글 분류해서 정

게시글 작성 시 설렉트박스 옵션 선택에 따라 게시글 타이틀 옆에 라벨이 표시되도록 했습니다.

list.php

<a href="<?php
						 echo $url->getDocumentURLWithUID($content->uid)
						 ?>">
							<div class="kboard-price_chart-cut-strings">
								<?php if($content->isNew()):?><span class="kboard-price_chart-new-notify">New</span><?php endif?>
								<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
								<?php echo $content->title?>
								<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
								<?php if($content->option->work_state == '작업준비'):?><span class="kboard-price_chart-working">작업준비</span><?php endif?>
								<?php if($content->option->work_state == '작업중'):?><span class="kboard-price_chart-working">작업중</span><?php endif?>
								<?php if($content->option->work_state == '검토요청'):?><span class="kboard-price_chart-request">검토요청</span><?php endif?>
								<?php if($content->option->work_state == '완료'):?><span class="kboard-price_chart-done">완료</span><?php endif?>
							</div>
						</a>

게시글 목록에서 추가한 4개(작업준비, 작업중, 검토요청, 완료)를 정렬 설렉트박스에 추가하여, 해당 항목만 정렬이 되게 할 수 있을까요?

무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
  • 안녕하세요~^^

    KBoard 플러그인에서 입력 필드 검색 방법은

    아래의 링크를 참고 부탁드립니다.

    KBoard(케이보드) 입력 필드 검색 방법

    고맙습니다.

  • <div class="kboard-sort">
    			<form id="kboard-sort-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
    				<?php echo $url->set('pageid', '1')->set('category1', '')->set('category2', '')->set('target', '')->set('keyword', '')->set('mod', 'list')->set('kboard_list_sort_remember', $board->id)->toInput()?>
    				
    				<select name="kboard_list_sort" onchange="jQuery('#kboard-sort-form-<?php echo $board->id?>').submit();">
    					<option value="newest"<?php if($list->getSorting() == 'newest'):?> selected<?php endif?>><?php echo __('Newest', 'kboard')?></option>
    					<option value="best"<?php if($list->getSorting() == 'best'):?> selected<?php endif?>><?php echo __('Best', 'kboard')?></option>
    					<option value="viewed"<?php if($list->getSorting() == 'viewed'):?> selected<?php endif?>><?php echo __('Viewed', 'kboard')?></option>
    					<option value="updated"<?php if($list->getSorting() == 'updated'):?> selected<?php endif?>><?php echo __('Updated', 'kboard')?></option>
    					<option value="kboard-price_chart-working"<?php if($list->getSorting() == 'kboard-price_chart-working'):?> selected<?php endif?>>작업중</option>
    				</select>
    			</form>
    		</div>

    정렬 필드에 이렇게 추가하니 안되기는하네요 ㅎㅎ;

    혹시 정렬추가 메뉴얼은 없을까요?

    번거롭게 해서 죄송합니다.

  • KBoard 플러그인에서 입력 필드의 옵션 키는

    kboard_option_{옵션 카} 이러한 형식으로 적용해주셔야 합니다.

    올려주신 코드 중 kboard-price_chart-working 부분을

    kboard_option_work_state로 교체해서 확인해보시겠어요?

    고맙습니다.

  • <div class="kboard-sort">
    			<form id="kboard-sort-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
    				<?php echo $url->set('pageid', '1')->set('category1', '')->set('category2', '')->set('target', '')->set('keyword', '')->set('mod', 'list')->set('kboard_list_sort_remember', $board->id)->toInput()?>
    				
    				<select name="kboard_list_sort" onchange="jQuery('#kboard-sort-form-<?php echo $board->id?>').submit();">
    					<option value="newest"<?php if($list->getSorting() == 'newest'):?> selected<?php endif?>><?php echo __('Newest', 'kboard')?></option>
    					<option value="best"<?php if($list->getSorting() == 'best'):?> selected<?php endif?>><?php echo __('Best', 'kboard')?></option>
    					<option value="viewed"<?php if($list->getSorting() == 'viewed'):?> selected<?php endif?>><?php echo __('Viewed', 'kboard')?></option>
    					<option value="updated"<?php if($list->getSorting() == 'updated'):?> selected<?php endif?>><?php echo __('Updated', 'kboard')?></option>
    					<option value="kboard_option_work_state"<?php if($list->getSorting() == 'kboard_option_work_state'):?> selected<?php endif?>>작업중</option>
    				</select>
    			</form>
    		</div>

    sort 부분에 말씀하신대로 아래와 같이 추가하였지만, 정렬 선택시 적용이 되지 않습니다.

    방법이 없을까요?

  • 올려주신 코드는 KBoard 플러그인에서 정렬 쪽 코드입니다.

    검색 폼에 코드를 추가해보시겠어요?

    검색 폼은 입력 필드를 선택하고 키워드를 입력하는 방식입니다.

    고맙습니다.

  • 별도의 셀렉트 박스를 게시글 목록 페이지에 추가하고

    작업준비, 작업중, 검토요청, 완료 선택 시 게시글이 표시되게 하시려면

    아래의 코드를 list.php 파일에 활용해보시겠어요?

    <form id="kboard-search-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
    	<?php echo $url->set('pageid', '1')->set('target', 'kboard_option_work_state')->set('keyword', '')->set('mod', 'list')->toInput()?>
    	
    	<select name="keyword" onchange="this.form.submit()">
    		<option value="">전체</option>
    		<option value="작업준비"<?php if(kboard_keyword() == '작업준비'):?> selected<?php endif?>>작업준비</option>
    		<option value="작업중"<?php if(kboard_keyword() == '작업중'):?> selected<?php endif?>>작업중</option>
    		<option value="검토요청"<?php if(kboard_keyword() == '검토요청'):?> selected<?php endif?>>검토요청</option>
    		<option value="완료"<?php if(kboard_keyword() == '완료'):?> selected<?php endif?>>완료</option>
    	</select>
    </form>

    고맙습니다.

  • 친절한 답변에 감사합니다.^^

    입력필드에서는 정상적으로 작동이 되고있습니다.

     

    추가적으로 정렬쪽에서 컨트롤은 힘든건가요?? ㅎㅎ

  • 정렬 쪽에서도 컨트롤 할 수 있습니다.

    우선 정렬 쪽 코드를 아래의 코드로 교체해보시겠어요?

    <div class="kboard-sort">
    	<form id="kboard-sort-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
    		<?php echo $url->set('pageid', '1')->set('category1', '')->set('category2', '')->set('target', '')->set('keyword', '')->set('mod', 'list')->set('kboard_list_sort_remember', $board->id)->toInput()?>
    		
    		<select name="kboard_list_sort" onchange="jQuery('#kboard-sort-form-<?php echo $board->id?>').submit();">
    			<option value="newest"<?php if($list->getSorting() == 'newest'):?> selected<?php endif?>><?php echo __('Newest', 'kboard')?></option>
    			<option value="best"<?php if($list->getSorting() == 'best'):?> selected<?php endif?>><?php echo __('Best', 'kboard')?></option>
    			<option value="viewed"<?php if($list->getSorting() == 'viewed'):?> selected<?php endif?>><?php echo __('Viewed', 'kboard')?></option>
    			<option value="updated"<?php if($list->getSorting() == 'updated'):?> selected<?php endif?>><?php echo __('Updated', 'kboard')?></option>
    			<option value="작업준비"<?php if(isset($_GET['kboard_list_sort'])&&$_GET['kboard_list_sort'] == '작업준비'):?> selected<?php endif?>>작업준비</option>
    			<option value="작업중"<?php if(isset($_GET['kboard_list_sort'])&&$_GET['kboard_list_sort'] == '작업중'):?> selected<?php endif?>>작업중</option>
    			<option value="검토요청"<?php if(isset($_GET['kboard_list_sort'])&&$_GET['kboard_list_sort'] == '검토요청'):?> selected<?php endif?>>검토요청</option>
    			<option value="완료"<?php if(isset($_GET['kboard_list_sort'])&&$_GET['kboard_list_sort'] == '완료'):?> selected<?php endif?>>완료</option>
    		</select>
    	</form>
    </div>

     

    그 다음, 워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보세요.

    add_filter('kboard_list_from', 'my_kboard_list_from', 10, 3);
    function my_kboard_list_from($from, $board_id, $content_list){
    	global $wpdb;
    	if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$from .= " LEFT JOIN `{$wpdb->prefix}kboard_board_option` ON `{$wpdb->prefix}kboard_board_content`.`uid`=`{$wpdb->prefix}kboard_board_option`.`content_uid`";
    	}
    	return $from;
    }
    
    add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
    function my_kboard_list_where($where, $board_id, $content_list){
    	global $wpdb;
    	
    	$option_key = 'work_state';
    	$kboard_list_sort = isset($_GET['kboard_list_sort'])?$_GET['kboard_list_sort']:'';
    	if(in_array($kboard_list_sort, array('작업준비','작업중','검토요청','완료')) && $board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$where .= " AND (`option_key`='{$option_key}' AND `option_value`='{$kboard_list_sort}')";
    	}
    	
    	return $where;
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.

    고맙습니다.

  • 정상적으로 잘 작동합니다.

    친절한 답변 감사합니다~

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)