J'ai un blog Silverstripe que j'utilise pour plusieurs zones différentes du site et je veux utiliser un modèle différent pour chacune d'entre elles (plutôt que d'essayer d'utiliser beaucoup de conditions dans le modèle) Je n'arrive pas à obtenir le rendu du modèle - voici l'essentiel :
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';
}
}
J'essaie de faire quelque chose comme ce qui suit pour rendre chaque type de billet de blog dans BlogPost_news.ss ou 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');
}
}
Mais je ne pense pas être sur la bonne voie ici :)