From 5142ab64f824242e855b2ac99b1ec72fab046eac Mon Sep 17 00:00:00 2001 From: ucorina Date: Tue, 28 Aug 2012 08:54:47 +0000 Subject: [PATCH] Issue 2310: Make getAllSites query accesible to all modules git-svn-id: http://xe-core.googlecode.com/svn/branches/luminous@11108 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/admin.admin.model.php | 79 +++++++++++++++++------------ 1 file changed, 46 insertions(+), 33 deletions(-) diff --git a/modules/admin/admin.admin.model.php b/modules/admin/admin.admin.model.php index 0c2d77fdf..2a2b81b7c 100644 --- a/modules/admin/admin.admin.model.php +++ b/modules/admin/admin.admin.model.php @@ -462,41 +462,54 @@ */ function getSiteAllList() { - if(Context::get('domain')) $args->domain = Context::get('domain'); - $columnList = array('domain', 'site_srl'); - - $siteList = array(); - $output = executeQueryArray('admin.getSiteAllList', $args, $columnList); - if($output->toBool()) $siteList = $output->data; - - $oModuleModel = &getModel('module'); - foreach($siteList as $key => $value) - { - $args->site_srl = $value->site_srl; - $list = $oModuleModel->getModuleSrlList($args); - - if(!is_array($list)) - { - $list = array($list); - } - - foreach($list as $k => $v) - { - if(!is_dir('./modules/' . $v->module)) - { - unset($list[$k]); - } - } - - if(!count($list)) - { - unset($siteList[$key]); - } - } - - $this->add('site_list', $siteList); + if(Context::get('domain')) $domain = Context::get('domain'); + $siteList = $this->getAllSitesThatHaveModules($domain); + $this->add('site_list', $siteList); } + /** + * Returns a list of all sites that contain modules + * For each site domain and site_srl are retrieved + * + * @return array + */ + function getAllSitesThatHaveModules($domain = null) + { + $args = new stdClass(); + if($domain) $args->domain = $domain; + $columnList = array('domain', 'site_srl'); + + $siteList = array(); + $output = executeQueryArray('admin.getSiteAllList', $args, $columnList); + if($output->toBool()) $siteList = $output->data; + + $oModuleModel = &getModel('module'); + foreach($siteList as $key => $value) + { + $args->site_srl = $value->site_srl; + $list = $oModuleModel->getModuleSrlList($args); + + if(!is_array($list)) + { + $list = array($list); + } + + foreach($list as $k => $v) + { + if(!is_dir('./modules/' . $v->module)) + { + unset($list[$k]); + } + } + + if(!count($list)) + { + unset($siteList[$key]); + } + } + return $siteList; + } + /** * Return site count * @param string $date