diff --git a/modules/module/module.class.php b/modules/module/module.class.php
index feb99a7b1..70b933f32 100644
--- a/modules/module/module.class.php
+++ b/modules/module/module.class.php
@@ -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");
diff --git a/modules/module/queries/getNotLinkedModuleBySiteSrl.xml b/modules/module/queries/getNotLinkedModuleBySiteSrl.xml
new file mode 100644
index 000000000..1a239b4c1
--- /dev/null
+++ b/modules/module/queries/getNotLinkedModuleBySiteSrl.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/module/queries/getNotLinkedModuleGroupSiteSrl.xml b/modules/module/queries/getNotLinkedModuleGroupSiteSrl.xml
new file mode 100644
index 000000000..b652a74d1
--- /dev/null
+++ b/modules/module/queries/getNotLinkedModuleGroupSiteSrl.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+