From 0e408712a50403b8aa12313271d351b177d0c649 Mon Sep 17 00:00:00 2001 From: micmania1 Date: Tue, 3 Feb 2015 06:34:30 +0000 Subject: [PATCH 1/2] FIX GridField state was being removed when the config was removed --- code/forms/gridfield/GridFieldConfig_BlogPost.php | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/code/forms/gridfield/GridFieldConfig_BlogPost.php b/code/forms/gridfield/GridFieldConfig_BlogPost.php index 806c29a..43cf8ce 100644 --- a/code/forms/gridfield/GridFieldConfig_BlogPost.php +++ b/code/forms/gridfield/GridFieldConfig_BlogPost.php @@ -8,21 +8,11 @@ * * @author Michael Strong **/ -class GridFieldConfig_BlogPost extends GridFieldConfig { +class GridFieldConfig_BlogPost extends GridFieldConfig_Lumberjack { public function __construct($itemsPerPage = null) { parent::__construct($itemsPerPage); - $this->addComponent(new GridFieldButtonRow('before')); - $this->addComponent(new GridFieldSiteTreeAddNewButton('buttons-before-left')); - $this->addComponent(new GridFieldToolbarHeader()); - $this->addComponent(new GridFieldSortableHeader()); - $this->addComponent(new GridFieldFilterHeader()); - $this->addComponent(new GridFieldDataColumns()); + $this->removeComponentsByType('SiteTreeEditButton'); $this->addComponent(new GridFieldSiteTreeEditButton()); - $this->addComponent(new GridFieldPageCount('toolbar-header-right')); - $this->addComponent($pagination = new GridFieldPaginator($itemsPerPage)); - $this->addComponent(new GridFieldBlogPostState()); - - $pagination->setThrowExceptionOnBadDataType(true); } } \ No newline at end of file From 9feee011cf35edacba8198eec0e267d3552c1bab Mon Sep 17 00:00:00 2001 From: micmania1 Date: Thu, 5 Feb 2015 04:30:27 +0000 Subject: [PATCH 2/2] FIX GridField state was being added too late in the process which means no data was being passed through to create a new blog post. --- .../gridfield/GridFieldConfig_BlogPost.php | 4 ++-- code/model/Blog.php | 17 ++++++++++++----- composer.json | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/code/forms/gridfield/GridFieldConfig_BlogPost.php b/code/forms/gridfield/GridFieldConfig_BlogPost.php index 4569ff2..776449c 100644 --- a/code/forms/gridfield/GridFieldConfig_BlogPost.php +++ b/code/forms/gridfield/GridFieldConfig_BlogPost.php @@ -12,8 +12,8 @@ class GridFieldConfig_BlogPost extends GridFieldConfig_Lumberjack { public function __construct($itemsPerPage = null) { parent::__construct($itemsPerPage); - $this->removeComponentsByType('SiteTreeEditButton'); - $this->addComponent(new GridFieldSiteTreeEditButton()); + $this->removeComponentsByType('GridFieldSiteTreeState'); + $this->addComponent(new GridFieldBlogPostState()); } } \ No newline at end of file diff --git a/code/model/Blog.php b/code/model/Blog.php index 1c6aef3..a48b3ab 100644 --- a/code/model/Blog.php +++ b/code/model/Blog.php @@ -69,11 +69,6 @@ class Blog extends Page { }); $fields = parent::getCMSFields(); - - // Ensure we're using the BlogPost GridField config and not Lumberjack's - $gridField = $fields->dataFieldByName('ChildPages'); - $gridField->setConfig(GridFieldConfig_BlogPost::create()); - return $fields; } @@ -131,6 +126,7 @@ class Blog extends Page { } + /** * This sets the title for our gridfield * @@ -140,6 +136,17 @@ class Blog extends Page { return _t('Blog.LumberjackTitle', 'Blog Posts'); } + + + /** + * This overwrites lumberjacks default gridfield config. + * + * @return GridFieldConfig + */ + public function getLumberjackGridFieldConfig() { + return GridFieldConfig_Blog::create(); + } + } diff --git a/composer.json b/composer.json index f8694ca..01ea379 100755 --- a/composer.json +++ b/composer.json @@ -5,7 +5,7 @@ "type": "silverstripe-module", "require": { "silverstripe/cms": "^3.1.0", - "micmania1/silverstripe-lumberjack": "^1.0.0" + "micmania1/silverstripe-lumberjack": "~1.1" }, "license": "BSD-2-Clause", "authors": [