Source of file ElementAccordion.php
Size: 2,598 Bytes - Last Modified: 2018-05-17T11:11:34+00:00
/var/www/docs.ssmods.com/process/src/src/Elements/ElementAccordion.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | <?php namespace Dynamic\Elements\Accordion\Elements; use DNADesign\Elemental\Models\BaseElement; use Dynamic\Elements\Accordion\Model\AccordionPanel; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\GridField\GridField; use SilverStripe\Forms\GridField\GridFieldAddExistingAutocompleter; use SilverStripe\Forms\GridField\GridFieldDeleteAction; use SilverStripe\ORM\FieldType\DBField; use SilverStripe\ORM\FieldType\DBHTMLText; use Symbiote\GridFieldExtensions\GridFieldOrderableRows; /** * Class ElementAccordion * @package Dynamic\Elements\Accordion\Elements * * @property string $Content * * @method \SilverStripe\ORM\HasManyList Panels() */ class ElementAccordion extends BaseElement { /** * @var string */ private static $icon = 'accordion-icon'; /** * @var string */ private static $singular_name = 'Accordion'; /** * @var string */ private static $plural_name = 'Accordions'; /** * @var string */ private static $table_name = 'ElementAccordion'; /** * @var string */ private static $description = 'A collapsing list of content'; /** * @var array */ private static $db = [ 'Content' => 'HTMLText', ]; /** * @var array */ private static $has_many = array( 'Panels' => AccordionPanel::class, ); /** * @return FieldList */ public function getCMSFields() { $this->beforeUpdateCMSFields(function ($fields) { /* @var FieldList $fields */ $fields->removeByName(array( 'Sort', )); $fields->dataFieldByName('Content') ->setRows(8); if ($this->ID) { /** @var GridField $panels */ $panels = $fields->dataFieldByName('Panels'); $panels->setTitle(_t(__CLASS__.'.Panels', 'Panels')); $config = $panels->getConfig(); $config->addComponent(new GridFieldOrderableRows('Sort')); $config->removeComponentsByType(GridFieldAddExistingAutocompleter::class); $config->removeComponentsByType(GridFieldDeleteAction::class); } }); return parent::getCMSFields(); } /** * @return DBHTMLText */ public function ElementSummary() { return DBField::create_field('HTMLText', $this->Content)->Summary(20); } /** * @return string */ public function getType() { return _t(__CLASS__.'.BlockType', 'Accordion'); } } |