확장변수 표시를 모듈로 없애려 하는데 이 방법이 안전한건지 알고싶습니다.
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 8.3 |
일단 module.xml은 다음과 같이 선언했습니다.
<eventHandler afterAction="board.dispBoardContent" class="Controllers\Controller" method="_filteringDisplayExtraVars" />
아래는 컨트롤러 선언부입니다.
public function _filteringDisplayExtraVars ($args) {
$document_srl = Context::get('document_srl');
if ($document_srl !== null) { // 게시물이 존재할때만
$document = Context::get('oDocument');
$mid = $document->getDocumentMid();
if ($mid === 'event' || $mid === 'event_end') {
$extra_vars = $document->getExtraVars();
foreach ($extra_vars as $key => $extra_var) {
if (in_array($extra_var->eid, ['privacy', 'linked_document'])) {
unset($extra_vars[$key]);
}
}
$GLOBALS['XE_EXTRA_VARS'][$document_srl] = $extra_vars;
}
}
}
document 모듈의 document.model.php 를 보았을때 $GLOBALS['XE_EXTRA_VARS'] 로 지정되어있는게 보여서 해당 부분을 덮어썼는데, 이게 확장변수와 관련된 액션에서 문제를 일으킬 가능성이 존재할지 알고싶습니다.
찾아보았는데 $GLOBALS에 직접적으로 관여되는곳들이 document.controller, document.model, point.controller 이 셋인데 point.controller쪽의 선언부(559번째줄?)은 왜 선언되었는지 감이 안잡히는데, document.model쪽을 보니 상당히 위험한 행위인것같아서요.
스킨과 같은 템플릿에서 수정하는게 최선인지 알고싶습니다.
에카
Lv. 2
댓글 2
스킨에서 컨트롤하는게 가장 손쉽죠?;;
가장 손쉽긴 한데, 확장변수 쓰는 게시판들이 워낙 많기도 하고 스킨에서 데이터처리를 하기 원치 않아서요. (이건 순전히 욕심입니다)