/** * Display package list * * @return Object */ function dispAutoinstallAdminIndex() { $oModuleModel =& getModel('module'); $config = $oModuleModel->getModuleConfig('autoinstall'); $ftp_info = Context::getFTPInfo(); if (!$ftp_info->ftp_root_path) { Context::set('show_ftp_note', true); } $this->setTemplateFile('index'); $params = array(); $params["act"] = "getResourceapiLastupdate"; $body = XmlGenerater::generate($params); $buff = FileHandler::getRemoteResource(_XE_DOWNLOAD_SERVER_, $body, 3, "POST", "application/xml"); $xml_lUpdate = new XmlParser(); $lUpdateDoc = $xml_lUpdate->parse($buff); $updateDate = $lUpdateDoc->response->updatedate->body; if (!$updateDate) { return $this->stop('msg_connection_fail'); } $oModel =& getModel('autoinstall'); $item = $oModel->getLatestPackage(); if (!$item || $item->updatedate < $updateDate || count($this->categories) < 1) { $oController =& getAdminController('autoinstall'); $oController->_updateinfo(); if (!$_SESSION['__XE_EASYINSTALL_REDIRECT__']) { header('location: ' . getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminIndex')); $_SESSION['__XE_EASYINSTALL_REDIRECT__'] = true; return; } } unset($_SESSION['__XE_EASYINSTALL_REDIRECT__']); $page = Context::get('page'); if (!$page) { $page = 1; } Context::set('page', $page); $order_type = Context::get('order_type'); if (!in_array($order_type, array('asc', 'desc'))) { $order_type = 'desc'; } Context::set('order_type', $order_type); $order_target = Context::get('order_target'); if (!in_array($order_target, array('newest', 'download', 'popular'))) { $order_target = 'newest'; } Context::set('order_target', $order_target); $search_keyword = Context::get('search_keyword'); $childrenList = Context::get('childrenList'); $category_srl = Context::get('category_srl'); if ($childrenList) { $params["category_srl"] = $childrenList; } else { if ($category_srl) { $params["category_srl"] = $category_srl; } } $params["act"] = "getResourceapiPackagelist"; $params["order_target"] = $order_target; $params["order_type"] = $order_type; $params["page"] = $page; if ($search_keyword) { $params["search_keyword"] = $search_keyword; } $xmlDoc = XmlGenerater::getXmlDoc($params); if ($xmlDoc && $xmlDoc->response->packagelist->item) { $item_list = $this->rearranges($xmlDoc->response->packagelist->item); Context::set('item_list', $item_list); $array = array('total_count', 'total_page', 'cur_page', 'page_count', 'first_page', 'last_page'); $page_nav = $this->rearrange($xmlDoc->response->page_navigation, $array); $page_navigation = new PageHandler($page_nav->total_count, $page_nav->total_page, $page_nav->cur_page, 5); Context::set('page_navigation', $page_navigation); } $security = new Security(); $security->encodeHTML('package.', 'package.depends..'); }
/** * Get install info * * @param int $packageSrl Package sequence to get info * @return stdClass install info */ public function getInstallInfo($packageSrl) { $params["act"] = "getResourceapiInstallInfo"; $params["package_srl"] = $packageSrl; $xmlDoc = XmlGenerater::getXmlDoc($params); $oModel = getModel('autoinstall'); $targetpackages = array(); if ($xmlDoc) { $xmlPackage = $xmlDoc->response->package; $package = new stdClass(); $package->package_srl = $xmlPackage->package_srl->body; $package->title = $xmlPackage->title->body; $package->package_description = $xmlPackage->package_description->body; $package->version = $xmlPackage->version->body; $package->path = $xmlPackage->path->body; if ($xmlPackage->depends) { if (!is_array($xmlPackage->depends->item)) { $xmlPackage->depends->item = array($xmlPackage->depends->item); } $package->depends = array(); foreach ($xmlPackage->depends->item as $item) { $dep_item = new stdClass(); $dep_item->package_srl = $item->package_srl->body; $dep_item->title = $item->title->body; $dep_item->version = $item->version->body; $dep_item->path = $item->path->body; $package->depends[] = $dep_item; $targetpackages[$dep_item->package_srl] = 1; } $packages = $oModel->getInstalledPackages(array_keys($targetpackages)); $package->deplist = ""; foreach ($package->depends as $key => $dep) { if (!$packages[$dep->package_srl]) { $package->depends[$key]->installed = FALSE; $package->package_srl .= "," . $dep->package_srl; } else { $package->depends[$key]->installed = TRUE; $package->depends[$key]->cur_version = $packages[$dep->package_srl]->current_version; if (version_compare($dep->version, $packages[$dep->package_srl]->current_version, ">")) { $package->depends[$key]->need_update = TRUE; $package->package_srl .= "," . $dep->package_srl; if ($dep->path === '.') { $package->contain_core = TRUE; } } else { $package->need_update = FALSE; } } } } $installedPackage = $oModel->getInstalledPackage($package_srl); if ($installedPackage) { $package->installed = TRUE; $package->cur_version = $installedPackage->current_version; $package->need_update = version_compare($package->version, $installedPackage->current_version, ">"); } if ($package->path === '.') { $package->contain_core = TRUE; } } return $package; }