와, $grant랑 $module_info 때문에 완전 헤맸네요
어제도 이야기했듯 애드온을 만들고 있습니다.
그리고 대댓글 목록의 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

댓글 14
아무래도 모듈에서 쓰라고 만들어진 기능이다 보니...
애드온이나 별도의 PHP 파일에서 사용하려면 삽질이 많이 필요하죠.
그래서 언제 모듈로 넘어오실 건가요?^^
애드온 만들고 계실 실력이 아닌디...
어서 날코딩의 굴레에서 벗어나 모듈님을 영접하세요!
이걸로 시즌1 끝판왕이라 생각해서요, 다 깨면 시즌2 모듈로 가겠습니다ㅎㅎ
아 겁나네요ㅜ
코드가 있는 사람만 가입할 수 있는 비밀 사이트여서요ㅜㅜ
아직 찾아가기는 전적으로 안 된다고 보시면 돼요.
5~6년 전에도 여기까지 왔다가 힘 달려서 접어뒀던 거 같습니다;;;
특히 비번 입력해서 대댓글 확인을 하거나 대댓글 삭제 후에 페이지 찾아가기가 엄청 빡셌던 것 같습니다.
그래도 과거보다는 실력이 쪼금은 늘었으니까 어떻게든 되겠죠 뭐
이런 식이면 잘 찾아가는 것인지... 혹시 더 신경 쓸 부분이 있는지 시간 나실 때 조언 좀 주시면 감사하겠습니다~
https://dev.aporia.blog/index.php?mid=board_fKje43&document_srl=11744&comment_srl=11822
https://dev.aporia.blog/index.php?mid=board_fKje43&document_srl=11744&comment_srl=11837#comment_11837
https://dev.aporia.blog/index.php?mid=board_fKje43&document_srl=11744&comment_srl=11867#comment_11867
뭔지는 잘 모르지만 코딩이 더 효율적이라 하셨으니까 람보님 말씀만 믿고 따라가보겠습니다 :D
getModel('')
getController('')
이런 함수를 호출하여 해당 함수를 따로 변수안에 넣어서 활용해야 했는데
memberModel::getMmeberInfoByMemberSrl();
이렇게 사용할 수 있는 네임스페이스를 활용하는 방법으로 제작되어있는데 맘대로 파일과 클래스 이름을 막 호출하여 autoload 걸수 있기 때문에 편리합니다.
예전에는 XE모듈형의 파일이름과 이런항목들을 반드시 지켜야 정상적으로 사용이 가능햇지만, 최근에 개선된 항목들은
modules/test/controllers/view.php
이런식으로 폴더 구조를마음대로 생성해서 구조화 시키더라도 맘대로 로딩시켜서 막 개발이 가능합니다 :)
2.1 시점부터 본격화되는 거라면 현재 나와 있는 예제는 아직 없는 거겠죠?
기대해보겠습니다!