mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
add favorite features to admin module
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8703 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
bf2f77fb4d
commit
88638b4ba8
9 changed files with 262 additions and 12 deletions
|
|
@ -27,11 +27,11 @@
|
|||
FileHandler::rename('./files/cache', $temp_cache_dir);
|
||||
FileHandler::makeDir('./files/cache');
|
||||
|
||||
// remove debug files
|
||||
// remove debug files
|
||||
FileHandler::removeFile(_XE_PATH_.'files/_debug_message.php');
|
||||
FileHandler::removeFile(_XE_PATH_.'files/_debug_db_query.php');
|
||||
FileHandler::removeFile(_XE_PATH_.'files/_db_slow_query.php');
|
||||
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_list = $oModuleModel->getModuleList();
|
||||
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
if($oObjectCacheHandler->isSupport()){
|
||||
$truncated[] = $oObjectCacheHandler->truncate();
|
||||
}
|
||||
|
||||
|
||||
if($oTemplateCacheHandler->isSupport()){
|
||||
$truncated[] = $oTemplateCacheHandler->truncate();
|
||||
}
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
// layout submit
|
||||
$output = executeQuery('layout.updateAllLayoutInSiteWithTheme', $args);
|
||||
if (!$output->toBool()) return $output;
|
||||
|
||||
|
||||
$skin_args->site_srl = $site_info->site_srl;
|
||||
|
||||
foreach($vars as $key=>$val){
|
||||
|
|
@ -137,12 +137,125 @@
|
|||
// Save File
|
||||
FileHandler::writeFile($theme_file, $theme_buff);
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAdminTheme');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Toggle favorite
|
||||
**/
|
||||
function procAdminToggleFavorite()
|
||||
{
|
||||
$siteSrl = Context::get('site_srl');
|
||||
$moduleName = Context::get('module_name');
|
||||
$key = Context::get('key');
|
||||
|
||||
// check favorite exists
|
||||
$oModel = &getAdminModel('admin');
|
||||
$output = $oModel->isExistsFavorite($siteSrl, $moduleName, $key);
|
||||
if (!$output->toBool()) return $output;
|
||||
|
||||
// if exists, delete favorite
|
||||
if ($output->get('result'))
|
||||
{
|
||||
$favoriteSrl = $output->get('favoriteSrl');
|
||||
$output = $this->deleteFavorite($favoriteSrl);
|
||||
}
|
||||
|
||||
// if not exists, insert favorite
|
||||
else
|
||||
{
|
||||
$output = $this->insertFavorite($siteSrl, $moduleName, $key);
|
||||
}
|
||||
|
||||
if (!$output->toBool()) return $output;
|
||||
|
||||
$this->setRedirectUrl(Context::get('error_return_url'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Insert favorite
|
||||
**/
|
||||
function insertFavorite($siteSrl, $module, $key)
|
||||
{
|
||||
$args->site_srl = $siteSrl;
|
||||
$args->module = $module;
|
||||
$args->key = $key;
|
||||
$output = executeQuery('admin.insertFavorite', $args);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete favorite
|
||||
**/
|
||||
function deleteFavorite($favoriteSrl)
|
||||
{
|
||||
$args->admin_favorite_srl = $favoriteSrl;
|
||||
$output = executeQuery('admin.deleteFavorite', $args);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief set favorites at one time
|
||||
**/
|
||||
function setFavoritesByModule($siteSrl, $module, $keyList)
|
||||
{
|
||||
$oModel = &getAdminModel('admin');
|
||||
$output = $oModel->getFavoriteListByModule($siteSrl, $module);
|
||||
if (!$output->toBool()) return $output;
|
||||
$originList = $output->get('list');
|
||||
|
||||
// find insert key
|
||||
$insertKey = array_diff($keyList, $originList);
|
||||
|
||||
// find delete key
|
||||
$deleteKey = array_diff($originList, $keyList);
|
||||
|
||||
// start transaction
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
||||
// insert key
|
||||
foreach($insertKey as $key)
|
||||
{
|
||||
$output = $this->insertFavorite($siteSrl, $module, $key);
|
||||
if (!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
|
||||
// delete key
|
||||
foreach($deleteKey as $key)
|
||||
{
|
||||
$output = $oModel->isExistsFavorite($siteSrl, $module, $key);
|
||||
if (!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
$favoriteSrl = $output->get('favoriteSrl');
|
||||
|
||||
if ($favoriteSrl)
|
||||
{
|
||||
$output = $this->deleteFavorite($favoriteSrl);
|
||||
if (!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// commit
|
||||
$oDB->commit();
|
||||
|
||||
return new Object();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
set_time_limit(5);
|
||||
require_once(_XE_PATH_.'libs/ftp.class.php');
|
||||
$ftp_info = Context::getRequestVars();
|
||||
if(!$ftp_info->ftp_user || !$ftp_info->ftp_password)
|
||||
if(!$ftp_info->ftp_user || !$ftp_info->ftp_password)
|
||||
{
|
||||
return new Object(-1, 'msg_ftp_invalid_auth_info');
|
||||
}
|
||||
|
|
@ -112,10 +112,10 @@
|
|||
$info['use_ssl'] = $db_info->use_ssl;
|
||||
|
||||
$info['phpext'] = '';
|
||||
foreach (get_loaded_extensions() as $ext) {
|
||||
foreach (get_loaded_extensions() as $ext) {
|
||||
$ext = strtolower($ext);
|
||||
if(in_array($ext, $skip['ext'])) continue;
|
||||
$info['phpext'] .= '|'. $ext;
|
||||
$info['phpext'] .= '|'. $ext;
|
||||
}
|
||||
$info['phpext'] = substr($info['phpext'],1);
|
||||
|
||||
|
|
@ -123,7 +123,7 @@
|
|||
$oModuleModel = &getModel('module');
|
||||
$module_list = $oModuleModel->getModuleList();
|
||||
foreach($module_list as $module){
|
||||
if(in_array($module->module, $skip['module'])) continue;
|
||||
if(in_array($module->module, $skip['module'])) continue;
|
||||
$info['module'] .= '|'.$module->module;
|
||||
}
|
||||
$info['module'] = substr($info['module'],1);
|
||||
|
|
@ -132,7 +132,7 @@
|
|||
$oAddonAdminModel = &getAdminModel('addon');
|
||||
$addon_list = $oAddonAdminModel->getAddonList();
|
||||
foreach($addon_list as $addon){
|
||||
if(in_array($addon->addon, $skip['addon'])) continue;
|
||||
if(in_array($addon->addon, $skip['addon'])) continue;
|
||||
$info['addon'] .= '|'.$addon->addon;
|
||||
}
|
||||
$info['addon'] = substr($info['addon'],1);
|
||||
|
|
@ -242,7 +242,7 @@
|
|||
|
||||
if(is_array($skin_infos->skininfo))$skin_list = $skin_infos->skininfo;
|
||||
else $skin_list = array($skin_infos->skininfo);
|
||||
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$skins = array();
|
||||
foreach($skin_list as $val){
|
||||
|
|
@ -330,4 +330,78 @@
|
|||
|
||||
return $lang->menu_gnb_sub;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get admin favorite list
|
||||
**/
|
||||
function getFavoriteList($siteSrl)
|
||||
{
|
||||
$args->site_srl = $siteSrl;
|
||||
$output = executeQueryArray('admin.getFavoriteList', $args);
|
||||
if (!$output->toBool()) return $output;
|
||||
if (!$output->data) return new Object();
|
||||
|
||||
foreach($output->data as $row)
|
||||
{
|
||||
$targetModule = $row->module;
|
||||
$oTargetModuleAdminModel = &getAdminModel($targetModule);
|
||||
if (!$oTargetModuleAdminModel) continue;
|
||||
if (!method_exists($oTargetModuleAdminModel, 'getFavoriteInfo')) continue;
|
||||
|
||||
$favoriteInfo = $oTargetModuleAdminModel->getFavoriteInfo($row->key);
|
||||
$favoriteList[] = $favoriteInfo;
|
||||
}
|
||||
|
||||
$returnObject = new Object();
|
||||
$returnObject->add('favoriteList', $favoriteList);
|
||||
return $returnObject;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check available insert favorite
|
||||
**/
|
||||
function isExistsFavorite($siteSrl, $module, $key)
|
||||
{
|
||||
$args->site_srl = $siteSrl;
|
||||
$args->module = $module;
|
||||
$args->key = $key;
|
||||
$output = executeQuery('admin.getFavorite', $args);
|
||||
if (!$output->toBool()) return $output;
|
||||
|
||||
$returnObject = new Object();
|
||||
if ($output->data)
|
||||
{
|
||||
$returnObject->add('result', true);
|
||||
$returnObject->add('favoriteSrl', $output->data->admin_favorite_srl);
|
||||
}
|
||||
else
|
||||
{
|
||||
$returnObject->add('result', false);
|
||||
}
|
||||
|
||||
return $returnObject;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get favorite by module, site
|
||||
**/
|
||||
function getFavoriteListByModule($siteSrl, $module)
|
||||
{
|
||||
$args->site_srl = $siteSrl;
|
||||
$args->module = $module;
|
||||
$columnList = array('key');
|
||||
$output = executeQueryArray('admin.getFavoriteList', $args, $columnList);
|
||||
if (!$output->toBool()) return $output;
|
||||
if (!$output->data) $output->data = array();
|
||||
|
||||
$list = array();
|
||||
foreach($output->data as $row)
|
||||
{
|
||||
$list[$row->key] = $row->key;
|
||||
}
|
||||
|
||||
$returnObject = new Object();
|
||||
$returnObject->add('list', $list);
|
||||
return $returnObject;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
<action name="procAdminRecompileCacheFile" type="controller" standalone="true" />
|
||||
<action name="procAdminLogout" type="controller" standalone="true" />
|
||||
<action name="procAdminInsertThemeInfo" type="controller" standalone="true" ruleset="insertThemeInfo" />
|
||||
<action name="procAdminToggleFavorite" type="controller" ruleset="toggleFavorite" />
|
||||
|
||||
<action name="getAdminFTPList" type="model" standalone="true" />
|
||||
</actions>
|
||||
|
|
|
|||
8
modules/admin/queries/deleteFavorite.xml
Normal file
8
modules/admin/queries/deleteFavorite.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<query id="deleteFavorite" action="delete">
|
||||
<tables>
|
||||
<table name="admin_favorite" />
|
||||
</tables>
|
||||
<conditions>
|
||||
<condition operation="equal" column="admin_favorite_srl" var="admin_favorite_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
17
modules/admin/queries/getFavorite.xml
Normal file
17
modules/admin/queries/getFavorite.xml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<query id="getFavorite" action="select">
|
||||
<tables>
|
||||
<table name="admin_favorite" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="admin_favorite_srl" var="favorite_srl" />
|
||||
<condition operation="equal" column="site_srl" var="site_srl" pipe="and" />
|
||||
<condition operation="equal" column="module" var="module" pipe="and" />
|
||||
<condition operation="equal" column="key" var="key" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="admin_favorite_srl" order="desc" />
|
||||
</navigation>
|
||||
</query>
|
||||
12
modules/admin/queries/getFavoriteList.xml
Normal file
12
modules/admin/queries/getFavoriteList.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="getFavoriteList" action="select">
|
||||
<tables>
|
||||
<table name="admin_favorite" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="site_srl" var="site_srl" />
|
||||
<condition operation="equal" column="module" var="module" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
10
modules/admin/queries/insertFavorite.xml
Normal file
10
modules/admin/queries/insertFavorite.xml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<query id="insertFavorite" action="insert">
|
||||
<tables>
|
||||
<table name="admin_favorite" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="site_srl" var="site_srl" filter="number" notnull="notnull" />
|
||||
<column name="module" var="module" notnull="notnull" />
|
||||
<column name="key" var="key" notnull="notnull" />
|
||||
</columns>
|
||||
</query>
|
||||
9
modules/admin/ruleset/toggleFavorite.xml
Normal file
9
modules/admin/ruleset/toggleFavorite.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules />
|
||||
<fields>
|
||||
<field name="site_srl" required="true" rule="number" />
|
||||
<field name="module_name" required="true" />
|
||||
<field name="key" required="true" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
6
modules/admin/schemas/admin_favorite.xml
Normal file
6
modules/admin/schemas/admin_favorite.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<table name="admin_favorite">
|
||||
<column name="admin_favorite_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" auto_increment="auto_increment" />
|
||||
<column name="site_srl" type="number" size="11" />
|
||||
<column name="module" type="varchar" size="80" />
|
||||
<column name="key" type="varchar" size="255" />
|
||||
</table>
|
||||
Loading…
Add table
Add a link
Reference in a new issue