/**
  * Return blog posts
  *
  * @return DataList of BlogPost objects
  **/
 public function getBlogPosts()
 {
     $blogPosts = BlogPost::get()->filter("ParentID", $this->ID);
     //Allow decorators to manipulate list
     $this->extend('updateGetBlogPosts', $blogPosts);
     return $blogPosts;
 }
 /**
  * @return DataList
  */
 public function getFeaturedBlogPosts()
 {
     $controller = Controller::curr();
     $parameters = $controller->getRequest()->allParams();
     $list = BlogPost::get()->filter('ParentID', $this->owner->ID)->filter('IsFeatured', true);
     if (isset($parameters['Category'])) {
         $list = $list->filter('Categories.URLSegment', $parameters['Category']);
     }
     return $list;
 }
Ejemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function updateCMSFields(FieldList $fields)
 {
     $excluded = $this->owner->getExcludedSiteTreeClassNames();
     if (!empty($excluded)) {
         $pages = BlogPost::get()->filter(array('ParentID' => $this->owner->ID, 'ClassName' => $excluded));
         $gridField = new BlogFilter_GridField('ChildPages', $this->getLumberjackTitle(), $pages, $this->getLumberjackGridFieldConfig());
         $tab = new Tab('ChildPages', $this->getLumberjackTitle(), $gridField);
         $fields->insertBefore($tab, 'Main');
     }
 }
 public function testFilter()
 {
     $member = Member::currentUser();
     if ($member) {
         $member->logout();
     }
     $count = BlogPost::get()->count();
     $this->assertEquals(3, $count, "Filtered blog posts");
     SS_Datetime::set_mock_now("2020-01-01 00:00:00");
     $count = BlogPost::get()->count();
     $this->assertEquals(5, $count, "Unfiltered blog posts");
 }
Ejemplo n.º 5
0
 public function getBlogSlicePosts()
 {
     if ($this->owner->FeaturedPosts && $this->getFeaturedBlogPost()) {
         $featured = $this->getFeaturedBlogPost();
         $others = BlogPost::get()->exclude('ID', $featured->ID)->limit(2)->sort('PublishDate', 'DESC');
         $posts = ArrayList::create();
         $posts->push($featured);
         foreach ($others as $item) {
             $posts->push($item);
         }
         return $posts;
     }
     return BlogPost::get()->limit(3)->sort('PublishDate', 'DESC');
 }
 public function doSavePost($data, $form)
 {
     $post = false;
     if (isset($data['ID']) && $data['ID']) {
         $post = BlogPost::get()->byID($data['ID']);
     }
     if (!$post) {
         $post = BlogPost::create();
     }
     $form->saveInto($post);
     $post->ParentID = $this->owner->ID;
     $this->owner->extend("onBeforeSavePost", $blogentry);
     $oldMode = Versioned::get_reading_mode();
     Versioned::reading_stage('Stage');
     $post->write();
     $post->publish("Stage", "Live");
     Versioned::set_reading_mode($oldMode);
     $this->owner->extend("onAfterSavePost", $post);
     $this->owner->redirect($this->owner->Link());
 }
Ejemplo n.º 7
0
 /**
  * Return blog posts.
  *
  * @return DataList of BlogPost objects
  */
 public function getBlogPosts()
 {
     $blogPosts = BlogPost::get()->filter('ParentID', $this->ID);
     $this->extend('updateGetBlogPosts', $blogPosts);
     return $blogPosts;
 }
Ejemplo n.º 8
0
 public function LatestPost()
 {
     return $post = BlogPost::get()->sort("PublishDate", "ASC")->First() ? $post : false;
 }
Ejemplo n.º 9
0
 public function read()
 {
     return ['Post' => BlogPost::get()->byID($this->request->param('ID'))];
 }
 /**
  * @return DataList
  */
 public function getFeaturedBlogPosts()
 {
     return BlogPost::get()->filter('ParentID', $this->owner->ID)->filter('IsFeatured', true);
 }
 function NextBlogEntry()
 {
     return BlogPost::get()->filter(array('ParentID' => $this->owner->ParentID, 'PublishDate:GreaterThan' => $this->owner->PublishDate))->Sort('PublishDate ASC')->First();
 }
Ejemplo n.º 12
0
 /**
  * Return latest blog post.
  *
  * @return singel blog post
  */
 public function getLatestPost()
 {
     $posts = BlogPost::get()->filter('ParentID', $this->ID);
     if ($posts->count() > 0) {
         return $posts->first();
     }
     return false;
 }