123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- /**
- * Copyright © 2016 Ihor Vansach (ihor@magefan.com). All rights reserved.
- * See LICENSE.txt for license details (http://opensource.org/licenses/osl-3.0.php).
- *
- * Glory to Ukraine! Glory to the heroes!
- */
- namespace Magefan\Blog\Ui\DataProvider\Post\Related;
- use \Magento\Ui\DataProvider\AbstractDataProvider;
- use Magefan\Blog\Model\ResourceModel\Post\Collection;
- use Magefan\Blog\Model\ResourceModel\Post\CollectionFactory;
- use Magento\Framework\App\RequestInterface;
- /**
- * Class PostDataProvider
- */
- class PostDataProvider extends AbstractDataProvider
- {
- /**
- * @var RequestInterface
- */
- protected $request;
- /**
- * @var post
- */
- private $post;
- /**
- * Construct
- *
- * @param string $name
- * @param string $primaryFieldName
- * @param string $requestFieldName
- * @param CollectionFactory $collectionFactory
- * @param RequestInterface $request
- * @param array $meta
- * @param array $data
- */
- public function __construct(
- $name,
- $primaryFieldName,
- $requestFieldName,
- CollectionFactory $collectionFactory,
- RequestInterface $request,
- array $meta = [],
- array $data = []
- ) {
- parent::__construct(
- $name,
- $primaryFieldName,
- $requestFieldName,
- $meta,
- $data
- );
- $this->collection = $collectionFactory->create();
- $this->request = $request;
- }
- /**
- * {@inheritdoc}
- */
- public function getCollection()
- {
- /** @var Collection $collection */
- $collection = parent::getCollection();
- if (!$this->getPost()) {
- return $collection;
- }
- $collection->addFieldToFilter(
- $collection->getIdFieldName(),
- ['nin' => [$this->getPost()->getId()]]
- );
- return $this->addCollectionFilters($collection);
- }
- /**
- * Retrieve post
- *
- * @return PostInterface|null
- */
- protected function getPost()
- {
- if (null !== $this->post) {
- return $this->post;
- }
- if (!($id = $this->request->getParam('current_post_id'))) {
- return null;
- }
- return $this->post = $this->postRepository->getById($id);
- }
- }
|