웹마스터 팁

소스 코드를 수정하는 것이므로 수정하기 전에 반드시 백업하시길 권합니다.


1. 추천/비추천 시 새로고침 하지 않기


추천/비추천시 일일이 새로고침 하는 것도 리소스 낭비 같아 새로고침하지 않고 결과만 메시지창에 나타나도록 수정했습니다.


modules/document/document.controller.php 에서 약 699라인을 아래와 같이 수정합니다.


            // 결과 리턴

            if($point > 0)

                return new Object(0, 'success_voted');

            else

                return new Object(0, 'success_blamed'+ '+ ');

        }

=>

            // 결과 리턴

            if($point > 0)

                return new Object(-1, sprintf('추천 되었습니다. 현재 추천수는 '.$args->voted_count.'입니다.'));

            else

                return new Object(-1, sprintf('비추천 되었습니다. 현재 비추천수는 '.$args->blamed_count.'입니다.'));


코멘트 추천/비추천에도 적용하려면

modules/comment/comment.controller.php 에서 약 503라인을 역시 위와 마찬가지로 수정하면 됩니다.


만약 글씨가 깨어진다면 위의 php문서를 UTF-8로 저장하시기 바랍니다.



2. 추천시 추천자도 포인트 깎기


추천 포인트를 설정할 경우 추천하는 회원의 포인트도 깎는 팁입니다.


modules/point/point.controller.php 에서 489라인 이하의 triggerUpdateVotedCount(&$obj) 함수를 아래로 교체합니다.


//추천시 추천자 포인트도 삭감하도록 수정 


        function triggerUpdateVotedCount(&$obj) {

            $module_srl = $obj->module_srl;

            $target_member_srl = $obj->member_srl;

            if(!$module_srl || !$target_member_srl) return new Object();


            // 추천자 정보 구함

            $logged_info = Context::get('logged_info');

            $vote_member_srl = $logged_info->member_srl;

            

            $oModuleModel = &getModel('module');

            $config = $oModuleModel->getModuleConfig('point');

            $module_config = $oModuleModel->getModulePartConfig('point', $module_srl);


            $oPointModel = &getModel('point');

            $target_cur_point = $oPointModel->getPoint($target_member_srl, true);

            $vote_cur_point = $oPointModel->getPoint($vote_member_srl, true);

            

            if( $obj->point > 0 ) {

                $point = $module_config['voted'];

                if(!isset($point)) $point = $config->voted;

            } else {

                $point = $module_config['blamed'];

                if(!isset($point)) $point = $config->blamed;

            }


            if(!$point) return new Object();


            // 포인트 증감

            $target_cur_point += $point;

            $this->setPoint($target_member_srl,$target_cur_point);

            

            // 추천자 포인트 증감

            $vote_cur_point -= $point;            

            $this->setPoint($vote_member_srl,$vote_cur_point);

            

            return new Object();

        }


비추천 포인트도 같이 사용할 경우 위의 코드대로면 비추천 시 비추천자의 포인트가 올라가게 되므로

비추천시 비추천자 포인트는 그대로 두고 싶으면 위의 코드에서 '// 추천자 포인트 증감'  이하를 아래와 같이 수정합니다.


            // 추천자 포인트 증감 (추천시에만 추천자 포인트 삭감)

            if( $obj->point > 0 ) {

            $vote_cur_point -= $point;            

            $this->setPoint($vote_member_srl,$vote_cur_point);

    }


            return new Object();

        }


비추천 시 비추천자 점수도 같이 깎고 싶다면 아래와 같이 수정합니다.


            // 추천자 포인트 증감 (추천/비추천 모두 추천자 포인트 삭감)

            if( $obj->point > 0 ) {

            $vote_cur_point -= $point;            

            $this->setPoint($vote_member_srl,$vote_cur_point);

            } else {

            $vote_cur_point += $point;            

            $this->setPoint($vote_member_srl,$vote_cur_point);

            }


            return new Object();

        } 


3. 글 리스트에서 추천수를 누르면 추천되게 하기


사용하는 게시판 스킨의 _style.list.html을 수정합니다. 여기선 xe_official 게시판을 기준으로 설명 드립니다.


modules/board/skins/xe_official/_style.list.html 에서


<!--@elseif($val->type == 'voted_count')-->

<td class="recommend">{$document->get('voted_count')!=0?$document->get('voted_count'):'&nbsp;'}</td> 


을 찾아 아래와 같이 수정합니다.


<!--@elseif($val->type == 'voted_count')-->

<td class="recommend"><a onclick="doCallModuleAction('document','procDocumentVoteUp','{$document->document_srl}');return false;" href="./javscript:void(0);" title="클릭하면 추천 됩니다">{$document->get('voted_count')!=0?$document->get('voted_count'):'&nbsp;'}</a></td>


1번 팁과 같이 사용하면 효과적입니다.



제목 글쓴이 날짜
"이 게시물을..." 추천/비추천/신고 메뉴를 버튼으로 [28] file xe촙5 2007.11.08
☆조회수.추천수 구간에 따른 이미지 나타내기(Hot 등..) - 갤러리게시판&최근이미지위젯☆ [5] 오기오기 2008.06.12
추천 비추천 레벨 권한 [4] 한이73 2009.03.17
게시판 스킨에서 조회수, 추천수, 최근 수정일 외 항목도 정렬가능하게 하기 SMaker 2009.06.11
엄지 추천 기능 본문에 삽입 하고자 하실때 (급조) [2] file thejeon 2009.07.29
추천과 추천포인트 관련 팁 [8] 고진감래 2009.09.30
추천인/비추천인 표시하기 [7] file 고진감래 2009.11.05
특정 확장변수를 글 추천자에게만 보이게 하기 [10] 뮤랑이 2010.01.11
관리자에게 무제한 추천기능 부여 (XE Core 수정) [8] sejin7940 2010.06.30
게시물 하단에 예쁜 추천,비추천 아이콘 버튼 추가하기~ [12] file xemall 2010.11.28
CSS파일이용하여 링크에 건반효과주기(강력추천) [8] 호호짱 2003.05.23
몇 가지 팁..( 좀 깁니다.. 어느 정도 안다고 생각하시는 분들, 추천 ) [3] naughtykidd 2004.02.26
[JavaScript] 랜덤 추천 사이트 링크버튼 만들기 (추천) [4] SM 2002.02.25
[추천] 가로형 배너 슬라이드 [7] file ⓣinⓣin™ 2004.06.10
[추천] 세로형 배너 슬라이드 [4] ⓣinⓣin™ 2004.06.24
[추천 팁] phpmyadmin 으로 복구 할때. 후니 2001.02.28
[추천 소스] 특정일로부터 몇일 지났나 또는 몇일 남았나 알아보는 소스 ㅡ.ㅡ; [1] 타스케 2001.11.15
[추천 소스] phpMyAdmin 다중사용자용... [5] WOWpc 2001.11.29
[추천 팁] 디망쉬식 스킨 시스템 [4] 디망쉬 2001.12.11
[추천 팁] index key 값을 갖는array에서 value에 의한 key값 반환 [1] 차카게살자 2002.03.11