/**
  * {@inheritdoc}
  */
 public function getList(SearchCriteriaInterface $searchCriteria)
 {
     $searchResults = $this->searchResultsFactory->create();
     $searchResults->setSearchCriteria($searchCriteria);
     /** @var \Stepzerosolutions\Tbslider\Model\ResourceModel\Slider\Collection $collection */
     $collection = $this->sliderFactory->create()->getCollection();
     $sliderInterfaceName = 'Stepzerosolutions\\Tbslider\\Api\\Data\\SliderInterface';
     //die( var_dump($collection) );
     //Add filters from root filter group to the collection
     /** @var FilterGroup $group */
     foreach ($searchCriteria->getFilterGroups() as $slider) {
         $this->addFilterGroupToCollection($slider, $collection);
     }
     $sortOrders = $searchCriteria->getSortOrders();
     /** @var SortOrder $sortOrder */
     if ($sortOrders) {
         foreach ($searchCriteria->getSortOrders() as $sortOrder) {
             $field = $this->translateField($sortOrder->getField());
             $collection->addOrder($field, $sortOrder->getDirection() == SortOrder::SORT_ASC ? 'ASC' : 'DESC');
         }
     } else {
         // set a default sorting order since this method is used constantly in many
         // different blocks
         $field = $this->translateField('slider_id');
         $collection->addOrder($field, 'ASC');
     }
     $collection->setCurPage($searchCriteria->getCurrentPage());
     $collection->setPageSize($searchCriteria->getPageSize());
     /** @var \Stepzerosolutions\Tbslider\Api\Data\SliderInterface[] $slider */
     $groups = [];
     /** @var \Stepzerosolutions\Tbslider\Model\Slider $slider */
     foreach ($collection as $slide) {
         /** @var \Stepzerosolutions\Tbslider\Api\Data\SliderInterface $sliderDataObject */
         $sliderDataObject = $this->sliderDataFactory->create()->setId($slide->getId())->setSliderTitle($slide->getSliderTitle());
         $data = $slide->getData();
         $slider[] = $sliderDataObject;
     }
     $searchResults->setTotalCount($collection->getSize());
     return $searchResults->setItems($slider);
 }
Example #2
0
 /**
  * Prepare form for render
  *
  * @return void
  */
 protected function _prepareLayout()
 {
     parent::_prepareLayout();
     /** @var \Magento\Framework\Data\Form $form */
     $form = $this->_formFactory->create();
     $sliderId = $this->_coreRegistry->registry(RegistryConstants::CURRENT_SLIDER_ID);
     /** @var \Stepzerosolutions\Tbslider\Api\Data\sliderInterface $slider */
     if ($sliderId === null) {
         $slider = $this->sliderDataFactory->create();
     } else {
         $slider = $this->_sliderRepository->getById($sliderId);
     }
     // Get slider stores in an array, if not return null
     $sliderstores = $this->_sliderRepository->getSliderStoreList($slider);
     $fieldset = $form->addFieldset('base_fieldset', ['legend' => __('Slider Information')]);
     $validateClass = 'required-entry validate-length maximum-length-100';
     $sliderTitle = $fieldset->addField('slider_title', 'text', ['name' => 'slider_title', 'label' => __('Title'), 'title' => __('Title'), 'class' => $validateClass, 'required' => true]);
     $sliderDescription = $fieldset->addField('slider_description', 'textarea', ['name' => 'slider_description', 'label' => __('Description'), 'title' => __('Description'), 'class' => $validateClass, 'required' => true]);
     /* Check is single store mode */
     if (!$this->_storeManager->isSingleStoreMode()) {
         $field = $fieldset->addField('store_id', 'multiselect', ['name' => 'stores[]', 'label' => __('Store View'), 'title' => __('Store View'), 'required' => true, 'values' => $this->_systemStore->getStoreValuesForForm(false, true), 'value' => $sliderstores]);
         $renderer = $this->getLayout()->createBlock('Magento\\Backend\\Block\\Store\\Switcher\\Form\\Renderer\\Fieldset\\Element');
         $field->setRenderer($renderer);
     } else {
         $fieldset->addField('store_id', 'hidden', ['name' => 'stores[]', 'value' => $this->_storeManager->getStore(true)->getId()]);
         $slider->setStoreId($this->_storeManager->getStore(true)->getId());
     }
     $tmpstatus = $slider->getStatus();
     $fieldset->addField('status', 'select', ['label' => __('Status'), 'title' => __('Status'), 'name' => 'status', 'required' => true, 'options' => ['1' => __('Enabled'), '0' => __('Disabled')], 'value' => empty($tmpstatus) ? 0 : $slider->getStatus()]);
     $responsiveFieldset = $form->addFieldset('responsive_fieldset', ['legend' => __('Responsive Information')]);
     $dimentionClass = 'validate-length maximum-length-6';
     $sliderWidth = $responsiveFieldset->addField('slider_width', 'text', ['name' => 'slider_width', 'label' => __('Width'), 'title' => __('Width'), 'class' => 'required-entry ' . $dimentionClass, 'note' => 'Add % sign for width in presentage', 'required' => true]);
     $sliderHeight = $responsiveFieldset->addField('slider_height', 'text', ['name' => 'slider_height', 'label' => __('Height'), 'title' => __('Height'), 'note' => 'Insert "auto" to set auto height', 'class' => 'required-entry ' . $dimentionClass, 'required' => true]);
     $slider_widthxs = $responsiveFieldset->addField('slider_widthxs', 'text', ['name' => 'slider_widthxs', 'label' => __('Mobile device width'), 'title' => __('Mobile device width'), 'class' => $dimentionClass]);
     $slider_heighthxs = $responsiveFieldset->addField('slider_heighthxs', 'text', ['name' => 'slider_heighthxs', 'label' => __('Mobile device height'), 'title' => __('Mobile device height'), 'class' => $dimentionClass]);
     $slider_widthsm = $responsiveFieldset->addField('slider_widthsm', 'text', ['name' => 'slider_widthsm', 'label' => __('Small device width'), 'title' => __('Small device width'), 'class' => $dimentionClass]);
     $slider_heightsm = $responsiveFieldset->addField('slider_heightsm', 'text', ['name' => 'slider_heightsm', 'label' => __('Small device height'), 'title' => __('Small device height'), 'class' => $dimentionClass]);
     $slider_widthmd = $responsiveFieldset->addField('slider_widthmd', 'text', ['name' => 'slider_widthmd', 'label' => __('Medium device width'), 'title' => __('Medium device width'), 'class' => $dimentionClass]);
     $slider_heightmd = $responsiveFieldset->addField('slider_heightmd', 'text', ['name' => 'slider_heightmd', 'label' => __('Medium device height'), 'title' => __('Medium device height'), 'class' => $dimentionClass]);
     $designFieldset = $form->addFieldset('design_fieldset', ['legend' => __('Design Information')]);
     $designClass = 'validate-length maximum-length-7';
     $slider_class = $designFieldset->addField('slider_class', 'text', ['name' => 'slider_class', 'label' => __('CSS Class'), 'title' => __('CSS Class'), 'class' => $dimentionClass]);
     $slider_bgcolor = $designFieldset->addField('slider_bgcolor', 'text', ['name' => 'slider_bgcolor', 'label' => __('Background Color'), 'title' => __('Background Color'), 'class' => $designClass]);
     $slider_autoresoponsive = $designFieldset->addField('slider_autoresoponsive', 'text', ['name' => 'slider_autoresoponsive', 'label' => __('Auto Responsive'), 'title' => __('Auto Responsive'), 'class' => '']);
     $tmpSliderType = $slider->getSliderType();
     $slider_type = $designFieldset->addField('slider_type', 'select', ['name' => 'slider_type', 'label' => __('Slider Type'), 'title' => __('Slider Type'), 'class' => '', 'options' => $this->_sliderHelper->getSliderTypeName(), 'value' => empty($tmpSliderType) ? 0 : $slider->getSliderType()]);
     $getPauseonhover = $slider->getPauseonhover();
     $pauseonhover = $designFieldset->addField('pauseonhover', 'select', ['name' => 'pauseonhover', 'label' => __('Pause on hover'), 'title' => __('Pause on hover'), 'class' => '', 'options' => ['1' => __('Enabled'), '0' => __('Disabled')], 'value' => empty($getPauseonhover) ? 0 : $slider->getPauseonhover()]);
     $getWrap = $slider->getWrap();
     $wrap = $designFieldset->addField('wrap', 'select', ['name' => 'wrap', 'label' => __('Wrap'), 'title' => __('Wrap'), 'class' => '', 'options' => ['1' => __('Enabled'), '0' => __('Disabled')], 'value' => empty($getWrap) ? 0 : $slider->getWrap()]);
     $getKeyboard = $slider->getKeyboard();
     $keyboard = $designFieldset->addField('keyboard', 'select', ['name' => 'keyboard', 'label' => __('Keyboard'), 'title' => __('Keyboard'), 'class' => '', 'options' => ['1' => __('Enabled'), '0' => __('Disabled')], 'value' => empty($getKeyboard) ? 0 : $slider->getKeyboard()]);
     $slidermeta = $designFieldset->addField('slidermeta', 'text', ['name' => 'slidermeta', 'label' => __('Slider Meta'), 'title' => __('Slider Meta'), 'class' => '']);
     $getSliderHidexs = $slider->getSliderHidexs();
     $hidexs = $designFieldset->addField('slider_hidexs', 'select', ['name' => 'slider_hidexs', 'label' => __('Hide On Mobile Devices'), 'title' => __('Hide On Mobile Devices'), 'class' => '', 'options' => ['1' => __('Enabled'), '0' => __('Disabled')], 'value' => empty($getSliderHidexs) ? 0 : $slider->getSliderHidexs()]);
     $getSliderDuration = $slider->getSliderDuration();
     $duration = $designFieldset->addField('slider_duration', 'select', ['name' => 'slider_duration', 'label' => __('Slider Durations'), 'title' => __('Slider Duration'), 'class' => '', 'options' => ['500' => __('500'), '1000' => __('1000'), '2000' => __('2000'), '4000' => __('4000'), '5000' => __('5000'), '6000' => __('6000'), '7000' => __('7000'), '8000' => __('8000'), '9000' => __('9000'), '10000' => __('10000'), '15000' => __('15000'), '20000' => __('20000')], 'value' => empty($getSliderDuration) ? 500 : $slider->getSliderDuration()]);
     $getHidenavigation = $slider->getHidenavigation();
     $hidexs = $designFieldset->addField('hidenavigation', 'select', ['name' => 'hidenavigation', 'label' => __('Hide Navigation Controls'), 'title' => __('Hide Navigation Controls'), 'class' => '', 'options' => ['1' => __('Yes'), '0' => __('No')], 'value' => empty($getHidenavigation) ? 0 : $slider->getHidenavigation()]);
     if (!$slider->getId()) {
         $slider->setData('status', '0');
     }
     //var_dump($slider->getData());
     if ($slider->getId() !== null) {
         // If edit add id
         $form->addField('id', 'hidden', ['name' => 'id', 'value' => $slider->getId()]);
     }
     if ($this->_backendSession->getsliderData()) {
         $form->addValues($this->_backendSession->getsliderData());
         $this->_backendSession->setsliderData(null);
     } else {
         // TODO: need to figure out how the DATA can work with forms
         $form->addValues(['slider_id' => $slider->getId(), 'slider_title' => $slider->getSliderTitle(), 'slider_description' => $slider->getSliderDescription(), 'slider_width' => $slider->getSliderWidth(), 'slider_height' => $slider->getSliderHeight()]);
     }
     $form->setUseContainer(true);
     $form->setId('edit_form');
     $form->setAction($this->getUrl('tbslider/*/save'));
     $form->setMethod('post');
     $this->setForm($form);
 }