Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

NEW Show "post" date and author in CMS list view for blog entries

  • Loading branch information...
commit e265ae35e85148f02c2705f3b1983b4e1277315e 1 parent dc4705d
@chillu chillu authored
Showing with 42 additions and 0 deletions.
  1. +3 −0  _config/config.yml
  2. +39 −0 code/BlogLeftMainExtension.php
View
3  _config/config.yml
@@ -0,0 +1,3 @@
+LeftAndMain:
+ extensions:
+ - BlogLeftMainExtension
View
39 code/BlogLeftMainExtension.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Influences the page list behaviour of blog entries in the CMS.
+ * Adds author and "post date" fields.
+ */
+class BlogLeftMainExtension extends Extension {
+ function updateListView($listView) {
+ $parentId = $listView->getController()->getRequest()->requestVar('ParentID');
+ $parent = ($parentId) ? Page::get()->byId($parentId) : new Page();
+
+ // Only apply logic for this page type
+ if($parent && $parent instanceof BlogHolder) {
+ $gridField = $listView->Fields()->dataFieldByName('Page');
+ if($gridField) {
+ // Sort by post date
+ $list = $gridField->getList();
+ $list = $list->leftJoin('BlogEntry', '"BlogEntry"."ID" = "SiteTree"."ID"');
+ $gridField->setList($list->sort('Date', 'DESC'));
+
+ // Change columns
+ $cols = $gridField->getConfig()->getComponentByType('GridFieldDataColumns');
+ if($cols) {
+ $fields = $cols->getDisplayFields($gridField);
+ $castings = $cols->getFieldCasting($gridField);
+
+ // Add author to columns
+ $fields['Author'] = _t("BlogEntry.AU", "Author");
+ // Add post date and remove duplicate "created" date
+ $fields['Date'] = _t("BlogEntry.DT", "Date");
+ $castings['Date'] = 'SS_Datetime->Ago';
+ if(isset($fields['Created'])) unset($fields['Created']);
+
+ $cols->setDisplayFields($fields);
+ $cols->setFieldCasting($castings);
+ }
+ }
+ }
+ }
+}
Please sign in to comment.
Something went wrong with that request. Please try again.