Source of file BlockAdmin.php
Size: 2,263 Bytes - Last Modified: 2021-12-23T10:20:13+00:00
/var/www/docs.ssmods.com/process/src/src/controllers/BlockAdmin.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | <?php namespace SheaDawson\Blocks\Controllers; use SheaDawson\Blocks\Model\Block; use SheaDawson\Blocks\Model\BlockSet; use SheaDawson\Blocks\Forms\GridFieldConfigBlockManager; use SilverStripe\Admin\ModelAdmin; use SilverStripe\Versioned\Versioned; /** * BlockAdmin. * * @author Shea Dawson <shea@silverstripe.com.au> */ class BlockAdmin extends ModelAdmin { private static $managed_models = [ Block::class, Blockset::class, ]; private static $url_segment = "block-admin"; private static $menu_title = "Blocks"; public $showImportForm = false; private static $dependencies = [ "blockManager" => '%$blockManager', ]; public $blockManager; /** * @return array **/ public function getManagedModels() { $models = parent::getManagedModels(); // remove blocksets if not in use (set in config): if (!$this->blockManager->getUseBlockSets()) { unset($models['BlockSet']); } return $models; } /** * @return Form **/ public function getEditForm($id = null, $fields = null) { Versioned::set_stage('Stage'); $form = parent::getEditForm($id, $fields); if ($blockGridField = $form->Fields()->fieldByName('Block')) { $blockGridField->setConfig(GridFieldConfigBlockManager::create(true, true, false)); $config = $blockGridField->getConfig(); $dcols = $config->getComponentByType('GridFieldDataColumns'); $dfields = $dcols->getDisplayFields($blockGridField); unset($dfields['BlockArea']); $dcols->setDisplayFields($dfields); } return $form; } public function getSearchContext() { $context = parent::getSearchContext(); $fields = $context->getFields(); $subclasses = $this->blockManager->getBlockClasses(); if ($fields->dataFieldByName('q[ClassName]') && sizeof($subclasses) > 1) { $fields->dataFieldByName('q[ClassName]')->setSource($subclasses); $fields->dataFieldByName('q[ClassName]')->setEmptyString('(any)'); } else { $fields->removeByName('q[ClassName]'); } return $context; } } |