관리자는 필수 확장변수 프리패스 (아이디어에서 '팁'으로 발전했습니다)
앞서서 "관리자는 필수 확장변수를 입력하지 않아도 되는" 글을 아이디어 수준에서 남겨봤는데요.
https://xetown.com/topics/1725070
심플코드님이 힌트도 알려주시고 해서 뚝딱거려보다가 대강 구현을 한 것 같습니다.
코어 수정을 하지 않고 스킨단에서 처리를 했어요. (심플코드님 감사해요!)
글쓰기 템플릿 파일(보통 write_form.html) 제일 밑에 아래와 같은 스크립트 코드를 넣어보세요~
그럼 이제 관리자는 필수 확장변수를 입력하지 않아도 글쓰기가 가능해집니다.
예컨대 공지 글을 남길 때 확장변수를 입출력하지 않을 수 있답니다.
<!--@if($grant->manager && count($extra_keys))-->
<script>
(function() {
var validator = xe.getApp("validator")[0];
if(!validator) return false;
<!--@foreach($extra_keys as $idx => $val)--><!--@if($val->is_required == 'Y')-->
validator.cast('DEL_EXTRA_FIELD', ['extra_vars{$idx}']);
<!--@endif--><!--@endforeach-->
})();
</script>
<!--@endif-->
<script>
(function() {
var validator = xe.getApp("validator")[0];
if(!validator) return false;
<!--@foreach($extra_keys as $idx => $val)--><!--@if($val->is_required == 'Y')-->
validator.cast('DEL_EXTRA_FIELD', ['extra_vars{$idx}']);
<!--@endif--><!--@endforeach-->
})();
</script>
<!--@endif-->

윤삼
Lv. 19
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
댓글 13
알려주신 코드를 적용하니 정상 작동하네요.
확장필드를 사용하는 게시판에서 공지사항을 수정할 때마다 옵션 풀고 수정하고 다시 옵션 설정하고 그랬었는데
아주아주 편하게 됐습니다.
감사합니다!!!
아직도 저 원리를 하나도 모릅니다ㅋㅋㅋ
더 나아가, 특정 그룹만 선택 항목으로 만들거나 필수 항목으로 만들 수도 있겠네요! (무책임)
회원그룹별로 적용도 하고, 게시판별로도 적용하려면요.
일이 커지는 느낌입니다ㅎㅎㅎ
항상 가려운 곳을 긁어 주시네요.👍
이제 번거로움 없이 공지글을 쓸 수 있게 되었습니다.
감사합니다.