mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 03:32:00 +09:00
Caching implementation for objects
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8745 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
1b47a294d3
commit
70a69ff4fe
18 changed files with 709 additions and 322 deletions
|
|
@ -149,6 +149,22 @@
|
|||
}
|
||||
|
||||
$oDB->commit();
|
||||
//remove from cache
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport())
|
||||
{
|
||||
foreach($document_srl_list as $document_srl)
|
||||
{
|
||||
$cache_key = 'object:'.$document_srl;
|
||||
$oCacheHandler->delete($cache_key);
|
||||
}
|
||||
$cache_object = $oCacheHandler->get('module_list_documents');
|
||||
foreach ($cache_object as $object){
|
||||
$cache_key_object = $object;
|
||||
$oCacheHandler->delete($cache_key_object);
|
||||
}
|
||||
$oCacheHandler->delete('module_list_documents');
|
||||
}
|
||||
return new Object();
|
||||
}
|
||||
|
||||
|
|
@ -266,7 +282,30 @@
|
|||
**/
|
||||
function deleteModuleDocument($module_srl) {
|
||||
$args->module_srl = $module_srl;
|
||||
$oDocumentModel = &getModel('document');
|
||||
$args->module_srl = $module_srl;
|
||||
$document_list = $oDocumentModel->getDocumentList($args);
|
||||
$documents = $document_list->data;
|
||||
$output = executeQuery('document.deleteModuleDocument', $args);
|
||||
foreach ($documents as $oDocument){
|
||||
$document_srl_list[] = $oDocument->document_srl;
|
||||
}
|
||||
//remove from cache
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport())
|
||||
{
|
||||
foreach($document_srl_list as $document_srl)
|
||||
{
|
||||
$cache_key = 'object:'.$document_srl;
|
||||
$oCacheHandler->delete($cache_key);
|
||||
}
|
||||
$cache_object = $oCacheHandler->get('module_list_documents');
|
||||
foreach ($cache_object as $object){
|
||||
$cache_key_object = $object;
|
||||
$oCacheHandler->delete($cache_key_object);
|
||||
}
|
||||
$oCacheHandler->delete('module_list_documents');
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -237,6 +237,20 @@ class documentController extends document {
|
|||
$this->addGrant($obj->document_srl);
|
||||
$output->add('document_srl',$obj->document_srl);
|
||||
$output->add('category_srl',$obj->category_srl);
|
||||
//remove from cache
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport())
|
||||
{
|
||||
$cache_key = 'object:'.$obj->document_srl;
|
||||
$oCacheHandler->delete($cache_key);
|
||||
$cache_object = $oCacheHandler->get('module_list_documents');
|
||||
foreach ($cache_object as $object){
|
||||
$cache_key_object = $object;
|
||||
$oCacheHandler->delete($cache_key_object);
|
||||
}
|
||||
$oCacheHandler->delete('module_list_documents');
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
|
@ -390,6 +404,20 @@ class documentController extends document {
|
|||
FileHandler::removeDir(sprintf('files/cache/thumbnails/%s',getNumberingPath($obj->document_srl, 3)));
|
||||
|
||||
$output->add('document_srl',$obj->document_srl);
|
||||
//remove from cache
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport())
|
||||
{
|
||||
$cache_key = 'object:'.$obj->document_srl;
|
||||
$oCacheHandler->delete($cache_key);
|
||||
$cache_object = $oCacheHandler->get('module_list_documents');
|
||||
foreach ($cache_object as $object){
|
||||
$cache_key_object = $object;
|
||||
$oCacheHandler->delete($cache_key_object);
|
||||
}
|
||||
$oCacheHandler->delete('module_list_documents');
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
|
@ -460,6 +488,20 @@ class documentController extends document {
|
|||
// commit
|
||||
$oDB->commit();
|
||||
|
||||
//remove from cache
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport())
|
||||
{
|
||||
$cache_key = 'object:'.$document_srl;
|
||||
$oCacheHandler->delete($cache_key);
|
||||
$cache_object = $oCacheHandler->get('module_list_documents');
|
||||
foreach ($cache_object as $object){
|
||||
$cache_key_object = $object;
|
||||
$oCacheHandler->delete($cache_key_object);
|
||||
}
|
||||
$oCacheHandler->delete('module_list_documents');
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -152,204 +152,226 @@
|
|||
* @brief module_srl value, bringing the list of documents
|
||||
**/
|
||||
function getDocumentList($obj, $except_notice = false, $load_extra_vars=true, $columnList = array()) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
$sort_check = $this->_setSortIndex($obj, $load_extra_vars);
|
||||
|
||||
$obj->sort_index = $sort_check->sort_index;
|
||||
// Check the target and sequence alignment
|
||||
if(!in_array($obj->order_type, array('desc','asc'))) $obj->order_type = 'asc';
|
||||
// If that came across mid module_srl instead of a direct module_srl guhaejum
|
||||
if($obj->mid) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid);
|
||||
unset($obj->mid);
|
||||
}
|
||||
// Module_srl passed the array may be a check whether the array
|
||||
if(is_array($obj->module_srl)) $args->module_srl = implode(',', $obj->module_srl);
|
||||
else $args->module_srl = $obj->module_srl;
|
||||
// Except for the test module_srl
|
||||
if(is_array($obj->exclude_module_srl)) $args->exclude_module_srl = implode(',', $obj->exclude_module_srl);
|
||||
else $args->exclude_module_srl = $obj->exclude_module_srl;
|
||||
// Variable check
|
||||
$args->category_srl = $obj->category_srl?$obj->category_srl:null;
|
||||
$args->sort_index = $obj->sort_index;
|
||||
$args->order_type = $obj->order_type;
|
||||
$args->page = $obj->page?$obj->page:1;
|
||||
$args->list_count = $obj->list_count?$obj->list_count:20;
|
||||
$args->page_count = $obj->page_count?$obj->page_count:10;
|
||||
$args->start_date = $obj->start_date?$obj->start_date:null;
|
||||
$args->end_date = $obj->end_date?$obj->end_date:null;
|
||||
$args->member_srl = $obj->member_srl;
|
||||
$args->statusList = $obj->statusList?$obj->statusList:array($this->getConfigStatus('secret'), $this->getConfigStatus('public'));
|
||||
if($logged_info->is_admin == 'Y') $args->statusList = array($this->getConfigStatus('secret'), $this->getConfigStatus('public'));
|
||||
// Category is selected, further sub-categories until all conditions
|
||||
if($args->category_srl) {
|
||||
$category_list = $this->getCategoryList($args->module_srl);
|
||||
$category_info = $category_list[$args->category_srl];
|
||||
$category_info->childs[] = $args->category_srl;
|
||||
$args->category_srl = implode(',',$category_info->childs);
|
||||
}
|
||||
// Used to specify the default query id (based on several search options to query id modified)
|
||||
$query_id = 'document.getDocumentList';
|
||||
// If the search by specifying the document division naeyonggeomsaekil processed for
|
||||
$use_division = false;
|
||||
|
||||
// Search options
|
||||
$searchOpt->search_target = $obj->search_target;
|
||||
$searchOpt->search_keyword = $obj->search_keyword;
|
||||
$this->_setSearchOption($searchOpt, $args, $query_id, $use_division);
|
||||
|
||||
if ($sort_check->isExtraVars)
|
||||
{
|
||||
$query_id = 'document.getDocumentListExtraSort';
|
||||
$output = executeQueryArray($query_id, $args);
|
||||
}
|
||||
else
|
||||
{
|
||||
/**
|
||||
* list_order asc sort of division that can be used only when
|
||||
**/
|
||||
if($args->sort_index != 'list_order' || $args->order_type != 'asc') $use_division = false;
|
||||
|
||||
/**
|
||||
* If it is true, use_division changed to use the document division
|
||||
**/
|
||||
if($use_division) {
|
||||
// Division begins
|
||||
$division = (int)Context::get('division');
|
||||
|
||||
// order by list_order and (module_srl===0 or module_srl many count), therefore case table full scan
|
||||
if($args->sort_index == 'list_order' && ($args->exclude_module_srl === 0 || count($args->module_srl) > 10))
|
||||
{
|
||||
$listSqlID = 'document.getDocumentListUseIndex';
|
||||
$divisionSqlID = 'document.getDocumentDivisionUseIndex';
|
||||
// cache controll
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport()){
|
||||
$cache_key = 'object:'.$obj->module_srl.'_category_srl:'.$obj->category_srl.'_list_count:'.$obj->list_count.'_search_target:'.$obj->search_target.'_search_keyword:'.$obj->search_keyword.'_documents';
|
||||
$output = $oCacheHandler->get($cache_key);
|
||||
$cache_object = $oCacheHandler->get('module_list_documents');
|
||||
if($cache_object) {
|
||||
if(!in_array($cache_key, $cache_object)) {
|
||||
$cache_object[]=$cache_key;
|
||||
$oCacheHandler->put('module_list_documents',$cache_object);
|
||||
}
|
||||
else
|
||||
{
|
||||
$listSqlID = 'document.getDocumentList';
|
||||
$divisionSqlID = 'document.getDocumentDivision';
|
||||
}
|
||||
|
||||
// If you do not value the best division top
|
||||
if(!$division) {
|
||||
$division_args->module_srl = $args->module_srl;
|
||||
$division_args->exclude_module_srl = $args->exclude_module_srl;
|
||||
$division_args->list_count = 1;
|
||||
$division_args->sort_index = $args->sort_index;
|
||||
$division_args->order_type = $args->order_type;
|
||||
$division_args->statusList = $args->statusList;
|
||||
$output = executeQuery($listSqlID, $division_args, $columnList);
|
||||
if($output->data) {
|
||||
$item = array_pop($output->data);
|
||||
$division = $item->list_order;
|
||||
}
|
||||
$division_args = null;
|
||||
}
|
||||
// The last division
|
||||
$last_division = (int)Context::get('last_division');
|
||||
// Division after division from the 5000 value of the specified Wanted
|
||||
if(!$last_division) {
|
||||
$last_division_args->module_srl = $args->module_srl;
|
||||
$last_division_args->exclude_module_srl = $args->exclude_module_srl;
|
||||
$last_division_args->list_count = 1;
|
||||
$last_division_args->sort_index = $args->sort_index;
|
||||
$last_division_args->order_type = $args->order_type;
|
||||
$last_division_args->list_order = $division;
|
||||
$last_division_args->page = 5001;
|
||||
$output = executeQuery($divisionSqlID, $last_division_args, $columnList);
|
||||
if($output->data) {
|
||||
$item = array_pop($output->data);
|
||||
$last_division = $item->list_order;
|
||||
}
|
||||
}
|
||||
// Make sure that after last_division article
|
||||
if($last_division) {
|
||||
$last_division_args = null;
|
||||
$last_division_args->module_srl = $args->module_srl;
|
||||
$last_division_args->exclude_module_srl = $args->exclude_module_srl;
|
||||
$last_division_args->list_order = $last_division;
|
||||
$output = executeQuery("document.getDocumentDivisionCount", $last_division_args);
|
||||
if($output->data->count<1) $last_division = null;
|
||||
}
|
||||
|
||||
$args->division = $division;
|
||||
$args->last_division = $last_division;
|
||||
Context::set('division', $division);
|
||||
Context::set('last_division', $last_division);
|
||||
}
|
||||
// document.getDocumentList query execution
|
||||
// Query_id if you have a group by clause getDocumentListWithinTag getDocumentListWithinComment or used again to perform the query because
|
||||
if(in_array($query_id, array('document.getDocumentListWithinComment', 'document.getDocumentListWithinTag'))) {
|
||||
$group_args = clone($args);
|
||||
$group_args->sort_index = 'documents.'.$args->sort_index;
|
||||
$output = executeQueryArray($query_id, $group_args);
|
||||
if(!$output->toBool()||!count($output->data)) return $output;
|
||||
|
||||
foreach($output->data as $key => $val) {
|
||||
if($val->document_srl) $target_srls[] = $val->document_srl;
|
||||
}
|
||||
|
||||
$page_navigation = $output->page_navigation;
|
||||
$keys = array_keys($output->data);
|
||||
$virtual_number = $keys[0];
|
||||
|
||||
$target_args->document_srls = implode(',',$target_srls);
|
||||
$target_args->list_order = $args->sort_index;
|
||||
$target_args->order_type = $args->order_type;
|
||||
$target_args->list_count = $args->list_count;
|
||||
$target_args->page = 1;
|
||||
$output = executeQueryArray('document.getDocuments', $target_args);
|
||||
$output->page_navigation = $page_navigation;
|
||||
$output->total_count = $page_navigation->total_count;
|
||||
$output->total_page = $page_navigation->total_page;
|
||||
$output->page = $page_navigation->cur_page;
|
||||
} else {
|
||||
$output = executeQueryArray($query_id, $args, $columnList);
|
||||
$cache_object = array();
|
||||
$cache_object[] = $cache_key;
|
||||
$oCacheHandler->put('module_list_documents',$cache_object);
|
||||
}
|
||||
}
|
||||
// Return if no result or an error occurs
|
||||
if(!$output->toBool()||!count($output->data)) return $output;
|
||||
|
||||
$idx = 0;
|
||||
$data = $output->data;
|
||||
unset($output->data);
|
||||
|
||||
if(!isset($virtual_number))
|
||||
{
|
||||
$keys = array_keys($data);
|
||||
$virtual_number = $keys[0];
|
||||
}
|
||||
if(!$output){
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$sort_check = $this->_setSortIndex($obj, $load_extra_vars);
|
||||
|
||||
$obj->sort_index = $sort_check->sort_index;
|
||||
// Check the target and sequence alignment
|
||||
if(!in_array($obj->order_type, array('desc','asc'))) $obj->order_type = 'asc';
|
||||
// If that came across mid module_srl instead of a direct module_srl guhaejum
|
||||
if($obj->mid) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid);
|
||||
unset($obj->mid);
|
||||
}
|
||||
// Module_srl passed the array may be a check whether the array
|
||||
if(is_array($obj->module_srl)) $args->module_srl = implode(',', $obj->module_srl);
|
||||
else $args->module_srl = $obj->module_srl;
|
||||
// Except for the test module_srl
|
||||
if(is_array($obj->exclude_module_srl)) $args->exclude_module_srl = implode(',', $obj->exclude_module_srl);
|
||||
else $args->exclude_module_srl = $obj->exclude_module_srl;
|
||||
// Variable check
|
||||
$args->category_srl = $obj->category_srl?$obj->category_srl:null;
|
||||
$args->sort_index = $obj->sort_index;
|
||||
$args->order_type = $obj->order_type;
|
||||
$args->page = $obj->page?$obj->page:1;
|
||||
$args->list_count = $obj->list_count?$obj->list_count:20;
|
||||
$args->page_count = $obj->page_count?$obj->page_count:10;
|
||||
$args->start_date = $obj->start_date?$obj->start_date:null;
|
||||
$args->end_date = $obj->end_date?$obj->end_date:null;
|
||||
$args->member_srl = $obj->member_srl;
|
||||
$args->statusList = $obj->statusList?$obj->statusList:array($this->getConfigStatus('secret'), $this->getConfigStatus('public'));
|
||||
if($logged_info->is_admin == 'Y') $args->statusList = array($this->getConfigStatus('secret'), $this->getConfigStatus('public'));
|
||||
// Category is selected, further sub-categories until all conditions
|
||||
if($args->category_srl) {
|
||||
$category_list = $this->getCategoryList($args->module_srl);
|
||||
$category_info = $category_list[$args->category_srl];
|
||||
$category_info->childs[] = $args->category_srl;
|
||||
$args->category_srl = implode(',',$category_info->childs);
|
||||
}
|
||||
// Used to specify the default query id (based on several search options to query id modified)
|
||||
$query_id = 'document.getDocumentList';
|
||||
// If the search by specifying the document division naeyonggeomsaekil processed for
|
||||
$use_division = false;
|
||||
|
||||
// Search options
|
||||
$searchOpt->search_target = $obj->search_target;
|
||||
$searchOpt->search_keyword = $obj->search_keyword;
|
||||
$this->_setSearchOption($searchOpt, $args, $query_id, $use_division);
|
||||
|
||||
if ($sort_check->isExtraVars)
|
||||
{
|
||||
$query_id = 'document.getDocumentListExtraSort';
|
||||
$output = executeQueryArray($query_id, $args);
|
||||
}
|
||||
else
|
||||
{
|
||||
/**
|
||||
* list_order asc sort of division that can be used only when
|
||||
**/
|
||||
if($args->sort_index != 'list_order' || $args->order_type != 'asc') $use_division = false;
|
||||
|
||||
/**
|
||||
* If it is true, use_division changed to use the document division
|
||||
**/
|
||||
if($use_division) {
|
||||
// Division begins
|
||||
$division = (int)Context::get('division');
|
||||
|
||||
// order by list_order and (module_srl===0 or module_srl many count), therefore case table full scan
|
||||
if($args->sort_index == 'list_order' && ($args->exclude_module_srl === 0 || count($args->module_srl) > 10))
|
||||
{
|
||||
$listSqlID = 'document.getDocumentListUseIndex';
|
||||
$divisionSqlID = 'document.getDocumentDivisionUseIndex';
|
||||
}
|
||||
else
|
||||
{
|
||||
$listSqlID = 'document.getDocumentList';
|
||||
$divisionSqlID = 'document.getDocumentDivision';
|
||||
}
|
||||
|
||||
// If you do not value the best division top
|
||||
if(!$division) {
|
||||
$division_args->module_srl = $args->module_srl;
|
||||
$division_args->exclude_module_srl = $args->exclude_module_srl;
|
||||
$division_args->list_count = 1;
|
||||
$division_args->sort_index = $args->sort_index;
|
||||
$division_args->order_type = $args->order_type;
|
||||
$division_args->statusList = $args->statusList;
|
||||
$output = executeQuery($listSqlID, $division_args, $columnList);
|
||||
if($output->data) {
|
||||
$item = array_pop($output->data);
|
||||
$division = $item->list_order;
|
||||
}
|
||||
$division_args = null;
|
||||
}
|
||||
// The last division
|
||||
$last_division = (int)Context::get('last_division');
|
||||
// Division after division from the 5000 value of the specified Wanted
|
||||
if(!$last_division) {
|
||||
$last_division_args->module_srl = $args->module_srl;
|
||||
$last_division_args->exclude_module_srl = $args->exclude_module_srl;
|
||||
$last_division_args->list_count = 1;
|
||||
$last_division_args->sort_index = $args->sort_index;
|
||||
$last_division_args->order_type = $args->order_type;
|
||||
$last_division_args->list_order = $division;
|
||||
$last_division_args->page = 5001;
|
||||
$output = executeQuery($divisionSqlID, $last_division_args, $columnList);
|
||||
if($output->data) {
|
||||
$item = array_pop($output->data);
|
||||
$last_division = $item->list_order;
|
||||
}
|
||||
}
|
||||
// Make sure that after last_division article
|
||||
if($last_division) {
|
||||
$last_division_args = null;
|
||||
$last_division_args->module_srl = $args->module_srl;
|
||||
$last_division_args->exclude_module_srl = $args->exclude_module_srl;
|
||||
$last_division_args->list_order = $last_division;
|
||||
$output = executeQuery("document.getDocumentDivisionCount", $last_division_args);
|
||||
if($output->data->count<1) $last_division = null;
|
||||
}
|
||||
|
||||
$args->division = $division;
|
||||
$args->last_division = $last_division;
|
||||
Context::set('division', $division);
|
||||
Context::set('last_division', $last_division);
|
||||
}
|
||||
// document.getDocumentList query execution
|
||||
// Query_id if you have a group by clause getDocumentListWithinTag getDocumentListWithinComment or used again to perform the query because
|
||||
if(in_array($query_id, array('document.getDocumentListWithinComment', 'document.getDocumentListWithinTag'))) {
|
||||
$group_args = clone($args);
|
||||
$group_args->sort_index = 'documents.'.$args->sort_index;
|
||||
$output = executeQueryArray($query_id, $group_args);
|
||||
if(!$output->toBool()||!count($output->data)) return $output;
|
||||
|
||||
foreach($output->data as $key => $val) {
|
||||
if($val->document_srl) $target_srls[] = $val->document_srl;
|
||||
}
|
||||
|
||||
$page_navigation = $output->page_navigation;
|
||||
$keys = array_keys($output->data);
|
||||
$virtual_number = $keys[0];
|
||||
|
||||
$target_args->document_srls = implode(',',$target_srls);
|
||||
$target_args->list_order = $args->sort_index;
|
||||
$target_args->order_type = $args->order_type;
|
||||
$target_args->list_count = $args->list_count;
|
||||
$target_args->page = 1;
|
||||
$output = executeQueryArray('document.getDocuments', $target_args);
|
||||
$output->page_navigation = $page_navigation;
|
||||
$output->total_count = $page_navigation->total_count;
|
||||
$output->total_page = $page_navigation->total_page;
|
||||
$output->page = $page_navigation->cur_page;
|
||||
} else {
|
||||
$output = executeQueryArray($query_id, $args, $columnList);
|
||||
}
|
||||
}
|
||||
// Return if no result or an error occurs
|
||||
if(!$output->toBool()||!count($output->data)) return $output;
|
||||
|
||||
$idx = 0;
|
||||
$data = $output->data;
|
||||
unset($output->data);
|
||||
|
||||
if(!isset($virtual_number))
|
||||
{
|
||||
$keys = array_keys($data);
|
||||
$virtual_number = $keys[0];
|
||||
}
|
||||
|
||||
if($except_notice) {
|
||||
foreach($data as $key => $attribute) {
|
||||
if($attribute->is_notice == 'Y') $virtual_number --;
|
||||
}
|
||||
}
|
||||
|
||||
if($except_notice) {
|
||||
foreach($data as $key => $attribute) {
|
||||
if($attribute->is_notice == 'Y') $virtual_number --;
|
||||
}
|
||||
}
|
||||
if($except_notice && $attribute->is_notice == 'Y') continue;
|
||||
$document_srl = $attribute->document_srl;
|
||||
if(!$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) {
|
||||
$oDocument = null;
|
||||
$oDocument = new documentItem();
|
||||
$oDocument->setAttribute($attribute, false);
|
||||
if($is_admin) $oDocument->setGrant();
|
||||
$GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument;
|
||||
}
|
||||
|
||||
$output->data[$virtual_number] = $GLOBALS['XE_DOCUMENT_LIST'][$document_srl];
|
||||
$virtual_number --;
|
||||
|
||||
foreach($data as $key => $attribute) {
|
||||
if($except_notice && $attribute->is_notice == 'Y') continue;
|
||||
$document_srl = $attribute->document_srl;
|
||||
if(!$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) {
|
||||
$oDocument = null;
|
||||
$oDocument = new documentItem();
|
||||
$oDocument->setAttribute($attribute, false);
|
||||
if($is_admin) $oDocument->setGrant();
|
||||
$GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument;
|
||||
}
|
||||
|
||||
$output->data[$virtual_number] = $GLOBALS['XE_DOCUMENT_LIST'][$document_srl];
|
||||
$virtual_number --;
|
||||
if($load_extra_vars) $this->setToAllDocumentExtraVars();
|
||||
|
||||
if(count($output->data)) {
|
||||
foreach($output->data as $number => $document) {
|
||||
$output->data[$number] = $GLOBALS['XE_DOCUMENT_LIST'][$document->document_srl];
|
||||
}
|
||||
}
|
||||
//insert in cache
|
||||
if($oCacheHandler->isSupport()) $oCacheHandler->put($cache_key,$output);
|
||||
}
|
||||
|
||||
if($load_extra_vars) $this->setToAllDocumentExtraVars();
|
||||
|
||||
if(count($output->data)) {
|
||||
foreach($output->data as $number => $document) {
|
||||
$output->data[$number] = $GLOBALS['XE_DOCUMENT_LIST'][$document->document_srl];
|
||||
}
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue