XpressEngineGoogleCode / xe-board

Automatically exported from code.google.com/p/xe-board
0 stars 0 forks source link

XE 1.5 를 1.7 로 업데이트한 경우, 카테고리 사용여부 설정 버그 수정법 #205

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
제 홈피에 썼던 글이여서 말이 좀 짧습니다 ^^;;

기존 XE 1.5 에서는 카테고리 사용여부 체크하던 항목이 
(use_category) 
XE 1.7 에서는  카테고리 숨김여부  (hide_category) 로 변경이 
되어버렸는데  (이게 값이 완전히 반대이다)

우선, XE 1.5 까지 호환되는 스킨으로 제작할때는
스킨 내부에서, 새로 만들어진 $module_info->hide_category 가 
아닌,  $module_info->use_category 로 계속 사용하여야한다.
(흠.. 개인적으로는 이 값을 XE 1.7 에서 바꿔버린건 좋은 
판단은 아니라고 생각되긴하는데... 바뀌어버렸으니 
따라가야죠 ^^;;)

이를 보완하기 위해  board.view.php 파일의 init() 이 둘 사이의 
호환값이 있긴한데..
이게 잘못 설정이 되어있다.

XE 1.5 기반에서 카테고리를 사용하다가 안 쓰려고,  
카테고리 사용 안 함으로 체크 한 상태에서...
(그러나 추후 쓸 수도 있으니 카테고리는 안 지운 상태. 
그래야 기존 입력한 글들에 카테고리 값이 그대로 
유지되기에)
이를 그대로 XE 1.7 로 업데이트를 시키는 경우

modules/board/board.view.php  의  function init() 함수내에서 

//If category are exsist, set value 'use_category' to 'Y'
if($this->module_info->hide_category != 'Y' && 
count($oDocumentModel->getCategoryList($this->module_info->module_srl)))  
구문에서

당연히 $this->module_info->hide_category 값은 없고,   
count($oDocumentModel->getCategoryList($this->module_info->module_srl))  값은 
존재하기에..
$this->module_info->use_category = 'Y';  즉,  카테고리가 사용하는 
걸로 인식되어버리는 문제가 생긴다.
즉,  카테고리 사용하다가 사용 안 한 걸로 설정변경한 
경우, XE 1.7 로 넘어오면서,  자동으로 카테고리를 
노출시키는 걸로, 역으로 출력되는 버그가 발생한다.

수정방법은...  
물론 모든 게시판 설정에서 '분류관리' 의 '분류 숨기기' 를 
다 다시 지정하면 되나..
게시판 수가 많을 경우 이도 부담스러울 수 있으니..

modules/board/board.view.php  의  function init() 함수내에서 

if($this->module_info->hide_category != 'Y' && 
count($oDocumentModel->getCategoryList($this->module_info->module_srl)))
 $this->module_info->use_category = 'Y';
else
 $this->module_info->use_category = 'N';

를  아래처럼 고치면 된다.

if($this->module_info->use_category && !$this->module_info->hide_category) {
 if($this->module_info->use_category=='Y') $this->module_info->hide_category = 'N';
 else $this->module_info->hide_category = 'Y'; 
}
else if($this->module_info->hide_category != 'Y' && 
count($oDocumentModel->getCategoryList($this->module_info->module_srl)))
 $this->module_info->use_category = 'Y';
else
 $this->module_info->use_category = 'N';

Original issue reported on code.google.com by sejin7...@gmail.com on 21 Jul 2013 at 4:24