Merge pull request #8 from xpressengine/develop

Develop
This commit is contained in:
BJRambo 2015-08-19 19:05:55 +09:00
commit d7d077fae3
10 changed files with 39 additions and 28 deletions

View file

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

View file

@ -29,7 +29,7 @@ define('__ZBXE__', __XE__);
/** /**
* Display XE's full version. * 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_ALPHA__', (stripos(__XE_VERSION__, 'alpha') !== false));
define('__XE_VERSION_BETA__', (stripos(__XE_VERSION__, 'beta') !== false)); define('__XE_VERSION_BETA__', (stripos(__XE_VERSION__, 'beta') !== false));
define('__XE_VERSION_RC__', (stripos(__XE_VERSION__, 'rc') !== 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 // Get random number generator
$random = new Password(); $random = new Password();
// Set upload path by checking if the attachement is an image or other kinds of file // 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'])) 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)); $path = sprintf("./files/attach/images/%s/%s", $module_srl,getNumberingPath($upload_target_srl,3));
// special character to '_' // special character to '_'

View file

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

View file

@ -5,7 +5,7 @@
<value xml:lang="en"><![CDATA[XE Installation]]></value> <value xml:lang="en"><![CDATA[XE Installation]]></value>
<value xml:lang="jp"><![CDATA[XEのインストール]]></value> <value xml:lang="jp"><![CDATA[XEのインストール]]></value>
<value xml:lang="zh-CN"><![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="fr"><![CDATA[Installation du XE ]]></value>
<value xml:lang="ru"><![CDATA[Установка XE]]></value> <value xml:lang="ru"><![CDATA[Установка XE]]></value>
<value xml:lang="es"><![CDATA[Instalación de XE ]]></value> <value xml:lang="es"><![CDATA[Instalación de XE ]]></value>
@ -34,36 +34,51 @@
<item name="license_agreement"> <item name="license_agreement">
<value xml:lang="ko"><![CDATA[사용권 동의]]></value> <value xml:lang="ko"><![CDATA[사용권 동의]]></value>
<value xml:lang="en"><![CDATA[License agreement]]></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>
<item name="condition"> <item name="condition">
<value xml:lang="ko"><![CDATA[설치 조건 확인]]></value> <value xml:lang="ko"><![CDATA[설치 조건 확인]]></value>
<value xml:lang="en"><![CDATA[Check the installation conditions]]></value> <value xml:lang="en"><![CDATA[Check the installation conditions]]></value>
<value xml:lang="jp"><![CDATA[インストール条件確認]]></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="ftp"> <item name="ftp">
<value xml:lang="ko"><![CDATA[FTP 정보 입력]]></value> <value xml:lang="ko"><![CDATA[FTP 정보 입력]]></value>
<value xml:lang="en"><![CDATA[Input FTP information]]></value> <value xml:lang="en"><![CDATA[Input FTP information]]></value>
<value xml:lang="jp"><![CDATA[FTP情報入力]]></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>
<item name="dbSelect"> <item name="dbSelect">
<value xml:lang="ko"><![CDATA[DB 선택]]></value> <value xml:lang="ko"><![CDATA[DB 선택]]></value>
<value xml:lang="en"><![CDATA[Choose database type]]></value> <value xml:lang="en"><![CDATA[Choose database type]]></value>
<value xml:lang="jp"><![CDATA[DB選択]]></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>
<item name="dbInfo"> <item name="dbInfo">
<value xml:lang="ko"><![CDATA[DB 정보 입력]]></value> <value xml:lang="ko"><![CDATA[DB 정보 입력]]></value>
<value xml:lang="en"><![CDATA[Input Database information]]></value> <value xml:lang="en"><![CDATA[Input Database information]]></value>
<value xml:lang="jp"><![CDATA[DB情報入力]]></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>
<item name="configInfo"> <item name="configInfo">
<value xml:lang="ko"><![CDATA[환경 설정]]></value> <value xml:lang="ko"><![CDATA[환경 설정]]></value>
<value xml:lang="en"><![CDATA[Settings]]></value> <value xml:lang="en"><![CDATA[Settings]]></value>
<value xml:lang="jp"><![CDATA[環境設定]]></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="adminInfo"> <item name="adminInfo">
<value xml:lang="ko"><![CDATA[관리자 정보 입력]]></value> <value xml:lang="ko"><![CDATA[관리자 정보 입력]]></value>
<value xml:lang="en"><![CDATA[Enter Administrator information]]></value> <value xml:lang="en"><![CDATA[Enter Administrator information]]></value>
<value xml:lang="jp"><![CDATA[管理者情報入力]]></value> <value xml:lang="jp"><![CDATA[管理者情報入力]]></value>
<value xml:lang="zh-CN"><![CDATA[输入管理员信息]]></value>
<value xml:lang="zh-TW"><![CDATA[輸入管理員信息]]></value>
</item> </item>
</item> </item>
<item name="install_condition_enable"> <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; 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('feed_config', $feed_config);
Context::set('total_config', $total_config); Context::set('total_config', $total_config);

View file

@ -12,27 +12,19 @@ class rssModel extends rss
* *
* @param string $vid Vid * @param string $vid Vid
* @param string $mid mid * @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 * @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(); return getFullUrl('','vid',$vid, 'mid',$mid, 'act',$format);
// 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;
}
} }
else 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->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 // Set the variables used in the RSS output
Context::set('info', $info); Context::set('info', $info);
Context::set('feed_config', $config); 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"> <ruleset version="1.5.0">
<customrules> <customrules>
<rule name="boolean" type="enum" test="Y,N" /> <rule name="boolean" type="enum" test="Y,N" />
</customrules> </customrules>
<fields> <fields>
<field name="module" required="true" default="rss" /> <field name="module" required="true" default="rss" />
<field name="act" required="true" default="procRssAdminInsertConfig" /> <field name="act" required="true" default="procRssAdminInsertConfig" />
<field name="use_total_feed" required="true" default="Y" rule="boolean" /> <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="ko">피드(Feed) 제목</title>
<title xml:lang="en">Feed Title</title> <title xml:lang="en">Feed Title</title>
</field> </field>

View file

@ -12,7 +12,7 @@
<input type="hidden" name="xe_validator_id" value="modules/rss/tpl/rss_admin_index/1" /> <input type="hidden" name="xe_validator_id" value="modules/rss/tpl/rss_admin_index/1" />
<div class="x_control-group"> <div class="x_control-group">
<div class="x_control-label">{$lang->url}</div> <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>
<div class="x_control-group"> <div class="x_control-group">
<label class="x_control-label">{$lang->total_feed}</label> <label class="x_control-label">{$lang->total_feed}</label>