Q&A

확장변수 표시를 모듈로 없애려 하는데 이 방법이 안전한건지 알고싶습니다.

2025.03.09 23:39
35
0
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

  • 11시간 전 #1902518

    스킨에서 컨트롤하는게 가장 손쉽죠?;;

  • 11시간 전 #1902526

    가장 손쉽긴 한데, 확장변수 쓰는 게시판들이 워낙 많기도 하고 스킨에서 데이터처리를 하기 원치 않아서요. (이건 순전히 욕심입니다)