웹마스터 팁

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


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번 팁과 같이 사용하면 효과적입니다.



제목 글쓴이 날짜
잦은 등급변경으로, 회원 등급이 엉켰을 경우 해결방법. [1] NZ448 2009.09.10
이것두 팁은 되려나...; xe 7대 구성 설치법임..ㅋ; 불패의초인 2009.09.11
오른쪽 서브메뉴영역 제목 이미지로 나타내기 [6] file hbeen 2009.09.11
특정그룹회원에게 서비스 제공하기 [4] 똑디 2009.09.12
웹에서 직접 zip파일 압축백업,압축풀기-호스팅 사용자님들 편한 툴입니다. [1] file ranson 2009.09.12
네이버 실시간 인기검색어 가져오는 함수 [2] Darby♡ 2009.09.14
[content위젯] category 리스트만 가져오기.. [16] file 데즈라레 2009.09.14
XE 서버 이전할 때 통채로 압축해서 옮기는 완벽한 방법-로그인, 첨부파일문제 해결 [5] 웰빙샵 지영 2009.09.15
서버이전 이후 발생하는 문제들에 대한 대응책 정리 [16] file Gekkou 2009.09.16
게시판 확장변수 일괄 등록 하기 [2] file 2년후 2009.09.20
파일첨부 안될때 정박사닷컴 2009.09.24
확장변수 이용 답변완료 이미지 띄우기 간단 팁 [7] file jsuimage 2009.09.25
방명록 게시판에서 확장변수 검사 안되는 문제 임시 방안 June Oh 2009.09.28
XE 수직 스크롤바 무조껀 띄우기 CSS [7] 데즈라레 2009.09.28
/?module=admin 로 들어가지지 않아요. [2] oO나쁜토끼Oo 2009.09.29
확장변수 한줄입력칸 폭 조정하기 [2] 아고라 2009.09.30
로그인이 안되거나 첨부파일이 등록이 안될때. [9] 똑디 2009.09.30
이미지마크 쓸 경우 레벨아이콘 위치 바꾸기 고진감래 2009.09.30
추천과 추천포인트 관련 팁 [8] 고진감래 2009.09.30
MySQL server has gone away 에러 대응 고수군 2009.09.30