어제도 이야기했듯 애드온을 만들고 있습니다.
그리고 대댓글 목록의 ajax 호출에 드디어 성공.
php 파일을 통해 대댓글 목록을 가져오는 쿼리를 실행하고, 이거를 별도의 템플릿 html 파일로 전달한 뒤, 여기서 출력된 html을 다시 js로 보내서, 최종적으로 화면에 뿌려주는 방식으로 했습니다.
근데...
이때 php 파일이 댓글단에 변수들을 전달해줘야 하는데, 그게 생각처럼 쉬운 게 아니더라구요.
그래서 한참을 헤맸습니다. 알고 보니 php 파일에서 가져온 $module_info에는 게시판 '스킨'이 설정한 $module_info가 빠져 있더라구요.
그리고 관리자의 경우는 $grant가 게시판 권한 관리에서 설정한 권한이 반영되지 않기도 하구요. 왜 이런 건지;;; 관리자만 대댓글에 댓글을 달 수 없는 사태가 발생하더라구요ㅜ
심지어 $lang 변수도 몇 개가 행방불명 ㅡㅜ
아마도 게시판 모듈 실행과는 별개의 방식으로 php 파일이 작동하다보니 변수들이 누락되는 것 같더라구요.
그래서 막
$oBoardView = getView('board');
$oBoardView->init();
이런 것도 해보고 그랬습니다. 왠지 그러면 게시판 모듈의 설정이 적용될 것 같아서... 그치만 에러가 나더군요ㅋㅋㅋ
한참 얼타다가...
$module_info는 syncSkinInfoToModuleInfo 함수를 찾아서 해결하고,
$grant는 관리자만 문제인 것 같아서 관리자에게 따로 권한을 하나씩 true로 바꿔줬습니다.
$lang은 모듈별로 loadLang으로 불러오구요.
뭔가 빠바박! 하고 끝날 줄 알았는데 쉽지가 않네요;;;
어쨌든 (맘에 들진 않지만) 매뉴얼하게나마 원댓/대댓 따로따로의 출력부는 성공을 거둔 듯합니다.
응원차 구경차 둘러보세요ㅎㅎ
https://dev.aporia.blog/board_fKje43/11744
이제 url에 대댓글 번호가 있을 때 (새로고침 후 당연히 숨겨져 있을) 대댓글을 찾아나서는 모험을 해야 합니다.
일단 url의 댓글 번호로 head 번호를 가져와서 원댓글의 페이지 위치를 찾아가고, 그 다음에 대댓글 목록을 자동으로 열어준 뒤, 표적이 되는 대댓글을 하이라이트로 처리하는 그런 방식이지 않을까... (말이 쉽지!)
코어의 댓글 페이지 자동 검출 방식도 연구하고 그래봐야겠습니다.
일단 당분간은 휴식과 안정을 취하면서요 :D
아무래도 모듈에서 쓰라고 만들어진 기능이다 보니...
애드온이나 별도의 PHP 파일에서 사용하려면 삽질이 많이 필요하죠.
그래서 언제 모듈로 넘어오실 건가요?^^
애드온 만들고 계실 실력이 아닌디...
어서 날코딩의 굴레에서 벗어나 모듈님을 영접하세요!