SaveSearchQueryRelationsObserver.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\AdvancedSearch\Model\Recommendations;
  7. use Magento\AdvancedSearch\Model\ResourceModel\RecommendationsFactory;
  8. use Magento\Framework\Event\Observer as EventObserver;
  9. use Magento\Framework\Event\ObserverInterface;
  10. class SaveSearchQueryRelationsObserver implements ObserverInterface
  11. {
  12. /**
  13. * @var RecommendationsFactory
  14. */
  15. private $recommendationsFactory;
  16. /**
  17. * @param RecommendationsFactory $recommendationsFactory
  18. */
  19. public function __construct(RecommendationsFactory $recommendationsFactory)
  20. {
  21. $this->recommendationsFactory = $recommendationsFactory;
  22. }
  23. /**
  24. * Save search query relations after save search query
  25. *
  26. * @param EventObserver $observer
  27. * @return void
  28. */
  29. public function execute(EventObserver $observer)
  30. {
  31. $searchQueryModel = $observer->getEvent()->getDataObject();
  32. $queryId = $searchQueryModel->getId();
  33. $relatedQueries = $searchQueryModel->getSelectedQueriesGrid();
  34. if (strlen($relatedQueries) == 0) {
  35. $relatedQueries = [];
  36. } else {
  37. $relatedQueries = explode('&', $relatedQueries);
  38. }
  39. $this->recommendationsFactory->create()->saveRelatedQueries($queryId, $relatedQueries);
  40. }
  41. }