/**
  * 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;
 }