Source of file TextDefinition_ContextExtension.php
Size: 1,644 Bytes - Last Modified: 2021-12-24T06:44:44+00:00
/var/www/docs.ssmods.com/process/src/src/extensions/TextDefinition_ContextExtension.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | <?php namespace DNADesign\AudioDefinition\Extensions; use DNADesign\AudioDefinition\Models\TextDefinition; use DNADesign\AudioDefinition\Models\TextDefinitionContext; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\ListboxField; use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\FieldType\DBField; use SilverStripe\ORM\FieldType\DBHTMLText; class TextDefinition_ContextExtension extends DataExtension { private static $many_many = [ 'Contexts' => TextDefinitionContext::class ]; /** * Add context selector * * @param FieldList $fields * @return void */ public function updateCMSFields(FieldList $fields) { // Remove Context Tab $fields->removeByName('Contexts'); // Show context selector only of parent is in a locale that requires context if ($this->owner->requireContext()) { $contexts = ListboxField::create('Contexts', 'Contexts', TextDefinitionContext::get()->map()); $fields->addFieldsToTab('Root.Main', $contexts); } } /** * Add context list to gridfield * * @param array $fields * @return void */ public function updateSummaryFields(&$fields) { if (TextDefinition::contexts_in_use()) { $fields['getContextsList'] = 'Contexts'; } } /** * Return the comma separated list of context name * * @return DBHTMLText */ public function getContextsList() { $list = $this->owner->Contexts()->column('Name'); return DBField::create_field(DBHTMLText::class, implode(',', $list)); } } |