diff --git a/Block/Adminhtml/CategoryWidget/AssignCategories.php b/Block/Adminhtml/CategoryWidget/AssignCategories.php index 5c8ea3c1670d87e80f85a9405abe60d747c82c66..4b18567dd9d2190a331a7c0ed1bcf824e9de25cc 100644 --- a/Block/Adminhtml/CategoryWidget/AssignCategories.php +++ b/Block/Adminhtml/CategoryWidget/AssignCategories.php @@ -7,14 +7,14 @@ use \Magento\Framework\Exception\LocalizedException; use \Magento\Framework\Exception\NoSuchEntityException; use \Magento\Framework\Serialize\Serializer\Json as JsonSerializer; -use \NicolasBejean\MediaManager\Model\Image as ImageModel; -use \NicolasBejean\MediaManager\Model\ResourceModel\Image\Collection; -use \NicolasBejean\MediaManager\Model\ResourceModel\Image\CollectionFactory as ImageCollectionFactory; -use \NicolasBejean\MediaManager\Model\ImageRepository; - use \NicolasBejean\CategoryWidget\Model\CategoryWidget as CategoryWidgetModel; use \NicolasBejean\CategoryWidget\Model\CategoryWidgetRepository; +use \Magento\Catalog\Model\Category as CategoryModel; +use \Magento\Catalog\Model\ResourceModel\Category\Collection; +use \Magento\Catalog\Model\ResourceModel\Category\CollectionFactory; +use \Magento\Catalog\Model\CategoryRepository; + use \Exception; /** @@ -41,14 +41,14 @@ class AssignCategories extends Template private $jsonSerializer; /** - * @var ImageCollectionFactory + * @var CollectionFactory */ - private $imageCollectionFactory; + private $collectionFactory; /** - * @var ImageRepository + * @var CategoryRepository */ - private $imageRepository; + private $categoryRepository; /** * @var CategoryWidgetRepository @@ -60,8 +60,8 @@ class AssignCategories extends Template * * @param Context $context * @param JsonSerializer $jsonSerializer - * @param ImageCollectionFactory $imageCollectionFactory - * @param ImageRepository $imageRepository + * @param CollectionFactory $collectionFactory + * @param CategoryRepository $categoryRepository * @param CategoryWidgetRepository $categoryWidgetRepository * @param array $data */ @@ -69,16 +69,17 @@ class AssignCategories extends Template ( Context $context, JsonSerializer $jsonSerializer, - ImageCollectionFactory $imageCollectionFactory, - ImageRepository $imageRepository, - CategoryWidgetRepository $categoryWidgetRepository, + CollectionFactory $collectionFactory, + CategoryRepository $categoryRepository, + CategoryWidgetRepository $categoryWidgetRepository, array $data = [] ) { $this->jsonSerializer = $jsonSerializer; - $this->imageCollectionFactory = $imageCollectionFactory; - $this->imageRepository = $imageRepository; - $this->categoryWidgetRepository = $categoryWidgetRepository; + $this->collectionFactory = $collectionFactory; + + $this->categoryRepository = $categoryRepository; + $this->categoryWidgetRepository = $categoryWidgetRepository; parent::__construct($context, $data); } @@ -86,17 +87,19 @@ class AssignCategories extends Template /** * @return array */ - public function getImagesCollection() + public function getCollection() { try { /** @var Collection $collection */ - $collection = $this->imageCollectionFactory->create()->toOptionArray(); + $collection = $this->collectionFactory->create() + ->addAttributeToFilter('level', array('nin' => array(0,1))) + ->toOptionArray(); if (!empty($collection)) { $result = array(); - foreach ($collection as $image) { - array_push($result, $this->getImage($image['value'])); + foreach ($collection as $item) { + array_push($result, $this->getCategory($item['value'])); } return $result; @@ -114,39 +117,40 @@ class AssignCategories extends Template * @throws NoSuchEntityException * @throws LocalizedException */ - private function getImage (int $id) + private function getCategory (int $id) { - /** @var ImageModel $image */ - $image = $this->imageRepository->getById($id); + /** @var CategoryModel $category */ + $category = $this->categoryRepository->get($id); $result = array(); - $result['id'] = $image->getId(); - $result['path'] = $image->getPath(); - $result['alt'] = $image->getAlt(); - $result['is_active'] = $image->isActive(); + $result['id'] = $category->getId(); + $result['is_active'] = $category->getIsActive(); + $result['name'] = $category->getName(); + $result['image_path'] = $category->getImageUrl('image'); + $result['description'] = $category->getCustomAttribute('description'); + $result['url'] = $category->getUrlKey(); return $result; } /** - * @param int $sliderId + * @param int $id * @return array * @throws LocalizedException * @throws NoSuchEntityException */ - public function getSlider (int $sliderId) + public function getSlider (int $id) { /** @var CategoryWidgetModel $categoryWidget */ - $categoryWidget = $this->categoryWidgetRepository->getById($sliderId); + $categoryWidget = $this->categoryWidgetRepository->getById($id); $array = explode('|', $categoryWidget->getContent()); $array = array_map('intval', $array); $result = array(); - /** @var array $image */ - foreach ($array as $image) { - array_push($result, $this->getImage($image)); + foreach ($array as $itemId) { + array_push($result, $this->getCategory((int)$itemId)); } return $result; diff --git a/view/adminhtml/templates/categorywidget/edit/assign_categories.phtml b/view/adminhtml/templates/categorywidget/edit/assign_categories.phtml index 3991c8de325a28ebeb0bbbe81b7f685750f1cd3c..b314a1b7cb2edd89c080e90dc041fc32370f5494 100755 --- a/view/adminhtml/templates/categorywidget/edit/assign_categories.phtml +++ b/view/adminhtml/templates/categorywidget/edit/assign_categories.phtml @@ -2,7 +2,7 @@ use \NicolasBejean\CategoryWidget\Block\Adminhtml\CategoryWidget\AssignCategories; /** @var AssignCategories $block */ -$collection = $block->getImagesCollection(); +$collection = $block->getCollection(); if (empty($block->getRequest()->getParams())) { $slider = array(); @@ -15,13 +15,13 @@ if (empty($block->getRequest()->getParams())) { <div class="collection"> <p class="categorywidget-title"><?php echo __('Available categories') ?></p> <div id="collectionList" class="categorywidget-list box-shadow" sortable-list="sortable-list"> - <?php foreach ($collection as $categorie): ?> + <?php foreach ($collection as $category): ?> <div class="categorywidget-list-item box-shadow" sortable-item="sortable-item" data-id="<?php echo $category['id']; ?>"> <div class="categorywidget-list-item-content"> - <p><?php echo $category['alt']; ?></p> + <p><?php echo $category['name']; ?></p> <figure> - <img src="/pub/media/mediamanager/categorie/<?php echo $category['path']; ?>" width="125" /> - <figcaption><?php echo $category['path']; ?></figcaption> + <img src="<?php echo $category['image_path']; ?>" width="125" /> + <figcaption><?php echo $category['image_path']; ?></figcaption> </figure> </div> <div class="actions"> @@ -34,13 +34,13 @@ if (empty($block->getRequest()->getParams())) { <div class="slider"> <p class="categorywidget-title"><?php echo __('Selected categories') ?></p> <div id="sliderList" class="categorywidget-list box-shadow" sortable-list="sortable-list"> - <?php foreach ($slider as $categorie): ?> + <?php foreach ($slider as $category): ?> <div class="categorywidget-list-item box-shadow" sortable-item="sortable-item" data-id="<?php echo $category['id']; ?>"> <div class="categorywidget-list-item-content"> - <p><?php echo $category['alt']; ?></p> + <p><?php echo $category['name']; ?></p> <figure> - <img src="/pub/media/mediamanager/categorie/<?php echo $category['path']; ?>" width="125" /> - <figcaption><?php echo $category['path']; ?></figcaption> + <img src="<?php echo $category['image_path']; ?>" width="125" /> + <figcaption><?php echo $category['image_path']; ?></figcaption> </figure> </div> <div class="actions"> diff --git a/view/adminhtml/ui_component/categorywidget_categorywidget_form.xml b/view/adminhtml/ui_component/categorywidget_categorywidget_form.xml index af8f07220a2afdf7ce08accea03afa5f767caa5a..c6cbb76e258415a5589ccef79afc36b36070a56c 100755 --- a/view/adminhtml/ui_component/categorywidget_categorywidget_form.xml +++ b/view/adminhtml/ui_component/categorywidget_categorywidget_form.xml @@ -61,7 +61,7 @@ </argument> <settings> <dataType>boolean</dataType> - <label translate="true">Enable Category Widget</label> + <label translate="true">Enable</label> <dataScope>is_active</dataScope> </settings> <formElements> @@ -122,12 +122,12 @@ </settings> </field> </fieldset> - <fieldset name="assign_categorie" sortOrder="9"> + <fieldset name="assign_categories" sortOrder="9"> <settings> <collapsible>true</collapsible> - <label translate="true">Images in Slider</label> + <label translate="true">Categories</label> </settings> - <container name="assign_categorie_container" sortOrder="160"> + <container name="assign_categories_container" sortOrder="160"> <htmlContent name="html_content"> <block name="gallery" class="NicolasBejean\CategoryWidget\Block\Adminhtml\CategoryWidget\AssignCategories"/> </htmlContent>