From 42072dd20ac633ce678946586de6d73b83e9a43b Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Sun, 15 Oct 2017 21:21:59 +0300 Subject: [PATCH 01/11] solve the toolbar problem when this is removed from the layout, code format on construcor of the product list block class --- .../Catalog/Block/Product/ListProduct.php | 74 ++++++++++++++----- 1 file changed, 54 insertions(+), 20 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index 7289aa85ea016..83065e81c7c50 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -7,13 +7,18 @@ namespace Magento\Catalog\Block\Product; use Magento\Catalog\Api\CategoryRepositoryInterface; +use Magento\Catalog\Block\Product\Context; use Magento\Catalog\Block\Product\ProductList\Toolbar; +use Magento\Catalog\Helper\Product\ProductList; use Magento\Catalog\Model\Category; +use Magento\Catalog\Model\Layer\Resolver; use Magento\Catalog\Model\Product; use Magento\Catalog\Model\ResourceModel\Product\Collection; use Magento\Eav\Model\Entity\Collection\AbstractCollection; +use Magento\Framework\Data\Helper\PostHelper; use Magento\Framework\DataObject\IdentityInterface; use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Framework\Url\Helper\Data; /** * Product list @@ -33,7 +38,7 @@ class ListProduct extends AbstractProduct implements IdentityInterface /** * Product Collection * - * @var AbstractCollection + * @var \Magento\Eav\Model\Entity\Collection\AbstractCollection */ protected $_productCollection; @@ -55,30 +60,39 @@ class ListProduct extends AbstractProduct implements IdentityInterface protected $urlHelper; /** - * @var CategoryRepositoryInterface + * @var \Magento\Catalog\Api\CategoryRepositoryInterface */ protected $categoryRepository; /** - * @param Context $context + * @var \Magento\Catalog\Helper\Product\ProductList + */ + protected $productListHelper; + + /** + * + * @param \Magento\Catalog\Helper\Product\ProductList $productListHelper + * @param \Magento\Catalog\Block\Product\Context $context * @param \Magento\Framework\Data\Helper\PostHelper $postDataHelper * @param \Magento\Catalog\Model\Layer\Resolver $layerResolver - * @param CategoryRepositoryInterface $categoryRepository + * @param \Magento\Catalog\Api\CategoryRepositoryInterface $categoryRepository * @param \Magento\Framework\Url\Helper\Data $urlHelper * @param array $data */ public function __construct( - \Magento\Catalog\Block\Product\Context $context, - \Magento\Framework\Data\Helper\PostHelper $postDataHelper, - \Magento\Catalog\Model\Layer\Resolver $layerResolver, + ProductList $productListHelper, + Context $context, + PostHelper $postDataHelper, + Resolver $layerResolver, CategoryRepositoryInterface $categoryRepository, - \Magento\Framework\Url\Helper\Data $urlHelper, + Data $urlHelper, array $data = [] ) { $this->_catalogLayer = $layerResolver->get(); $this->_postDataHelper = $postDataHelper; $this->categoryRepository = $categoryRepository; $this->urlHelper = $urlHelper; + $this->productListHelper = $productListHelper; parent::__construct( $context, $data @@ -137,7 +151,12 @@ public function getLoadedProductCollection() */ public function getMode() { - return $this->getChildBlock('toolbar')->getCurrentMode(); + if ($this->getChildBlock('toolbar')) { + return $this->getChildBlock('toolbar')->getCurrentMode(); + } + // if toolbar is removed from layout, use the general configuration for product list mode + // - config path catalog/frontend/list_mode + return $this->productListHelper->getDefaultViewMode($this->getModes()); } /** @@ -148,27 +167,43 @@ public function getMode() protected function _beforeToHtml() { $collection = $this->_getProductCollection(); - $this->configureToolbar($this->getToolbarBlock(), $collection); + + $this->addToobarBlock($collection); + $collection->load(); return parent::_beforeToHtml(); } + /** + * Add toolbar block to product listing + * + * @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection + */ + private function addToobarBlock(Collection $collection) + { + $toolbar = $this->getToolbarBlock(); + if ($toolbar) { + $this->configureToolbar($toolbar, $collection); + } + } + /** * Retrieve Toolbar block * - * @return Toolbar + * @return Toolbar|false */ public function getToolbarBlock() { + $block = false; + $blockName = $this->getToolbarBlockName(); - if ($blockName) { - $block = $this->getLayout()->getBlock($blockName); - if ($block) { - return $block; - } + if (!$blockName) { + return $block; } - $block = $this->getLayout()->createBlock($this->_defaultToolbarBlock, uniqid(microtime())); + + $block = $this->getLayout()->getBlock($blockName); + return $block; } @@ -386,9 +421,8 @@ private function initializeProductCollection() if ($origCategory) { $layer->setCurrentCategory($origCategory); } - - $toolbar = $this->getToolbarBlock(); - $this->configureToolbar($toolbar, $collection); + + $this->addToobarBlock($collection); $this->_eventManager->dispatch( 'catalog_block_product_list_collection', From 9dbe44493b92407c9b02217966224cb021175c48 Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Mon, 16 Oct 2017 08:49:07 +0300 Subject: [PATCH 02/11] Remove the product list helper from constructor for backward compatibility. Use the default toolbar to get current listing mode. Refactor the code. --- .../Catalog/Block/Product/ListProduct.php | 74 ++++++++++++------- 1 file changed, 47 insertions(+), 27 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index 83065e81c7c50..0b197f93d4d35 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -9,7 +9,6 @@ use Magento\Catalog\Api\CategoryRepositoryInterface; use Magento\Catalog\Block\Product\Context; use Magento\Catalog\Block\Product\ProductList\Toolbar; -use Magento\Catalog\Helper\Product\ProductList; use Magento\Catalog\Model\Category; use Magento\Catalog\Model\Layer\Resolver; use Magento\Catalog\Model\Product; @@ -65,13 +64,6 @@ class ListProduct extends AbstractProduct implements IdentityInterface protected $categoryRepository; /** - * @var \Magento\Catalog\Helper\Product\ProductList - */ - protected $productListHelper; - - /** - * - * @param \Magento\Catalog\Helper\Product\ProductList $productListHelper * @param \Magento\Catalog\Block\Product\Context $context * @param \Magento\Framework\Data\Helper\PostHelper $postDataHelper * @param \Magento\Catalog\Model\Layer\Resolver $layerResolver @@ -80,7 +72,6 @@ class ListProduct extends AbstractProduct implements IdentityInterface * @param array $data */ public function __construct( - ProductList $productListHelper, Context $context, PostHelper $postDataHelper, Resolver $layerResolver, @@ -92,7 +83,6 @@ public function __construct( $this->_postDataHelper = $postDataHelper; $this->categoryRepository = $categoryRepository; $this->urlHelper = $urlHelper; - $this->productListHelper = $productListHelper; parent::__construct( $context, $data @@ -154,9 +144,31 @@ public function getMode() if ($this->getChildBlock('toolbar')) { return $this->getChildBlock('toolbar')->getCurrentMode(); } - // if toolbar is removed from layout, use the general configuration for product list mode - // - config path catalog/frontend/list_mode - return $this->productListHelper->getDefaultViewMode($this->getModes()); + + return $this->getDefaultListingMode(); + } + + /** + * Get listing mode for products if toolbar is removed from layout. + * Use the general configuration for product list mode from config path catalog/frontend/list_mode as default value + // or mode data from block declaration from layout. + * + * @return string + */ + private function getDefaultListingMode() + { + // default Toolbar when the toolbar layout is not used + $defaultToolbar = $this->getToolbarBlock(); + $availableModes = $defaultToolbar->getModes(); + + // layout config mode + $mode = $this->getData('mode'); + if (!$mode && !isset($availableModes[$mode])) { + // default config mode + $mode = $defaultToolbar->getCurrentMode(); + } + + return $mode; } /** @@ -168,7 +180,7 @@ protected function _beforeToHtml() { $collection = $this->_getProductCollection(); - $this->addToobarBlock($collection); + $this->addToolbarBlock($collection); $collection->load(); @@ -176,33 +188,41 @@ protected function _beforeToHtml() } /** - * Add toolbar block to product listing + * Add toolbar block from product listing layout * * @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection */ - private function addToobarBlock(Collection $collection) + private function addToolbarBlock(Collection $collection) { - $toolbar = $this->getToolbarBlock(); - if ($toolbar) { - $this->configureToolbar($toolbar, $collection); + $toolbarLayout = false; + + $blockName = $this->getToolbarBlockName(); + + if ($blockName) { + $toolbarLayout = $this->getLayout()->getBlock($blockName); + } + + if ($toolbarLayout) { + $this->configureToolbar($toolbarLayout, $collection); } } /** - * Retrieve Toolbar block + * Retrieve Toolbar block from layout or a default Toolbar * - * @return Toolbar|false + * @return Toolbar */ public function getToolbarBlock() { - $block = false; - $blockName = $this->getToolbarBlockName(); - if (!$blockName) { - return $block; + + if ($blockName) { + $block = $this->getLayout()->getBlock($blockName); } - $block = $this->getLayout()->getBlock($blockName); + if (!$block) { + $block = $this->getLayout()->createBlock($this->_defaultToolbarBlock, uniqid(microtime())); + } return $block; } @@ -422,7 +442,7 @@ private function initializeProductCollection() $layer->setCurrentCategory($origCategory); } - $this->addToobarBlock($collection); + $this->addToolbarBlock($collection); $this->_eventManager->dispatch( 'catalog_block_product_list_collection', From 49fdfaee640a79ef6278e9df247a07217d9d597c Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Mon, 16 Oct 2017 10:56:16 +0300 Subject: [PATCH 03/11] refactor the code on get toolbar block from layout, fix condition on using the mode layout configuration --- .../Catalog/Block/Product/ListProduct.php | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index 0b197f93d4d35..abcc106337617 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -163,7 +163,8 @@ private function getDefaultListingMode() // layout config mode $mode = $this->getData('mode'); - if (!$mode && !isset($availableModes[$mode])) { + + if (!$mode || !isset($availableModes[$mode])) { // default config mode $mode = $defaultToolbar->getCurrentMode(); } @@ -194,13 +195,7 @@ protected function _beforeToHtml() */ private function addToolbarBlock(Collection $collection) { - $toolbarLayout = false; - - $blockName = $this->getToolbarBlockName(); - - if ($blockName) { - $toolbarLayout = $this->getLayout()->getBlock($blockName); - } + $toolbarLayout = $this->getToolbarFromLayout(); if ($toolbarLayout) { $this->configureToolbar($toolbarLayout, $collection); @@ -214,11 +209,7 @@ private function addToolbarBlock(Collection $collection) */ public function getToolbarBlock() { - $blockName = $this->getToolbarBlockName(); - - if ($blockName) { - $block = $this->getLayout()->getBlock($blockName); - } + $block = $this->getToolbarFromLayout(); if (!$block) { $block = $this->getLayout()->createBlock($this->_defaultToolbarBlock, uniqid(microtime())); @@ -227,6 +218,24 @@ public function getToolbarBlock() return $block; } + /** + * Get toolbar block from layout + * + * @return bool|Toolbar + */ + private function getToolbarFromLayout() + { + $blockName = $this->getToolbarBlockName(); + + $toolbarLayout = false; + + if ($blockName) { + $toolbarLayout = $this->getLayout()->getBlock($blockName); + } + + return $toolbarLayout; + } + /** * Retrieve additional blocks html * From b6ed2d9b31de64b234540abfd28f55485c4556bd Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Mon, 16 Oct 2017 13:03:51 +0300 Subject: [PATCH 04/11] Update the toolbar test with product list collection. The toolbar HTML depends on product collection. Because you can remove the toolbar from layout, there is no reason for parent class to add the product collection to default toolbar if the toolbar is never used. That is why the test toolbar coverage needs to include a product collection before checking the toolbar HTML. --- .../testsuite/Magento/Catalog/Block/Product/ListTest.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php index 17c0f451f9083..43240824d43a5 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php @@ -62,6 +62,9 @@ public function testToolbarCoverage() /* In order to initialize toolbar collection block toHtml should be called before toolbar toHtml */ $this->assertEmpty($parent->toHtml(), 'Block HTML'); /* Template not specified */ $this->assertEquals('grid', $parent->getMode(), 'Default Mode'); /* default mode */ + + /* In order to use toolbar html you need a collection to be set to toolbar block */ + $parent->getToolbarBlock()->setCollection($parent->getLoadedProductCollection()); $this->assertNotEmpty($parent->getToolbarHtml(), 'Toolbar HTML'); /* toolbar for one simple product */ } From 9cd20c03f9c4f3d7dd79865addf8dac9aa6139db Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Mon, 16 Oct 2017 15:46:14 +0300 Subject: [PATCH 05/11] Update the toolbar coverage test to use the a layout toolbar declaration present in default layout. Remove the previews correction made because it's not solve the problem where is checking if the toolbar HTML is not empty. --- .../testsuite/Magento/Catalog/Block/Product/ListTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php index 43240824d43a5..8773256b85785 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php @@ -55,6 +55,9 @@ public function testToolbarCoverage() $parent = $this->_getLayout()->createBlock(\Magento\Catalog\Block\Product\ListProduct::class, 'parent'); /* Prepare toolbar block */ + $this->_getLayout()->createBlock(\Magento\Catalog\Block\Product\ProductList\Toolbar::class, 'product_list_toolbar'); + $parent->setToolbarBlockName('product_list_toolbar'); + $toolbar = $parent->getToolbarBlock(); $this->assertInstanceOf(\Magento\Catalog\Block\Product\ProductList\Toolbar::class, $toolbar, 'Default Toolbar'); @@ -62,9 +65,6 @@ public function testToolbarCoverage() /* In order to initialize toolbar collection block toHtml should be called before toolbar toHtml */ $this->assertEmpty($parent->toHtml(), 'Block HTML'); /* Template not specified */ $this->assertEquals('grid', $parent->getMode(), 'Default Mode'); /* default mode */ - - /* In order to use toolbar html you need a collection to be set to toolbar block */ - $parent->getToolbarBlock()->setCollection($parent->getLoadedProductCollection()); $this->assertNotEmpty($parent->getToolbarHtml(), 'Toolbar HTML'); /* toolbar for one simple product */ } From 2adefdff73c62d829d1969b3abc988992bd3da39 Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Mon, 16 Oct 2017 19:26:15 +0300 Subject: [PATCH 06/11] fix static line limit test --- .../testsuite/Magento/Catalog/Block/Product/ListTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php index 8773256b85785..f68e509e4a8dd 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ListTest.php @@ -55,7 +55,8 @@ public function testToolbarCoverage() $parent = $this->_getLayout()->createBlock(\Magento\Catalog\Block\Product\ListProduct::class, 'parent'); /* Prepare toolbar block */ - $this->_getLayout()->createBlock(\Magento\Catalog\Block\Product\ProductList\Toolbar::class, 'product_list_toolbar'); + $this->_getLayout() + ->createBlock(\Magento\Catalog\Block\Product\ProductList\Toolbar::class, 'product_list_toolbar'); $parent->setToolbarBlockName('product_list_toolbar'); $toolbar = $parent->getToolbarBlock(); From cbda7b821c976d82eb3c513c435cd941e4b287fb Mon Sep 17 00:00:00 2001 From: Marius Date: Tue, 24 Oct 2017 14:39:44 +0300 Subject: [PATCH 07/11] Remove FQCN Remove FQCN --- .../Magento/Catalog/Block/Product/ListProduct.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index abcc106337617..5bb0b772f90de 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -37,29 +37,29 @@ class ListProduct extends AbstractProduct implements IdentityInterface /** * Product Collection * - * @var \Magento\Eav\Model\Entity\Collection\AbstractCollection + * @var AbstractCollection */ protected $_productCollection; /** * Catalog layer * - * @var \Magento\Catalog\Model\Layer + * @var Layer */ protected $_catalogLayer; /** - * @var \Magento\Framework\Data\Helper\PostHelper + * @var PostHelper */ protected $_postDataHelper; /** - * @var \Magento\Framework\Url\Helper\Data + * @var Data */ protected $urlHelper; /** - * @var \Magento\Catalog\Api\CategoryRepositoryInterface + * @var CategoryRepositoryInterface */ protected $categoryRepository; @@ -151,7 +151,7 @@ public function getMode() /** * Get listing mode for products if toolbar is removed from layout. * Use the general configuration for product list mode from config path catalog/frontend/list_mode as default value - // or mode data from block declaration from layout. + * or mode data from block declaration from layout. * * @return string */ From 992b3a10abfa7ad39a4f263f61d1b47f36113ae0 Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Tue, 21 Nov 2017 09:25:43 +0200 Subject: [PATCH 08/11] use FQCN throughout the class --- .../Catalog/Block/Product/ListProduct.php | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index 5bb0b772f90de..df91488cf5f61 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -7,16 +7,19 @@ namespace Magento\Catalog\Block\Product; use Magento\Catalog\Api\CategoryRepositoryInterface; -use Magento\Catalog\Block\Product\Context; use Magento\Catalog\Block\Product\ProductList\Toolbar; use Magento\Catalog\Model\Category; +use Magento\Catalog\Model\Layer; use Magento\Catalog\Model\Layer\Resolver; use Magento\Catalog\Model\Product; use Magento\Catalog\Model\ResourceModel\Product\Collection; +use Magento\Catalog\Pricing\Price\FinalPrice; use Magento\Eav\Model\Entity\Collection\AbstractCollection; +use Magento\Framework\App\ActionInterface; use Magento\Framework\Data\Helper\PostHelper; use Magento\Framework\DataObject\IdentityInterface; use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Framework\Pricing\Render; use Magento\Framework\Url\Helper\Data; /** @@ -64,11 +67,11 @@ class ListProduct extends AbstractProduct implements IdentityInterface protected $categoryRepository; /** - * @param \Magento\Catalog\Block\Product\Context $context - * @param \Magento\Framework\Data\Helper\PostHelper $postDataHelper - * @param \Magento\Catalog\Model\Layer\Resolver $layerResolver - * @param \Magento\Catalog\Api\CategoryRepositoryInterface $categoryRepository - * @param \Magento\Framework\Url\Helper\Data $urlHelper + * @param Context $context + * @param PostHelper $postDataHelper + * @param Resolver $layerResolver + * @param CategoryRepositoryInterface $categoryRepository + * @param Data $urlHelper * @param array $data */ public function __construct( @@ -117,7 +120,7 @@ protected function _getProductCollection() /** * Get catalog layer model * - * @return \Magento\Catalog\Model\Layer + * @return Layer */ public function getLayer() { @@ -191,7 +194,7 @@ protected function _beforeToHtml() /** * Add toolbar block from product listing layout * - * @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection + * @param Collection $collection */ private function addToolbarBlock(Collection $collection) { @@ -267,7 +270,7 @@ public function setCollection($collection) } /** - * @param array|string|integer|\Magento\Framework\App\Config\Element $code + * @param array|string|integer|Element $code * @return $this */ public function addAttribute($code) @@ -287,7 +290,7 @@ public function getPriceBlockTemplate() /** * Retrieve Catalog Config object * - * @return \Magento\Catalog\Model\Config + * @return Config */ protected function _getConfig() { @@ -297,10 +300,10 @@ protected function _getConfig() /** * Prepare Sort By fields from Category Data * - * @param \Magento\Catalog\Model\Category $category - * @return \Magento\Catalog\Block\Product\ListProduct + * @param Category $category + * @return $this */ - public function prepareSortableFieldsByCategory($category) + public function prepareSortableFieldsByCategory(Category $category) { if (!$this->getAvailableOrders()) { $this->setAvailableOrders($category->getAvailableSortByOptions()); @@ -342,38 +345,38 @@ public function getIdentities() /** * Get post parameters * - * @param \Magento\Catalog\Model\Product $product + * @param Product $product * @return string */ - public function getAddToCartPostParams(\Magento\Catalog\Model\Product $product) + public function getAddToCartPostParams(Product $product) { $url = $this->getAddToCartUrl($product); return [ 'action' => $url, 'data' => [ 'product' => $product->getEntityId(), - \Magento\Framework\App\ActionInterface::PARAM_NAME_URL_ENCODED => $this->urlHelper->getEncodedUrl($url), + ActionInterface::PARAM_NAME_URL_ENCODED => $this->urlHelper->getEncodedUrl($url), ] ]; } /** - * @param \Magento\Catalog\Model\Product $product + * @param Product $product * @return string */ - public function getProductPrice(\Magento\Catalog\Model\Product $product) + public function getProductPrice(Product $product) { $priceRender = $this->getPriceRender(); $price = ''; if ($priceRender) { $price = $priceRender->render( - \Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE, + FinalPrice::PRICE_CODE, $product, [ 'include_container' => true, 'display_minimal_price' => true, - 'zone' => \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST, + 'zone' => Render::ZONE_ITEM_LIST, 'list_category_page' => true ] ); @@ -386,7 +389,7 @@ public function getProductPrice(\Magento\Catalog\Model\Product $product) * Specifies that price rendering should be done for the list of products * i.e. rendering happens in the scope of product list, but not single product * - * @return \Magento\Framework\Pricing\Render + * @return Render */ protected function getPriceRender() { From 4e937a39fa59a7cc0cefcd19691bc095accc1c9e Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Tue, 21 Nov 2017 09:57:30 +0200 Subject: [PATCH 09/11] use FQCN, revert doc parameter namespace --- app/code/Magento/Catalog/Block/Product/ListProduct.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index df91488cf5f61..5c51429ce83d4 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -270,7 +270,7 @@ public function setCollection($collection) } /** - * @param array|string|integer|Element $code + * @param array|string|integer|\Magento\Framework\App\Config\Element $code * @return $this */ public function addAttribute($code) @@ -415,7 +415,7 @@ protected function getPriceRender() private function initializeProductCollection() { $layer = $this->getLayer(); - /* @var $layer \Magento\Catalog\Model\Layer */ + /* @var $layer Layer */ if ($this->getShowRootCategory()) { $this->setCategoryId($this->_storeManager->getStore()->getRootCategoryId()); } From c303e4dcbc0501a125e844d521d5fc57624b6b8b Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Tue, 21 Nov 2017 10:43:01 +0200 Subject: [PATCH 10/11] import Config class --- app/code/Magento/Catalog/Block/Product/ListProduct.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index 5c51429ce83d4..0d9a19ce6ae80 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -9,6 +9,7 @@ use Magento\Catalog\Api\CategoryRepositoryInterface; use Magento\Catalog\Block\Product\ProductList\Toolbar; use Magento\Catalog\Model\Category; +use Magento\Catalog\Model\Config; use Magento\Catalog\Model\Layer; use Magento\Catalog\Model\Layer\Resolver; use Magento\Catalog\Model\Product; @@ -16,6 +17,7 @@ use Magento\Catalog\Pricing\Price\FinalPrice; use Magento\Eav\Model\Entity\Collection\AbstractCollection; use Magento\Framework\App\ActionInterface; +use Magento\Framework\App\Config\Element; use Magento\Framework\Data\Helper\PostHelper; use Magento\Framework\DataObject\IdentityInterface; use Magento\Framework\Exception\NoSuchEntityException; @@ -270,7 +272,7 @@ public function setCollection($collection) } /** - * @param array|string|integer|\Magento\Framework\App\Config\Element $code + * @param array|string|integer| Element $code * @return $this */ public function addAttribute($code) From cd7dc5652b56b62713808233b0220cc7c8741078 Mon Sep 17 00:00:00 2001 From: Marius Grad Date: Tue, 21 Nov 2017 13:33:44 +0200 Subject: [PATCH 11/11] revert type parameter on method prepareSortableFieldsByCategory --- app/code/Magento/Catalog/Block/Product/ListProduct.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index 0d9a19ce6ae80..db592353da44a 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -305,7 +305,7 @@ protected function _getConfig() * @param Category $category * @return $this */ - public function prepareSortableFieldsByCategory(Category $category) + public function prepareSortableFieldsByCategory($category) { if (!$this->getAvailableOrders()) { $this->setAvailableOrders($category->getAvailableSortByOptions());