묻고답하기
아주 간단한 위젯하나 만드려는데.. 에러가납니다. 제가 만든 소스좀 봐주세요;
2012.03.02 21:51
위젯설명
1. 간단한 위젯을 만들려고 합니다.
2. user_name 필드에서 공백인 유저들이 몇 명인지 세어보는 위젯입니다.
count_user_name.class.php 파일 내용.
class count_user_name extends WidgetHandler {
function proc($args) {
$query_args->user_name = null; //조건
$output = executeQuery('widgets.count_user_name.getUsernameCount', $query_args);
Context::set('user_number', $output);
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
Context::set('colorset', $args->colorset);
// 템플릿 파일을 지정
$tpl_file = 'number';
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
$output = $oTemplate->compile($tpl_path, $tpl_file);
return $output;
}
}
queries/getUsernameCount.xml 내용
<query id="getUsernameCount" action="select">
<tables>
<table name="member" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="equal" column="user_name" var="user_name" />
</conditions>
</query>
스킨.html (number.html)
숫자 : {$user_number}
위젯을 처음 만들어보는거라..
뭐가 잘못됐는지 한번 봐주세요 :)
댓글 4
-
CMD
2012.03.02 22:07
-
SCAC
2012.03.02 22:31
별 반응이 없네요 ㅠ -
SCAC
2012.03.02 22:53
Context::set('user_number', $output->data->count);
넣어서 해결했습니다. :)
그런데 공백있는 회원뿐만 아니라. '전체 회원 수'가 나오네요 ㅡㅡ;
-
hhgyu
2012.03.03 00:10
<condition> 조건문operation 다음과 같은 연산자로 처리할 수 있습니다. equal : column = (var|default) more : column >= (var|default) excess : column > (var|default) less : column <= (var|default) below : column < (var|default) notequal : column != (var|default) notnull : column is not null null : column is null like_prefix : column like '%var|default' like_tail : column like 'var|default%' like : column like '%var|default%' in : column in (var|default)<query id="getUsernameCount" action="select">
<tables>
<table name="member" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="null" column="user_name" var="user_name" />
</conditions>
</query> -
SCAC
2012.03.03 00:35
음;; 시도해봤었는데 안되네요 ㅠㅠ; $query_args->user_name = ' '; 스페이스바 넣어주니까 user_name에 아무것도 입력 안된 회원수가 나와요 ㅠ 찝찝하지만 이렇게 써야할듯. -
SCAC
2012.03.03 00:42
아, 참고로 user_name 필드는 확실히 비어있습니다 :) -
SCAC
2012.08.23 13:24
test
$query_args->user_name = "";이렇게 해보시는건 어떨까요?