diff --git a/modules/autoinstall/autoinstall.admin.controller.php b/modules/autoinstall/autoinstall.admin.controller.php
index 1f103e7b2..4c8a19c5e 100644
--- a/modules/autoinstall/autoinstall.admin.controller.php
+++ b/modules/autoinstall/autoinstall.admin.controller.php
@@ -228,7 +228,7 @@ class autoinstallAdminController extends autoinstall
{
$xmlDoc->response->packages->item = array($xmlDoc->response->packages->item);
}
- $targets = array('package_srl', 'updatedate', 'latest_item_srl', 'path', 'version', 'category_srl');
+ $targets = array('package_srl', 'updatedate', 'latest_item_srl', 'path', 'version', 'category_srl', 'have_instance');
foreach($xmlDoc->response->packages->item as $item)
{
$args = null;
diff --git a/modules/autoinstall/autoinstall.admin.model.php b/modules/autoinstall/autoinstall.admin.model.php
index 3d9ed71d3..f01bd5e21 100644
--- a/modules/autoinstall/autoinstall.admin.model.php
+++ b/modules/autoinstall/autoinstall.admin.model.php
@@ -228,6 +228,7 @@ class autoinstallAdminModel extends autoinstall
return $result;
}
+
}
/* End of file autoinstall.admin.model.php */
/* Location: ./modules/autoinstall/autoinstall.admin.model.php */
diff --git a/modules/autoinstall/autoinstall.class.php b/modules/autoinstall/autoinstall.class.php
index f85116593..5493c8ea0 100644
--- a/modules/autoinstall/autoinstall.class.php
+++ b/modules/autoinstall/autoinstall.class.php
@@ -108,6 +108,12 @@ class autoinstall extends ModuleObject
$config = $oModuleModel->getModuleConfig('autoinstall');
if(!isset($config->downloadServer)) return true;
+ // 2012.11.12 add column 'have_instance' in autoinstall_packages
+ if(!$oDB->isColumnExists('autoinstall_packages', 'have_instance'))
+ {
+ return TRUE;
+ }
+
return false;
}
@@ -148,6 +154,12 @@ class autoinstall extends ModuleObject
$oModuleController->insertModuleConfig('autoinstall', $config);
}
+ // 2012.11.12 add column 'have_instance' in autoinstall_packages
+ if(!$oDB->isColumnExists('autoinstall_packages', 'have_instance'))
+ {
+ $oDB->addColumn('autoinstall_packages', 'have_instance', 'char', '1', 'N', TRUE);
+ }
+
return new Object(0, 'success_updated');
}
diff --git a/modules/autoinstall/autoinstall.model.php b/modules/autoinstall/autoinstall.model.php
index f85dda4da..85a0129bc 100644
--- a/modules/autoinstall/autoinstall.model.php
+++ b/modules/autoinstall/autoinstall.model.php
@@ -360,6 +360,12 @@ class autoinstallModel extends autoinstall
return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstall', 'package_srl', $packageSrl);
}
+
+ function getHaveInstance($columnList = array())
+ {
+ $output = executeQueryArray('autoinstall.getHaveInstance', NULL, $columnList);
+ return $output->data;
+ }
}
/* End of file autoinstall.model.php */
/* Location: ./modules/autoinstall/autoinstall.model.php */
diff --git a/modules/autoinstall/queries/getHaveInstance.xml b/modules/autoinstall/queries/getHaveInstance.xml
new file mode 100644
index 000000000..5c6c2be0b
--- /dev/null
+++ b/modules/autoinstall/queries/getHaveInstance.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/autoinstall/queries/insertPackage.xml b/modules/autoinstall/queries/insertPackage.xml
index 4b0148c0f..1ce6523eb 100644
--- a/modules/autoinstall/queries/insertPackage.xml
+++ b/modules/autoinstall/queries/insertPackage.xml
@@ -6,6 +6,7 @@
+
diff --git a/modules/autoinstall/queries/updatePackage.xml b/modules/autoinstall/queries/updatePackage.xml
index 7ae6aefd0..e7a17b2f7 100644
--- a/modules/autoinstall/queries/updatePackage.xml
+++ b/modules/autoinstall/queries/updatePackage.xml
@@ -4,6 +4,7 @@
+
diff --git a/modules/autoinstall/schemas/autoinstall_packages.xml b/modules/autoinstall/schemas/autoinstall_packages.xml
index 645fd6db8..c76c71364 100644
--- a/modules/autoinstall/schemas/autoinstall_packages.xml
+++ b/modules/autoinstall/schemas/autoinstall_packages.xml
@@ -2,6 +2,7 @@
+
diff --git a/modules/menu/menu.admin.model.php b/modules/menu/menu.admin.model.php
index f0171b9b6..721d80884 100644
--- a/modules/menu/menu.admin.model.php
+++ b/modules/menu/menu.admin.model.php
@@ -329,9 +329,29 @@ class menuAdminModel extends menu
$output = ModuleHandler::triggerCall('menu.getModuleListInSitemap', 'after', $moduleList);
if(!$output->toBool()) return $output;
- $moduleList = array_unique($moduleList);
+ $localModuleList = array_unique($moduleList);
$oAutoinstallModel = getModel('autoinstall');
+
+ // get have instance
+ $remotePackageList = $oAutoinstallModel->getHaveInstance(array('path'));
+ $remoteModuleList = array();
+ foreach($remotePackageList as $package)
+ {
+ if(strpos($package->path, './modules/') !== 0) continue;
+
+ $pathInfo = explode('/', $package->path);
+ $remoteModuleList[] = $pathInfo[2];
+ }
+
+ // all module list
+ $allModuleList = FileHandler::readDir('./modules', '/^([a-zA-Z0-9_-]+)$/');
+
+ // union have instance and all module list
+ $haveInstance = array_intersect($remoteModuleList, $allModuleList);
+
+ // union
+ $moduleList = array_unique(array_merge($localModuleList, $haveInstance));
$moduleInfoList = array();
Context::loadLang('modules/page/lang');