Skip to content

Commit f9fb779

Browse files
committed
MAGETWO-88962: [UI Component] URL Input: Product Link
1 parent 88c44bb commit f9fb779

File tree

4 files changed

+64
-4
lines changed

4 files changed

+64
-4
lines changed

app/code/Magento/Catalog/Model/ProductLink/Search.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@ public function __construct(
5151
* @param int $limit
5252
* @return \Magento\Catalog\Model\ResourceModel\Product\Collection
5353
*/
54-
public function prepareCollection(string $searchKey, int $pageNum, int $limit
54+
public function prepareCollection(
55+
string $searchKey,
56+
int $pageNum,
57+
int $limit
5558
): \Magento\Catalog\Model\ResourceModel\Product\Collection {
5659
$productCollection = $this->productCollectionFactory->create();
5760
$productCollection->addAttributeToSelect(ProductInterface::NAME);

app/code/Magento/Catalog/Ui/DataProvider/Product/AddSearchKeyConditionToCollection.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,15 @@ class AddSearchKeyConditionToCollection implements AddFilterToCollectionInterfac
2222
*
2323
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
2424
*/
25-
public function addFilter(Collection $collection, $field, $condition = null) {
25+
public function addFilter(Collection $collection, $field, $condition = null) : void
26+
{
2627
if (isset($condition['fulltext']) && !empty($condition['fulltext'])) {
2728
$collection->addFieldToFilter(
28-
ProductInterface::NAME, $condition['fulltext']
29+
ProductInterface::NAME,
30+
$condition['fulltext']
2931
)->addFieldToFilter(
30-
ProductInterface::SKU, $condition['fulltext']
32+
ProductInterface::SKU,
33+
$condition['fulltext']
3134
);
3235
}
3336
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
namespace Magento\CatalogInventory\Model\Plugin;
10+
11+
use Magento\CatalogInventory\Helper\Stock;
12+
use Magento\CatalogInventory\Model\Configuration;
13+
14+
class ProductSearch
15+
{
16+
/**
17+
* @var Configuration
18+
*/
19+
private $configuration;
20+
21+
/**
22+
* @var Stock
23+
*/
24+
private $stockHelper;
25+
26+
/**
27+
* ProductLinks constructor.
28+
*
29+
* @param Configuration $configuration
30+
* @param Stock $stockHelper
31+
*/
32+
public function __construct(Configuration $configuration, Stock $stockHelper)
33+
{
34+
$this->configuration = $configuration;
35+
$this->stockHelper = $stockHelper;
36+
}
37+
38+
/**
39+
* @param \Magento\Catalog\Model\ProductLink\Search $subject
40+
* @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection
41+
* @return \Magento\Catalog\Model\ResourceModel\Product\Collection
42+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
43+
*/
44+
public function afterPrepareCollection(
45+
\Magento\Catalog\Model\ProductLink\Search $subject,
46+
\Magento\Catalog\Model\ResourceModel\Product\Collection $collection
47+
): \Magento\Catalog\Model\ResourceModel\Product\Collection {
48+
$this->stockHelper->addIsInStockFilterToCollection($collection);
49+
return $collection;
50+
}
51+
}

app/code/Magento/CatalogInventory/etc/adminhtml/di.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,7 @@
3939
</argument>
4040
</arguments>
4141
</virtualType>
42+
<type name="Magento\Catalog\Model\ProductLink\Search">
43+
<plugin name="processOutOfStockProducts" type="Magento\CatalogInventory\Model\Plugin\ProductSearch"/>
44+
</type>
4245
</config>

0 commit comments

Comments
 (0)