issue 2365 update module link.

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11207 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
devjin 2012-09-11 07:20:14 +00:00
parent ff608c540a
commit 3c4235309e
3 changed files with 120 additions and 0 deletions

View file

@ -91,6 +91,10 @@
}
}
// XE 1.7
$output = executeQueryArray('module.getNotLinkedModuleGroupSiteSrl');
if($output->toBool() && $output->data && count($output->data) > 0) return true;
return false;
}
@ -345,9 +349,99 @@
}
}
}
// XE 1.7
$output = executeQueryArray('module.getNotLinkedModuleGroupSiteSrl');
if($output->toBool() && $output->data && count($output->data) > 0)
{
foreach($output->data as $siteInfo)
{
unset($args);
$args->site_srl = $siteInfo->site_srl;
//create temp menu.
$args->title = 'Temporary menu';
$menuSrl = $args->menu_srl = getNextSequence();
$args->listorder = $args->menu_srl * -1;
$ioutput = executeQuery('menu.insertMenu', $args);
if(!$ioutput->toBool())
{
return $ioutput;
}
//getNotLinkedModuleBySiteSrl
$soutput = executeQueryArray('module.getNotLinkedModuleBySiteSrl', $args);
$uoutput = $this->updateLinkModule($soutput->data, $menuSrl);
if(!$uoutput->toBool())
{
return $uoutput;
}
}
}
return new Object(0, 'success_updated');
}
/**
* insert menu when not linked module.
*
* @param array $moduleInfos
* @param int $menuSrl
*
* @return Object
**/
private function updateLinkModule($moduleInfos, $menuSrl)
{
if(!$moduleInfos || !is_array($moduleInfos) || count($moduleInfos) == 0 || $menuSrl == 0)
{
return new Object(-1, 'msg_invalid_request');
}
foreach($moduleInfos as $moduleInfo)
{
// search menu.
$args->url = $moduleInfo->mid;
$args->site_srl = $moduleInfo->site_srl;
$output = executeQuery('menu.getMenuItemByUrl', $args);
if($output->toBool() && $output->data)
{
$moduleInfo->menu_srl = $output->data->menu_srl;
}
else
{
// create menu item.
$item_args->menu_srl = $menuSrl;
$item_args->url = $moduleInfo->mid;
$item_args->name = $moduleInfo->mid;
$item_args->menu_item_srl = getNextSequence();
$item_args->listorder = -1*$item_args->menu_item_srl;
$output = executeQuery('menu.insertMenuItem', $item_args);
if(!$output->toBool())
{
return $output;
}
$moduleInfo->menu_srl = $menuSrl;
}
$output = executeQuery('module.updateModule', $moduleInfo);
if(!$output->toBool())
{
return $output;
}
}
$oMenuAdminController = getAdminController('menu');
$oMenuAdminController->makeXmlFile($menuSrl);
return new Object();
}
function updateForUniqueSiteDomain()
{
$output = executeQueryArray("module.getNonuniqueDomains");

View file

@ -0,0 +1,12 @@
<query id="getNotLinkedModuleBySiteSrl" action="select">
<tables>
<table name="modules" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="menu_srl" default="0" />
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" pipe="and" />
</conditions>
</query>

View file

@ -0,0 +1,14 @@
<query id="getNotLinkedModuleGroupSiteSrl" action="select">
<tables>
<table name="modules" />
</tables>
<columns>
<column name="site_srl" />
</columns>
<conditions>
<condition operation="equal" column="menu_srl" default="0" />
</conditions>
<groups>
<group column="site_srl" />
</groups>
</query>