Source of file FilterTag.php
Size: 3,099 Bytes - Last Modified: 2021-12-23T10:04:40+00:00
/var/www/docs.ssmods.com/process/src/code/objects/FilterTag.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | <?php /** * A tag for keyword descriptions of a page * * @package silverstripe * @subpackage filterablearchive * * @author Michael Strong, adapted by Michael van Schaik **/ class FilterTag extends DataObject { private static $db = array( "Title" => "Varchar(255)", 'URLSegment' => 'Varchar(255)', ); private static $has_one = array( "HolderPage" => "SiteTree", ); private static $many_many = array( "Pages" => "SiteTree", ); public function getCMSFields() { $fields = new FieldList( TextField::create("Title", _t("FilterableArchive.CategoryTitle", "Category")) ); $this->extend("updateCMSFields", $fields); return $fields; } public function onBeforeWrite() { parent::onBeforeWrite(); if ($this->Title) { $filter = URLSegmentFilter::create(); $this->URLSegment = $filter->filter($this->Title); //$this->URLSegment = SiteTree::GenerateURLSegment($this->Title); } } // public function onAfterWrite(){ // parent::onAfterWrite(); // $existing = FilterCategory::get()->filter('Title',$this->Title); // if($existing->count() > 1){ // // join tags into one // $first = $existing->first(); // foreach($existing as $item){ // if($first->ID == $item->ID){ continue; } // //$first->Pages()->add( $item->Pages() ); // $item->delete(); // } // } // } /** * Returns a relative URL for the tag link * * @return string URL **/ public function getLink() { return Controller::join_links($this->HolderPage()->Link(), "tag", $this->URLSegment); } /** * Can be overwritten using a DataExtension * * @param $member Member * * @return boolean */ public function canView($member = null) { $extended = $this->extendedCan(__FUNCTION__, $member); if ($extended !== null) { return $extended; } return true; } /** * Can be overwritten using a DataExtension * * @param $member Member * * @return boolean */ public function canCreate($member = null) { $extended = $this->extendedCan(__FUNCTION__, $member); if ($extended !== null) { return $extended; } return true; } /** * Can be overwritten using a DataExtension * * @param $member Member * * @return boolean */ public function canDelete($member = null) { $extended = $this->extendedCan(__FUNCTION__, $member); if ($extended !== null) { return $extended; } return true; } /** * Can be overwritten using a DataExtension * * @param $member Member * * @return boolean */ public function canEdit($member = null) { $extended = $this->extendedCan(__FUNCTION__, $member); if ($extended !== null) { return $extended; } return true; } } |