Save.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\CatalogSearch\Controller\SearchTermsLog;
  8. use Magento\Framework\App\Action\Context;
  9. use Magento\Store\Model\StoreManagerInterface;
  10. use Magento\Search\Model\QueryFactory;
  11. use Magento\Framework\Controller\Result\JsonFactory;
  12. use Magento\CatalogSearch\Helper\Data as HelperData;
  13. use Magento\Framework\Controller\Result\Json;
  14. /**
  15. * Controller for save search terms
  16. */
  17. class Save extends \Magento\Framework\App\Action\Action
  18. {
  19. /**
  20. * @var StoreManagerInterface
  21. */
  22. private $storeManager;
  23. /**
  24. * Catalog search helper
  25. *
  26. * @var HelperData
  27. */
  28. private $catalogSearchHelper;
  29. /**
  30. * @var QueryFactory
  31. */
  32. private $queryFactory;
  33. /**
  34. * @var JsonFactory
  35. */
  36. private $resultJsonFactory;
  37. /**
  38. * @param Context $context
  39. * @param HelperData $catalogSearchHelper
  40. * @param StoreManagerInterface $storeManager
  41. * @param QueryFactory $queryFactory
  42. * @param JsonFactory $resultJsonFactory
  43. */
  44. public function __construct(
  45. Context $context,
  46. HelperData $catalogSearchHelper,
  47. StoreManagerInterface $storeManager,
  48. QueryFactory $queryFactory,
  49. JsonFactory $resultJsonFactory
  50. ) {
  51. parent::__construct($context);
  52. $this->storeManager = $storeManager;
  53. $this->catalogSearchHelper = $catalogSearchHelper;
  54. $this->queryFactory = $queryFactory;
  55. $this->resultJsonFactory = $resultJsonFactory;
  56. }
  57. /**
  58. * Save search term
  59. *
  60. * @return Json
  61. */
  62. public function execute()
  63. {
  64. /* @var $query \Magento\Search\Model\Query */
  65. $query = $this->queryFactory->get();
  66. $query->setStoreId($this->storeManager->getStore()->getId());
  67. if ($query->getQueryText() != '') {
  68. try {
  69. if ($this->catalogSearchHelper->isMinQueryLength()) {
  70. $query->setId(0)->setIsActive(1)->setIsProcessed(1);
  71. } else {
  72. $query->saveIncrementalPopularity();
  73. }
  74. $responseContent = ['success' => true, 'error_message' => ''];
  75. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  76. $responseContent = ['success' => false, 'error_message' => $e];
  77. }
  78. } else {
  79. $responseContent = ['success' => false, 'error_message' => __('Search term is empty')];
  80. }
  81. /** @var Json $resultJson */
  82. $resultJson = $this->resultJsonFactory->create();
  83. return $resultJson->setData($responseContent);
  84. }
  85. }