웹마스터 팁
이미지마크 쓸 경우 레벨아이콘 위치 바꾸기
2009.09.30 17:29
수정하기 전에 반드시 addons/point_level_icon/point_level_icon.lib.php 파일을 백업해두시길 권합니다.
1. 레벨아이콘을 닉네임 뒤로 옮기기
addons/point_level_icon/point_level_icon.lib.php 49라인에서 아래처럼 $text와 $matches[5]의 위치를 바꾸면
레벨아이콘이 닉네임 뒤로 가게 됩니다.
$text = $GLOBALS['_pointLevelIcon'][$member_srl];
$orig_text = preg_replace('/'.preg_quote($matches[5],'/').'<\/'.$matches[6].'>$/', '', $matches[0]);
return $orig_text.$matches[5].$text.'</'.$matches[6].'>';
2. 이미지마크와 같이 쓸 경우 레벨아이콘을 닉네임 뒤로 옮기기
1번의 코드를 아래와 같이 수정합니다.
$text = $GLOBALS['_pointLevelIcon'][$member_srl];
$orig_text = preg_replace('/'.preg_quote($matches[5],'/').'<\/'.$matches[6].'>$/', '', $matches[0]);
$image_mark_file = $GLOBALS['_transImageNameList'][$member_srl]->image_mark_file;
if($image_mark_file) {
return $orig_text.$matches[5].$text.'</'.$matches[6].'>';
} else {
return $orig_text.$text.$matches[5].'</'.$matches[6].'>';
}
이 때
if($image_mark_file) {
return $orig_text.$matches[5].$text.'</'.$matches[6].'>';
여기서 $text를 지우면 이미지마크 사용하는 회원은 레벨아이콘이 출력되지 않게 할 수 있습니다.
다만 이 경우 레벨아이콘에다 마우스 커서를 올릴 때 나오는 레벨과 포인트 정보는 더 이상 안 나오게 됩니다.
3. 이미지마크를 쓸 경우 레벨아이콘은 다른 아이콘 세트를 사용하기
가령 이미지마크를 쓰는 회원은 기본아이콘을, 안 쓰는 회원은 메달아이콘을 적용하려 한다고 가정합시다.
우선 기본아이콘 폴더와 메달아이콘 폴더를 modules/point/icons/ 아래에 각각 준비합니다.
관리자페이지 > 회원관리 > 포인트시스템에서 레벨아이콘 설정은 메달아이콘이 든 폴더로 설정합니다.
기본아이콘 폴더명은 default 로 해둡니다.
그 뒤 위의 2번 코드에서
$image_mark_file = $GLOBALS['_transImageNameList'][$member_srl]->image_mark_file;
를 아래처럼 8라인으로 옮깁니다.
function pointLevelIconTrans($matches) {
$member_srl = $matches[3];
if($member_srl<1) return $matches[0];
$image_mark_file = $GLOBALS['_transImageNameList'][$member_srl]->image_mark_file;
그리고 '// 레벨 아이콘의 위치를 구함' 이란 부분을 찾아 아래로 교체합니다.
// 레벨 아이콘의 위치를 구함
if(!$image_mark_file)
$level_icon = sprintf('%smodules/point/icons/%s/%d.gif', Context::getRequestUri(), $config->level_icon, $level);
else
$level_icon = sprintf('%smodules/point/icons/default/%d.gif', Context::getRequestUri(), $level);