0
나는 현재보고있는 BlogPost 다음 (이전) 및 이전 (이전) BlogPost를 반환하려고합니다.silverstripe 3 blog 다음 및 이전 게시물
나는 확장에이 설정 한 :
<?php
class BlogPost_Extension extends DataExtension {
public function getBlogSibling($Mode = 'next') {
if($Mode == 'next'){
$pages = BlogPost::get()->filter(array(
'ParentID' => $this->owner->ParentID,
'PublishDate:GreaterThan' => $this->owner->PublishDate
))->Sort('PublishDate ASC')->limit(1);
} elseif($Mode == 'prev'){
$pages = BlogPost::get()->filter(array(
'ParentID' => $this->owner->ParentID,
'PublishDate:LessThan' => $this->owner->PublishDate
))->Sort('PublishDate DESC')->limit(1);
}
if ($pages->count()) {
return $pages->First();
}
return false;
}
}
및 템플릿이 사용 :
<% if $BlogSibling('next') %><a href="$BlogSibling('next').Link">newer story</a><% end_if %>
<% if $BlogSibling('prev') %><a href="$BlogSibling('prev').Link">older story</a><% end_if %>
그러나 모두는, 다음 (이상) 블로그 게시물을 같은 결과를 반환 - 내가 ' m 확실히 나는 .... 내려다 보이는거야 바보는 무엇인가! :)
(silverstripe 3.1.4/블로그 모듈 ~ 2.4)
단일 정렬 번호를 사용하면 안정적으로 작동하지 않습니다. 쿼리중인 '정렬'번호가있는 게시되지 않은 게시물이 있다고 가정 해보십시오. 나는> $ sort' 또는'$ sort'을 검색하여 그 결과를 반환해야한다고 생각합니다. – bummzack
Sort를 정렬하는 것만으로 블로그 게시물의 실제 순서가 고려되지 않습니다. 블로그 게시물의 순서는 PublishDate , Sort가 아닙니다. – galilee
그러나 @galilee는 사이트 트리를 표시 할 때 순서를 설정하므로 정렬 순서가이 용도로 사용되어야합니다. –