Source of file SearchableClass.php
Size: 1,784 Bytes - Last Modified: 2021-12-23T10:58:34+00:00
/var/www/docs.ssmods.com/process/src/code/SearchableClass.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | <?php /** * Represents a searchable class in Elastica for editing purposes. */ class SearchableClass extends DataObject { private static $db = array('Name' => 'Varchar', 'InSiteTree' => 'Boolean'); private static $has_many = array('SearchableFields' => 'SearchableField'); private static $display_fields = array('Name', 'IsInSiteTreeHumanReadable'); public function getCMSFields() { $fields = new FieldList(); $fields->push(new TabSet('Root', $mainTab = new Tab('Main'))); $mainTab->setTitle(_t('SiteTree.TABMAIN', 'Main')); $fields->addFieldToTab('Root.Main', $nf = new TextField('Name', 'Name')); $nf->setReadOnly(true); $nf->setDisabled(true); $config = GridFieldConfig_RecordEditor::create(); // remove add button $config->removeComponent($config->getComponentByType('GridFieldAddNewButton')); $config->removeComponent($config->getComponentByType('GridFieldDeleteAction')); $config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array( 'Name' => 'Name', 'Weight' => 'Weighting', 'Searchable' => 'Search this field?', )); $gridField = new GridField( 'SearchableField', // Field name 'Field Name', // Field title SearchableField::get()->filter('SearchableClassID', $this->ID)->sort('Name'), $config ); $fields->addFieldToTab('Root.Main', $gridField); /* $fields = new FieldList(); $fields->addFieldToTab('Root.Main', new TextField('Name', 'Name')); */ return $fields; } public function IsInSiteTreeHumanReadable() { return $this->InSiteTree ? 'Yes' : 'No'; } } |