This commit is contained in:
fen 2013-12-09 21:11:11 +08:00
commit c849cd043c
2 changed files with 13 additions and 6 deletions

View File

@ -216,8 +216,11 @@ class Widget_Archive extends Widget_Abstract_Contents
{
parent::__construct($request, $response, $params);
$this->parameter->setDefault(array('pageSize' => $this->options->pageSize,
'type' => NULL));
$this->parameter->setDefault(array(
'pageSize' => $this->options->pageSize,
'type' => NULL,
'checkPermalink' => true
));
/** 用于判断是路由调用还是外部调用 */
if (NULL == $this->parameter->type) {
@ -269,6 +272,7 @@ class Widget_Archive extends Widget_Abstract_Contents
if ('/comments/' == $feedQuery || '/comments' == $feedQuery) {
/** 专为feed使用的hack */
$this->parameter->type = 'comments';
$this->parameter->checkPermalink = false;
} else {
$matched = Typecho_Router::match($this->request->feed, 'pageSize=10&isFeed=1');
if ($matched && $matched instanceof Widget_Archive) {
@ -599,15 +603,16 @@ class Widget_Archive extends Widget_Abstract_Contents
if ('index' == $type // 首页跳转不用处理
|| $this->_makeSinglePageAsFrontPage // 自定义首页不处理
|| $this->_invokeByFeed // 不要处理feed
|| $this->_invokeFromOutside) { // 不要处理外部调用
|| 'feed' == $this->parameter->type // 不处理feed
|| $this->_invokeFromOutside // 不要处理外部调用
|| !$this->parameter->checkPermalink) { // 强制关闭
return;
}
$value = array(
'page' => $this->_currentPage
);
$value = array_merge($this->_archiveSingle ? $this->row
: $this->_pageRow, $value);
$value = array_merge($this->_archiveSingle ? $this->row : $this->_pageRow, $value);
$path = Typecho_Router::url($type, $value);
$permalink = Typecho_Common::url($path, $this->options->index);

View File

@ -262,7 +262,9 @@ class Widget_Feedback extends Widget_Abstract_Comments implements Widget_Interfa
{
/** 回调方法 */
$callback = $this->request->type;
$this->_content = Typecho_Router::match($this->request->permalink);
$this->_content = Typecho_Router::match($this->request->permalink, array(
'checkPermalink' => false
));
/** 判断内容是否存在 */
if (false !== $this->_content && $this->_content instanceof Widget_Archive &&