/** * Get CMS Fields * * @return FieldList */ public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName('Images'); $fields->removeFieldsFromTab('Root.Main', array('BackgroundImage')); $gridFieldBulkUpload = new GridFieldBulkUpload(); $gridFieldBulkUpload->setUfSetup('setFolderName', 'GalleryImages/' . $this->ID); $fields->insertBefore(GridField::create('Images', 'Images', $this->Images(), GridFieldConfig_RecordEditor::create()->addComponent(new GridFieldSortableRows('SortOrder'))->addComponent($gridFieldBulkUpload)), 'ExtraClassDescriptionContainer'); return $fields; }
public function run() { if ($this->place === null) { throw new ErrorException("Не задано место блока (BlockWidget)."); } $modules = null; if (Yii::app()->controller->idSiteModuleTemplate == null) { // если у контроллера не установлен свой набор виджетов if (Yii::app()->menu->current != null) { // иначе берем набор модулей меню $modules = Yii::app()->menu->current->getModulesByPlace($this->place); } else { // иначе пытаемся найти набор по умолчанию Yii::app()->controller->idSiteModuleTemplate = SiteModuleTemplate::getIdDefaultTemplate(); } } if ($modules === null && Yii::app()->controller->idSiteModuleTemplate != null) { if (self::$_modules == null) { self::$_modules = SiteModule::model()->with(array('place' => array('condition' => 'place.id_module_template=:id_template', 'params' => array('id_template' => Yii::app()->controller->idSiteModuleTemplate)), 'phpScriptInstance.phpScript'))->findAll(); } $modules = array(); foreach (self::$_modules as $module) { if ($module->place->place == $this->place) { $modules[] = $module; } } } else { if ($modules === null) { return; } } foreach ($modules as $module) { if ($module->id_php_script != null) { // динамический модуль // формируем массив с параметрами $params = array(); $moduleParams = $module->phpScriptInstance->phpScript->getParametersConfig(); foreach ($moduleParams as $paramName => $config) { $params[$paramName] = $module->phpScriptInstance->getParameterValue($paramName); } $className = $module->phpScriptInstance->phpScript->import(); $this->controller->widget($className, $params); } else { // статика echo $module->content; echo $module->html; } } }
/** * Get CMS Fields * * @return FieldList */ public function getCMSFields() { $fields = parent::getCMSFields(); $fields->dataFieldByName('Content')->setRows(20); $fields->replaceField('VideoURL', TextField::create('VideoURL', 'Video URL')); $fields->replaceField('RedirectPageID', TreedropdownField::create('RedirectPageID', 'Choose a redirect page', 'SiteTree')); $fields->dataFieldByName('Image')->setTitle('Placeholder')->setFolderName('BlockWidgetVideo/' . $this->ID . '/Images'); $fields->insertAfter($fields->dataFieldByName('Tagline'), 'Title'); $fields->insertAfter($fields->dataFieldByName('Content'), 'Tagline'); $fields->insertAfter($fields->dataFieldByName('VideoURL'), 'Content'); $fields->insertAfter($fields->dataFieldByName('ButtonText'), 'VideoURL'); $fields->insertAfter($fields->dataFieldByName('RedirectPageID'), 'ButtonText'); $fields->insertAfter($fields->dataFieldByName('Image'), 'RedirectPageID'); $fields->insertAfter($fields->dataFieldByName('BackgroundImage')->setFolderName('BlockWidgetVideo/' . $this->ID . '/BackgroundImages/'), 'Image'); return $fields; }