Source of file Tag.php
Size: 2,033 Bytes - Last Modified: 2021-12-23T10:51:18+00:00
/var/www/docs.ssmods.com/process/src/src/Models/Tag.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | <?php namespace TheWebmen\Articles\Models; use SilverStripe\CMS\Controllers\CMSPageEditController; use SilverStripe\Forms\FieldList; use SilverStripe\ORM\DataObject; use SilverStripe\View\Parsers\URLSegmentFilter; use TheWebmen\Articles\Pages\ArticlePage; use TheWebmen\Articles\Pages\ArticlesPage; class Tag extends DataObject { /** * @var array */ private static $db = [ 'Title' => 'Varchar(255)', 'Slug' => 'Varchar(255)', ]; /** * @var string */ private static $table_name = 'Webmen_ArticleTag'; /** * @var string */ private static $singular_name = 'Article tag'; /** * @var string */ private static $plural_name = 'Article tags'; /** * @var string */ private static $icon_class = 'font-icon-rocket'; /** * @var array */ private static $summary_fields = [ 'Title' => 'Tag name', ]; /** * @var array */ private static $has_one = [ 'ArticlesPage' => ArticlesPage::class, ]; /** * @var array */ private static $many_many = [ 'ArticlePages' => ArticlePage::class, ]; /** * @return FieldList */ public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName('ArticlesPageID'); $fields->renameField('Title', 'Name'); return $fields; } /** * This sets the ArticlesPageID in case the Tag is created within * an article {@see ArticlePage}, in stead of via the article overview page {@see ArticlesPage} */ protected function onBeforeWrite(): void { $currentPageID = CMSPageEditController::curr()->currentPageID(); $currentPage = \Page::get_by_id(ArticlePage::class, $currentPageID); if ($currentPage) { $this->ArticlesPageID = $currentPage->ParentID; } $this->Slug = URLSegmentFilter::create()->filter($this->Title); parent::onBeforeWrite(); } } |