我有一个 silverstripe 博客,我将它用于站点中的几个不同区域,并希望为每个区域使用不同的模板(而不是尝试在模板中使用大量条件)。我无法获得要渲染的模板 - 这是最基本的:
class BlogExtension extends DataExtension
{
private static $db = [
'BlogType' => 'Varchar'
];
}
class BlogPostExtension extends DataExtension
{
public function isNews()
{
return $this->owner->Parent()->BlogType == 'news';
}
public function isBlog()
{
return $this->owner->Parent()->BlogType == 'blog';
}
}
而且,我正在尝试执行以下操作,以在 BlogPost_news.ss 或 BlogPost_blog.ss 中呈现每种博客文章类型:
class BlogPostControllerExtension extends DataExtension
{
public function onBeforeInit() {
//render with custom template
if ($this->owner->isBlog()) {
return $this->owner->renderWith(BlogPost::class .'_blog');
}
}
但我不认为我在这里走在正确的轨道上:)
千巷猫影