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
1 changed files with 37 additions and 34 deletions

View File

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