mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-09 12:02:24 +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
|
|
@ -144,5 +144,118 @@
|
||||||
}
|
}
|
||||||
else return $output;
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -330,4 +330,78 @@
|
||||||
|
|
||||||
return $lang->menu_gnb_sub;
|
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="procAdminRecompileCacheFile" type="controller" standalone="true" />
|
||||||
<action name="procAdminLogout" type="controller" standalone="true" />
|
<action name="procAdminLogout" type="controller" standalone="true" />
|
||||||
<action name="procAdminInsertThemeInfo" type="controller" standalone="true" ruleset="insertThemeInfo" />
|
<action name="procAdminInsertThemeInfo" type="controller" standalone="true" ruleset="insertThemeInfo" />
|
||||||
|
<action name="procAdminToggleFavorite" type="controller" ruleset="toggleFavorite" />
|
||||||
|
|
||||||
<action name="getAdminFTPList" type="model" standalone="true" />
|
<action name="getAdminFTPList" type="model" standalone="true" />
|
||||||
</actions>
|
</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