Source of file BlogSharedCategoriesExtension.php
Size: 2,547 Bytes - Last Modified: 2021-12-23T10:38:52+00:00
/var/www/docs.ssmods.com/process/src/code/model/BlogSharedCategoriesExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | <?php /** * extends Blog * */ class BlogSharedCategoriesExtension extends DataExtension { public function updateCMSFields(FieldList $fields) { $fields->removeByName("Categories"); $fields->removeByName("Tags"); $fields->addFieldsToTab( "Root.Categorisation", array( GridField::create( "Categories", "Categories", $this->owner->Categories(), GridFieldConfig_RecordEditor ::create() ) ) ); $fields->addFieldsToTab( "Root.Tags", array( GridField::create( "Tags", "Tags", $this->owner->Tags(), GridFieldConfig_RecordEditor ::create() ) ) ); } /** * * @return DataList */ public function UsedCategories() { $categories = BlogCategory::get() ->filter(array('BlogID' => $this->owner->ID)) ->sort(array('Title' => 'ASC')); foreach ($categories as $category) { if ($category->BlogPosts()->count() == 0) { $categories = $categories->exclude(array('BlogCategory.ID' => $category->ID)); } } return $categories; } /** * overrules has_many method * to return ALL categories * * @return DataList */ public function UsedTags() { $tags = BlogTag::get(); foreach ($tags as $tag) { if ($tag->BlogPosts()->count() == 0) { $tags = $tags->exclude(array('BlogTag.ID' => $tag->ID)); } } return $tags; } /** * overrules has_many method * to return ALL categories * * @return DataList */ public function Tags() { return BlogTag::get(); } /** * overrules has_many method * to return ALL categories * * @return DataList */ public function Categories() { return BlogCategory::get(); } /** * overrules has_many method * to return ALL categories * * @return DataList */ public function getTags() { return BlogTag::get(); } /** * overrules has_many method * to return ALL categories * * @return DataList */ public function getCategories() { return BlogCategory::get(); } } |