웹마스터 팁

"이 게시물을..." 추천/비추천/신고 메뉴를 게시판스킨의 버튼으로 구현하기


이것이 팁이 될 수 있을 지 모르겠지만요.
대부분의 스킨 제작자님들께 도움이 될 듯 해서 올립니다.

0.1.9까지 쓰던 스킨은 추가되는 비추천 신고 버튼을 추가해야 합니다.
0.2.5를 들여다보다가 다음과 같이 해 보니 되더군요
스킨파일에서 view_document.html파일의 중간 부분을 수정했습니다.


                  <!--추천-->
                  <a href="#" onclick="doCallModuleAction('document','procDocumentVoteUp','{$document_srl}');return false;" class="button"><span>{$menu_str = Context::getLang('cmd_vote')}</span></a>

                  <!--비추천-->
                  <a href="#" onclick="doCallModuleAction('document','procDocumentVoteDown','{$document_srl}');return false;" class="button"><span>{$menu_str = Context::getLang('cmd_vote_down')}</span></a>

                  <!--신고-->
                  <a href="#" onclick="doCallModuleAction('document','procDocumentDeclare','{$document_srl}');return false;" class="button"><span>{$menu_str = Context::getLang('cmd_declare')}</span></a>


여기까지 덧붙이시면 됩니다.
아래 소스에 나오는 것을 위에 처럼 버튼으로 변경한 것입니다.

=================================================
/modules/document/ document.model.php 파일의 함수입니다.
=================================================
    class documentModel extends document {
        ~~기타생략~~
        /**
         * @brief 선택된 게시물의 팝업메뉴 표시
         *
         * 인쇄, 스크랩, 추천, 비추천, 신고 기능 추가
         **/
        function getDocumentMenu() { 
                ~~~~
            $menu_str = Context::getLang('cmd_vote');
            $menu_link = sprintf("doCallModuleAction('document','procDocumentVoteUp','%s')", $document_srl);
            $menu_list[] = sprintf("\n%s,%s,%s", '', $menu_str, $menu_link);

            <!--비추천 버튼 추가-->

            $menu_str = Context::getLang('cmd_vote_down');
            $menu_link = sprintf("doCallModuleAction('document','procDocumentVoteDown','%s')", $document_srl);
            $menu_list[] = sprintf("\n%s,%s,%s", '', $menu_str, $menu_link);

            <!--신고 기능 추가-->

            $menu_str = Context::getLang('cmd_declare');
            $menu_link = sprintf("doCallModuleAction('document','procDocumentDeclare','%s')", $document_srl);
            $menu_list[] = sprintf("\n%s,%s,%s", '', $menu_str, $menu_link);




여기까지 분석해서 적용하는 과정에 질답게시판에서 다음과 같은 과정을 거쳤습니다.
여기까지 오는 동안 우선 비나무님의 친절한 도움이 컸네요.
http://www.zeroboard.com/?mid=zbxe_qna&page=3&document_srl=15975097

링크를 따라가 보면 제로님의 팁을 만날 수 있지만 그리고 추가적으로 여기에 덧붙입니다.
 
"이 게시물을..." 이라는 팝업 메뉴에 나오는 것들을 버튼으로 구현하였으니 "이 게시물을..." 이라는 것은 제거해야겠죠.
content(false) 로 변경하면 보이지 않는다고 하네요.

스킨파일에서 view_document.html파일의 상단 부분을 수정합니다

      {$oDocument->getContent(false)}


그림을 덧붙입니다.

버튼 생성결과


비추천을 누르니
이런 메시지가 뜨네요



여기서 확인 버튼을 누르면 페이지가 갱신되는 군요



이렇게 추천수가 -1 로 됩니다. 당연히 비추천이니깐 감점이죠 ㅋㅋ

이 비추천 점수는 매우 유용해서 제가 만들 사이트에서는 관리자가 글들을 삭제하여 관리하는 것이 아니라 글을 쓰는 유저들이 점수를 매겨서 평가하는 시스템을 적용하려구 합니다. 악풀 같은 거는 유저들이 감점해주면 감점과 신고 수가 일정정도 넘으면 글이나 댓글이 보이지 않게 하면 좋겠죠.

유저들에 의한 쓰레기 글의 자동 분리 수거라고나 할까?
암튼 여러분들이 잘 모르셔서 그렇죠 이거 겁나게 좋은 겁니다.

가령 제로보드도 제로님이 관리하지 않아도 유저들끼리 추천 때리면서 자체적으로 운영할 수 있는 거거든요. 문제는 걸러내는 시스템이 취약했다는 것인데 큰 결단을 내리신 거 같네요.

이거 만들려고 몇달동안 시도를 했었다가 만들어 주셨는데 이런 기능을 포기한다는 것은 홈페이지를 포기한다는 것과 같기때문에 기능을 살려서 스킨에 넣으려고 좀 신경 썼습니다 ㅎ

암튼 제로님께 감솨 드리며 잘쓰겠습니다

아 제로님 그리고 본문 수정을 하면 제목의 값이 지워지는 군요 다시 제목을 적어야 하는 불편함이 있네요
제목 글쓴이 날짜
[리눅스] 속도향상 팁. nginx를 리버스프록시로 써봅시다. [6] choco@_@ 2013.07.11
jquery swiper Ansi™ 2017.02.16
인스타그램 해시태그 회원가입 없이 끌어오기 외인 2017.02.08
CKEditor 글꼴란에 한글 폰트 추가하는 방법 (수정함) [4] file 기븐 2015.09.19
폰갭과 웹앱 그리고 XE... [6] onTrust 2015.04.23
jQuery 플러그인 모음 Ansi™ 2017.01.25
DOS 공격에 대한 방어 프로그램입니다. 마루디자인 2017.01.23
관리자 로그인시 원하는걸 보여주자 [5] 빽짱구 2008.04.15
SSL의 정석 (아파치 & nginx) [13] 기진곰 2015.06.16
방명록 형태 사용시 제목이 길게 저장되게 하려면 sejin7940 2016.12.23
로그인풀림방지 - 주소 고정하기 [27] ezi 2011.05.28
숫자 아이디 허용 방법 file 410contents 2016.12.13
(설문조사) 회원만 설문 조사 하도록 [8] Simulz 2007.09.04
클라우드플레어 사용시 서버 IP 노출방지 체크리스트 gnbstory 2016.12.09
간단한 xe 관련 자바스크립트 질문 [1] 마든남 2016.12.01
스크롤 맨아래로 내리면 자동으로 글 목록 더보이기 구현(게시판어어느 스킨이든 사용가능) [19] 장포크 2013.08.10
메뉴에 새 글 표시 모듈 사용 시 new 아이콘이 보이지 않는 버그 수정 [8] 퍼니엑스이 2014.08.12
가상서버 고르실때 참고하시면 좋겠네요. 로니 2016.11.24
CloudFlare 사용시 방문자 IP와 SSL 접속여부가 정확하게 파악되지 않는 문제 해결법 [4] 기진곰 2015.07.12
네이버 웹마스터도구 최적화검증과 GZIP 영흥도우럭1 2016.11.18