static function GetVersionedClass()
 {
     $classes = array();
     foreach (ClassInfo::subClassesFor('DataObject') as $class) {
         if (Object::has_extension($class, 'Versioned')) {
             $classes[] = $class;
         }
     }
     return $classes;
 }
 /**
  * Augments (@link Hierarchy::liveChildren()}
  *
  * @param $staged DataList
  * @param $showAll boolean
  **/
 public function liveChildren($showAll = false, $onlyDeletedFromStage = false)
 {
     $staged = parent::liveChildren($showAll, $onlyDeletedFromStage);
     if (!$this->shouldFilter() && in_array(get_class($this->owner), ClassInfo::subClassesFor("Blog")) && !Permission::check("VIEW_DRAFT_CONTENT")) {
         // Filter publish posts
         $dataQuery = $staged->dataQuery()->innerJoin("BlogPost", '"BlogPost_Live"."ID" = "SiteTree"_"Live"."ID"')->where('"PublishDate" < \'' . Convert::raw2sql(SS_Datetime::now()) . '\'');
         $staged = $staged->setDataQuery($dataQuery);
     }
     return $staged;
 }
 /**
  * @return bool
  */
 protected function subclassForBlog()
 {
     return in_array(get_class($this->owner), ClassInfo::subClassesFor('Blog'));
 }