예전에 @웹지기 님이 언급하셨던 executeQuery 사용법 문의글 https://xetown.com/qna/727523 을 통해서 executeQuery 알게 되었습니다.
애드온에서 디비를 직접 제어할 수 있는 것이 매우 매력적인데요.
보통 애드온에서는 실행하는 과정에서 executeQuery를 실행하는데요.
애드온에서 버튼을 하나 만들고 onclick 이벤트로 애드온의 executeQuery 를 실행할 수 있는지가 궁금합니다.
버튼을 통해서 특정 상황에서만 이벤트를 발생하고 싶거든요.
제가 해본 방식은 이런 형태인데 이부분이 해결이 안되어서 도움을 요청드립니다.
$end_text_button = '<div style="margin:10px; padding:30px 10px 30px 10px; text-align:center; background-color:#EFEFEF;"><a href="javascript:void(0)" onclick="executeQuery("addons.abc_end_button.updateDocumentExtra", $args)">완료 / 종료 시키기</a></div>';
$output = str_replace("<!--BeforeDocument(", $end_text_button."<!--BeforeDocument(", $output);
김치찌개
Lv. 3
댓글 10
웹에서 특정 쿼리를 직접 실행할 수는 없습니다.
만약 가능하다면 아무나 글쓰기, 글삭제 등의 쿼리를 실행할 수 있게 되어 심각한 보안문제가 일어나겠죠?
웹에서 뭔가를 클릭했을 때 (예: 추천, 비추천, 신고) DB와 연동시키려면
우선 XE의 exec_xml, exec_json 함수가 모듈만 지원하므로 애드온이 아니라 모듈이어야 하고,
모듈에서는 지금 클릭한 사람이 해당 작업을 수행할 권한이 있는지 체크한 후 (예: 중복 클릭이라거나...)
쿼리를 실행하거나 에러메시지를 출력하거나 합니다.
이 글을 보니, 말씀하신데로 ducument 모듈에서 지원하는 insertDocumentExtraVar 함수가 있는 것 같은데 이걸로 해봐야 겠네요.
https://xe1.xpressengine.com/qna/21620483
게시글에 버튼이 노출되고 버튼을 누르면 입금했던 이름을 넣고 클릭하면 해당 정보가 기록되는 쿼리실행..
후원도우미 애드온은 여기 XE타운에서도 사용되고 있겠군요...
XE는 또 새로 배워야 하는게 많기도하구요..
저도 후원도우미 애드온을 사용중인데 제가 이해할 수 있는 수준이 아니더군요. ㅠㅠ
클릭 이벤트 같은건 js로 처리하는 거 같더라구요.
그리고 처리되는 과정은 기진곰님이 말씀하신 함수 같은 것을 사용한 것으로 보여요.
그러나 코알못이 봤을때는 그냥 코드이더군요 ㅋㅋㅋ
@웹지기 님이 더보다 더 고수이신 것 같아요. ^^