XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | sejin7940 |
---|
기존 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';