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');