XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | sejin7940 |
---|
XE 에서는 세션에 기록을 남겨, 비밀글이여도 쓴 직후에는 바로 확인이 가능하다
공공장소 등에서는 자칫하면 이 비밀글이 그대로 노출되는 상황이 생길수도 있어
손님이 비밀글 작성한 경우..
작성 직후에도, 반드시 비밀번호 넣어야 확인 가능하게 하려면 어떻게 해야할까?
modules/document/document.controller.php 에서
function insertDocument 함수에서
$this->addGrant($obj->document_srl);
부분을 주석처리 또는 삭제하시면 됩니다.
============================
추가적인 설명... )
처음에는,
modules/document/document.item.php 에서
function isGranted() 함수에서
if($_SESSION['own_document'][$this->document_srl]) return true;
를 지우거나 주석처리하면 될줄 알았다.
비밀글의 여부는
modules/board/board.view.php 에서
function dispBoardContentView() 함수를 통해
if($oDocument->isSecret() && !$oDocument->isGranted())
{
$oDocument->add('content',Context::getLang('thisissecret'));
}
에서 제어하는데...
$oDocument->isSecret() 은 해당 글이 비밀글인지 여부를 DB에서 확인하는거고 (status 값으로)
$oDocument->isGranted() 에서 권한을 검사하는데..
isGranted() 함수에, $_SESSION['own_document'][$this->document_srl] 가 있어,
글등록시 이 세션이 생길테니 이것만 제거하면 될거라고 생각했다.
그런데 이렇게 하면 문제가...
보기화면에서, 비밀번호를 제대로 입력한 후에도.. 글 보기가 안 되는 문제가 생긴다.
비밀번호 정상 입력되면, $_SESSION['own_document'][$this->document_srl] 값이 생성되는데,
isGranted() 에서 이걸 무조건 막아버려서, 비밀글 권한이 계속 없도록 생기기 때문이다.
그래서, 아예 글 등록한 직후, 이 모든 권한을 주는 부분 자체를 막아버리는걸로 변경했다.
그게 위에 적어둔 방식으로 글등록시 $this->addGrant 부분을 막아버리는 것이다.