code: public function getCMSFields() {
  
  		$fields = parent::getCMSFields();
  
  		// Determine whether the tag types should be displayed.
  
  		$types = array();
  		foreach($this->service->getFusionTagTypes() as $type => $field) {
  			$types[$type] = $type;
  		}
  		if(count($types)) {
  
  			// The serialised representation will require a custom field to display correctly.
  
  			$fields->replaceField('TagTypes', $list = ListboxField::create(
  				'Types',
  				'Tag Types',
  				$types
  			)->setMultiple(true));
  
  			// Disable existing tag types to prevent deletion.
  
  			$items = is_string($this->TagTypes) ? array_keys(unserialize($this->TagTypes)) : array();
  			$list->setValue($items);
  			$list->setDisabledItems($items);
  		}
  		else {
  
  			// There are no existing or configuration defined tag types.
  
  			$fields->removeByName('TagTypes');
  		}
  
  		// Allow extension.
  
  		$this->extend('updateFusionTagCMSFields', $fields);
  		return $fields;
  	}
docs: Display the appropriate fusion tag fields.