XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | sejin7940 |
---|
XE 의 검색대상 규칙은...
기본적으로 검색대상으로 되어있는 항목들에
( board.class.php 에 정의되어있다. $search_option = array('title_content','title','content','comment','user_name','nick_name','user_id','tag'); )
유저가 사용자정의로 추가한 항목 중 '검색'을 허용한 값들이 포함되고. (여기까지는 잘 알려져 있는 부분이고 )
의외로 한가지 설정이 더 복합되어 검색대상 제외가 된다.
바로 회원설정에서, 회원가입항목 설정에서 '공개' 로 체크를 하지 않은 ( 비공개항목 ) 에 대해서는
게시판 하단의 검색대상에서 자동으로 제외가 된다.
생각해보면 분명 이 형태가 맞긴하다.
그런데 문제는 이 공개여부에 따른 제한이 관리자에게도 적용된다는 점이다
관리자는 비공개 항목이여도 어차피 다 볼 수 있는데..
검색대상에서 제한을 걸 필요는 없다. ( 정확히는 버그라고 보는게 맞다 )
게시판 관리자의 경우는, 회원정보를 볼 수 없게 하는게 더 맞을 수 있으니
이 기능은 최고관리자에게는 풀어주는게 맞는것 같다
modules/board/board.view.php 에서
function dispBoardContent() 함수에서
$memberConfig = getModel('module')->getModuleConfig('member');
foreach($memberConfig->signupForm as $signupFormElement)
{
if(in_array($signupFormElement->title, $search_option))
{
if($signupFormElement->isPublic == 'N')
unset($search_option[$signupFormElement->name]);
}
}
함수 위아래를 if 문으로 감싸주면 된다.
if(Context::get('logged_info')->is_admin!='Y') {
$memberConfig = getModel('module')->getModuleConfig('member');
foreach($memberConfig->signupForm as $signupFormElement)
{
if(in_array($signupFormElement->title, $search_option))
{
if($signupFormElement->isPublic == 'N')
unset($search_option[$signupFormElement->name]);
}
}
}
만약 최고관리자가 아니라, 해당 게시판에 대한 관리권한이 있는 사람에게 다 허용해주고프다면
if(Context::get('logged_info')->is_admin!='Y') { 대신에
if(!$this->grant->manager) { 이렇게 하면 된다.