100 lines
2.4 KiB
PHP
Executable File
100 lines
2.4 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* @author Olegnax
|
|
* @package Olegnax_InfiniteScroll
|
|
* @copyright Copyright (c) 2019 Olegnax (http://olegnax.com/). All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Olegnax\InfiniteScroll\Block;
|
|
|
|
use Magento\Framework\App\ObjectManager;
|
|
use Magento\Framework\Serialize\Serializer\Json;
|
|
use Magento\Framework\View\Element\Template;
|
|
use Magento\Framework\View\Element\Template\Context;
|
|
use Olegnax\InfiniteScroll\Helper\Helper;
|
|
|
|
class Scroll extends Template
|
|
{
|
|
/**
|
|
* @var Helper
|
|
*/
|
|
public $helper;
|
|
/**
|
|
* @var Json
|
|
*/
|
|
public $json;
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* InfiniteScroll constructor.
|
|
* @param Context $context
|
|
* @param Helper $helper
|
|
* @param array $data
|
|
* @param Json|null $json
|
|
*/
|
|
public function __construct(
|
|
Context $context,
|
|
Helper $helper,
|
|
array $data = [],
|
|
Json $json = null
|
|
) {
|
|
$this->helper = $helper;
|
|
$this->json = $json ?: ObjectManager::getInstance()->get(Json::class);
|
|
parent::__construct($context, $data);
|
|
}
|
|
|
|
/**
|
|
* @return bool
|
|
*/
|
|
public function isEnabled()
|
|
{
|
|
return $this->helper->isEnabled();
|
|
}
|
|
|
|
/**
|
|
* @return bool|false|string
|
|
*/
|
|
public function getConfig()
|
|
{
|
|
|
|
$config = [
|
|
'mode' => $this->getModuleConfig('type'),
|
|
'container' => trim($this->getSelectorProducts()),
|
|
'item' => trim($this->getSelectorProduct()),
|
|
'loader' => (bool)$this->getModuleConfig('loader_type'),
|
|
];
|
|
|
|
return $this->json->serialize($config);
|
|
}
|
|
|
|
/**
|
|
* @param string $path
|
|
* @param null $storeCode
|
|
* @return mixed
|
|
*/
|
|
public function getModuleConfig($path = '', $storeCode = null)
|
|
{
|
|
return $this->helper->getModuleConfig('general/' . $path, $storeCode);
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getSelectorProducts()
|
|
{
|
|
$products_container = $this->getModuleConfig('products_container') ?: '.column.main .products.products-grid, .column.main .products.products-list, .column.main .products-grid.grid';
|
|
return $products_container;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getSelectorProduct()
|
|
{
|
|
$product_container = $this->getModuleConfig('product_container') ?: '.item.product.product-item';
|
|
return $product_container;
|
|
}
|
|
}
|