Close Connection when there is no connection value.

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@13161 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
misol 2013-09-25 15:29:32 +00:00
parent 034a5c0288
commit f70ce644ce
1410 changed files with 7188 additions and 53541 deletions

View file

@ -136,7 +136,7 @@ class autoinstallAdminController extends autoinstall
$type = "theme";
break;
}
if(!$config_file)
{
continue;
@ -144,7 +144,7 @@ class autoinstallAdminController extends autoinstall
$xml = new XmlParser();
$xmlDoc = $xml->loadXmlFile($real_path . $config_file);
if(!$xmlDoc)
{
continue;
@ -329,7 +329,7 @@ class autoinstallAdminController extends autoinstall
$oModel = getModel('autoinstall');
$package = $oModel->getPackage($package_srl);
$this->_uninstallPackage($package);
return $this->_uninstallPackage($package);
}
/**
@ -340,7 +340,7 @@ class autoinstallAdminController extends autoinstall
function uninstallPackageByPath($path)
{
$package->path = $path;
$this->_uninstallPackage($package);
return $this->_uninstallPackage($package);
}
private function _uninstallPackage($package)
@ -383,6 +383,8 @@ class autoinstallAdminController extends autoinstall
$this->_updateinfo();
$this->setMessage('success_deleted', 'update');
return new Object();
}
}

View file

@ -242,6 +242,111 @@ class autoinstallAdminModel extends autoinstall
return $result;
}
/**
* 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;
}
/**
* get install info (act)
*/
public function getAutoInstallAdminInstallInfo()
{
$packageSrl = Context::get('package_srl');
if(!$packageSrl)
{
return new Object(-1, 'msg_invalid_request');
}
$package = $this->getInstallInfo($packageSrl);
$this->add('package', $package);
}
}
/* End of file autoinstall.admin.model.php */
/* Location: ./modules/autoinstall/autoinstall.admin.model.php */

View file

@ -272,6 +272,8 @@ class autoinstallAdminView extends autoinstall
}
Context::set('installed', $installed);
$oSecurity = new Security();
$oSecurity->encodeHTML('installed..');
foreach($installed as $key => $val)
{
@ -354,85 +356,11 @@ class autoinstallAdminView extends autoinstall
return $this->dispAutoinstallAdminIndex();
}
$params["act"] = "getResourceapiInstallInfo";
$params["package_srl"] = $package_srl;
$xmlDoc = XmlGenerater::getXmlDoc($params);
$oModel = getModel('autoinstall');
$oAdminModel = getAdminModel('autoinstall');
$package = $oAdminModel->getInstallInfo($package_srl);
$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 === '.')
{
Context::set('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, ">");
}
Context::set("package", $package);
if($package->path === '.')
{
Context::set('contain_core', TRUE);
}
}
Context::set("package", $package);
Context::set('contain_core', $package->contain_core);
if(!$_SESSION['ftp_password'])
{
@ -545,7 +473,7 @@ class autoinstallAdminView extends autoinstall
}
$security = new Security();
$security->encodeHTML('package.', 'package.depends..');
$security->encodeHTML('package.', 'package.depends..', 'item_list..');
}
/**

View file

@ -375,7 +375,7 @@ class SFTPModuleInstaller extends ModuleInstaller
$ftp_host = "127.0.0.1";
}
$this->connection = ssh2_connect($ftp_host, $this->ftp_info->ftp_port);
if(!ssh2_auth_password($this->connection, $this->ftp_info->ftp_user, $this->ftp_password))
if(!@ssh2_auth_password($this->connection, $this->ftp_info->ftp_user, $this->ftp_password))
{
return new Object(-1, 'msg_ftp_invalid_auth_info');
}

View file

@ -225,6 +225,10 @@ class autoinstallModel extends autoinstall
$args->page = $page;
$args->list_count = 10;
$args->page_count = 5;
if(Context::getDBType() == 'mssql')
{
$args->sort_index = 'package_srl';
}
$output = executeQueryArray("autoinstall.getInstalledPackageList", $args);
$res = array();
if($output->data)
@ -282,6 +286,7 @@ class autoinstallModel extends autoinstall
case "addon":
case "layout":
case "widget":
case 'theme': // for backward compatibility
$config_file = "/conf/info.xml";
break;
case "component":

View file

@ -12,6 +12,7 @@
<action name="getAutoinstallAdminLayoutPackageList" type="model" />
<action name="getAutoinstallAdminSkinPackageList" type="model" />
<action name="getAutoinstallAdminIsAuthed" type="model" />
<action name="getAutoInstallAdminInstallInfo" type="model" />
</actions>
<menus>
<menu name="easyInstall">

View file

@ -1,4 +1,4 @@
<load target="./css/autoinstall.css" index="11" />
<div class="x_page-header">
<h1>{$lang->autoinstall} <a class="x_icon-question-sign" href="./help/index.html#UMAN_advanced_easyinstall" target="_blank">{$lang->help}</a></h1>
<h1>{$lang->autoinstall} <a class="x_icon-question-sign" href="./admin/help/index.html#UMAN_advanced_easyinstall" target="_blank">{$lang->help}</a></h1>
</div>

View file

@ -1,10 +1,18 @@
<include target="header.html" />
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
{@
$from_id = array(
'modules/autoinstall/tpl/install/1' => 1,
'modules/autoinstall/tpl/index/1' => 1,
'modules/autoinstall/tpl/uninstall/1' => 1
);
}
<div cond="$XE_VALIDATOR_MESSAGE && isset($from_id[$XE_VALIDATOR_ID])" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form action="" method="post">
<input type="hidden" name="module" value="autoinstall" />
<input type="hidden" name="act" value="procAutoinstallAdminUpdateinfo" />
<input type="hidden" name="xe_validator_id" value="modules/autoinstall/tpl/index/1" />
<p>
<block cond="$show_ftp_note">
{@$ftp_link = sprintf('<a href="%s">%s</a>', getUrl('', 'module', 'admin', 'act', 'dispAdminConfigFtp'), $lang->ftp_setup)}

View file

@ -32,7 +32,7 @@
<p><a class="x_btn x_btn-primary x_pull-right" href="{_XE_DOWNLOAD_SERVER_}?module=resourceapi&act=procResourceapiDownload&package_srl={$package->package_srl}">{$lang->cmd_download}</a>
</div>
<div cond="!$show_ftp_note">
<div cond="$XE_VALIDATOR_MESSAGE" class="x_alert x_alert-error">
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/autoinstall/tpl/install/1'" class="message error">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form action="./" class="x_form-horizontal" method="post" ruleset="ftp">
@ -41,6 +41,7 @@
<input type="hidden" name="package_srl" value="{$package->package_srl}" />
<input type="hidden" name="return_url" value="{$return_url}" />
<input cond="!$need_password" type="hidden" name="ftp_password" value="dummy" />
<input type="hidden" name="xe_validator_id" value="modules/autoinstall/tpl/install/1" />
<block cond="$need_password">
<div class="x_control-group">

View file

@ -16,11 +16,11 @@
<!--@else-->
{@$_popular_order_type = 'desc'}
<!--@end-->
<a href="{getUrl('order_target','newest','order_type',$_newest_order_type)}" class="active"|cond="$order_target == 'newest'">{$lang->order_newest} <i cond="$order_target == 'newest'" class="x_icon-circle-arrow-down"|cond="$_newest_order_type == 'asc'" class="x_icon-circle-arrow-up"|cond="$_newest_order_type == 'desc'">{$_newest_order_type}</i></a>
<a href="{getUrl('order_target','newest','order_type',$_newest_order_type,page,'')}" class="active"|cond="$order_target == 'newest'">{$lang->order_newest} <i cond="$order_target == 'newest'" class="x_icon-circle-arrow-down"|cond="$_newest_order_type == 'asc'" class="x_icon-circle-arrow-up"|cond="$_newest_order_type == 'desc'">{$_newest_order_type}</i></a>
<i>|</i>
<a href="{getUrl('order_target','download','order_type',$_download_order_type)}" class="active"|cond="$order_target == 'download'">{$lang->order_download} <i cond="$order_target == 'download'" class="x_icon-circle-arrow-down"|cond="$_download_order_type == 'asc'" class="x_icon-circle-arrow-up"|cond="$_download_order_type == 'desc'">{$_download_order_type}</i></a>
<a href="{getUrl('order_target','download','order_type',$_download_order_type,page,'')}" class="active"|cond="$order_target == 'download'">{$lang->order_download} <i cond="$order_target == 'download'" class="x_icon-circle-arrow-down"|cond="$_download_order_type == 'asc'" class="x_icon-circle-arrow-up"|cond="$_download_order_type == 'desc'">{$_download_order_type}</i></a>
<i>|</i>
<a href="{getUrl('order_target','popular','order_type',$_popular_order_type)}" class="active"|cond="$order_target == 'popular'">{$lang->order_popular} <i cond="$order_target == 'popular'" class="x_icon-circle-arrow-down"|cond="$_popular_order_type == 'asc'" class="x_icon-circle-arrow-up"|cond="$_popular_order_type == 'desc'">{$_popular_order_type}</i></a></li>
<a href="{getUrl('order_target','popular','order_type',$_popular_order_type,page,'')}" class="active"|cond="$order_target == 'popular'">{$lang->order_popular} <i cond="$order_target == 'popular'" class="x_icon-circle-arrow-down"|cond="$_popular_order_type == 'asc'" class="x_icon-circle-arrow-up"|cond="$_popular_order_type == 'desc'">{$_popular_order_type}</i></a></li>
</div>
</div>
@ -44,7 +44,7 @@
<img src="{str_replace('./', $uri, $item->item_screenshot_url)}" alt="" style="width:80px;height:80px" />
</div>
<div class="text">
<h3><span class="x_label x_label-info">{$item->category}</span> <a href="{$target_url}" title="{htmlspecialchars($item->title)}" target="_blank">{htmlspecialchars($item->title)}</a></h3>
<h3><span class="x_label x_label-info">{$item->category}</span> <a href="{$target_url}" title="{$item->title}" target="_blank">{$item->title}</a></h3>
<p>
<block cond="(int)$item->package_voter > 0">
<span class="starRating"><span style="width:{sprintf("%d",$item->package_voted/$item->package_voter*20)}%">{sprintf("%0.1f",$item->package_voted/$item->package_voter*2)}{sprintf($lang->rate, $item->package_start)}</span></span>
@ -97,8 +97,8 @@
</div>
</td>
<td>
<p><span class="x_label x_label-info">{$item->category}</span> <a href="{$target_url}" target="_blank">{htmlspecialchars($item->title)}</a></p>
<p style="margin:5px 0">{cut_str(htmlspecialchars($item->package_description),200)}</p>
<p><span class="x_label x_label-info">{$item->category}</span> <a href="{$target_url}" target="_blank">{$item->title}</a></p>
<p style="margin:5px 0">{cut_str($item->package_description,200)}</p>
<p style="margin:5px 0">
<block cond="(int)$item->package_voter > 0">
<span class="starRating"><span style="width:{sprintf("%d",$item->package_voted/$item->package_voter*20)}%">{sprintf("%0.1f",$item->package_voted/$item->package_voter*2)}{sprintf($lang->rate, $item->package_start)}</span></span>
@ -118,8 +118,8 @@
<li loop="$item->deps => $package_srl">{$installed[$package_srl]->title}</li>
</ul>
</td>
<td>{htmlspecialchars($item->item_version)}</td>
<td>{htmlspecialchars($item->current_version)}</td>
<td>{$item->item_version}</td>
<td>{$item->current_version}</td>
<td>
<span class="x_btn-group">
<a cond="$item->current_version && $item->need_update != 'Y'" class="x_btn x_disabled" href="#">{$lang->installed}</a>

View file

@ -9,7 +9,7 @@
<p>{$lang->description_uninstall}</p>
</div>
<div cond="$XE_VALIDATOR_MESSAGE" class="x_alert x_alert-error">
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/autoinstall/tpl/uninstall/1'" class="message error">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form action="./" class="x_form-horizontal" method="post" ruleset="ftp">
@ -18,6 +18,7 @@
<input type="hidden" name="package_srl" value="{$package_srl}" />
<input type="hidden" name="return_url" value="{$return_url}" />
<input cond="!$need_password" type="hidden" name="ftp_password" value="dummy" />
<input type="hidden" name="xe_validator_id" value="modules/autoinstall/tpl/uninstall/1" />
<block cond="$need_password">
<div class="x_control-group">