issue 2662 counter, document

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12241 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-11-16 08:05:15 +00:00
parent e665650392
commit 77a1c3e89f
12 changed files with 4563 additions and 4059 deletions

View file

@ -1,51 +1,53 @@
<?php <?php
/** /**
* Admin view class of counter module * Admin view class of counter module
*
* @author NHN (developers@xpressengine.com)
*/
class counterAdminView extends counter
{
/**
* Initialization
* *
* @author NHN (developers@xpressengine.com) * @return void
**/ */
function init()
{
// set the template path
$this->setTemplatePath($this->module_path.'tpl');
}
class counterAdminView extends counter { /**
* Admin page
*
* @return Object
*/
function dispCounterAdminIndex()
{
// set today's if no date is given
$selected_date = Context::get('selected_date');
if(!$selected_date) $selected_date = date("Ymd");
Context::set('selected_date', $selected_date);
// create the counter model object
$oCounterModel = &getModel('counter');
// get a total count and daily count
$site_module_info = Context::get('site_module_info');
$status = $oCounterModel->getStatus(array(0,$selected_date),$site_module_info->site_srl);
Context::set('total_counter', $status[0]);
Context::set('selected_day_counter', $status[$selected_date]);
// get data by time, day, month, and year
$type = Context::get('type');
if(!$type)
{
$type = 'day';
Context::set('type',$type);
}
$detail_status = $oCounterModel->getHourlyStatus($type, $selected_date, $site_module_info->site_srl);
Context::set('detail_status', $detail_status);
/** // display
* Initialization $this->setTemplateFile('index');
* }
* @return void }
**/ /* End of file counter.admin.view.php */
function init() { /* Location: ./modules/counter/counter.admin.view.php */
// set the template path
$this->setTemplatePath($this->module_path.'tpl');
}
/**
* Admin page
*
* @return Object
**/
function dispCounterAdminIndex() {
// set today's if no date is given
$selected_date = Context::get('selected_date');
if(!$selected_date) $selected_date = date("Ymd");
Context::set('selected_date', $selected_date);
// create the counter model object
$oCounterModel = &getModel('counter');
// get a total count and daily count
$site_module_info = Context::get('site_module_info');
$status = $oCounterModel->getStatus(array(0,$selected_date),$site_module_info->site_srl);
Context::set('total_counter', $status[0]);
Context::set('selected_day_counter', $status[$selected_date]);
// get data by time, day, month, and year
$type = Context::get('type');
if(!$type) {
$type = 'day';
Context::set('type',$type);
}
$detail_status = $oCounterModel->getHourlyStatus($type, $selected_date, $site_module_info->site_srl);
Context::set('detail_status', $detail_status);
// display
$this->setTemplateFile('index');
}
}
?>

View file

@ -1,60 +1,64 @@
<?php <?php
/** /**
* High class of counter module * High class of counter module
*
* @author NHN (developers@xpressengine.com)
*/
class counter extends ModuleObject
{
/**
* Implement if additional tasks are necessary when installing
* @return Object
*/
function moduleInstall()
{
$oCounterController = &getController('counter');
// add a row for the total visit history
//$oCounterController->insertTotalStatus();
// add a row for today's status
//$oCounterController->insertTodayStatus();
return new Object();
}
/**
* method if successfully installed
* *
* @author NHN (developers@xpressengine.com) * @return bool
**/ */
function checkUpdate()
{
// Add site_srl to the counter
$oDB = &DB::getInstance();
if(!$oDB->isColumnExists('counter_log', 'site_srl')) return true;
if(!$oDB->isIndexExists('counter_log','idx_site_counter_log')) return true;
class counter extends ModuleObject { return false;
}
/** /**
* Implement if additional tasks are necessary when installing * Module update
* @return Object *
**/ * @return Object
function moduleInstall() { */
$oCounterController = &getController('counter'); function moduleUpdate()
// add a row for the total visit history {
//$oCounterController->insertTotalStatus(); // Add site_srl to the counter
// add a row for today's status $oDB = &DB::getInstance();
//$oCounterController->insertTodayStatus(); if(!$oDB->isColumnExists('counter_log', 'site_srl')) $oDB->addColumn('counter_log','site_srl','number',11,0,true);
if(!$oDB->isIndexExists('counter_log','idx_site_counter_log')) $oDB->addIndex('counter_log','idx_site_counter_log',array('site_srl','ipaddress'),false);
return new Object(); return new Object(0, 'success_updated');
} }
/** /**
* method if successfully installed * re-generate the cache file
* *
* @return bool * @return Object
**/ */
function checkUpdate() { function recompileCache()
// Add site_srl to the counter {
$oDB = &DB::getInstance(); }
if(!$oDB->isColumnExists('counter_log', 'site_srl')) return true; }
if(!$oDB->isIndexExists('counter_log','idx_site_counter_log')) return true; /* End of file counter.class.php */
/* Location: ./modules/counter/counter.class.php */
return false;
}
/**
* Module update
*
* @return Object
**/
function moduleUpdate() {
// Add site_srl to the counter
$oDB = &DB::getInstance();
if(!$oDB->isColumnExists('counter_log', 'site_srl')) $oDB->addColumn('counter_log','site_srl','number',11,0,true);
if(!$oDB->isIndexExists('counter_log','idx_site_counter_log')) $oDB->addIndex('counter_log','idx_site_counter_log',array('site_srl','ipaddress'),false);
return new Object(0, 'success_updated');
}
/**
* re-generate the cache file
*
* @return Object
**/
function recompileCache() {
}
}
?>

View file

@ -1,170 +1,197 @@
<?php <?php
/** /**
* Counter module's controller class * Counter module's controller class
*
* @author NHN (developers@xpressengine.com)
*/
class counterController extends counter
{
/**
* Initialization
* *
* @author NHN (developers@xpressengine.com) * @return void
**/ */
function init()
{
}
class counterController extends counter { /**
* Counter logs.
* If want use below function, you can use 'counterExecute' function instead this function
*
* @return void
*/
function procCounterExecute()
{
}
/** /**
* Initialization * Counter logs
* *
* @return void * @return void
**/ */
function init() { function counterExecute()
} {
$oDB = &DB::getInstance();
$oDB->begin();
/** $site_module_info = Context::get('site_module_info');
* Counter logs. $site_srl = (int)$site_module_info->site_srl;
* If want use below function, you can use 'counterExecute' function instead this function // Check the logs
* $oCounterModel = &getModel('counter');
* @return void // Register today's row if not exist
**/ if(!$oCounterModel->isInsertedTodayStatus($site_srl))
function procCounterExecute() { {
} $this->insertTodayStatus(0,$site_srl);
// check user if the previous row exists
}
else
{
// If unregistered IP
if(!$oCounterModel->isLogged($site_srl))
{
// Leave logs
$this->insertLog($site_srl);
// Register unique and pageview
$this->insertUniqueVisitor($site_srl);
}
else
{
// Register pageview
$this->insertPageView($site_srl);
}
}
/** $oDB->commit();
* Counter logs }
*
* @return void
**/
function counterExecute() {
$oDB = &DB::getInstance();
$oDB->begin();
$site_module_info = Context::get('site_module_info'); /**
$site_srl = (int)$site_module_info->site_srl; * Leave logs
// Check the logs *
$oCounterModel = &getModel('counter'); * @param integer $site_srl
// Register today's row if not exist * @return Object result of count query
if(!$oCounterModel->isInsertedTodayStatus($site_srl)) { */
$this->insertTodayStatus(0,$site_srl); function insertLog($site_srl=0)
// check user if the previous row exists {
} else { $args->regdate = date("YmdHis");
// If unregistered IP $args->user_agent = substr ($_SERVER['HTTP_USER_AGENT'], 0, 250);
if(!$oCounterModel->isLogged($site_srl)) { $args->site_srl = $site_srl;
// Leave logs return executeQuery('counter.insertCounterLog', $args);
$this->insertLog($site_srl); }
// Register unique and pageview
$this->insertUniqueVisitor($site_srl);
} else {
// Register pageview
$this->insertPageView($site_srl);
}
}
$oDB->commit(); /**
} * Register the unique visitor
*
* @param integer $site_srl
* @return void
*/
function insertUniqueVisitor($site_srl=0)
{
if($site_srl)
{
$args->regdate = '0';
$args->site_srl = $site_srl;
$output = executeQuery('counter.updateSiteCounterUnique', $args);
$args->regdate = date('Ymd');
$output = executeQuery('counter.updateSiteCounterUnique', $args);
}
else
{
$args->regdate = '0';
$output = executeQuery('counter.updateCounterUnique', $args);
$args->regdate = date('Ymd');
$output = executeQuery('counter.updateCounterUnique', $args);
}
}
/** /**
* Leave logs * Register pageview
* *
* @param integer $site_srl * @param integer $site_srl
* @return Object result of count query * @return void
**/ */
function insertLog($site_srl=0) { function insertPageView($site_srl=0)
$args->regdate = date("YmdHis"); {
$args->user_agent = substr ($_SERVER['HTTP_USER_AGENT'], 0, 250); if($site_srl)
$args->site_srl = $site_srl; {
return executeQuery('counter.insertCounterLog', $args); $args->regdate = '0';
} $args->site_srl = $site_srl;
executeQuery('counter.updateSiteCounterPageview', $args);
$args->regdate = date('Ymd');
executeQuery('counter.updateSiteCounterPageview', $args);
}
else
{
$args->regdate = '0';
executeQuery('counter.updateCounterPageview', $args);
$args->regdate = date('Ymd');
executeQuery('counter.updateCounterPageview', $args);
}
}
/** /**
* Register the unique visitor * Add the total counter status
* *
* @param integer $site_srl * @param integer $site_srl
* @return void * @return void
**/ */
function insertUniqueVisitor($site_srl=0) { function insertTotalStatus($site_srl=0)
if($site_srl) { {
$args->regdate = '0'; $args->regdate = 0;
$args->site_srl = $site_srl; if($site_srl)
$output = executeQuery('counter.updateSiteCounterUnique', $args); {
$args->regdate = date('Ymd'); $args->site_srl = $site_srl;
$output = executeQuery('counter.updateSiteCounterUnique', $args); executeQuery('counter.insertSiteTodayStatus', $args);
} else { }
$args->regdate = '0'; else
$output = executeQuery('counter.updateCounterUnique', $args); {
$args->regdate = date('Ymd'); executeQuery('counter.insertTodayStatus', $args);
$output = executeQuery('counter.updateCounterUnique', $args); }
} }
}
/** /**
* Register pageview * Add today's counter status
* *
* @param integer $site_srl * @param integer $regdate date(YYYYMMDD) type
* @return void * @param integer $site_srl
**/ * @return void
function insertPageView($site_srl=0) { */
if($site_srl) { function insertTodayStatus($regdate = 0, $site_srl=0)
$args->regdate = '0'; {
$args->site_srl = $site_srl; if($regdate) $args->regdate = $regdate;
executeQuery('counter.updateSiteCounterPageview', $args); else $args->regdate = date("Ymd");
$args->regdate = date('Ymd'); if($site_srl)
executeQuery('counter.updateSiteCounterPageview', $args); {
} else { $args->site_srl = $site_srl;
$args->regdate = '0'; $query_id = 'counter.insertSiteTodayStatus';
executeQuery('counter.updateCounterPageview', $args);
$args->regdate = date('Ymd');
executeQuery('counter.updateCounterPageview', $args);
}
}
/** $u_args->site_srl = $site_srl; // /< when inserting a daily row, attempt to inser total rows(where regdate=0) together
* Add the total counter status executeQuery($query_id, $u_args);
* }
* @param integer $site_srl else
* @return void {
**/ $query_id = 'counter.insertTodayStatus';
function insertTotalStatus($site_srl=0) { executeQuery($query_id); // /< when inserting a daily row, attempt to inser total rows(where regdate=0) together
$args->regdate = 0; }
if($site_srl) { $output = executeQuery($query_id, $args);
$args->site_srl = $site_srl; // Leave logs
executeQuery('counter.insertSiteTodayStatus', $args); $this->insertLog($site_srl);
} else { // Register unique and pageview
executeQuery('counter.insertTodayStatus', $args); $this->insertUniqueVisitor($site_srl);
} }
}
/** /**
* Add today's counter status * Delete counter logs of the specific virtual site
* *
* @param integer $regdate date(YYYYMMDD) type * @param integer $site_srl
* @param integer $site_srl * @return void
* @return void */
**/ function deleteSiteCounterLogs($site_srl)
function insertTodayStatus($regdate = 0, $site_srl=0) { {
if($regdate) $args->regdate = $regdate; $args->site_srl = $site_srl;
else $args->regdate = date("Ymd"); executeQuery('counter.deleteSiteCounter',$args);
if($site_srl) { executeQuery('counter.deleteSiteCounterLog',$args);
$args->site_srl = $site_srl; }
$query_id = 'counter.insertSiteTodayStatus'; }
/* End of file counter.controller.php */
$u_args->site_srl = $site_srl; // /< when inserting a daily row, attempt to inser total rows(where regdate=0) together /* Location: ./modules/counter/counter.controller.php */
executeQuery($query_id, $u_args);
} else {
$query_id = 'counter.insertTodayStatus';
executeQuery($query_id); // /< when inserting a daily row, attempt to inser total rows(where regdate=0) together
}
$output = executeQuery($query_id, $args);
// Leave logs
$this->insertLog($site_srl);
// Register unique and pageview
$this->insertUniqueVisitor($site_srl);
}
/**
* Delete counter logs of the specific virtual site
*
* @param integer $site_srl
* @return void
**/
function deleteSiteCounterLogs($site_srl) {
$args->site_srl = $site_srl;
executeQuery('counter.deleteSiteCounter',$args);
executeQuery('counter.deleteSiteCounterLog',$args);
}
}
?>

View file

@ -1,217 +1,258 @@
<?php <?php
/** /**
* Model class of counter module * Model class of counter module
*
* @author NHN (developers@xpressengine.com)
*/
class counterModel extends counter
{
/**
* Initialization
* *
* @author NHN (developers@xpressengine.com) * @return void
**/ */
function init()
{
}
class counterModel extends counter { /**
* Verify logs
*
* @param integer $site_srl Site_srl
* @return bool
*/
function isLogged($site_srl=0)
{
$args->regdate = date("Ymd");
$args->ipaddress = $_SERVER['REMOTE_ADDR'];
$args->site_srl = $site_srl;
$output = executeQuery('counter.getCounterLog', $args);
return $output->data->count?true:false;
}
/** /**
* Initialization * Check if a row of today's counter status exists
* *
* @return void * @param integer $site_srl Site_srl
**/ * @return bool
function init() { */
} function isInsertedTodayStatus($site_srl=0)
{
$args->regdate = date("Ymd");
if($site_srl)
{
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteTodayStatus', $args);
}
else
{
$output = executeQuery('counter.getTodayStatus', $args);
}
return $output->data->count?true:false;
}
/** /**
* Verify logs * Get access statistics for a given date
* *
* @param integer $site_srl Site_srl * @param mixed $selected_date Date(YYYYMMDD) list
* @return bool * @param integer $site_srl Site_srl
**/ * @return Object
function isLogged($site_srl=0) { */
$args->regdate = date("Ymd"); function getStatus($selected_date, $site_srl = 0)
$args->ipaddress = $_SERVER['REMOTE_ADDR']; {
$args->site_srl = $site_srl; // If more than one date logs are selected
$output = executeQuery('counter.getCounterLog', $args); if(is_array($selected_date))
return $output->data->count?true:false; {
} $date_count = count($selected_date);
$args->regdate = implode(',',$selected_date);
// If a single date log is selected
}
else
{
if(strlen($selected_date) == 8) $selected_date = $selected_date;
$args->regdate = $selected_date;
}
/** if($site_srl)
* Check if a row of today's counter status exists {
* $args->site_srl = $site_srl;
* @param integer $site_srl Site_srl $output = executeQuery('counter.getSiteCounterStatusDays', $args);
* @return bool }
**/ else
function isInsertedTodayStatus($site_srl=0) { {
$args->regdate = date("Ymd"); $output = executeQuery('counter.getCounterStatusDays', $args);
if($site_srl) { }
$args->site_srl = $site_srl; $status = $output->data;
$output = executeQuery('counter.getSiteTodayStatus', $args);
} else {
$output = executeQuery('counter.getTodayStatus', $args);
}
return $output->data->count?true:false;
}
/** if(!is_array($selected_date)) return $status;
* Get access statistics for a given date
*
* @param mixed $selected_date Date(YYYYMMDD) list
* @param integer $site_srl Site_srl
* @return Object
**/
function getStatus($selected_date, $site_srl = 0) {
// If more than one date logs are selected
if(is_array($selected_date)) {
$date_count = count($selected_date);
$args->regdate = implode(',',$selected_date);
// If a single date log is selected
} else {
if(strlen($selected_date) == 8) $selected_date = $selected_date;
$args->regdate = $selected_date;
}
if($site_srl) { if(!is_array($status)) $status = array($status);
$args->site_srl = $site_srl; unset($output);
$output = executeQuery('counter.getSiteCounterStatusDays', $args);
} else {
$output = executeQuery('counter.getCounterStatusDays', $args);
}
$status = $output->data;
if(!is_array($selected_date)) return $status; foreach($status as $key => $val)
{
$output[substr($val->regdate,0,8)] = $val;
}
return $output;
}
if(!is_array($status)) $status = array($status); /**
unset($output); * Select hourly logs of a given date
*
* @param string $type Choice time interval (year, week, month, hour or DEFAULT)
* @param integer $selected_date Date(YYYYMMDD)
* @param integer $site_srl Site_srl
* @return Object
*/
function getHourlyStatus($type='hour', $selected_date, $site_srl=0)
{
$max = 0;
$sum = 0;
switch($type)
{
case 'year' :
// Get a date to start counting
if($site_srl)
{
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteStartLogDate', $args);
}
else
{
$output = executeQuery('counter.getStartLogDate');
}
$start_year = substr($output->data->regdate,0,4);
if(!$start_year) $start_year = date("Y");
for($i=$start_year;$i<=date("Y");$i++)
{
unset($args);
$args->start_date = sprintf('%04d0000', $i);
$args->end_date = sprintf('%04d1231', $i);
if($site_srl)
{
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterStatus', $args);
}
else
{
$output = executeQuery('counter.getCounterStatus', $args);
}
$count = (int)$output->data->unique_visitor;
$status->list[$i] = $count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
case 'week' :
$time = strtotime($selected_date);
$w = date("D");
while(date("D",$time) != "Sun")
{
$time += 60*60*24;
}
$time -= 60*60*24;
while(date("D",$time)!="Sun")
{
$thisWeek[] = date("Ymd",$time);
$time -= 60*60*24;
}
$thisWeek[] = date("Ymd",$time);
asort($thisWeek);
foreach($thisWeek as $day)
{
unset($args);
$args->start_date = $day;
$args->end_date = $day;
if($site_srl)
{
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterStatus', $args);
}
else
{
$output = executeQuery('counter.getCounterStatus', $args);
}
$count = (int)$output->data->unique_visitor;
$status->list[$day] = (int)$count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
case 'month' :
$year = substr($selected_date, 0, 4);
for($i=1;$i<=12;$i++)
{
unset($args);
$args->start_date = sprintf('%04d%02d00', $year, $i);
$args->end_date = sprintf('%04d%02d31', $year, $i);
if($site_srl)
{
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterStatus', $args);
}
else
{
$output = executeQuery('counter.getCounterStatus', $args);
}
$count = (int)$output->data->unique_visitor;
$status->list[$i] = (int)$count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
case 'hour' :
for($i=0;$i<24;$i++)
{
unset($args);
$args->start_date = sprintf('%08d%02d0000', $selected_date, $i);
$args->end_date = sprintf('%08d%02d5959', $selected_date, $i);
if($site_srl)
{
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterLogStatus', $args);
}
else
{
$args->site_srl = 0;
$output = executeQuery('counter.getCounterLogStatus', $args);
}
$count = (int)$output->data->count;
$status->list[$i] = $count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
default :
$year = substr($selected_date, 0, 4);
$month = substr($selected_date, 4, 2);
$end_day = date('t', mktime(0,0,0,$month,1,$year));
for($i=1;$i<=$end_day;$i++)
{
unset($args);
$args->start_date = sprintf('%04d%02d%02d', $year, $month, $i);
$args->end_date = sprintf('%04d%02d%02d', $year, $month, $i);
if($site_srl)
{
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterStatus', $args);
}
else
{
$output = executeQuery('counter.getCounterStatus', $args);
}
$count = (int)$output->data->unique_visitor;
$status->list[$i] = $count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
}
foreach($status as $key => $val) { $status->max = $max;
$output[substr($val->regdate,0,8)] = $val; $status->sum = $sum;
} return $status;
return $output; }
}
/** }
* Select hourly logs of a given date /* End of file counter.model.php */
* /* Location: ./modules/counter/counter.model.php */
* @param string $type Choice time interval (year, week, month, hour or DEFAULT)
* @param integer $selected_date Date(YYYYMMDD)
* @param integer $site_srl Site_srl
* @return Object
**/
function getHourlyStatus($type='hour', $selected_date, $site_srl=0) {
$max = 0;
$sum = 0;
switch($type) {
case 'year' :
// Get a date to start counting
if($site_srl) {
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteStartLogDate', $args);
} else {
$output = executeQuery('counter.getStartLogDate');
}
$start_year = substr($output->data->regdate,0,4);
if(!$start_year) $start_year = date("Y");
for($i=$start_year;$i<=date("Y");$i++) {
unset($args);
$args->start_date = sprintf('%04d0000', $i);
$args->end_date = sprintf('%04d1231', $i);
if($site_srl) {
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterStatus', $args);
} else {
$output = executeQuery('counter.getCounterStatus', $args);
}
$count = (int)$output->data->unique_visitor;
$status->list[$i] = $count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
case 'week' :
$time = strtotime($selected_date);
$w = date("D");
while(date("D",$time) != "Sun") {
$time += 60*60*24;
}
$time -= 60*60*24;
while(date("D",$time)!="Sun") {
$thisWeek[] = date("Ymd",$time);
$time -= 60*60*24;
}
$thisWeek[] = date("Ymd",$time);
asort($thisWeek);
foreach($thisWeek as $day) {
unset($args);
$args->start_date = $day;
$args->end_date = $day;
if($site_srl) {
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterStatus', $args);
} else {
$output = executeQuery('counter.getCounterStatus', $args);
}
$count = (int)$output->data->unique_visitor;
$status->list[$day] = (int)$count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
case 'month' :
$year = substr($selected_date, 0, 4);
for($i=1;$i<=12;$i++) {
unset($args);
$args->start_date = sprintf('%04d%02d00', $year, $i);
$args->end_date = sprintf('%04d%02d31', $year, $i);
if($site_srl) {
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterStatus', $args);
} else {
$output = executeQuery('counter.getCounterStatus', $args);
}
$count = (int)$output->data->unique_visitor;
$status->list[$i] = (int)$count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
case 'hour' :
for($i=0;$i<24;$i++) {
unset($args);
$args->start_date = sprintf('%08d%02d0000', $selected_date, $i);
$args->end_date = sprintf('%08d%02d5959', $selected_date, $i);
if($site_srl) {
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterLogStatus', $args);
} else {
$args->site_srl = 0;
$output = executeQuery('counter.getCounterLogStatus', $args);
}
$count = (int)$output->data->count;
$status->list[$i] = $count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
default :
$year = substr($selected_date, 0, 4);
$month = substr($selected_date, 4, 2);
$end_day = date('t', mktime(0,0,0,$month,1,$year));
for($i=1;$i<=$end_day;$i++) {
unset($args);
$args->start_date = sprintf('%04d%02d%02d', $year, $month, $i);
$args->end_date = sprintf('%04d%02d%02d', $year, $month, $i);
if($site_srl) {
$args->site_srl = $site_srl;
$output = executeQuery('counter.getSiteCounterStatus', $args);
} else {
$output = executeQuery('counter.getCounterStatus', $args);
}
$count = (int)$output->data->unique_visitor;
$status->list[$i] = $count;
if($count>$max) $max = $count;
$sum += $count;
}
break;
}
$status->max = $max;
$status->sum = $sum;
return $status;
}
}
?>

File diff suppressed because it is too large Load diff

View file

@ -1,103 +1,111 @@
<?php <?php
/**
* documentAdminModel class
* Document the module's admin model class
*
* @author NHN (developers@xpressengine.com)
* @package /modules/document
* @version 0.1
*/
class documentAdminModel extends document
{
/** /**
* documentAdminModel class * Initialization
* Document the module's admin model class * @return void
*
* @author NHN (developers@xpressengine.com)
* @package /modules/document
* @version 0.1
*/ */
class documentAdminModel extends document { function init()
/** {
* Initialization }
* @return void
*/
function init() {
}
/** /**
* Get a document list from the trash * Get a document list from the trash
* @param object $obj * @param object $obj
* @return object * @return object
*/ */
function getDocumentTrashList($obj) { function getDocumentTrashList($obj)
// check a list and its order {
if (!in_array($obj->sort_index, array('list_order','delete_date','title'))) $obj->sort_index = 'list_order'; // check a list and its order
if (!in_array($obj->order_type, array('desc','asc'))) $obj->order_type = 'asc'; if(!in_array($obj->sort_index, array('list_order','delete_date','title'))) $obj->sort_index = 'list_order';
// get a module_srl if mid is returned instead of modul_srl if(!in_array($obj->order_type, array('desc','asc'))) $obj->order_type = 'asc';
if ($obj->mid) { // get a module_srl if mid is returned instead of modul_srl
$oModuleModel = &getModel('module'); if($obj->mid)
$obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid); {
unset($obj->mid); $oModuleModel = &getModel('module');
} $obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid);
// check if the module_srl is an array unset($obj->mid);
if (is_array($obj->module_srl)) $args->module_srl = implode(',', $obj->module_srl); }
else $args->module_srl = $obj->module_srl; // check if the module_srl is an array
// Variable check if(is_array($obj->module_srl)) $args->module_srl = implode(',', $obj->module_srl);
$args->sort_index = $obj->sort_index; else $args->module_srl = $obj->module_srl;
$args->order_type = $obj->order_type; // Variable check
$args->page = $obj->page?$obj->page:1; $args->sort_index = $obj->sort_index;
$args->list_count = $obj->list_count?$obj->list_count:20; $args->order_type = $obj->order_type;
$args->page_count = $obj->page_count?$obj->page_count:10; $args->page = $obj->page?$obj->page:1;
$args->member_srl = $obj->member_srl; $args->list_count = $obj->list_count?$obj->list_count:20;
// Specify query_id $args->page_count = $obj->page_count?$obj->page_count:10;
$query_id = 'document.getTrashList'; $args->member_srl = $obj->member_srl;
// Execute a query // Specify query_id
$output = executeQueryArray($query_id, $args); $query_id = 'document.getTrashList';
// Return if no result or an error occurs // Execute a query
if (!$output->toBool() || !count($output->data)) return $output; $output = executeQueryArray($query_id, $args);
// Return if no result or an error occurs
if(!$output->toBool() || !count($output->data)) return $output;
$idx = 0; $idx = 0;
$data = $output->data; $data = $output->data;
unset($output->data); unset($output->data);
$keys = array_keys($data); $keys = array_keys($data);
$virtual_number = $keys[0]; $virtual_number = $keys[0];
foreach($data as $key => $attribute) { foreach($data as $key => $attribute)
$oDocument = null; {
$oDocument = new documentItem(); $oDocument = null;
$oDocument->setAttribute($attribute, false); $oDocument = new documentItem();
if ($is_admin) $oDocument->setGrant(); $oDocument->setAttribute($attribute, false);
if($is_admin) $oDocument->setGrant();
$output->data[$virtual_number] = $oDocument; $output->data[$virtual_number] = $oDocument;
$virtual_number--; $virtual_number--;
} }
return $output; return $output;
} }
/** /**
* Get the doc which has trash_srl from the trash can * Get the doc which has trash_srl from the trash can
* @param int $trash_srl * @param int $trash_srl
* @return object * @return object
*/ */
function getDocumentTrash($trash_srl) { function getDocumentTrash($trash_srl)
$args->trash_srl = $trash_srl; {
$output = executeQuery('document.getTrash', $args); $args->trash_srl = $trash_srl;
$output = executeQuery('document.getTrash', $args);
$node = $output->data; $node = $output->data;
if (!$node) return; if(!$node) return;
return $node; return $node;
} }
/** /**
* Return document count with date * Return document count with date
* @param string $date * @param string $date
* @parpam array $moduleSrlList * @parpam array $moduleSrlList
* @param array $statusList * @param array $statusList
* @return int * @return int
*/ */
function getDocumentCountByDate($date = '', $moduleSrlList = array(), $statusList = array()) { function getDocumentCountByDate($date = '', $moduleSrlList = array(), $statusList = array())
if($date) $args->regDate = date('Ymd', strtotime($date)); {
if(count($moduleSrlList)>0) $args->moduleSrlList = $moduleSrlList; if($date) $args->regDate = date('Ymd', strtotime($date));
if(count($statusList)>0) $args->statusList = $statusList; if(count($moduleSrlList)>0) $args->moduleSrlList = $moduleSrlList;
if(count($statusList)>0) $args->statusList = $statusList;
$output = executeQuery('document.getDocumentCountByDate', $args); $output = executeQuery('document.getDocumentCountByDate', $args);
if(!$output->toBool()) return 0; if(!$output->toBool()) return 0;
return $output->data->count; return $output->data->count;
} }
} }
?> /* End of file document.admin.model.php */
/* Location: ./modules/document/document.admin.model.php */

View file

@ -1,188 +1,199 @@
<?php <?php
/**
* documentAdminView class
* Document admin view of the module class
*
* @author NHN (developers@xpressengine.com)
* @package /modules/document
* @version 0.1
*/
class documentAdminView extends document
{
/** /**
* documentAdminView class * Initialization
* Document admin view of the module class * @return void
*
* @author NHN (developers@xpressengine.com)
* @package /modules/document
* @version 0.1
*/ */
class documentAdminView extends document { function init()
/** {
* Initialization // check current location in admin menu
* @return void $oModuleModel = &getModel('module');
*/ $info = $oModuleModel->getModuleActionXml('document');
function init() { foreach($info->menu AS $key => $menu)
// check current location in admin menu {
$oModuleModel = &getModel('module'); if(in_array($this->act, $menu->acts))
$info = $oModuleModel->getModuleActionXml('document');
foreach($info->menu AS $key => $menu)
{ {
if(in_array($this->act, $menu->acts)) Context::set('currentMenu', $key);
{ break;
Context::set('currentMenu', $key);
break;
}
} }
} }
}
/** /**
* Display a list(administrative) * Display a list(administrative)
* @return void * @return void
*/ */
function dispDocumentAdminList() { function dispDocumentAdminList()
// option to get a list {
$args->page = Context::get('page'); // /< Page // option to get a list
$args->list_count = 30; // /< the number of posts to display on a single page $args->page = Context::get('page'); // /< Page
$args->page_count = 5; // /< the number of pages that appear in the page navigation $args->list_count = 30; // /< the number of posts to display on a single page
$args->page_count = 5; // /< the number of pages that appear in the page navigation
$args->search_target = Context::get('search_target'); // /< search (title, contents ...) $args->search_target = Context::get('search_target'); // /< search (title, contents ...)
$args->search_keyword = Context::get('search_keyword'); // /< keyword to search $args->search_keyword = Context::get('search_keyword'); // /< keyword to search
$args->sort_index = 'list_order'; // /< sorting value $args->sort_index = 'list_order'; // /< sorting value
$args->module_srl = Context::get('module_srl'); $args->module_srl = Context::get('module_srl');
// get a list // get a list
$oDocumentModel = &getModel('document'); $oDocumentModel = &getModel('document');
$columnList = array('document_srl', 'title', 'member_srl', 'nick_name', 'readed_count', 'voted_count', 'blamed_count', 'regdate', 'ipaddress', 'status'); $columnList = array('document_srl', 'title', 'member_srl', 'nick_name', 'readed_count', 'voted_count', 'blamed_count', 'regdate', 'ipaddress', 'status');
$output = $oDocumentModel->getDocumentList($args, false, true, $columnList); $output = $oDocumentModel->getDocumentList($args, false, true, $columnList);
// get Status name list // get Status name list
$statusNameList = $oDocumentModel->getStatusNameList(); $statusNameList = $oDocumentModel->getStatusNameList();
// Set values of document_model::getDocumentList() objects for a template // Set values of document_model::getDocumentList() objects for a template
Context::set('total_count', $output->total_count); Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page); Context::set('total_page', $output->total_page);
Context::set('page', $output->page); Context::set('page', $output->page);
Context::set('document_list', $output->data); Context::set('document_list', $output->data);
Context::set('status_name_list', $statusNameList); Context::set('status_name_list', $statusNameList);
Context::set('page_navigation', $output->page_navigation); Context::set('page_navigation', $output->page_navigation);
// set a search option used in the template // set a search option used in the template
$count_search_option = count($this->search_option); $count_search_option = count($this->search_option);
for($i=0;$i<$count_search_option;$i++) { for($i=0;$i<$count_search_option;$i++)
$search_option[$this->search_option[$i]] = Context::getLang($this->search_option[$i]); {
} $search_option[$this->search_option[$i]] = Context::getLang($this->search_option[$i]);
Context::set('search_option', $search_option); }
Context::set('search_option', $search_option);
// Specify a template // Specify a template
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('document_list'); $this->setTemplateFile('document_list');
} }
/** /**
* Set a document module * Set a document module
* @return void * @return void
*/ */
function dispDocumentAdminConfig() { function dispDocumentAdminConfig()
$oDocumentModel = &getModel('document'); {
$config = $oDocumentModel->getDocumentConfig(); $oDocumentModel = &getModel('document');
Context::set('config',$config); $config = $oDocumentModel->getDocumentConfig();
Context::set('config',$config);
// Set the template file // Set the template file
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('document_config'); $this->setTemplateFile('document_config');
} }
/** /**
* Display a report list on the admin page * Display a report list on the admin page
* @return void * @return void
*/ */
function dispDocumentAdminDeclared() { function dispDocumentAdminDeclared()
// option for a list {
$args->page = Context::get('page'); // /< Page // option for a list
$args->list_count = 30; // /< the number of posts to display on a single page $args->page = Context::get('page'); // /< Page
$args->page_count = 10; // /< the number of pages that appear in the page navigation $args->list_count = 30; // /< the number of posts to display on a single page
$args->page_count = 10; // /< the number of pages that appear in the page navigation
$args->sort_index = 'document_declared.declared_count'; // /< sorting values $args->sort_index = 'document_declared.declared_count'; // /< sorting values
$args->order_type = 'desc'; // /< sorting values by order $args->order_type = 'desc'; // /< sorting values by order
// get Status name list // get Status name list
$oDocumentModel = &getModel('document'); $oDocumentModel = &getModel('document');
$statusNameList = $oDocumentModel->getStatusNameList(); $statusNameList = $oDocumentModel->getStatusNameList();
// get a list // get a list
$declared_output = executeQuery('document.getDeclaredList', $args); $declared_output = executeQuery('document.getDeclaredList', $args);
if($declared_output->data && count($declared_output->data)) { if($declared_output->data && count($declared_output->data))
$document_list = array(); {
$document_list = array();
foreach($declared_output->data as $key => $document) { foreach($declared_output->data as $key => $document)
$document_list[$key] = new documentItem(); {
$document_list[$key]->setAttribute($document); $document_list[$key] = new documentItem();
} $document_list[$key]->setAttribute($document);
$declared_output->data = $document_list;
} }
$declared_output->data = $document_list;
}
// Set values of document_model::getDocumentList() objects for a template // Set values of document_model::getDocumentList() objects for a template
Context::set('total_count', $declared_output->total_count); Context::set('total_count', $declared_output->total_count);
Context::set('total_page', $declared_output->total_page); Context::set('total_page', $declared_output->total_page);
Context::set('page', $declared_output->page); Context::set('page', $declared_output->page);
Context::set('document_list', $declared_output->data); Context::set('document_list', $declared_output->data);
Context::set('page_navigation', $declared_output->page_navigation); Context::set('page_navigation', $declared_output->page_navigation);
Context::set('status_name_list', $statusNameList); Context::set('status_name_list', $statusNameList);
// Set the template // Set the template
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('declared_list'); $this->setTemplateFile('declared_list');
} }
/** /**
* Display a alias list on the admin page * Display a alias list on the admin page
* @return void * @return void
*/ */
function dispDocumentAdminAlias() { function dispDocumentAdminAlias()
$args->document_srl = Context::get('document_srl'); {
if(!$args->document_srl) return $this->dispDocumentAdminList(); $args->document_srl = Context::get('document_srl');
if(!$args->document_srl) return $this->dispDocumentAdminList();
$oModel = &getModel('document'); $oModel = &getModel('document');
$oDocument = $oModel->getDocument($args->document_srl); $oDocument = $oModel->getDocument($args->document_srl);
if(!$oDocument->isExists()) return $this->dispDocumentAdminList(); if(!$oDocument->isExists()) return $this->dispDocumentAdminList();
Context::set('oDocument', $oDocument); Context::set('oDocument', $oDocument);
$output = executeQueryArray('document.getAliases', $args); $output = executeQueryArray('document.getAliases', $args);
if(!$output->data) if(!$output->data)
{ {
$aliases = array(); $aliases = array();
} }
else else
{ {
$aliases = $output->data; $aliases = $output->data;
} }
Context::set('aliases', $aliases); Context::set('aliases', $aliases);
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('document_alias'); $this->setTemplateFile('document_alias');
} }
/** /**
* Display a trash list on the admin page * Display a trash list on the admin page
* @return void * @return void
*/ */
function dispDocumentAdminTrashList() { function dispDocumentAdminTrashList()
// options for a list {
$args->page = Context::get('page'); // /< Page // options for a list
$args->list_count = 30; // /< the number of posts to display on a single page $args->page = Context::get('page'); // /< Page
$args->page_count = 10; // /< the number of pages that appear in the page navigation $args->list_count = 30; // /< the number of posts to display on a single page
$args->page_count = 10; // /< the number of pages that appear in the page navigation
$args->sort_index = 'list_order'; // /< sorting values $args->sort_index = 'list_order'; // /< sorting values
$args->order_type = 'desc'; // /< sorting values by order $args->order_type = 'desc'; // /< sorting values by order
$args->module_srl = Context::get('module_srl'); $args->module_srl = Context::get('module_srl');
// get a list // get a list
$oDocumentAdminModel = &getAdminModel('document'); $oDocumentAdminModel = &getAdminModel('document');
$output = $oDocumentAdminModel->getDocumentTrashList($args); $output = $oDocumentAdminModel->getDocumentTrashList($args);
// Set values of document_admin_model::getDocumentTrashList() objects for a template // Set values of document_admin_model::getDocumentTrashList() objects for a template
Context::set('total_count', $output->total_count); Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page); Context::set('total_page', $output->total_page);
Context::set('page', $output->page); Context::set('page', $output->page);
Context::set('document_list', $output->data); Context::set('document_list', $output->data);
Context::set('page_navigation', $output->page_navigation); Context::set('page_navigation', $output->page_navigation);
// set the template // set the template
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('document_trash_list'); $this->setTemplateFile('document_trash_list');
} }
} }
?> /* End of file document.admin.view.php */
/* Location: ./modules/document/document.admin.view.php */

View file

@ -130,30 +130,36 @@ class document extends ModuleObject
* Execute update * Execute update
* @return Object * @return Object
*/ */
function moduleUpdate() { function moduleUpdate()
{
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$oModuleController = &getController('module'); $oModuleController = &getController('module');
// 2007. 7. 25: Add a column(notify_message) for notification // 2007. 7. 25: Add a column(notify_message) for notification
if(!$oDB->isColumnExists("documents","notify_message")) { if(!$oDB->isColumnExists("documents","notify_message"))
{
$oDB->addColumn('documents',"notify_message","char",1); $oDB->addColumn('documents',"notify_message","char",1);
} }
// 2007. 8. 23: create a clustered index in the document table // 2007. 8. 23: create a clustered index in the document table
if(!$oDB->isIndexExists("documents","idx_module_list_order")) { if(!$oDB->isIndexExists("documents","idx_module_list_order"))
{
$oDB->addIndex("documents","idx_module_list_order", array("module_srl","list_order")); $oDB->addIndex("documents","idx_module_list_order", array("module_srl","list_order"));
} }
if(!$oDB->isIndexExists("documents","idx_module_update_order")) { if(!$oDB->isIndexExists("documents","idx_module_update_order"))
{
$oDB->addIndex("documents","idx_module_update_order", array("module_srl","update_order")); $oDB->addIndex("documents","idx_module_update_order", array("module_srl","update_order"));
} }
if(!$oDB->isIndexExists("documents","idx_module_readed_count")) { if(!$oDB->isIndexExists("documents","idx_module_readed_count"))
{
$oDB->addIndex("documents","idx_module_readed_count", array("module_srl","readed_count")); $oDB->addIndex("documents","idx_module_readed_count", array("module_srl","readed_count"));
} }
if(!$oDB->isIndexExists("documents","idx_module_voted_count")) { if(!$oDB->isIndexExists("documents","idx_module_voted_count"))
{
$oDB->addIndex("documents","idx_module_voted_count", array("module_srl","voted_count")); $oDB->addIndex("documents","idx_module_voted_count", array("module_srl","voted_count"));
} }
// 2007. 10. 17 Add a trigger to delete all posts together when the module is deleted // 2007. 10. 17 Add a trigger to delete all posts together when the module is deleted
@ -172,12 +178,14 @@ class document extends ModuleObject
// 2008. 02. 18 create a composite index on the columns(module_srl + document_srl) (checked by Manian)) // 2008. 02. 18 create a composite index on the columns(module_srl + document_srl) (checked by Manian))
if(!$oDB->isIndexExists("documents","idx_module_document_srl")) $oDB->addIndex("documents","idx_module_document_srl", array("module_srl","document_srl")); if(!$oDB->isIndexExists("documents","idx_module_document_srl")) $oDB->addIndex("documents","idx_module_document_srl", array("module_srl","document_srl"));
// 2008. 04. 23 Add a column(blamed count) // 2008. 04. 23 Add a column(blamed count)
if(!$oDB->isColumnExists("documents", "blamed_count")) { if(!$oDB->isColumnExists("documents", "blamed_count"))
{
$oDB->addColumn('documents', 'blamed_count', 'number', 11, 0, true); $oDB->addColumn('documents', 'blamed_count', 'number', 11, 0, true);
$oDB->addIndex('documents', 'idx_blamed_count', array('blamed_count')); $oDB->addIndex('documents', 'idx_blamed_count', array('blamed_count'));
} }
if(!$oDB->isIndexExists("documents","idx_module_blamed_count")) { if(!$oDB->isIndexExists("documents","idx_module_blamed_count"))
{
$oDB->addIndex('documents', 'idx_module_blamed_count', array('module_srl', 'blamed_count')); $oDB->addIndex('documents', 'idx_module_blamed_count', array('module_srl', 'blamed_count'));
} }
@ -194,24 +202,28 @@ class document extends ModuleObject
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'document', 'view', 'triggerDispDocumentAdditionSetup', 'before')) if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'document', 'view', 'triggerDispDocumentAdditionSetup', 'before'))
$oModuleController->insertTrigger('module.dispAdditionSetup', 'document', 'view', 'triggerDispDocumentAdditionSetup', 'before'); $oModuleController->insertTrigger('module.dispAdditionSetup', 'document', 'view', 'triggerDispDocumentAdditionSetup', 'before');
// 2009. 03. 09 Add a column(lang_code) to the documnets table // 2009. 03. 09 Add a column(lang_code) to the documnets table
if(!$oDB->isColumnExists("documents","lang_code")) { if(!$oDB->isColumnExists("documents","lang_code"))
{
$db_info = Context::getDBInfo(); $db_info = Context::getDBInfo();
$oDB->addColumn('documents',"lang_code","varchar",10, $db_info->lang_code); $oDB->addColumn('documents',"lang_code","varchar",10, $db_info->lang_code);
$obj->lang_code = $db_info->lang_type; $obj->lang_code = $db_info->lang_type;
executeQuery('document.updateDocumentsLangCode', $obj); executeQuery('document.updateDocumentsLangCode', $obj);
} }
// 2009. 03. 11 Check the index in the document_extra_vars table // 2009. 03. 11 Check the index in the document_extra_vars table
if(!$oDB->isIndexExists("document_extra_vars", "unique_extra_vars")) { if(!$oDB->isIndexExists("document_extra_vars", "unique_extra_vars"))
{
$oDB->addIndex("document_extra_vars", "unique_extra_vars", array("module_srl","document_srl","var_idx","lang_code"), true); $oDB->addIndex("document_extra_vars", "unique_extra_vars", array("module_srl","document_srl","var_idx","lang_code"), true);
} }
if($oDB->isIndexExists("document_extra_vars", "unique_module_vars")) { if($oDB->isIndexExists("document_extra_vars", "unique_module_vars"))
{
$oDB->dropIndex("document_extra_vars", "unique_module_vars", true); $oDB->dropIndex("document_extra_vars", "unique_module_vars", true);
} }
// 2009. 03. 19: Add a column(eid) // 2009. 03. 19: Add a column(eid)
// 2009. 04. 12: Fixed the issue(#17922959) that changes another column values when adding eid column // 2009. 04. 12: Fixed the issue(#17922959) that changes another column values when adding eid column
if(!$oDB->isColumnExists("document_extra_keys","eid")) { if(!$oDB->isColumnExists("document_extra_keys","eid"))
{
$oDB->addColumn("document_extra_keys","eid","varchar",40); $oDB->addColumn("document_extra_keys","eid","varchar",40);
$output = executeQuery('document.getGroupsExtraKeys', $obj); $output = executeQuery('document.getGroupsExtraKeys', $obj);
@ -225,12 +237,15 @@ class document extends ModuleObject
} }
} }
if(!$oDB->isColumnExists("document_extra_vars","eid")) { if(!$oDB->isColumnExists("document_extra_vars","eid"))
{
$oDB->addColumn("document_extra_vars","eid","varchar",40); $oDB->addColumn("document_extra_vars","eid","varchar",40);
$obj->var_idx = '-1,-2'; $obj->var_idx = '-1,-2';
$output = executeQuery('document.getGroupsExtraVars', $obj); $output = executeQuery('document.getGroupsExtraVars', $obj);
if($output->toBool() && $output->data && count($output->data)) { if($output->toBool() && $output->data && count($output->data))
foreach($output->data as $extra_vars) { {
foreach($output->data as $extra_vars)
{
$args->module_srl = $extra_vars->module_srl; $args->module_srl = $extra_vars->module_srl;
$args->var_idx = $extra_vars->idx; $args->var_idx = $extra_vars->idx;
$args->new_eid = "extra_vars".$extra_vars->idx; $args->new_eid = "extra_vars".$extra_vars->idx;
@ -240,7 +255,8 @@ class document extends ModuleObject
} }
// 2011. 03. 30 Cubrid index Check the index in the document_extra_vars table // 2011. 03. 30 Cubrid index Check the index in the document_extra_vars table
if(!$oDB->isIndexExists("document_extra_vars", "idx_document_list_order")) { if(!$oDB->isIndexExists("document_extra_vars", "idx_document_list_order"))
{
$oDB->addIndex("document_extra_vars", "idx_document_list_order", array("document_srl","module_srl","var_idx"), false); $oDB->addIndex("document_extra_vars", "idx_document_list_order", array("document_srl","module_srl","var_idx"), false);
} }
@ -312,7 +328,8 @@ class document extends ModuleObject
* Re-generate the cache file * Re-generate the cache file
* @return void * @return void
*/ */
function recompileCache() { function recompileCache()
{
} }
/** /**
@ -343,4 +360,5 @@ class document extends ModuleObject
else $this->getDefaultStatus(); else $this->getDefaultStatus();
} }
} }
?> /* End of file document.class.php */
/* Location: ./modules/document/document.class.php */

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,163 +1,173 @@
<?php <?php
/**
* documentView class
* View class of the module document
*
* @author NHN (developers@xpressengine.com)
* @package /modules/document
* @version 0.1
*/
class documentView extends document
{
/** /**
* documentView class * Initialization
* View class of the module document * @return void
*
* @author NHN (developers@xpressengine.com)
* @package /modules/document
* @version 0.1
*/ */
class documentView extends document { function init()
/** {
* Initialization }
* @return void
*/
function init() {
}
/** /**
* Document printing * Document printing
* I make it out to find the geulman;; * I make it out to find the geulman;;
* @return void|Object * @return void|Object
*/ */
function dispDocumentPrint() { function dispDocumentPrint()
// Bring a list of variables needed to implement {
$document_srl = Context::get('document_srl'); // Bring a list of variables needed to implement
$document_srl = Context::get('document_srl');
// module_info not use in UI // module_info not use in UI
//$oModuleModel = &getModel('module'); //$oModuleModel = &getModel('module');
//$module_info = $oModuleModel->getModuleInfoByDocumentSrl($document_srl); //$module_info = $oModuleModel->getModuleInfoByDocumentSrl($document_srl);
// Create the document object. If the document module of basic data structures, write it all works .. -_-; // Create the document object. If the document module of basic data structures, write it all works .. -_-;
$oDocumentModel = &getModel('document'); $oDocumentModel = &getModel('document');
// Creates an object for displaying the selected document // Creates an object for displaying the selected document
$oDocument = $oDocumentModel->getDocument($document_srl, $this->grant->manager); $oDocument = $oDocumentModel->getDocument($document_srl, $this->grant->manager);
if(!$oDocument->isExists()) return new Object(-1,'msg_invalid_request'); if(!$oDocument->isExists()) return new Object(-1,'msg_invalid_request');
// Check permissions // Check permissions
if(!$oDocument->isAccessible()) return new Object(-1,'msg_not_permitted'); if(!$oDocument->isAccessible()) return new Object(-1,'msg_not_permitted');
// Information setting module // Information setting module
//Context::set('module_info', $module_info); //module_info not use in UI //Context::set('module_info', $module_info); //module_info not use in UI
// Browser title settings // Browser title settings
Context::setBrowserTitle($oDocument->getTitleText()); Context::setBrowserTitle($oDocument->getTitleText());
Context::set('oDocument', $oDocument); Context::set('oDocument', $oDocument);
Context::set('layout','none'); Context::set('layout','none');
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('print_page'); $this->setTemplateFile('print_page');
} }
/** /**
* Preview * Preview
* @return void * @return void
*/ */
function dispDocumentPreview() { function dispDocumentPreview()
Context::set('layout','none'); {
Context::set('layout','none');
$content = Context::get('content'); $content = Context::get('content');
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('preview_page'); $this->setTemplateFile('preview_page');
} }
/** /**
* Selected by the administrator for the document management * Selected by the administrator for the document management
* @return void|Object * @return void|Object
*/ */
function dispDocumentManageDocument() { function dispDocumentManageDocument()
if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted'); {
// Taken from a list of selected sessions if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted');
$flag_list = $_SESSION['document_management']; // Taken from a list of selected sessions
if(count($flag_list)) { $flag_list = $_SESSION['document_management'];
foreach($flag_list as $key => $val) { if(count($flag_list))
if(!is_bool($val)) continue;
$document_srl_list[] = $key;
}
}
if(count($document_srl_list)) {
$oDocumentModel = &getModel('document');
$document_list = $oDocumentModel->getDocuments($document_srl_list, $this->grant->is_admin);
Context::set('document_list', $document_list);
}
$oModuleModel = &getModel('module');
// The combination of module categories list and the list of modules
if(count($module_list)>1) Context::set('module_list', $module_categories);
$module_srl=Context::get('module_srl');
Context::set('module_srl',$module_srl);
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
Context::set('mid',$module_info->mid);
Context::set('browser_title',$module_info->browser_title);
// Select Pop-up layout
$this->setLayoutPath('./common/tpl');
$this->setLayoutFile('popup_layout');
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('checked_list');
}
/**
* Trigger method.
* Additional information realte to document setting
* @param string $obj
* @return Object
*/
function triggerDispDocumentAdditionSetup(&$obj) {
$current_module_srl = Context::get('module_srl');
$current_module_srls = Context::get('module_srls');
if(!$current_module_srl && !$current_module_srls) {
// Get information of the current module
$current_module_info = Context::get('current_module_info');
$current_module_srl = $current_module_info->module_srl;
if(!$current_module_srl) return new Object();
}
$oModuleModel = &getModel('module');
if($current_module_srl)
{
$document_config = $oModuleModel->getModulePartConfig('document', $current_module_srl);
}
if(!isset($document_config->use_history)) $document_config->use_history = 'N';
Context::set('document_config', $document_config);
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'document_module_config');
$obj .= $tpl;
return new Object();
}
/**
* Document temp saved list
* @return void
*/
function dispTempSavedList()
{ {
$this->setLayoutFile('popup_layout'); foreach($flag_list as $key => $val)
{
$oMemberModel = &getModel('member'); if(!is_bool($val)) continue;
// A message appears if the user is not logged-in $document_srl_list[] = $key;
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged'); }
// Get the saved document (module_srl is set to member_srl instead)
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$args->statusList = array($this->getConfigStatus('temp'));
$args->page = (int)Context::get('page');
$args->list_count = 10;
$oDocumentModel = &getModel('document');
$output = $oDocumentModel->getDocumentList($args, true);
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('document_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('saved_list_popup');
} }
}
?> if(count($document_srl_list))
{
$oDocumentModel = &getModel('document');
$document_list = $oDocumentModel->getDocuments($document_srl_list, $this->grant->is_admin);
Context::set('document_list', $document_list);
}
$oModuleModel = &getModel('module');
// The combination of module categories list and the list of modules
if(count($module_list)>1) Context::set('module_list', $module_categories);
$module_srl=Context::get('module_srl');
Context::set('module_srl',$module_srl);
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
Context::set('mid',$module_info->mid);
Context::set('browser_title',$module_info->browser_title);
// Select Pop-up layout
$this->setLayoutPath('./common/tpl');
$this->setLayoutFile('popup_layout');
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('checked_list');
}
/**
* Trigger method.
* Additional information realte to document setting
* @param string $obj
* @return Object
*/
function triggerDispDocumentAdditionSetup(&$obj)
{
$current_module_srl = Context::get('module_srl');
$current_module_srls = Context::get('module_srls');
if(!$current_module_srl && !$current_module_srls)
{
// Get information of the current module
$current_module_info = Context::get('current_module_info');
$current_module_srl = $current_module_info->module_srl;
if(!$current_module_srl) return new Object();
}
$oModuleModel = &getModel('module');
if($current_module_srl)
{
$document_config = $oModuleModel->getModulePartConfig('document', $current_module_srl);
}
if(!isset($document_config->use_history)) $document_config->use_history = 'N';
Context::set('document_config', $document_config);
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'document_module_config');
$obj .= $tpl;
return new Object();
}
/**
* Document temp saved list
* @return void
*/
function dispTempSavedList()
{
$this->setLayoutFile('popup_layout');
$oMemberModel = &getModel('member');
// A message appears if the user is not logged-in
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
// Get the saved document (module_srl is set to member_srl instead)
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$args->statusList = array($this->getConfigStatus('temp'));
$args->page = (int)Context::get('page');
$args->list_count = 10;
$oDocumentModel = &getModel('document');
$output = $oDocumentModel->getDocumentList($args, true);
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('document_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('saved_list_popup');
}
}
/* End of file document.view.php */
/* Location: ./modules/document/document.view.php */