코어를 수정하면 되는데 하지는 마세요 ㅎㅎㅎ

 

if($val->is_required == 'Y') $js_code[] = sprintf('validator.cast("ADD_EXTRA_FIELD", ["extra_vars%s", { required:true }]);', $idx);

이 부분을 

if($val->is_required == 'Y' && $this->user->is_admin != 'Y') $js_code[] = sprintf('validator.cast("ADD_EXTRA_FIELD", ["extra_vars%s", { required:true }]);', $idx);

이렇게 바꿔주면 되기는 하는데요.

 

이와 같은 방식으로 확장변수 입력을 패스하면, 공지 글 같은 경우 확장변수 입력뿐 아니라 출력도 안 할 수 있고요.

암튼 조금 더 편리합니다ㅎ

 

다만 아직 문제가 있습니다.

- 일단 (게시판 관리자가 아니라) 최고관리자에 한해서만 필수 입력 체크를 건너뛰는 방식이에요.

- 무엇보다도 document.contoller.php는 버전업이 자주 되는 편이니 코어 수정은 비추입니다.

 

그치만 잘하면 이 부분을 애드온으로 끼어들 수 있지 않을까 하는 생각이 듭니다.

이 함수가 게시판 글쓰기 화면에 인라인 script로 반영되는데, js로 스크립트 내용을 바꿔준다거나,

기타 등등 어떤어떤 방법도 있을 것 같고요. (사실 잘 모름ㅋ)

 

암튼 12월도 되고(읭?) 사용 중에 불편감이 좀 있어서 아이디어를 끄적여봤습니다.

 


 

 

덧. 코어 수정하지 않는 팁을 만들었습니다!

https://xetown.com/tips/1725180

윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • profile
    코어를 수정할 필요는 없고 오래전에 validator를 후킹해서 해결했었던 기억이 있는 것 같네요!
  • profile profile
    역시...ㅜㅜ
    얼른 기억을 해주세요, 는 농담이구요ㅋㅋ

    https://github.com/rhymix/rhymix/blob/a6ace52c9e25047f966eb83253526215936029b1/common/js/xml_js_filter.js#L17
    이 부분을 재정의해주는 방식으로 접근을 하는 걸까요?
  • profile profile
    재정의는 아니고, XE Validator App의 플러그인을 추가해서 해결했습니다.
  • profile profile
    윽, 저한테는 어렵네요.
    이게 그런 건지는 모르겠지만 객체지향 사고력 같은 게 없어요...
    한 번 도전해봤다가 안 되면 인라인 스크립트 수정이 가능한지 알아봐야겠습니다.
  • profile
    몸으로 때우고 있었는데 !! 감사합니다.
  • profile profile
    공지글 같은 경우는 굳이 확장변수를 입력할 필요가 없는 경우가 빈번하긴 하죠ㅜ