웹마스터 팁

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


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



제목 글쓴이 날짜
게시판모듈 글목록에서 분류명(카테고리)를 이미지로 표현하기 [4] nalireco 2011.01.06
게시판에 회원확장변수정보 받아서 표시하기 [3] burster 2011.03.26
조회수 클릭때마다 올라가기(1.4.5.7 버전에서 되네요) [2] file 아네모네 2011.06.20
조회수 제한 풀고, 조회수 증가값을 더 크게 하는 소스 [7] sejin7940 2011.08.21
직접 ftp를 이용하여 게시물과 회원정보등 데이터 베이스 백업이 가능한가요 [1] 뉴늅 2011.09.06
Xe 1.5.1로 사이트 꾸미기 part 1 [25] file 황비 2011.12.04
코어 1.5.1에서 회원정보에 성별아이콘 쓰기 file 늘푸른이 2011.12.10
확정변수 로 프린트 페이지 꾸미기(/print_page.html) 세상의지배자 2011.12.26
1.5.x 버전에서 migration tool 동작불가 문제 [1] 모노소프트 2012.01.13
XE 1.5 이상으로 DB 이전시 일부 DB가 빠질 경우 - 내용추가(0203) [7] sejin7940 2012.02.02
ie9에서 회원가입폼 클릭이 안될때 엔키오 2012.03.01
[공유]로그인 하지 않아도 게시판에서 회원정보 출력 하기 (가입품 확장변수 포함) [6] file rminkim 2012.03.20
쪽지함 모바일에서 pc로 안넘기고 모바일 레이아웃에서 띄우는법&질문 [5] file 제발도와주세요 2012.03.20
그룹별 회원정보 검색 & 회원의 추가가입폼 복수 검색 팁 (XE 1.5) sejin7940 2012.03.22
XE를 처음 설치하면 기본적으로 필요한 자료들 - 초보자용 V2013-05-20 [11] Treasurej 2012.03.26
회원가입폼 비밀번호 찾기 질문/답변 삭제및 필수항목 선택 (송동우님 팁) 때린데 또때려 2012.04.08
회원가입폼 비밀번호 찾기 질문/답변 삭제및 필수항목 선택 (송동우님 팁) [8] 때린데 또때려 2012.04.09
회원가입시 항목 설명부분에 html 태그를 쓰고플 경우 [3] sejin7940 2012.05.24
관리자에서 그룹검색을 이용한 회원목록 제대로 안 보일때.. [2] sejin7940 2012.06.01
관리자 페이지 회원/회원설정 추가정보에 추가한 전화번호를 회원목록에 추가하기(수정) [1] 늘푸른이 2012.07.08