From 6d059806ea01cba6f040a9d55c038b29b8da3d68 Mon Sep 17 00:00:00 2001 From: Christopher Pitt Date: Thu, 12 Nov 2015 12:20:11 +1300 Subject: [PATCH] Added featured posts to CMS --- code/extensions/BlogFeatureExtension.php | 41 ++++++++++ code/extensions/BlogPostFeatureExtension.php | 21 +++++ code/model/Blog.php | 11 ++- code/model/BlogPost.php | 6 +- docs/en/_images/featured-posts-cms.png | Bin 0 -> 67746 bytes docs/en/featured-posts.md | 38 +++++++++ lang/en.yml | 2 +- templates/BlogAdminSidebar_holder.ss | 30 +++---- templates/Includes/BlogSideBar.ss | 6 +- templates/Includes/FeaturedPostSummary.ss | 26 ++++++ templates/Includes/MemberDetails.ss | 22 +++--- templates/Includes/Pagination.ss | 42 +++++----- templates/Layout/Blog.ss | 79 +++++++++++-------- templates/Layout/BlogPost.ss | 10 +-- templates/Layout/Blog_profile.ss | 28 +++---- 15 files changed, 251 insertions(+), 111 deletions(-) create mode 100644 code/extensions/BlogFeatureExtension.php create mode 100644 code/extensions/BlogPostFeatureExtension.php create mode 100644 docs/en/_images/featured-posts-cms.png create mode 100644 docs/en/featured-posts.md create mode 100644 templates/Includes/FeaturedPostSummary.ss diff --git a/code/extensions/BlogFeatureExtension.php b/code/extensions/BlogFeatureExtension.php new file mode 100644 index 0000000..cbd076f --- /dev/null +++ b/code/extensions/BlogFeatureExtension.php @@ -0,0 +1,41 @@ +filter('ParentID', $this->owner->ID) + ->filter('IsFeatured', true); + } + + /** + * @param DataList $posts + * @param null|string $context Context for these blog posts (e.g 'rss') + * + * @return DataList + */ + public function updateGetBlogPosts(DataList &$posts, $context = null) { + if($context === 'rss') { + return; + } + + $excluded = (int) Config::inst()->get('BlogFeatureExtension', 'excluded_feature_posts'); + + if($excluded > 0) { + $taken = $this->getFeaturedBlogPosts()->limit($excluded); + + if ($taken->count()) { + $posts = $posts->exclude(array('ID' => $taken->getIDList())); + } + } + } +} diff --git a/code/extensions/BlogPostFeatureExtension.php b/code/extensions/BlogPostFeatureExtension.php new file mode 100644 index 0000000..99d1593 --- /dev/null +++ b/code/extensions/BlogPostFeatureExtension.php @@ -0,0 +1,21 @@ + 'Boolean', + ); + + /** + * @inheritdoc + * + * @param FieldList + */ + public function updateCMSFields(FieldList $fields) { + $sidebar = $fields->fieldByName('blog-admin-sidebar'); + + $sidebar->insertBefore('PublishDate', new CheckboxField('IsFeatured', 'Mark as featured post')); + } +} diff --git a/code/model/Blog.php b/code/model/Blog.php index ceea732..e3da896 100644 --- a/code/model/Blog.php +++ b/code/model/Blog.php @@ -362,7 +362,7 @@ class Blog extends Page implements PermissionProvider { if($this->config()->grant_user_access) { $list = Member::get(); $this->extend('updateCandidateUsers', $list); - return $list; + return $list; } else { return Permission::get_members_by_permission( $this->config()->grant_user_permission @@ -471,12 +471,14 @@ class Blog extends Page implements PermissionProvider { /** * Return blog posts. * + * @param null|string $context Context for these blog posts (e.g 'rss') + * * @return DataList of BlogPost objects */ - public function getBlogPosts() { + public function getBlogPosts($context = null) { $blogPosts = BlogPost::get()->filter('ParentID', $this->ID); - $this->extend('updateGetBlogPosts', $blogPosts); + $this->extend('updateGetBlogPosts', $blogPosts, $context); return $blogPosts; } @@ -964,6 +966,7 @@ class Blog_Controller extends Page_Controller { */ public function PaginatedList() { $allPosts = $this->blogPosts ?: new ArrayList(); + $posts = new PaginatedList($allPosts); // Set appropriate page size @@ -994,7 +997,7 @@ class Blog_Controller extends Page_Controller { */ $dataRecord = $this->dataRecord; - $this->blogPosts = $dataRecord->getBlogPosts(); + $this->blogPosts = $dataRecord->getBlogPosts('rss'); $rss = new RSSFeed($this->blogPosts, $this->Link(), $this->MetaTitle, $this->MetaDescription); diff --git a/code/model/BlogPost.php b/code/model/BlogPost.php index 1b46817..84ca8f2 100644 --- a/code/model/BlogPost.php +++ b/code/model/BlogPost.php @@ -173,7 +173,7 @@ class BlogPost extends Page { $self =& $this; $this->beforeUpdateCMSFields(function ($fields) use ($self) { - $uploadField = UploadField::create('FeaturedImage', _t('BlogPost.FeaturedImage', 'Featured Image')); + $uploadField = UploadField::create('FeaturedImage', _t('BlogPost.FeaturedImage', 'Banner Image')); $uploadField->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif')); /** @@ -272,6 +272,8 @@ class BlogPost extends Page { $authorNames )->setTitle('Post Options'); + $options->setName('blog-admin-sidebar'); + $fields->insertBefore($options, 'Root'); }); @@ -658,7 +660,7 @@ class BlogPost extends Page { public function fieldLabels($includeRelations = true) { $labels = parent::fieldLabels($includeRelations); - $labels['Title'] = _t('BlogPost.PageTitleLabel', "Post Title"); + $labels['Title'] = _t('BlogPost.PageTitleLabel', 'Post Title'); return $labels; } diff --git a/docs/en/_images/featured-posts-cms.png b/docs/en/_images/featured-posts-cms.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3b5d0c9eb754d773bf15493e759a50a8620b20 GIT binary patch literal 67746 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 literal 0 HcmV?d00001 diff --git a/docs/en/featured-posts.md b/docs/en/featured-posts.md new file mode 100644 index 0000000..e7bea76 --- /dev/null +++ b/docs/en/featured-posts.md @@ -0,0 +1,38 @@ +# Featured posts + +You can enable featured posts with the following config: + +```yaml +--- +Name: featured-posts-blog-config +--- +Blog: + extensions: + - BlogFeatureExtension + +BlogPost: + extensions: + - BlogPostFeatureExtension +``` + +This will enable a checkbox in the CMS, with which you can feature blog posts: + +![](_images/featured-posts-cms.png) + +By default, the template will show the most recent featured post at the top of the +list of posts in a blog. This post will be removed from the normal list of blog posts. +You can increase the number of specially-displayed feature posts by modifying the +template to show more, and by changing the following config setting: + +``` +<% if $CanHaveFeaturedBlogPosts && $FeaturedBlogPosts %> + <% loop $FeaturedBlogPosts.Limit(10) %> + <% include FeaturedPostSummary %> + <% end_loop %> +<% end_if %> +``` + +```yaml +BlogFeatureExtension: + excluded_feature_posts: 10 +``` diff --git a/lang/en.yml b/lang/en.yml index 0ffb190..62e7268 100755 --- a/lang/en.yml +++ b/lang/en.yml @@ -69,7 +69,7 @@ en: CUSTOMSUMMARY: 'Add A Custom Summary' Categories: Categories DESCRIPTION: 'Generic content page' - FeaturedImage: 'Featured Image' + FeaturedImage: 'Banner Image' PLURALNAME: 'Base Pages' PageTitleLabel: 'Post Title' PublishDate: 'Publish Date' diff --git a/templates/BlogAdminSidebar_holder.ss b/templates/BlogAdminSidebar_holder.ss index b1dbf7b..52cbf69 100644 --- a/templates/BlogAdminSidebar_holder.ss +++ b/templates/BlogAdminSidebar_holder.ss @@ -1,20 +1,20 @@ diff --git a/templates/Includes/BlogSideBar.ss b/templates/Includes/BlogSideBar.ss index 840df55..d2419a3 100644 --- a/templates/Includes/BlogSideBar.ss +++ b/templates/Includes/BlogSideBar.ss @@ -1,5 +1,5 @@ <% if $SideBarView %> -
- $SideBarView -
+
+ $SideBarView +
<% end_if %> diff --git a/templates/Includes/FeaturedPostSummary.ss b/templates/Includes/FeaturedPostSummary.ss new file mode 100644 index 0000000..7ca2725 --- /dev/null +++ b/templates/Includes/FeaturedPostSummary.ss @@ -0,0 +1,26 @@ +
+

+ "> + <% if $MenuTitle %>$MenuTitle + <% else %>$Title<% end_if %> + +

+ +

+ > + $FeaturedImage.setWidth(795) + +

+ + <% if $Summary %> +

$Summary + <% else %> +

$Excerpt + <% end_if %> + + <%t Blog.ReadMoreAbout "Read more about '{title}'..." title=$Title %> + +

+ + <% include EntryMeta %> +
diff --git a/templates/Includes/MemberDetails.ss b/templates/Includes/MemberDetails.ss index afa7dd1..b968786 100644 --- a/templates/Includes/MemberDetails.ss +++ b/templates/Includes/MemberDetails.ss @@ -1,13 +1,13 @@
-

$CurrentProfile.FirstName $CurrentProfile.Surname

-
- <% if $CurrentProfile.BlogProfileImage %> -
- $CurrentProfile.BlogProfileImage.setWidth(180) -
- <% end_if %> -
-

$CurrentProfile.BlogProfileSummary

-
-
+

$CurrentProfile.FirstName $CurrentProfile.Surname

+
+ <% if $CurrentProfile.BlogProfileImage %> +
+ $CurrentProfile.BlogProfileImage.setWidth(180) +
+ <% end_if %> +
+

$CurrentProfile.BlogProfileSummary

+
+
diff --git a/templates/Includes/Pagination.ss b/templates/Includes/Pagination.ss index 1a20c7e..e704dd3 100644 --- a/templates/Includes/Pagination.ss +++ b/templates/Includes/Pagination.ss @@ -1,25 +1,25 @@ <%-- NOTE: Before including this, you will need to wrap the include in a with block --%> <% if $MoreThanOnePage %> -

- <% if $NotFirstPage %> - - <% end_if %> - - <% loop $Pages %> - <% if $CurrentBool %> - $PageNum - <% else %> - <% if $Link %> - $PageNum - <% else %> - ... - <% end_if %> - <% end_if %> - <% end_loop %> - - <% if $NotLastPage %> - - <% end_if %> -

+

+ <% if $NotFirstPage %> + + <% end_if %> + + <% loop $Pages %> + <% if $CurrentBool %> + $PageNum + <% else %> + <% if $Link %> + $PageNum + <% else %> + ... + <% end_if %> + <% end_if %> + <% end_loop %> + + <% if $NotLastPage %> + + <% end_if %> +

<% end_if %> diff --git a/templates/Layout/Blog.ss b/templates/Layout/Blog.ss index d858857..5cccf67 100644 --- a/templates/Layout/Blog.ss +++ b/templates/Layout/Blog.ss @@ -2,41 +2,50 @@
-
-

- <% if $ArchiveYear %> - <%t Blog.Archive "Archive" %>: - <% if $ArchiveDay %> - $ArchiveDate.Nice - <% else_if $ArchiveMonth %> - $ArchiveDate.format("F, Y") - <% else %> - $ArchiveDate.format("Y") - <% end_if %> - <% else_if $CurrentTag %> - <%t Blog.Tag "Tag" %>: $CurrentTag.Title - <% else_if $CurrentCategory %> - <%t Blog.Category "Category" %>: $CurrentCategory.Title - <% else %> - $Title - <% end_if %> -

- -
$Content
- - <% if $PaginatedList.Exists %> - <% loop $PaginatedList %> - <% include PostSummary %> - <% end_loop %> - <% else %> -

<%t Blog.NoPosts "There are no posts" %>

- <% end_if %> -
- - $Form - $CommentsForm - - <% with $PaginatedList %> +
+

+ <% if $ArchiveYear %> + <%t Blog.Archive 'Archive' %>: + <% if $ArchiveDay %> + $ArchiveDate.Nice + <% else_if $ArchiveMonth %> + $ArchiveDate.format('F, Y') + <% else %> + $ArchiveDate.format('Y') + <% end_if %> + <% else_if $CurrentTag %> + <%t Blog.Tag 'Tag' %>: $CurrentTag.Title + <% else_if $CurrentCategory %> + <%t Blog.Category 'Category' %>: $CurrentCategory.Title + <% else %> + $Title + <% end_if %> +

+ +
$Content
+ + <% if $FeaturedBlogPosts.Exists && $FeaturedBlogPosts.First %> + <% with $FeaturedBlogPosts.First %> + <% include FeaturedPostSummary %> + <% end_with %> + <% end_if %> + <% if $PaginatedList.Exists %> + <% loop $PaginatedList %> + <% include PostSummary %> + <% end_loop %> + <% else %> + <% if $FeaturedBlogPosts.Exists %> +

<%t Blog.NoUnfeaturedPosts 'There are no non-featured posts' %>

+ <% else %> +

<%t Blog.NoPosts 'There are no posts' %>

+ <% end_if %> + <% end_if %> +
+ + $Form + $CommentsForm + + <% with $PaginatedList %> <% include Pagination %> <% end_with %>
diff --git a/templates/Layout/BlogPost.ss b/templates/Layout/BlogPost.ss index 7321487..f3839dc 100644 --- a/templates/Layout/BlogPost.ss +++ b/templates/Layout/BlogPost.ss @@ -3,17 +3,17 @@

$Title

- - <% if $FeaturedImage %> + + <% if $FeaturedImage %>

$FeaturedImage.setWidth(795)

<% end_if %> - +
$Content
<% include EntryMeta %>
- - $Form + + $Form $CommentsForm
diff --git a/templates/Layout/Blog_profile.ss b/templates/Layout/Blog_profile.ss index 2f64175..78f65dc 100644 --- a/templates/Layout/Blog_profile.ss +++ b/templates/Layout/Blog_profile.ss @@ -2,22 +2,22 @@
- <% include MemberDetails %> + <% include MemberDetails %> - <% if $PaginatedList.Exists %> -

Posts by $CurrentProfile.FirstName $CurrentProfile.Surname for $Title:

- <% loop $PaginatedList %> - <% include PostSummary %> - <% end_loop %> - <% end_if %> - - $Form - $CommentsForm + <% if $PaginatedList.Exists %> +

Posts by $CurrentProfile.FirstName $CurrentProfile.Surname for $Title:

+ <% loop $PaginatedList %> + <% include PostSummary %> + <% end_loop %> + <% end_if %> - <% with $PaginatedList %> - <% include Pagination %> - <% end_with %> + $Form + $CommentsForm + + <% with $PaginatedList %> + <% include Pagination %> + <% end_with %>
-<% include BlogSideBar %> \ No newline at end of file +<% include BlogSideBar %>