묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
송동우님 답변 부탁드립니다...
2012.10.24 23:24
<?php
/**
* @class point_status
* @author zero (zero@nzeo.com)
* @source modifier Yiem (arphile@live.co.kr)
* @brief 포인트 현황 출력 위젯
* @version 1.0
**/
class point_status extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
*
* ./widgets/위젯/conf/info.xml 에 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
$lottery_member_srl = 1114;
$lottery_cost = 50;
// 비로그인 사용자의 경우 결과를 출력하지 않음
if(!Context::get('is_logged')) return;
// 로그인 정보를 구함
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
if(!$member_srl) return;
// 포인트 관련 설정을 구함
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
// 포인트 내역을 구함
$oPointModel = &getModel('point');
$widget_info->point = $oPointModel->getPoint($member_srl);
$widget_info->level = $oPointModel->getLevel($widget_info->point, $config->level_step);
$widget_info->level_icon = sprintf("./modules/point/icons/%s/%d.gif", $config->level_icon, $widget_info->level);
$widget_info->lottery = $oPointModel->getPoint($lottery_member_srl) - $lottery_cost;
// 최고 레벨이 아니면 다음 레벨로 가기 위한 per을 구함
if($widget_info->level < $config->max_level) {
$next_point = $config->level_step[$widget_info->level+1];
$current_point = $config->level_step[$widget_info->level];
if($next_point > 0) $per = (int)( ($widget_info->point - $current_point) / ( $next_point - $current_point )*100);
}
//변수 최종확정
$cur_exp = $widget_info->point - $current_point;
//위젯으로 보내기
$widget_info->per = $per;
$widget_info->next_point = $next_point;
$widget_info->cur_exp = $cur_exp;
$widget_info->current_point = $current_point;
// 단위 설정
$widget_info->point_unit = $config->point_name;
// widget_info를 context setting
Context::set('widget_info', $widget_info);
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
Context::set('colorset', $args->colorset);
// 템플릿 파일을 지정
$tpl_file = 'status';
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>
일단 포인트 현황 위젯 class html 정보인데요.
보시다시피 lottery 가 포함된 포인트 복권 개조판 위젯도 포함되어 있습니다.
그런데 문제점이 로그인을 하지 않으면 복권 개조판 위젯도 보이지 않는다는겁니다...
그냥 공백으로 나와요 ㅎㅎ
그래서 조건문으로 로그인이나 비로그인이나 둘다 출력 가능하게 할수 있을까요??
비로그인 상태에서는 포인트 현황표도 보이게끔...
그리고
// 비로그인 사용자의 경우 결과를 출력하지 않음
if(!Context::get('is_logged')) return;
뒤에 붙는 return은 뭔뜻인가요?
아님 조건구문좀 알려주세요 ㅠㅠㅠ