Merge branch 'release/1.8.8'

This commit is contained in:
bnu 2015-08-18 14:09:20 +09:00
commit 9f085ac840
13 changed files with 55 additions and 43 deletions

View file

@ -10,6 +10,7 @@ matrix:
allow_failures:
- php: 7
- php: hhvm
sudo: false
before_script:
- travis_retry composer self-update
- npm install -g grunt-cli

View file

@ -1658,6 +1658,7 @@ class Context
'document_srl.mid' => "$mid/$srl",
'document_srl.vid' => "$vid/$srl",
'document_srl.mid.vid' => "$vid/$mid/$srl",
'act' => ($is_feed && $act !== 'api') ? $act : '',
'act.mid' => $is_feed ? "$mid/$act" : '',
'act.mid.vid' => $is_feed ? "$vid/$mid/$act" : '',
'act.document_srl.key' => ($act == 'trackback') ? "$srl/$key/$act" : '',

View file

@ -29,7 +29,7 @@ define('__ZBXE__', __XE__);
/**
* Display XE's full version.
*/
define('__XE_VERSION__', '1.8.7');
define('__XE_VERSION__', '1.8.8');
define('__XE_VERSION_ALPHA__', (stripos(__XE_VERSION__, 'alpha') !== false));
define('__XE_VERSION_BETA__', (stripos(__XE_VERSION__, 'beta') !== false));
define('__XE_VERSION_RC__', (stripos(__XE_VERSION__, 'rc') !== false));

View file

@ -662,16 +662,17 @@ class fileController extends file
}
}
// https://github.com/xpressengine/xe-core/issues/1713
$file_info['name'] = preg_replace('/\.(php|phtm|phar|html?|cgi|pl|exe|jsp|asp|inc)/i', '$0-x',$file_info['name']);
$file_info['name'] = removeHackTag($file_info['name']);
$file_info['name'] = str_replace(array('<','>'),array('%3C','%3E'),$file_info['name']);
// Get random number generator
$random = new Password();
// Set upload path by checking if the attachement is an image or other kinds of file
if(preg_match("/\.(jpe?g|gif|png|wm[va]|mpe?g|avi|swf|flv|mp[1-4]|as[fx]|wav|midi?|moo?v|qt|r[am]{1,2}|m4v)$/i", $file_info['name']))
{
// Immediately remove the direct file if it has any kind of extensions for hacking
$file_info['name'] = preg_replace('/\.(php|phtm|phar|html?|cgi|pl|exe|jsp|asp|inc)/i', '$0-x',$file_info['name']);
$file_info['name'] = str_replace(array('<','>'),array('%3C','%3E'),$file_info['name']);
$path = sprintf("./files/attach/images/%s/%s", $module_srl,getNumberingPath($upload_target_srl,3));
// special character to '_'

View file

@ -220,6 +220,7 @@ class fileModel extends file
{
$file = $file_list[$i];
$file->source_filename = stripslashes($file->source_filename);
$file->source_filename = htmlspecialchars($file->source_filename);
$file->download_url = $this->getDownloadUrl($file->file_srl, $file->sid, $file->module_srl);
$file_list[$i] = $file;
}

View file

@ -5,7 +5,7 @@
<value xml:lang="en"><![CDATA[XE Installation]]></value>
<value xml:lang="jp"><![CDATA[XEのインストール]]></value>
<value xml:lang="zh-CN"><![CDATA[安装XE]]></value>
<value xml:lang="zh-TW"><![CDATA[XE程式安裝]]></value>
<value xml:lang="zh-TW"><![CDATA[安裝XE]]></value>
<value xml:lang="fr"><![CDATA[Installation du XE ]]></value>
<value xml:lang="ru"><![CDATA[Установка XE]]></value>
<value xml:lang="es"><![CDATA[Instalación de XE ]]></value>
@ -34,36 +34,51 @@
<item name="license_agreement">
<value xml:lang="ko"><![CDATA[사용권 동의]]></value>
<value xml:lang="en"><![CDATA[License agreement]]></value>
<value xml:lang="jp"><![CDATA[ライセンス契約]]></value>
<value xml:lang="zh-CN"><![CDATA[许可协议]]></value>
<value xml:lang="zh-TW"><![CDATA[許可協議]]></value>
</item>
<item name="condition">
<value xml:lang="ko"><![CDATA[설치 조건 확인]]></value>
<value xml:lang="en"><![CDATA[Check the installation conditions]]></value>
<value xml:lang="jp"><![CDATA[インストール条件確認]]></value>
<value xml:lang="zh-CN"><![CDATA[检查安装条件]]></value>
<value xml:lang="zh-TW"><![CDATA[檢查安裝條件]]></value>
</item>
<item name="ftp">
<value xml:lang="ko"><![CDATA[FTP 정보 입력]]></value>
<value xml:lang="en"><![CDATA[Input FTP information]]></value>
<value xml:lang="jp"><![CDATA[FTP情報入力]]></value>
<value xml:lang="zh-CN"><![CDATA[输入FTP信息]]></value>
<value xml:lang="zh-TW"><![CDATA[輸入FTP信息]]></value>
</item>
<item name="dbSelect">
<value xml:lang="ko"><![CDATA[DB 선택]]></value>
<value xml:lang="en"><![CDATA[Choose database type]]></value>
<value xml:lang="jp"><![CDATA[DB選択]]></value>
<value xml:lang="zh-CN"><![CDATA[选择DB]]></value>
<value xml:lang="zh-TW"><![CDATA[選擇DB]]></value>
</item>
<item name="dbInfo">
<value xml:lang="ko"><![CDATA[DB 정보 입력]]></value>
<value xml:lang="en"><![CDATA[Input Database information]]></value>
<value xml:lang="jp"><![CDATA[DB情報入力]]></value>
<value xml:lang="zh-CN"><![CDATA[输入DB信息]]></value>
<value xml:lang="zh-TW"><![CDATA[輸入DB信息]]></value>
</item>
<item name="configInfo">
<value xml:lang="ko"><![CDATA[환경 설정]]></value>
<value xml:lang="en"><![CDATA[Settings]]></value>
<value xml:lang="jp"><![CDATA[環境設定]]></value>
<value xml:lang="zh-CN"><![CDATA[环境设置]]></value>
<value xml:lang="zh-TW"><![CDATA[環境設置]]></value>
</item>
<item name="adminInfo">
<value xml:lang="ko"><![CDATA[관리자 정보 입력]]></value>
<value xml:lang="en"><![CDATA[Enter Administrator information]]></value>
<value xml:lang="jp"><![CDATA[管理者情報入力]]></value>
<value xml:lang="zh-CN"><![CDATA[输入管理员信息]]></value>
<value xml:lang="zh-TW"><![CDATA[輸入管理員信息]]></value>
</item>
</item>
<item name="install_condition_enable">

View file

@ -55,6 +55,7 @@ class rssAdminView extends rss
}
}
if(!$total_config->feed_document_count) $total_config->feed_document_count = 15;
$total_config->url = $oRssModel->getModuleFeedUrl(NULL, '', 'rss', true);
Context::set('feed_config', $feed_config);
Context::set('total_config', $total_config);

View file

@ -12,27 +12,19 @@ class rssModel extends rss
*
* @param string $vid Vid
* @param string $mid mid
* @param string $format Feed format. ef)xe, atom, rss1.0
* @param string $format Feed format. rss | atom
* @param bool $absolute_url
* @return string
*/
function getModuleFeedUrl($vid = null, $mid, $format)
function getModuleFeedUrl($vid, $mid, $format = 'rss', $absolute_url = false)
{
if(Context::isAllowRewrite())
if($absolute_url)
{
$request_uri = Context::getRequestUri();
// If the virtual site variable exists and it is different from mid (vid and mid should not be the same)
if($vid && $vid != $mid)
{
return $request_uri.$vid.'/'.$mid.'/'.$format;
}
else
{
return $request_uri.$mid.'/'.$format;
}
return getFullUrl('','vid',$vid, 'mid',$mid, 'act',$format);
}
else
{
return getUrl('','mid',$mid,'act',$format);
return getUrl('','vid',$vid, 'mid',$mid, 'act',$format);
}
}

View file

@ -172,7 +172,7 @@ class rssView extends rss
$info->id = $proctcl.$_SERVER['HTTP_HOST'].$info->id;
}
$info->language = Context::getLangType();
$info->language = str_replace('jp','ja',Context::getLangType());
// Set the variables used in the RSS output
Context::set('info', $info);
Context::set('feed_config', $config);

View file

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<ruleset version="1.5.0">
<customrules>
<customrules>
<rule name="boolean" type="enum" test="Y,N" />
</customrules>
<fields>
</customrules>
<fields>
<field name="module" required="true" default="rss" />
<field name="act" required="true" default="procRssAdminInsertConfig" />
<field name="use_total_feed" required="true" default="Y" rule="boolean" />
<field name="feed_title" required="true">
<field name="feed_title">
<title xml:lang="ko">피드(Feed) 제목</title>
<title xml:lang="en">Feed Title</title>
</field>

View file

@ -12,7 +12,7 @@
<input type="hidden" name="xe_validator_id" value="modules/rss/tpl/rss_admin_index/1" />
<div class="x_control-group">
<div class="x_control-label">{$lang->url}</div>
<div class="x_controls" style="padding-top:5px"><a href="{getFullSiteUrl()}rss" target="_blank">{getFullSiteUrl()}rss</a></div>
<div class="x_controls" style="padding-top:5px"><a href="{$total_config->url}" target="_blank">{$total_config->url}</a></div>
</div>
<div class="x_control-group">
<label class="x_control-label">{$lang->total_feed}</label>

View file

@ -1,4 +1,4 @@
<?php //[STAMP] 655f3852f47c53f31093f448f1b7f2c5
<?php //[STAMP] 8226438e4d1a01d3ebb358f3af77c814
// This class was automatically generated by build task
// You should not change it manually as it will be overwritten on next build
@ -1639,7 +1639,7 @@ class InstallTester extends \Codeception\Actor
* @return mixed
* @see \Codeception\Lib\InnerBrowser::grabCookie()
*/
public function grabCookie($name, $params = null) {
public function grabCookie($cookie, $params = null) {
return $this->scenario->runStep(new \Codeception\Step\Action('grabCookie', func_get_args()));
}
@ -1662,7 +1662,7 @@ class InstallTester extends \Codeception\Actor
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeCookie()
*/
public function canSeeCookie($name, $params = null) {
public function canSeeCookie($cookie, $params = null) {
return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args()));
}
/**
@ -1682,7 +1682,7 @@ class InstallTester extends \Codeception\Actor
* @return mixed
* @see \Codeception\Lib\InnerBrowser::seeCookie()
*/
public function seeCookie($name, $params = null) {
public function seeCookie($cookie, $params = null) {
return $this->scenario->runStep(new \Codeception\Step\Assertion('seeCookie', func_get_args()));
}
@ -1700,7 +1700,7 @@ class InstallTester extends \Codeception\Actor
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeCookie()
*/
public function cantSeeCookie($name, $params = null) {
public function cantSeeCookie($cookie, $params = null) {
return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args()));
}
/**
@ -1715,7 +1715,7 @@ class InstallTester extends \Codeception\Actor
* @return mixed
* @see \Codeception\Lib\InnerBrowser::dontSeeCookie()
*/
public function dontSeeCookie($name, $params = null) {
public function dontSeeCookie($cookie, $params = null) {
return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeCookie', func_get_args()));
}
@ -1900,7 +1900,7 @@ class InstallTester extends \Codeception\Actor
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected()
*/
public function canSeeOptionIsSelected($select, $optionText) {
public function canSeeOptionIsSelected($selector, $optionText) {
return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args()));
}
/**
@ -1920,7 +1920,7 @@ class InstallTester extends \Codeception\Actor
* @return mixed
* @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected()
*/
public function seeOptionIsSelected($select, $optionText) {
public function seeOptionIsSelected($selector, $optionText) {
return $this->scenario->runStep(new \Codeception\Step\Assertion('seeOptionIsSelected', func_get_args()));
}
@ -1943,7 +1943,7 @@ class InstallTester extends \Codeception\Actor
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected()
*/
public function cantSeeOptionIsSelected($select, $optionText) {
public function cantSeeOptionIsSelected($selector, $optionText) {
return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args()));
}
/**
@ -1963,7 +1963,7 @@ class InstallTester extends \Codeception\Actor
* @return mixed
* @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected()
*/
public function dontSeeOptionIsSelected($select, $optionText) {
public function dontSeeOptionIsSelected($selector, $optionText) {
return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeOptionIsSelected', func_get_args()));
}

View file

@ -1,4 +1,4 @@
<?php //[STAMP] bd6b55949e6a72559e6ee503e29432bb
<?php //[STAMP] 3dec2fc1382a9643e3c2a5f6e95c8413
// This class was automatically generated by build task
// You should not change it manually as it will be overwritten on next build
@ -93,7 +93,7 @@ class UnitTester extends \Codeception\Actor
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that expected is greater than actual
* Checks that actual is greater than expected
*
* @param $expected
* @param $actual
@ -119,7 +119,7 @@ class UnitTester extends \Codeception\Actor
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that expected is greater or equal than actual
* Checks that actual is greater or equal than expected
*
* @param $expected
* @param $actual
@ -145,7 +145,7 @@ class UnitTester extends \Codeception\Actor
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that expected is less than actual
* Checks that actual is less than expected
*
* @param $expected
* @param $actual
@ -160,7 +160,7 @@ class UnitTester extends \Codeception\Actor
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that expected is less or equal than actual
* Checks that actual is less or equal than expected
*
* @param $expected
* @param $actual