* @copyright 2018 FuenRob * International Registered Trademark & Property of FuenRob * */ if (!defined('_PS_VERSION_')) { exit; } class AddColumnInList extends Module { public function __construct() { $this->name = 'addcolumninlist'; $this->tab = 'administration'; $this->version = '2.0.1'; $this->author = 'Dominik Wójcicki'; $this->need_instance = 0; $this->ps_versions_compliancy = array('min' => '1.7', 'max' => _PS_VERSION_); $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Add column in list product'); $this->description = $this->l('Dodatkowe filtorwanie produktów w Back Office'); $this->confirmUninstall = $this->l('Czy na pewno odinstalować moduł?'); } public function install() { if ( !parent::install() || !$this->registerHook('displayAdminCatalogTwigProductFilter') || !$this->registerHook('actionAdminProductsListingFieldsModifier') || !$this->registerHook('ProductsListingFieldsModifier') || !$this->registerHook('ManufacturerPagination') ) { return false; } return true; } public function uninstall() { return parent::uninstall(); } public function hookManufacturerPagination() { return Tools::getValue('filter_column_manufacturer', ''); } public function hookDisplayAdminCatalogTwigProductFilter($params) { $manufacturers = Manufacturer::getManufacturers(); $this->context->smarty->assign([ 'filter_column_manufacturer' => Tools::getValue('filter_column_manufacturer', ''), 'filter_column_ean13' => Tools::getValue('filter_column_ean13', ''), 'manufacturers' => $manufacturers, ]); return $this->display(__FILE__, 'views/templates/hook/displayAdminCatalogTwigProductFilter.tpl'); return $this->render('@PrestaShopBundle/Admin/Common/pagination.html.twig', [ 'filter_column_manufacturer' => Tools::getValue('filter_column_manufacturer', ''), 'filter_column_ean13' => Tools::getValue('filter_column_ean13', ''), 'manufacturers' => $manufacturers, ]); } public function hookActionAdminProductsListingFieldsModifier($params) { // EAN13 $params['sql_select']['ean13'] = [ 'table' => 'p', 'field' => 'ean13', 'filtering' => \PrestaShop\PrestaShop\Adapter\Admin\AbstractAdminQueryBuilder::FILTERING_LIKE_BOTH ]; $ean13_filter = Tools::getValue('filter_column_ean13', false); if ($ean13_filter && $ean13_filter != '') { $params['sql_where'][] .= "p.ean13 = " . $ean13_filter; } // Cena zakupu $params['sql_select']['wholesale_price'] = [ 'table' => 'p', 'field' => 'wholesale_price', 'filtering' => \PrestaShop\PrestaShop\Adapter\Admin\AbstractAdminQueryBuilder::FILTERING_LIKE_BOTH ]; $wholesale_price_filter = Tools::getValue('filter_column_name_wholesale_price', false); if ($wholesale_price_filter && $wholesale_price_filter != '') { $params['sql_where'][] .= " p.wholesale_price = " . $wholesale_price_filter; } // Marża $params['sql_select']['trade_margin'] = [ 'table' => 'p', 'field' => 'trade_margin', 'filtering' => \PrestaShop\PrestaShop\Adapter\Admin\AbstractAdminQueryBuilder::FILTERING_LIKE_BOTH ]; $trade_margin_filter = Tools::getValue('filter_column_trade_margin', false); if ($trade_margin_filter && $trade_margin_filter != '') { $params['sql_where'][] .= "p.trade_margin = " . $trade_margin_filter; } // Manufacturer $params['sql_select']['manufacturer'] = [ "table" => "m", "field" => "name", "filtering" => \PrestaShop\PrestaShop\Adapter\Admin\AbstractAdminQueryBuilder::FILTERING_LIKE_BOTH ]; $params['sql_table']['m'] = [ "table" => "manufacturer", "join" => "LEFT JOIN", 'on' => "p.`id_manufacturer` = m.`id_manufacturer`" ]; $manufacturer_filter = Tools::getValue('filter_column_manufacturer', false); if ($manufacturer_filter && $manufacturer_filter != '') { $params['sql_where'][] .= " p.id_manufacturer = " . $manufacturer_filter; } } }