경험치 시스템 모듈
자료 유형 | 모듈 |
---|---|
간단한 소개 | 경험치 시스템을 제공해주는 모듈입니다. |
설치 경로 | ./modules/experience |
코어 지원 범위 | XE 1.x |
PHP 지원 범위 | 기타 |
자료 구분 | 공개 자료 |
라이선스 | GPL v2 |
파일명 | 버전 | 날짜 | 용량 | 다운 |
---|---|---|---|---|
experience V0.1.zip | 0.1 | 2015.10.01 | 33.4KB | 522 |
사이트 활동으로 회원이 경험치를 모을 수 있는 모듈입니다. 경험치는 포인트와 다른 회원점수 입니다.
가입, 로그인, (댓)글 작성, 추천을 했을때에만 포인트와 똑같이 동시에 적립되며,
(댓)글 삭제이외에는 절대 차감되지않는 것이 경험치의 특징입니다.
주로 오래활동을 하는 회원의 레벨을 유지해주고 싶을때,
포인트와 독립적인 다른점수가 필요할때 활용할 수 있습니다.
활용예) https://xetown.com/notice/16636
포인트 모듈과 연동되는 부분이 있기에 포인트 모듈을 켜놔야 합니다.
새로설치하는 경우
경험치 모듈을 새로설치한다면 아래와 같은 메세지가 뜰것입니다.
이것은 포인트 정보를 경험치로 복사해주는 도구입니다.
경험치 모듈을 새로 설치하면 당연히 경험치 데이터가 하나도 없을 것입니다. 그래서 초기에 기존의 포인트를 경험치로 복사해서 사용할 수 있도록 해주는 도구입니다. 이 도구는 안정을 위해 최초 한번만 사용할 수 있습니다.
그리고 포인트를 이동 해주는 도구가 아닌 포인트 정보를 그냥 복사만 해주는 도구입니다. 즉, 포인트 데이터 손실위험은 없습니다.
반드시 이 도구를 실행하지않아도 되지만, 하는 것을 추천합니다.
부가기능 - 레벨업 알림
레벨업이 될때마다 해당 회원에게 그 사실을 알리므로써 회원이 레벨에 대해 관심을 갖도록 유도하는 기능입니다.
이 기능은 알림센터 모듈( https://xe1.xpressengine.com/index.php?mid=download&package_id=21374711 )을 이용하기 때문에 알림센터가 설치되어있어야 해당기능을 사용할 수 있습니다.
본 기능은 알림센터 V2.1.5 버전이상에서 정상적으로 작동됩니다.
아니면 아래링크를 참조하여 수정해야 작동할 수 있습니다.
https://github.com/xe-public/xe-module-ncenterlite/commit/de8298c26b047e2f62a7790e975dabf206e62609
기술지원
본 모듈에 대한 문의사항은 호수 공원 -> 질문/답변 에 남겨주세요. 그리고 @CONORY 호출을 해야 빠짐없이 볼 수 있습니다.

댓글 174
포인트는 -5 되는데 경험치는 -5가 안되네요.
답변 감사합니다.
포인트를 모을 수가 없어요.
천사같은 분이 공유 좀 해주심 안될까요?
* 코어 2.1.12부터 뜨는 php 8.x 대비 notice 에러 디버깅
(또 발견되는 게 있으면 이 댓글의 대댓글로 추가합시다.)
- experience.model.php 77행 수정
if(!$from_db && isset($this->experienceList[$member_srl])) return $this->experienceList[$member_srl];
- experience.model.php 112행 추가
if(!isset($level_step[$level])) continue;
설치시 발생한 오류는 알려 주신 대로 수정하니 해결 되었는데 실제 모듈 설정을 들어가니 이런 오류가 뜨네요
설치 환경은 아래와 같습니다.
[Basic Information] rhymix_version : 2.1.16 date : 2024-08-04 09:17:09 +0900 (2024-08-04 00:17:09 UTC) php : 8.0.30 (64-bit) server : nginx/1.24.0 os : Linux 6.8.0-1006-oracle sapi : fpm-fcgi
<section class="section">
<?php
$experience_group = [];
try {
if (isset($config->experience_group)) {
$experience_group = array_flip($config->experience_group);
} else {
throw new Exception("experience_group is not set in the config.");
}
} catch (Exception $e) {
// 예외 처리 로직을 여기에 작성하세요. 예를 들어, 로그를 남기거나 기본 값을 설정할 수 있습니다.
error_log($e->getMessage());
// 필요에 따라 기본 값 설정
// $experience_group = [];
}
?>
<h1><?= htmlspecialchars($lang->level_experience, ENT_QUOTES, 'UTF-8') ?></h1>
<div class="x_clearfix">
<p class="x_pull-left"><?= htmlspecialchars($lang->expression, ENT_QUOTES, 'UTF-8') ?></p>
<span class="x_pull-right x_input-append">
<input type="text" value="<?= htmlspecialchars($config->expression, ENT_QUOTES, 'UTF-8') ?>" placeholder="Math.pow(i,2) * 90" size="30" class="level_expression" />
<button type="button" class="x_btn calc_experience"><?= htmlspecialchars($lang->level_experience_calc, ENT_QUOTES, 'UTF-8') ?></button>
<button type="button" class="x_btn calc_experience _reset"><?= htmlspecialchars($lang->cmd_exp_reset, ENT_QUOTES, 'UTF-8') ?></button>
</span>
</div>
</section>
일단 위 오류는 없어졌는데 잘 적용 된건지는 아직 모르겠네요. 혹시 코드가 문제가 없을까요?
오류 메세지도 없어지고 포인트 모듈 켜니 정상작동하는 것 같은데 신규로 회원가입시서버오류라는 메세지가 뜨네요. 포인트 모듈 끄고 신규 회원가입해보니 정상작동하는걸로 봐서 코드에 문제가 있는것 같습니다.
단순히 new BaseObject 에러 문제였습니다. ai가 짜준 코드로도 일단 정상 작동은 하는것 같습니다.