[XE] 카운터스킨에 총게시물수, 댓글수,파일수등을 나타내는 방법

돌아다니면서 구한 자료로 공부하는 공간입니다..

틀린부분이 있다면 말씀해주시면 수정하도록 하겠습니다.

※ 남을 비방하거나 욕 / 정치적인 글은 삭제 대상이 됩니다. ※

[XE] 카운터스킨에 총게시물수, 댓글수,파일수등을 나타내는 방법

만키로군 0 1850 0

페이지.gif

 

다육이랑 미니랑에서 보여지는 카운터위젯에서 출력되는 이미지입니다. 위 이미지처럼 문서,댓글,파일등 추가적으로 카운터에 출력시키는 방법이며 개인 취향에따라 폰트색상,크기등을 수정하셔서 사용하면 됩니다.

 

1. 기본 카운터 스킨에 코드를 먼저 추가하셔야 합니다.

 

widgets/counter_status/counter_status.class.php 열고

 

<?php
/**
* @class counter_status
* @author NHN (developers@xpressengine.com)
* @version 0.1
* @brief Display counter status by using data in the counter module
**/

class counter_status extends WidgetHandler {

/**
* @brief Widget execution
* Get extra_vars declared in ./widgets/widget/conf/info.xml as arguments
* After generating the result, do not print but return it.
**/
function proc($args) {
// Get status of the accumulated, yesterday's, today's counts
$oCounterModel = &getModel('counter');

$site_module_info = Context::get('site_module_info');
$output = $oCounterModel->getStatus(array('00000000', date('Ymd', time()-60*60*24), date('Ymd')), $site_module_info->site_srl);
foreach($output as $key => $val) {
if(!$key) Context::set('total_counter', $val);
elseif($key == date("Ymd")) Context::set('today_counter', $val);
else Context::set('yesterday_counter', $val);
}

 

// ----------------------------------------------------------------------------------------------------------

// 젠체글수 댓글수 파일수 등 today 출력하려면 아래 코드가 들어가야한다.

$args->date = date("Ymd000000", time()-60*60*24);
$today = date("Ymd");




// 전체글수

$output = executeQueryArray("admin.getDocumentStatus", $args);
if($output->data) {
foreach($output->data as $var) {
if($var->date == $today) {
$status->document->today = $var->count;
} else {
$status->document->yesterday = $var->count;
}
}
}

$output = executeQuery("admin.getDocumentCount", $args);
$status->document->total = $output->data->count;
Context::set('start_module', $output->data);
Context::set('status', $status);

 

// 전체 댓글수

$output = executeQueryArray("admin.getCommentStatus", $args);
if($output->data) {
foreach($output->data as $var) {
if($var->date == $today) {
$status->comment->today = $var->count;
} else {
$status->comment->yesterday = $var->count;
}
}
}

$output = executeQuery("admin.getCommentCount", $args);
$status->comment->total = $output->data->count;
Context::set('start_module', $output->data);
Context::set('status', $status);


// 첨부파일수

$output = executeQueryArray("admin.getFileStatus", $args);
if($output->data) {
foreach($output->data as $var) {
if($var->date == $today) {
$status->file->today = $var->count;
} else {
$status->file->yesterday = $var->count;
}
}
}

$output = executeQuery("admin.getFileCount", $args);
$status->file->total = $output->data->count;
Context::set('start_module', $output->data);
Context::set('status', $status);


// ----------------------------------------------------------------------------------------------------------

 

// Set a path of the template skin (values of skin, colorset settings)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
Context::set('colorset', $args->colorset);
// Specify a template file
$tpl_file = 'counter_status';
// Compile a template
$oTemplate = &TemplateHandler::getInstance();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

 

위에 빨간색부분을 추가합니다. 특히 주의하셔야할 내용은 아래 핑크색 코드가 꼭 들어가야 합니다. 이 코드가 들어가지 않으면 오늘입력된 내용 즉 오늘글,댓글,파일등이 0 으로 표기가 됩니다.


$args->date = date("Ymd000000", time()-60*60*24);
$today = date("Ymd");

(빨간색 추가 코드에 보시면 최 상위에 입력되어 있는게 보이실거에요)

 

 

2. 자신의 카운터 스킨폴더에서 적용할 파일을 열어서 출력할 내용을 입력

 

widgets/counter_status/skins/mamgood_counter2/counter_status.html 열고

(경로는 개인마다 사용하시는 스킨에 따라 틀리나 counter_status.html 파일은 동일합니다.)

 

<!--%import("./css/widget.css")-->
<div id="store_counter_today"><span>{number_format($today_counter->unique_visitor)+250}</span></div>
<div id="store_counter_yesterday">어제 : {number_format($yesterday_counter->unique_visitor)+250}<br>
전체방문자 : {number_format($total_counter->unique_visitor)}<br />

 

문서:{number_format($status->document->total)}(+{number_format($status->document->today)})
댓글:{number_format($status->comment->total)}(+{number_format($status->comment->today)})
파일:{number_format($status->file->total)}(+{number_format($status->file->today)})

</div>

 

빨간색 부분을 추가해줍니다. (다육이랑 미니랑에서 추가한 내용입니다.)

 

회원 : {number_format($status->member->total)}

신규회원 : {number_format($status->member->today)}

문서 : {number_format($status->document->total)}

신규문서 : {number_format($status->document->today)}

댓글 : {number_format($status->comment->total)}

신규댓글 : {number_format($status->comment->today)}

엮인글 : {number_format($status->trackback->total)}

신규엮인글 : {number_format($status->trackback->today)}

첨부파일 : {number_format($status->file->total)}
신규첨부파일 : {number_format($status->file->today)}

전체 페이지뷰 : {number_format($total_counter->pageview)}
오늘페이지뷰 : {number_format($today_counter->pageview)}
어제 페이지뷰: {number_format($yesterday_counter->pageview)}

 

위 코드를 출력하고자 하는곳에 추가 입력해서 출력하셔도 됩니다.

3. 가입회원및 신규회원을 출력하고자 할경우

$oMemberModel = &getModel('member');

$output = executeQueryArray("admin.getMemberStatus", $args);
if($output->data) {
foreach($output->data as $var) {
if($var->date == $today) {
$status->member->today = $var->count;
} else {
$status->member->yesterday = $var->count;
}
}

$output = executeQuery("admin.getMemberCount", $args);
$status->member->total = $output->data->count;
Context::set('start_module', $output->data);
Context::set('status', $status);

위 코드를 추가로 삽입하신 후

widgets/counter_status/skins/mamgood_counter2/counter_status.html 열고

(경로는 개인마다 사용하시는 스킨에 따라 틀리나 counter_status.html 파일은 동일합니다.)

 

<td class="number center">{number_format($status->member->yesterday)}</td>어제 가입자
<td class="number center">{number_format($status->member->today)}</td>오늘 가입자
<td class="number center">{number_format($status->member->total)}</td>전체 가입자

 

위 빨간색 코드를 삽입하시면 됩니다.

출처 : 닷플, 직접입력

, , , ,

0 Comments
제목