mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-05 17:51:40 +09:00
issue 2662 adminlogging, autoinstall
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12236 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
db5e4b2ff0
commit
71361410b6
10 changed files with 2290 additions and 2233 deletions
|
|
@ -1,358 +1,361 @@
|
|||
<?php
|
||||
/**
|
||||
* Model class of the autoinstall module
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
**/
|
||||
class autoinstallModel extends autoinstall {
|
||||
/**
|
||||
* Model class of the autoinstall module
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
*/
|
||||
class autoinstallModel extends autoinstall
|
||||
{
|
||||
/**
|
||||
* Get category information
|
||||
*
|
||||
* @param int $category_srl The sequence of category to get information
|
||||
* @return object
|
||||
*/
|
||||
function getCategory($category_srl)
|
||||
{
|
||||
$args->category_srl = $category_srl;
|
||||
$output = executeQueryArray("autoinstall.getCategory", $args);
|
||||
if(!$output->data) return null;
|
||||
return array_shift($output->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get category information
|
||||
*
|
||||
* @param int $category_srl The sequence of category to get information
|
||||
* @return object
|
||||
*/
|
||||
function getCategory($category_srl)
|
||||
{
|
||||
$args->category_srl = $category_srl;
|
||||
$output = executeQueryArray("autoinstall.getCategory", $args);
|
||||
if(!$output->data) return null;
|
||||
return array_shift($output->data);
|
||||
}
|
||||
/**
|
||||
* Get packages information
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function getPackages()
|
||||
{
|
||||
$output = executeQueryArray("autoinstall.getPackages");
|
||||
if(!$output->data) return array();
|
||||
return $output->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get packages information
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function getPackages()
|
||||
{
|
||||
$output = executeQueryArray("autoinstall.getPackages");
|
||||
if(!$output->data) return array();
|
||||
return $output->data;
|
||||
}
|
||||
/**
|
||||
* Get installed packages information
|
||||
*
|
||||
* @param int $package_srl The sequence of package to get information
|
||||
* @return object
|
||||
*/
|
||||
function getInstalledPackage($package_srl)
|
||||
{
|
||||
$args->package_srl = $package_srl;
|
||||
$output = executeQueryArray("autoinstall.getInstalledPackage", $args);
|
||||
if(!$output->data) return null;
|
||||
return array_shift($output->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get installed packages information
|
||||
*
|
||||
* @param int $package_srl The sequence of package to get information
|
||||
* @return object
|
||||
*/
|
||||
function getInstalledPackage($package_srl)
|
||||
{
|
||||
$args->package_srl = $package_srl;
|
||||
$output = executeQueryArray("autoinstall.getInstalledPackage", $args);
|
||||
if(!$output->data) return null;
|
||||
return array_shift($output->data);
|
||||
}
|
||||
/**
|
||||
* Get one package information
|
||||
*
|
||||
* @param int $package_srl The sequence of package to get information
|
||||
* @return object
|
||||
*/
|
||||
function getPackage($package_srl)
|
||||
{
|
||||
$args->package_srl = $package_srl;
|
||||
$output = executeQueryArray("autoinstall.getPackage", $args);
|
||||
if(!$output->data) return null;
|
||||
return array_shift($output->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get one package information
|
||||
*
|
||||
* @param int $package_srl The sequence of package to get information
|
||||
* @return object
|
||||
*/
|
||||
function getPackage($package_srl)
|
||||
{
|
||||
$args->package_srl = $package_srl;
|
||||
$output = executeQueryArray("autoinstall.getPackage", $args);
|
||||
if(!$output->data) return null;
|
||||
return array_shift($output->data);
|
||||
}
|
||||
/**
|
||||
* Get category list
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function getCategoryList()
|
||||
{
|
||||
$output = executeQueryArray("autoinstall.getCategories");
|
||||
if(!$output->toBool() || !$output->data) return array();
|
||||
|
||||
/**
|
||||
* Get category list
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function getCategoryList()
|
||||
{
|
||||
$output = executeQueryArray("autoinstall.getCategories");
|
||||
if(!$output->toBool() || !$output->data) return array();
|
||||
$categoryList = array();
|
||||
foreach($output->data as $category)
|
||||
{
|
||||
$category->children = array();
|
||||
$categoryList[$category->category_srl] = $category;
|
||||
}
|
||||
|
||||
$categoryList = array();
|
||||
foreach($output->data as $category)
|
||||
{
|
||||
$category->children = array();
|
||||
$categoryList[$category->category_srl] = $category;
|
||||
}
|
||||
|
||||
$depth0 = array();
|
||||
foreach($categoryList as $key => $category)
|
||||
{
|
||||
if($category->parent_srl)
|
||||
{
|
||||
$categoryList[$category->parent_srl]->children[] =& $categoryList[$key];
|
||||
}
|
||||
else
|
||||
{
|
||||
$depth0[] = $key;
|
||||
}
|
||||
}
|
||||
$resultList = array();
|
||||
foreach($depth0 as $category_srl)
|
||||
{
|
||||
$this->setDepth($categoryList[$category_srl], 0, $categoryList, $resultList);
|
||||
}
|
||||
return $resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get pcakge count in category
|
||||
*
|
||||
* @param int $category_srl The sequence of category to get count
|
||||
* @return int
|
||||
*/
|
||||
function getPackageCount($category_srl)
|
||||
{
|
||||
$args->category_srl = $category_srl;
|
||||
$output = executeQuery("autoinstall.getPackageCount", $args);
|
||||
if(!$output->data) return 0;
|
||||
return $output->data->count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get installed package count
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
function getInstalledPackageCount()
|
||||
{
|
||||
$output = executeQuery("autoinstall.getInstalledPackageCount", $args);
|
||||
if(!$output->data) return 0;
|
||||
return $output->data->count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set depth, children list and package count of category
|
||||
*
|
||||
* @param object $item Category information
|
||||
* @param int $depth Depth of category
|
||||
* @param array $list Category list
|
||||
* @param array $resultList Final result list
|
||||
* @return string $siblingList Comma seperated list
|
||||
*/
|
||||
function setDepth(&$item, $depth, &$list, &$resultList)
|
||||
{
|
||||
$resultList[$item->category_srl] =& $item;
|
||||
$item->depth = $depth;
|
||||
$siblingList = $item->category_srl;
|
||||
foreach($item->children as $child)
|
||||
{
|
||||
$siblingList .= ",".$this->setDepth($list[$child->category_srl], $depth+1, $list, $resultList);
|
||||
}
|
||||
if(count($item->children) < 1)
|
||||
{
|
||||
$item->nPackages = $this->getPackageCount($item->category_srl);
|
||||
}
|
||||
$item->childrenList = $siblingList;
|
||||
return $siblingList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get lastest package information
|
||||
*
|
||||
* @return object Returns lastest package information. If no result returns null.
|
||||
*/
|
||||
function getLatestPackage() {
|
||||
$output = executeQueryArray("autoinstall.getLatestPackage");
|
||||
if(!$output->data) return null;
|
||||
return array_shift($output->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get installed package informations
|
||||
*
|
||||
* @param array $package_list Package sequence list to get information
|
||||
* @return array Returns array contains pacakge information. If no result returns empty array.
|
||||
*/
|
||||
function getInstalledPackages($package_list) {
|
||||
$args->package_list = $package_list;
|
||||
$output = executeQueryArray("autoinstall.getInstalledPackages", $args);
|
||||
$result = array();
|
||||
if(!$output->data) return $result;
|
||||
foreach($output->data as $value)
|
||||
{
|
||||
$result[$value->package_srl] = $value;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get installed package list
|
||||
*
|
||||
* @param int $page
|
||||
* @return Object
|
||||
*/
|
||||
function getInstalledPackageList($page)
|
||||
{
|
||||
$args->page = $page;
|
||||
$args->list_count = 10;
|
||||
$args->page_count = 5;
|
||||
$output = executeQueryArray("autoinstall.getInstalledPackageList", $args);
|
||||
$res = array();
|
||||
if ($output->data)
|
||||
$depth0 = array();
|
||||
foreach($categoryList as $key => $category)
|
||||
{
|
||||
if($category->parent_srl)
|
||||
{
|
||||
foreach($output->data as $val)
|
||||
{
|
||||
$res[$val->package_srl] = $val;
|
||||
}
|
||||
$categoryList[$category->parent_srl]->children[] =& $categoryList[$key];
|
||||
}
|
||||
$output->data = $res;
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get type using path
|
||||
*
|
||||
* @param string $path Path to get type
|
||||
* @return string
|
||||
*/
|
||||
function getTypeFromPath($path)
|
||||
{
|
||||
if(!$path) return null;
|
||||
if($path == ".") return "core";
|
||||
$path_array = explode("/", $path);
|
||||
$target_name = array_pop($path_array);
|
||||
$type = substr(array_pop($path_array), 0, -1);
|
||||
return $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get config file path by type
|
||||
*
|
||||
* @param string $type Type to get config file path
|
||||
* @return string
|
||||
*/
|
||||
function getConfigFilePath($type)
|
||||
{
|
||||
$config_file = null;
|
||||
switch($type)
|
||||
else
|
||||
{
|
||||
case "m.layout":
|
||||
case "module":
|
||||
case "addon":
|
||||
case "layout":
|
||||
case "widget":
|
||||
$config_file = "/conf/info.xml";
|
||||
break;
|
||||
case "component":
|
||||
$config_file = "/info.xml";
|
||||
break;
|
||||
case "m.skin":
|
||||
case "skin":
|
||||
case "widgetstyle":
|
||||
case "style":
|
||||
$config_file = "/skin.xml";
|
||||
break;
|
||||
case "drcomponent":
|
||||
$config_file = "/info.xml";
|
||||
break;
|
||||
$depth0[] = $key;
|
||||
}
|
||||
return $config_file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns target is removable
|
||||
*
|
||||
* @param string $path Path
|
||||
* @return bool
|
||||
*/
|
||||
function checkRemovable($path)
|
||||
$resultList = array();
|
||||
foreach($depth0 as $category_srl)
|
||||
{
|
||||
$path_array = explode("/", $path);
|
||||
$target_name = array_pop($path_array);
|
||||
$oModule =& getModule($target_name, "class");
|
||||
if(!$oModule) return false;
|
||||
if(method_exists($oModule, "moduleUninstall")) return true;
|
||||
else return false;
|
||||
$this->setDepth($categoryList[$category_srl], 0, $categoryList, $resultList);
|
||||
}
|
||||
return $resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get sequence of package by path
|
||||
*
|
||||
* @param string $path Path to get sequence
|
||||
* @return int
|
||||
*/
|
||||
function getPackageSrlByPath($path)
|
||||
/**
|
||||
* Get pcakge count in category
|
||||
*
|
||||
* @param int $category_srl The sequence of category to get count
|
||||
* @return int
|
||||
*/
|
||||
function getPackageCount($category_srl)
|
||||
{
|
||||
$args->category_srl = $category_srl;
|
||||
$output = executeQuery("autoinstall.getPackageCount", $args);
|
||||
if(!$output->data) return 0;
|
||||
return $output->data->count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get installed package count
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
function getInstalledPackageCount()
|
||||
{
|
||||
$output = executeQuery("autoinstall.getInstalledPackageCount", $args);
|
||||
if(!$output->data) return 0;
|
||||
return $output->data->count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set depth, children list and package count of category
|
||||
*
|
||||
* @param object $item Category information
|
||||
* @param int $depth Depth of category
|
||||
* @param array $list Category list
|
||||
* @param array $resultList Final result list
|
||||
* @return string $siblingList Comma seperated list
|
||||
*/
|
||||
function setDepth(&$item, $depth, &$list, &$resultList)
|
||||
{
|
||||
$resultList[$item->category_srl] =& $item;
|
||||
$item->depth = $depth;
|
||||
$siblingList = $item->category_srl;
|
||||
foreach($item->children as $child)
|
||||
{
|
||||
if (!$path) return;
|
||||
$siblingList .= ",".$this->setDepth($list[$child->category_srl], $depth+1, $list, $resultList);
|
||||
}
|
||||
if(count($item->children) < 1)
|
||||
{
|
||||
$item->nPackages = $this->getPackageCount($item->category_srl);
|
||||
}
|
||||
$item->childrenList = $siblingList;
|
||||
return $siblingList;
|
||||
}
|
||||
|
||||
if(substr($path,-1) == '/') $path = substr($path, 0, strlen($path)-1);
|
||||
/**
|
||||
* Get lastest package information
|
||||
*
|
||||
* @return object Returns lastest package information. If no result returns null.
|
||||
*/
|
||||
function getLatestPackage()
|
||||
{
|
||||
$output = executeQueryArray("autoinstall.getLatestPackage");
|
||||
if(!$output->data) return null;
|
||||
return array_shift($output->data);
|
||||
}
|
||||
|
||||
if (!$GLOBLAS['XE_AUTOINSTALL_PACKAGE_SRL_BY_PATH'][$path])
|
||||
/**
|
||||
* Get installed package informations
|
||||
*
|
||||
* @param array $package_list Package sequence list to get information
|
||||
* @return array Returns array contains pacakge information. If no result returns empty array.
|
||||
*/
|
||||
function getInstalledPackages($package_list)
|
||||
{
|
||||
$args->package_list = $package_list;
|
||||
$output = executeQueryArray("autoinstall.getInstalledPackages", $args);
|
||||
$result = array();
|
||||
if(!$output->data) return $result;
|
||||
foreach($output->data as $value)
|
||||
{
|
||||
$result[$value->package_srl] = $value;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get installed package list
|
||||
*
|
||||
* @param int $page
|
||||
* @return Object
|
||||
*/
|
||||
function getInstalledPackageList($page)
|
||||
{
|
||||
$args->page = $page;
|
||||
$args->list_count = 10;
|
||||
$args->page_count = 5;
|
||||
$output = executeQueryArray("autoinstall.getInstalledPackageList", $args);
|
||||
$res = array();
|
||||
if($output->data)
|
||||
{
|
||||
foreach($output->data as $val)
|
||||
{
|
||||
$args->path = $path;
|
||||
$output = executeQuery('autoinstall.getPackageSrlByPath', $args);
|
||||
|
||||
$GLOBLAS['XE_AUTOINSTALL_PACKAGE_SRL_BY_PATH'][$path] = $output->data->package_srl;
|
||||
$res[$val->package_srl] = $val;
|
||||
}
|
||||
|
||||
return $GLOBLAS['XE_AUTOINSTALL_PACKAGE_SRL_BY_PATH'][$path];
|
||||
}
|
||||
$output->data = $res;
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get remove url by package srl
|
||||
*
|
||||
* @param int $packageSrl Sequence of pakcage to get url
|
||||
* @return string
|
||||
*/
|
||||
function getRemoveUrlByPackageSrl($packageSrl)
|
||||
/**
|
||||
* Get type using path
|
||||
*
|
||||
* @param string $path Path to get type
|
||||
* @return string
|
||||
*/
|
||||
function getTypeFromPath($path)
|
||||
{
|
||||
if(!$path) return null;
|
||||
if($path == ".") return "core";
|
||||
$path_array = explode("/", $path);
|
||||
$target_name = array_pop($path_array);
|
||||
$type = substr(array_pop($path_array), 0, -1);
|
||||
return $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get config file path by type
|
||||
*
|
||||
* @param string $type Type to get config file path
|
||||
* @return string
|
||||
*/
|
||||
function getConfigFilePath($type)
|
||||
{
|
||||
$config_file = null;
|
||||
switch($type)
|
||||
{
|
||||
$ftp_info = Context::getFTPInfo();
|
||||
if (!$ftp_info->ftp_root_path) return;
|
||||
|
||||
if (!$packageSrl) return;
|
||||
|
||||
return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminUninstall', 'package_srl', $packageSrl);
|
||||
case "m.layout":
|
||||
case "module":
|
||||
case "addon":
|
||||
case "layout":
|
||||
case "widget":
|
||||
$config_file = "/conf/info.xml";
|
||||
break;
|
||||
case "component":
|
||||
$config_file = "/info.xml";
|
||||
break;
|
||||
case "m.skin":
|
||||
case "skin":
|
||||
case "widgetstyle":
|
||||
case "style":
|
||||
$config_file = "/skin.xml";
|
||||
break;
|
||||
case "drcomponent":
|
||||
$config_file = "/info.xml";
|
||||
break;
|
||||
}
|
||||
return $config_file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get remove url by path
|
||||
*
|
||||
* @param string $path Path to get url
|
||||
* @return string
|
||||
*/
|
||||
function getRemoveUrlByPath($path)
|
||||
/**
|
||||
* Returns target is removable
|
||||
*
|
||||
* @param string $path Path
|
||||
* @return bool
|
||||
*/
|
||||
function checkRemovable($path)
|
||||
{
|
||||
$path_array = explode("/", $path);
|
||||
$target_name = array_pop($path_array);
|
||||
$oModule =& getModule($target_name, "class");
|
||||
if(!$oModule) return false;
|
||||
if(method_exists($oModule, "moduleUninstall")) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get sequence of package by path
|
||||
*
|
||||
* @param string $path Path to get sequence
|
||||
* @return int
|
||||
*/
|
||||
function getPackageSrlByPath($path)
|
||||
{
|
||||
if(!$path) return;
|
||||
|
||||
if(substr($path,-1) == '/') $path = substr($path, 0, strlen($path)-1);
|
||||
|
||||
if(!$GLOBLAS['XE_AUTOINSTALL_PACKAGE_SRL_BY_PATH'][$path])
|
||||
{
|
||||
if (!$path) return;
|
||||
$args->path = $path;
|
||||
$output = executeQuery('autoinstall.getPackageSrlByPath', $args);
|
||||
|
||||
$ftp_info = Context::getFTPInfo();
|
||||
if (!$ftp_info->ftp_root_path) return;
|
||||
|
||||
$packageSrl = $this->getPackageSrlByPath($path);
|
||||
if (!$packageSrl) return;
|
||||
|
||||
return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminUninstall', 'package_srl', $packageSrl);
|
||||
$GLOBLAS['XE_AUTOINSTALL_PACKAGE_SRL_BY_PATH'][$path] = $output->data->package_srl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get update url by package srl
|
||||
*
|
||||
* @param int $packageSrl Sequence to get url
|
||||
* @return string
|
||||
*/
|
||||
function getUpdateUrlByPackageSrl($packageSrl)
|
||||
{
|
||||
if (!$packageSrl) return;
|
||||
return $GLOBLAS['XE_AUTOINSTALL_PACKAGE_SRL_BY_PATH'][$path];
|
||||
}
|
||||
|
||||
return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstall', 'package_srl', $packageSrl);
|
||||
}
|
||||
/**
|
||||
* Get remove url by package srl
|
||||
*
|
||||
* @param int $packageSrl Sequence of pakcage to get url
|
||||
* @return string
|
||||
*/
|
||||
function getRemoveUrlByPackageSrl($packageSrl)
|
||||
{
|
||||
$ftp_info = Context::getFTPInfo();
|
||||
if(!$ftp_info->ftp_root_path) return;
|
||||
|
||||
/**
|
||||
* Get update url by path
|
||||
*
|
||||
* @param string $path Path to get url
|
||||
* @return string
|
||||
*/
|
||||
function getUpdateUrlByPath($path)
|
||||
{
|
||||
if (!$path) return;
|
||||
if(!$packageSrl) return;
|
||||
|
||||
$packageSrl = $this->getPackageSrlByPath($path);
|
||||
if (!$packageSrl) return;
|
||||
return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminUninstall', 'package_srl', $packageSrl);
|
||||
}
|
||||
|
||||
return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstall', 'package_srl', $packageSrl);
|
||||
}
|
||||
/**
|
||||
* Get remove url by path
|
||||
*
|
||||
* @param string $path Path to get url
|
||||
* @return string
|
||||
*/
|
||||
function getRemoveUrlByPath($path)
|
||||
{
|
||||
if(!$path) return;
|
||||
|
||||
}
|
||||
?>
|
||||
$ftp_info = Context::getFTPInfo();
|
||||
if (!$ftp_info->ftp_root_path) return;
|
||||
|
||||
$packageSrl = $this->getPackageSrlByPath($path);
|
||||
if(!$packageSrl) return;
|
||||
|
||||
return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminUninstall', 'package_srl', $packageSrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get update url by package srl
|
||||
*
|
||||
* @param int $packageSrl Sequence to get url
|
||||
* @return string
|
||||
*/
|
||||
function getUpdateUrlByPackageSrl($packageSrl)
|
||||
{
|
||||
if(!$packageSrl) return;
|
||||
|
||||
return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstall', 'package_srl', $packageSrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get update url by path
|
||||
*
|
||||
* @param string $path Path to get url
|
||||
* @return string
|
||||
*/
|
||||
function getUpdateUrlByPath($path)
|
||||
{
|
||||
if(!$path) return;
|
||||
|
||||
$packageSrl = $this->getPackageSrlByPath($path);
|
||||
if (!$packageSrl) return;
|
||||
|
||||
return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstall', 'package_srl', $packageSrl);
|
||||
}
|
||||
|
||||
}
|
||||
/* End of file autoinstall.model.php */
|
||||
/* Location: ./modules/autoinstall/autoinstall.model.php */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue