From f6b6f2e27ac9fe7f7663d5a25bf34be2030b3446 Mon Sep 17 00:00:00 2001 From: Christopher Pitt Date: Mon, 18 May 2015 10:55:18 +1200 Subject: [PATCH] Improved member blog posts grid --- code/extensions/BlogMemberExtension.php | 25 ++++++++++++++++++++++++- code/extensions/BlogPostFilter.php | 4 ++++ code/model/Blog.php | 3 +-- code/model/BlogPost.php | 2 +- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/code/extensions/BlogMemberExtension.php b/code/extensions/BlogMemberExtension.php index 04507f2..4e82ba2 100644 --- a/code/extensions/BlogMemberExtension.php +++ b/code/extensions/BlogMemberExtension.php @@ -26,7 +26,7 @@ class BlogMemberExtension extends DataExtension { * @var array */ private static $belongs_many_many = array( - 'AuthoredPosts' => 'BlogPost', + 'BlogPosts' => 'BlogPost', ); /** @@ -76,12 +76,35 @@ class BlogMemberExtension extends DataExtension { return $conflict->count() == 0; } + /** * {@inheritdoc} */ public function updateCMSFields(FieldList $fields) { $fields->removeByName('URLSegment'); + // Remove the automatically-generated posts tab. + + $fields->removeFieldFromTab('Root', 'BlogPosts'); + + // Construct a better posts tab. + + Requirements::css(BLOGGER_DIR . '/css/cms.css'); + Requirements::javascript(BLOGGER_DIR . '/js/cms.js'); + + $tab = new Tab('BlogPosts', 'Blog Posts'); + + $gridField = new GridField( + 'BlogPosts', + 'Blog Posts', + $this->owner->BlogPosts(), + new GridFieldConfig_BlogPost() + ); + + $tab->Fields()->add($gridField); + + $fields->addFieldToTab('Root', $tab); + return $fields; } } diff --git a/code/extensions/BlogPostFilter.php b/code/extensions/BlogPostFilter.php index a450c41..367e636 100644 --- a/code/extensions/BlogPostFilter.php +++ b/code/extensions/BlogPostFilter.php @@ -16,6 +16,10 @@ class BlogPostFilter extends DataExtension { public function augmentSQL(SQLQuery &$query) { $stage = Versioned::current_stage(); + if (Controller::curr() instanceof LeftAndMain) { + return; + } + if($stage == 'Live' || !Permission::check('VIEW_DRAFT_CONTENT')) { $query->addWhere(sprintf('"PublishDate" < \'%s\'', Convert::raw2sql(SS_Datetime::now()))); } diff --git a/code/model/Blog.php b/code/model/Blog.php index d50a08b..f7a75f0 100644 --- a/code/model/Blog.php +++ b/code/model/Blog.php @@ -582,7 +582,6 @@ class Blog extends Page implements PermissionProvider { return $group; } - } /** @@ -683,7 +682,7 @@ class Blog_Controller extends Page_Controller { $profile = $this->getCurrentProfile(); if($profile) { - return $profile->AuthoredPosts()->filter('ParentID', $this->ID); + return $profile->BlogPosts()->filter('ParentID', $this->ID); } return null; diff --git a/code/model/BlogPost.php b/code/model/BlogPost.php index a168599..499ad6f 100644 --- a/code/model/BlogPost.php +++ b/code/model/BlogPost.php @@ -171,7 +171,7 @@ class BlogPost extends Page { /** * @var FieldList $fields */ - $fields->insertAfter($uploadField,'Content'); + $fields->insertAfter($uploadField, 'Content'); $summary = HtmlEditorField::create('Summary', false); $summary->setRows(5);