protected function _prepareCollection() { $coreSlider = $this->_bannersliderHelper->getCoreSlider(); $collection = $this->_collectionFactory->create(); foreach ($coreSlider as $slider) { $collection->addItem($this->_objectFactory->create(['data' => ['id' => $slider['value'], 'title' => $slider['label']]])); } $this->setCollection($collection); return parent::_prepareCollection(); }
/** * @return $this */ protected function _prepareColumns() { $this->addColumn('slider_id', ['header' => __('Slider ID'), 'type' => 'number', 'index' => 'slider_id', 'header_css_class' => 'col-id', 'column_css_class' => 'col-id']); $this->addColumn('title', ['header' => __('Title'), 'index' => 'title', 'class' => 'xxx', 'width' => '50px']); $this->addColumn('position', ['header' => __('Position'), 'index' => 'position', 'type' => 'options', 'class' => 'xxx', 'width' => '50px', 'options' => $this->_bannersliderHelper->getAvailablePositions()]); $this->addColumn('style_slide', ['header' => __('Slider\'s Mode'), 'index' => 'style_slide', 'class' => 'xxx', 'width' => '50px', 'type' => 'options', 'options' => $this->_bannersliderHelper->getSliderModeAvailable()]); $this->addColumn('status', ['header' => __('Status'), 'index' => 'status', 'type' => 'options', 'options' => Status::getAvailableStatuses()]); $this->addColumn('edit', ['header' => __('Edit'), 'type' => 'action', 'getter' => 'getId', 'actions' => [['caption' => __('Edit'), 'url' => ['base' => '*/*/edit'], 'field' => 'slider_id']], 'filter' => false, 'sortable' => false, 'index' => 'stores', 'header_css_class' => 'col-action', 'column_css_class' => 'col-action']); $this->addExportType('*/*/exportCsv', __('CSV')); $this->addExportType('*/*/exportXml', __('XML')); $this->addExportType('*/*/exportExcel', __('Excel')); return parent::_prepareColumns(); }
/** * get banner image url. * * @param \Magestore\Bannerslider\Model\Banner $banner * * @return string */ public function getBannerImageUrl(\Magestore\Bannerslider\Model\Banner $banner) { return $this->_bannersliderHelper->getBaseUrlMedia($banner->getImage()); }
/** * Prepare form. * * @return $this */ protected function _prepareForm() { $slider = $this->getSlider(); $isElementDisabled = true; /** @var \Magento\Framework\Data\Form $form */ $form = $this->_formFactory->create(); /* * declare dependence */ // dependence block $dependenceBlock = $this->getLayout()->createBlock('Magento\\Backend\\Block\\Widget\\Form\\Element\\Dependence'); // dependence field map array $fieldMaps = []; $form->setHtmlIdPrefix('page_'); $fieldset = $form->addFieldset('base_fieldset', ['legend' => __('Slider Information')]); if ($slider->getId()) { $fieldset->addField('slider_id', 'hidden', ['name' => 'slider_id']); } $fieldset->addField('title', 'text', ['name' => 'title', 'label' => __('Title'), 'title' => __('Title'), 'required' => true, 'class' => 'required-entry']); $fieldMaps['show_title'] = $fieldset->addField('show_title', 'select', ['label' => __('Show Title'), 'title' => __('Show Title'), 'name' => 'show_title', 'options' => Status::getAvailableStatuses(), 'disabled' => false]); $fieldMaps['status'] = $fieldset->addField('status', 'select', ['label' => __('Slider Status'), 'title' => __('Slider Status'), 'name' => 'status', 'options' => Status::getAvailableStatuses(), 'disabled' => false]); $fieldMaps['style_content'] = $fieldset->addField('style_content', 'select', ['label' => __('Select available Slider Styles'), 'name' => 'style_content', 'values' => [['value' => Status::STATUS_ENABLED, 'label' => __('Yes')], ['value' => Status::STATUS_DISABLED, 'label' => __('No')]]]); $fieldMaps['custom_code'] = $fieldset->addField('custom_code', 'editor', ['name' => 'custom_code', 'label' => __('Custom slider'), 'title' => __('Custom slider'), 'wysiwyg' => true, 'required' => false]); $previewUrl = $this->_bannersliderHelper->getBackendUrl('*/*/preview', ['_current' => false]); $fieldMaps['style_slide'] = $fieldset->addField('style_slide', 'select', ['label' => __('Select Slider Mode'), 'name' => 'style_slide', 'values' => $this->_bannersliderHelper->getStyleSlider(), 'note' => '<a data-preview-url="' . $previewUrl . '" href="' . $previewUrl . '" target="_blank" id="style-slide-view">Preview</a>']); $fieldMaps['sort_type'] = $fieldset->addField('sort_type', 'select', ['label' => __('Sort type'), 'name' => 'sort_type', 'values' => [['value' => \Magestore\Bannerslider\Model\Slider::SORT_TYPE_RANDOM, 'label' => __('Random')], ['value' => \Magestore\Bannerslider\Model\Slider::SORT_TYPE_ORDERLY, 'label' => __('Orderly')]]]); $fieldMaps['width'] = $fieldset->addField('width', 'text', ['label' => __('Width'), 'name' => 'width', 'required' => true, 'class' => 'required-entry validate-number validate-greater-than-zero']); $fieldMaps['height'] = $fieldset->addField('height', 'text', ['label' => __('Height'), 'name' => 'height', 'required' => true, 'class' => 'required-entry validate-number validate-greater-than-zero']); $fieldMaps['animationB'] = $fieldset->addField('animationB', 'select', ['label' => __('Animation Effect'), 'name' => 'animationB', 'values' => $this->_bannersliderHelper->getAnimationB()]); $fieldMaps['animationA'] = $fieldset->addField('animationA', 'select', ['label' => __('Animation Effect'), 'name' => 'animationA', 'values' => $this->_bannersliderHelper->getAnimationA()]); $fieldMaps['note_color'] = $fieldset->addField('note_color', 'select', ['name' => 'note_color', 'label' => __('Color'), 'title' => __('Color'), 'values' => $this->_bannersliderHelper->getOptionColor()]); $fieldMaps['slider_speed'] = $fieldset->addField('slider_speed', 'text', ['label' => __('Speed'), 'name' => 'slider_speed', 'note' => 'milliseconds . This is the display time of a banner']); $fieldMaps['position_note'] = $fieldset->addField('position_note', 'select', ['name' => 'position_note', 'label' => __('Position'), 'title' => __('Position'), 'values' => $slider->getPositionNoteOptions(), 'note' => 'is position will be shown on all pages']); $fieldMaps['description'] = $fieldset->addField('description', 'editor', ['name' => 'description', 'label' => __('Note\'s content'), 'title' => __('Note\'s content'), 'wysiwyg' => true, 'required' => false]); $positionImage = []; for ($i = 1; $i <= 5; ++$i) { $positionImage[] = $this->getViewFileUrl("Magestore_Bannerslider::images/position/bannerslider-ex{$i}.png"); } $fieldMaps['position'] = $fieldset->addField('position', 'select', ['name' => 'position', 'label' => __('Position'), 'title' => __('Position'), 'values' => $this->_bannersliderHelper->getBlockIdsToOptionsArray(), 'note' => '<a title="" data-position-image=\'' . json_encode($positionImage) . '\' data-tooltip-image="">Preview</a>']); $fieldMaps['position_custom'] = $fieldset->addField('position_custom', 'select', ['name' => 'position_custom', 'label' => __('Position'), 'title' => __('Position'), 'values' => $this->_bannersliderHelper->getBlockIdsToOptionsArray(), 'note' => '<a title="" data-position-image=\'' . json_encode($positionImage) . '\' data-tooltip-image="">Preview</a>']); $fieldMaps['category_ids'] = $fieldset->addField('category_ids', 'multiselect', ['label' => __('Categories'), 'name' => 'category_ids', 'values' => $this->_bannersliderHelper->getCategoriesArray()]); /* * Add field map */ foreach ($fieldMaps as $fieldMap) { $dependenceBlock->addFieldMap($fieldMap->getHtmlId(), $fieldMap->getName()); } $mappingFieldDependence = $this->getMappingFieldDependence(); /* * Add field dependence */ foreach ($mappingFieldDependence as $dependence) { $negative = isset($dependence['negative']) && $dependence['negative']; if (is_array($dependence['fieldName'])) { foreach ($dependence['fieldName'] as $fieldName) { $dependenceBlock->addFieldDependence($fieldMaps[$fieldName]->getName(), $fieldMaps[$dependence['fieldNameFrom']]->getName(), $this->getDependencyField($dependence['refField'], $negative)); } } else { $dependenceBlock->addFieldDependence($fieldMaps[$dependence['fieldName']]->getName(), $fieldMaps[$dependence['fieldNameFrom']]->getName(), $this->getDependencyField($dependence['refField'], $negative)); } } /* * add child block dependence */ $this->setChild('form_after', $dependenceBlock); $defaultData = ['width' => 400, 'height' => 200, 'slider_speed' => 4500]; if (!$slider->getId()) { $slider->setStatus($isElementDisabled ? Status::STATUS_ENABLED : Status::STATUS_DISABLED); $slider->addData($defaultData); } if ($slider->hasData('animationB')) { $slider->setData('animationA', $slider->getData('animationB')); } if ($slider->hasData('position')) { $slider->setPositionCustom($slider->getPosition()); } $form->setValues($slider->getData()); $form->addFieldNameSuffix(self::FIELD_NAME_SUFFIX); $this->setForm($form); return parent::_prepareForm(); }