Blog: Wrapped CMS fields in beforeUpdateCMSFields to allow for customisation

This commit is contained in:
James Cocker 2014-06-13 16:19:15 +01:00
parent eea227d42e
commit be0e8e283a

View File

@ -33,45 +33,48 @@ class Blog extends Page {
public function getCMSFields() { public function getCMSFields() {
$fields = parent::getCMSFields(); $this->beforeUpdateCMSFields(function($fields) {
$posts = $this->getBlogPosts(); $posts = $this->getBlogPosts();
$excluded = $this->getExcludedSiteTreeClassNames(); $excluded = $this->getExcludedSiteTreeClassNames();
if(!empty($excluded)) { if(!empty($excluded)) {
$posts = $posts->filter("ClassName", $excluded); $posts = $posts->filter("ClassName", $excluded);
$gridField = new GridField( $gridField = new GridField(
"BlogPost", "BlogPost",
_t("Blog.BlogPosts", "Blog Posts"), _t("Blog.BlogPosts", "Blog Posts"),
$posts, $posts,
GridFieldConfig_BlogPost::create() GridFieldConfig_BlogPost::create()
);
$fields->addFieldToTab("Root.BlogPosts", $gridField);
}
// Create categories and tag config
$config = GridFieldConfig_RecordEditor::create();
$config->removeComponentsByType("GridFieldAddNewButton");
$config->addComponent(new GridFieldAddByDBField("buttons-before-left"));
$categories = GridField::create(
"Categories",
_t("Blog.Categories", "Categories"),
$this->Categories(),
$config
); );
$fields->addFieldToTab("Root.BlogPosts", $gridField);
}
// Create categories and tag config $tags = GridField::create(
$config = GridFieldConfig_RecordEditor::create(); "Tags",
$config->removeComponentsByType("GridFieldAddNewButton"); _t("Blog.Tags", "Tags"),
$config->addComponent(new GridFieldAddByDBField("buttons-before-left")); $this->Tags(),
$config
);
$categories = GridField::create( $fields->addFieldsToTab("Root.BlogOptions", array(
"Categories", $categories,
_t("Blog.Categories", "Categories"), $tags
$this->Categories(), ));
$config
);
$tags = GridField::create( });
"Tags",
_t("Blog.Tags", "Tags"),
$this->Tags(),
$config
);
$fields->addFieldsToTab("Root.BlogOptions", array(
$categories,
$tags
));
$fields = parent::getCMSFields();
return $fields; return $fields;
} }