/**
  *	Update the page filtering, allowing CMS searchable content tagging.
  */
 public function updateSearchForm($form)
 {
     // Update the page filtering, allowing multiple tags.
     Requirements::javascript(FUSION_PATH . '/javascript/fusion.js');
     // Instantiate a field containing the existing tags.
     $form->Fields()->insertBefore(ListboxField::create('q[Tagging]', 'Tags', FusionTag::get()->map('Title', 'Title')->toArray(), ($filtering = $this->owner->getRequest()->getVar('q')) && isset($filtering['Tagging']) ? $filtering['Tagging'] : array(), null, true), 'q[Term]');
     // Allow extension.
     $this->owner->extend('updateCMSMainTaggingExtensionSearchForm', $form);
 }
 /**
  *	Display the appropriate tagging field.
  */
 public function updateCMSFields(FieldList $fields)
 {
     $fields->removeByName('FusionTags');
     // Determine whether consolidated tags are found in the existing relationships.
     $types = array();
     foreach (singleton('FusionService')->getFusionTagTypes() as $type => $field) {
         $types[$type] = $type;
     }
     $types = array_intersect($this->owner->many_many(), $types);
     if (empty($types)) {
         // There are no consolidated tags found, therefore instantiate a tagging field.
         $fields->addFieldToTab('Root.Tagging', ListboxField::create('FusionTags', 'Tags', FusionTag::get()->map()->toArray())->setMultiple(true));
     }
     // Allow extension.
     $this->owner->extend('updateTaggingExtensionCMSFields', $fields);
 }
 /**
  *	Update the fusion tag to remove this tag type.
  */
 public function onAfterDelete()
 {
     parent::onAfterDelete();
     $fusion = FusionTag::get()->byID($this->owner->FusionTagID);
     $types = unserialize($fusion->TagTypes);
     unset($types[$this->owner->ClassName]);
     $fusion->TagTypes = !empty($types) ? serialize($types) : null;
     $fusion->write();
 }
 /**
  *	Confirm that the fusion tag has been given a title and doesn't already exist.
  */
 public function validate()
 {
     $result = parent::validate();
     $this->Title = strtolower($this->Title);
     if ($result->valid() && !$this->Title) {
         $result->error('"Title" required!');
     } else {
         if ($result->valid() && FusionTag::get_one('FusionTag', "ID != " . (int) $this->ID . " AND Title = '" . Convert::raw2sql($this->Title) . "'")) {
             $result->error('Tag already exists!');
         }
     }
     // Allow extension.
     $this->extend('validateFusionTag', $result);
     return $result;
 }
Example #5
0
 /**
  *	Confirm that the fusion tag has been given a title and doesn't already exist.
  */
 public function validate()
 {
     $result = parent::validate();
     $this->Title = strtolower($this->Title);
     if ($result->valid() && !$this->Title) {
         $result->error('"Title" required!');
     } else {
         if ($result->valid() && FusionTag::get_one('FusionTag', array('ID != ?' => $this->ID, 'Title = ?' => $this->Title))) {
             $result->error('Tag already exists!');
         }
     }
     // Allow extension.
     $this->extend('validateFusionTag', $result);
     return $result;
 }