name = 'phstickers'; $this->tab = 'other'; $this->version = '1.0.8'; $this->author = 'PrestaHelp'; $this->need_instance = 1; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Stikers - naklejki na produkcie'); $this->description = $this->l('Możesz dodać naklejki do produktu'); $this->confirmUninstall = $this->l('Odinstalowanie modułu nie powoduje utraty żadnych danych.'); } public function install() { if (!$this->setInst()) { return false; } $this->setConfig(); $this->installSql(); if (!parent::install() || !$this->setNewHook() || !$this->registerHook('displayHeader') || !$this->registerHook('displayAdminProductsExtra') || !$this->registerHook('actionProductUpdate') || !$this->registerHook('displayProductStickers') || !$this->registerHook('displayProductListStickers') ) { return false; } else { return true; } } public function uninstall() { $this->uninstallSql(); if (!parent::uninstall()) { return false; } return true; } private function setInst() { $shop = new Shop($this->context->shop->id); $auth = new AuthDSPhStickers(); if ($auth->makeTools($this->displayName, $this->version, $shop->getBaseURL())){ return true; } return false; } private function isActiveModule() { $shop = new Shop((int)$this->context->shop->id); $auth = new AuthDSPhStickers($this->name); $licence = $auth->isActive($shop->getBaseURL()); if (empty($licence)) { $domain = AuthDSPhStickers::clearDomain($shop->getBaseURL()); $licence = $auth->getStaticLicence($domain, 'Stikers - naklejki na produkcie', Configuration::get('PHSTICKERS_LICENCE')); } return array( 'active' => $licence, 'actived' => $licence['licence']->licence ); } private function setConfig() { Configuration::updateValue('PHSTICKERS_PRODUCT_MAX', 4); Configuration::updateValue('PHSTICKERS_PRODUCT_STICKER_WIDTH', 100); Configuration::updateValue('PHSTICKERS_PRODUCT_STICKER_HEIGHT', 100); Configuration::updateValue('PHSTICKERS_PRODUCTLIST_STICKER_WIDTH', 60); Configuration::updateValue('PHSTICKERS_PRODUCTLIST_STICKER_HEIGHT', 60); Configuration::updateValue('PHSTICKERS_HIDE_MOBILE', 0); Configuration::updateValue('PHSTICKERS_PROMOTION_SHOW', 1); Configuration::updateValue('PHSTICKERS_NEWPRODUCT_SHOW', 1); Configuration::updateValue('PHSTICKERS_BESTSELLER_SHOW', 1); } private function installSql() { include_once __DIR__.'/sql/install.php'; } private function uninstallSql() { include_once __DIR__.'/sql/uninstall.php'; } private function setNewHook() { $issetHook = Hook::getIdByName('displayProductStickers'); $res = true; if (empty($issetHook)) { $hook = new Hook(); $hook->name = 'displayProductStickers'; $hook->title = 'displayProductStickers'; $hook->description = 'display Stickers in product'; $res &= $hook->add(); } $issetHook2 = Hook::getIdByName('displayProductListStickers'); if (empty($issetHook2)) { $hook2 = new Hook(); $hook2->name = 'displayProductListStickers'; $hook2->title = 'displayProductListStickers'; $hook2->description = 'display Stickers in product list'; $res &= $hook2->add(); } return $res; } public function hookDisplayHeader() { $activeted = $this->isActiveModule(); if ($activeted['actived'] == 1) { if (self::ps16()) { $this->context->controller->addCSS(($this->_path) . 'views/css/phstickers.css', 'all'); $this->context->controller->addJS(($this->_path) . 'views/js/phstickers.js'); } else { $this->context->controller->addCSS(($this->_path) . 'views/css/phstickers17.css', 'all'); $this->context->controller->addJS(_PS_ROOT_DIR_ . '/js/jquery/jquery-1.11.0.min.js'); $this->context->controller->addJS(($this->_path) . 'views/js/phstickers17.js'); } } } public function getContent() { $activeted = $this->isActiveModule(); if ($activeted['actived'] == 1) { $output = ''; $ssl = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; $stickerUpdate = new StickerUpdate(); $this->process($stickerUpdate); if (Tools::getIsset('addSticker')) { $languages = Language::getLanguages(true); $this->context->smarty->assign(array( 'languages' => $languages, 'manufacturer' => Manufacturer::getManufacturers(false, (int)$this->context->cookie->id_lang), 'positions' => Sticker::$positions )); $output .= $this->context->smarty->fetch($this->local_path . 'views/templates/admin/add.tpl'); } else if (Tools::getIsset('editSticker')) { $id_sticker = (int)Tools::getValue('editSticker'); $sticker = Sticker::getSticker((int)$id_sticker); if (!empty($sticker)) { $lng = array(); if (!empty($sticker['langs'])) { foreach ($sticker['langs'] as $lang) { $lng[$lang['id_lang']] = $lang; } } $sticker['lng'] = $lng; $sticker['stickerDir'] = $ssl . $this->context->shop->domain . $this->context->shop->physical_uri . '/modules/' . $this->name . '/stickers/'; } $adminListDir = $this->context->link->getAdminLink('AdminModules', true) . '&configure=' . $this->name . '&tab_module=other&module_name=' . $this->name; $languages = Language::getLanguages(true); $this->context->smarty->assign(array( 'languages' => $languages, 'sticker' => $sticker, 'adminListDir' => $adminListDir, 'manufacturer' => Manufacturer::getManufacturers(false, (int)$this->context->cookie->id_lang), 'positions' => Sticker::$positions )); $output .= $this->context->smarty->fetch($this->local_path . 'views/templates/admin/edit.tpl'); } else if (Tools::getIsset('addCategorySticker')) { $imageStickerDir = $ssl . $this->context->shop->domain . $this->context->shop->physical_uri . '/modules/' . $this->name . '/stickers/' . (int)$this->context->cookie->id_lang . '/'; $list = Sticker::getAllStickers((int)$this->context->cookie->id_lang); $categories = new HelperTreeCategories('associated-categories-tree'); $categories->setUseCheckBox(1)->setUseSearch(1)->setSelectedCategories(array()); $helper_category_ceneo = $categories->render(); $this->context->smarty->assign(array( 'list' => $list, 'imageStickerDir' => $imageStickerDir, 'helper_category_ceneo' => $helper_category_ceneo, 'PHSTICKERS_PRODUCT_MAX' => Configuration::get('PHSTICKERS_PRODUCT_MAX'), 'positions' => Sticker::$positions )); $output .= $this->context->smarty->fetch($this->local_path . 'views/templates/admin/addCategory.tpl'); } else if (Tools::getIsset('editCategorySticker')) { $id_sticker_category = (int)Tools::getValue('editCategorySticker'); $categorySticker = Sticker::getCategorySticker((int)$id_sticker_category); $category_name = ''; if (!empty($categorySticker)) { $category = new Category((int)$categorySticker['id_category'], (int)$this->context->cookie->id_lang); $category_name = $category->name; } $list = Sticker::getAllStickers((int)$this->context->cookie->id_lang); $imageStickerDir = $ssl . $this->context->shop->domain . $this->context->shop->physical_uri . '/modules/' . $this->name . '/stickers/' . (int)$this->context->cookie->id_lang . '/'; $stickers = array(); $positions = array(); $categoryStickers = Sticker::getCategoryStickers((int)$categorySticker['id_category']); if (!empty($categoryStickers)) { foreach ($categoryStickers as $c) { $stickers[] = (int)$c['id_sticker']; $positions[$c['id_sticker']] = $c['position']; } } $this->context->smarty->assign(array( 'list' => $list, 'category_name' => $category_name, 'imageStickerDir' => $imageStickerDir, 'stickers' => $stickers, 'id_category' => (int)$categorySticker['id_category'], 'PHSTICKERS_PRODUCT_MAX' => Configuration::get('PHSTICKERS_PRODUCT_MAX'), 'positions' => Sticker::$positions, 'stickerPosition' => $positions )); $output .= $this->context->smarty->fetch($this->local_path . 'views/templates/admin/editCategory.tpl'); } else { $this->context->controller->addCSS(__DIR__ . '/assets/css/phelp.css'); $updateModule = false; $module = Module::getInstanceByName($this->name); $mversion = $module->version; /* prestahelp API - do not remove! */ $auth = new AuthDSPhStickers($this->name); $productsShow = $auth->getBaners(); $authorInfo = $auth->getAuthor(); $chlogInfo = $auth->getChangelog(); $chlogInfoOther = $auth->getChangelogOther(); $currentVersion = $auth->getCurrentModuleVersion(); /* prestahelp API - do not remove! */ $phelpBtm = __DIR__ . '/views/templates/admin/phelp-bottom.tpl'; $phelpTop = __DIR__ . '/views/templates/admin/phelp-top.tpl'; $moduleAssets = $ssl . $this->context->shop->domain . $this->context->shop->physical_uri . 'modules/' . $this->name . '/assets/'; $lastestVersion = $currentVersion['version'] == $mversion ? true : false; $updateLink = 'https://modules.prestahelp.com/moduly/' . $this->name . '/' . $this->name . $currentVersion['version'] . '.zip'; $indexLink = 'https://modules.prestahelp.com/moduly/' . $this->name . '/'; $banersHtml = AuthDSPhStickers::getBanersHtml(); $adminAddLink = $this->context->link->getAdminLink('AdminModules', true) . '&configure=' . $this->name . '&tab_module=other&module_name=' . $this->name . '&addSticker=1'; $adminAddCategoryLink = $this->context->link->getAdminLink('AdminModules', true) . '&configure=' . $this->name . '&tab_module=other&module_name=' . $this->name . '&addCategorySticker=1'; $adminEditLink = $this->context->link->getAdminLink('AdminModules', true) . '&configure=' . $this->name . '&tab_module=other&module_name=' . $this->name . '&editSticker='; $adminDeleteLink = $this->context->link->getAdminLink('AdminModules', true) . '&configure=' . $this->name . '&tab_module=other&module_name=' . $this->name . '&deleteSticker='; $adminEditCategoryLink = $this->context->link->getAdminLink('AdminModules', true) . '&configure=' . $this->name . '&tab_module=other&module_name=' . $this->name . '&editCategorySticker='; $adminDeleteCategoryLink = $this->context->link->getAdminLink('AdminModules', true) . '&configure=' . $this->name . '&tab_module=other&module_name=' . $this->name . '&deleteCategorySticker='; $stickerDir = $ssl . $this->context->shop->domain . $this->context->shop->physical_uri . 'modules/' . $this->name . '/stickers/' . (int)$this->context->cookie->id_lang . '/'; $stickerList = Sticker::getAllStickers((int)$this->context->cookie->id_lang); $stickerCategoryList = Sticker::getAllCategorySticker(); if (!empty($stickerCategoryList)) { foreach ($stickerCategoryList as &$s) { $category = new Category((int)$s['id_category'], (int)$this->context->cookie->id_lang); $s['category_name'] = $category->name; $stickerCat = Sticker::getSticker((int)$s['id_sticker'], (int)$this->context->cookie->id_lang); $s['file_name'] = $stickerCat['langs']['file_name']; $pos = ' -- '; if ($s['position'] > 0) { $pos = Sticker::$positions[$s['position']]; } $s['pos'] = $pos; } } $ready1 = false; $ready2 = false; if (self::ps17()) { $proTpl = file_get_contents(_PS_ALL_THEMES_DIR_ . $this->context->shop->theme_name . '/templates/catalog/_partials/product-cover-thumbnails.tpl'); $isset1 = mb_strpos($proTpl, "{hook h='displayProductStickers'}"); if ($isset1 > 0) { $ready1 = true; } $proTpl2 = file_get_contents(_PS_ALL_THEMES_DIR_ . $this->context->shop->theme_name . '/templates/catalog/_partials/miniatures/product.tpl'); $isset2 = mb_strpos($proTpl2, "{hook h='displayProductListStickers'"); if ($isset2 > 0) { $ready2 = true; } } else { $proTpl = file_get_contents(_PS_ALL_THEMES_DIR_ . $this->context->shop->theme_name . '/product.tpl'); $isset1 = mb_strpos($proTpl, "{hook h='displayProductStickers'}"); if ($isset1 > 0) { $ready1 = true; } $proTpl2 = file_get_contents(_PS_ALL_THEMES_DIR_ . $this->context->shop->theme_name . '/product-list.tpl'); $isset2 = mb_strpos($proTpl2, "{hook h='displayProductListStickers'"); if ($isset2 > 0) { $ready2 = true; } } $stickerUpdate->checkUpdate(); $this->context->smarty->assign(array( 'stickerList' => $stickerList, 'adminAddLink' => $adminAddLink, 'adminAddCategoryLink' => $adminAddCategoryLink, 'adminEditLink' => $adminEditLink, 'adminDeleteLink' => $adminDeleteLink, 'stickerDir' => $stickerDir, 'stickerCategoryList' => $stickerCategoryList, 'adminEditCategoryLink' => $adminEditCategoryLink, 'adminDeleteCategoryLink' => $adminDeleteCategoryLink, 'PHSTICKERS_PRODUCT_MAX' => Configuration::get('PHSTICKERS_PRODUCT_MAX'), 'PHSTICKERS_PRODUCT_STICKER_WIDTH' => Configuration::get('PHSTICKERS_PRODUCT_STICKER_WIDTH'), 'PHSTICKERS_PRODUCT_STICKER_HEIGHT' => Configuration::get('PHSTICKERS_PRODUCT_STICKER_HEIGHT'), 'PHSTICKERS_PRODUCTLIST_STICKER_WIDTH' => Configuration::get('PHSTICKERS_PRODUCTLIST_STICKER_WIDTH'), 'PHSTICKERS_PRODUCTLIST_STICKER_HEIGHT' => Configuration::get('PHSTICKERS_PRODUCTLIST_STICKER_HEIGHT'), 'PHSTICKERS_HIDE_MOBILE' => Configuration::get('PHSTICKERS_HIDE_MOBILE'), 'PHSTICKERS_PROMOTION_SHOW' => Configuration::get('PHSTICKERS_PROMOTION_SHOW'), 'PHSTICKERS_NEWPRODUCT_SHOW' => Configuration::get('PHSTICKERS_NEWPRODUCT_SHOW'), 'PHSTICKERS_BESTSELLER_SHOW' => Configuration::get('PHSTICKERS_BESTSELLER_SHOW'), 'moduleVersion' => $mversion, 'updateModule' => $updateModule, 'moduleAssets' => $moduleAssets, 'phelpBtm' => $phelpBtm, 'phelpTop' => $phelpTop, 'productsShow' => (array)$productsShow, 'authorInfo' => $authorInfo, 'chlogInfo' => $chlogInfo, 'moduleName' => $module->displayName, 'moduleNameInfo' => $module->name, 'currentModuleVersion' => $currentVersion['version'], 'lastestVersion' => $lastestVersion, 'updateLink' => $updateLink, 'chlogInfoOther' => $chlogInfoOther, 'indexLink' => $indexLink, 'banersHtml' => $banersHtml, 'psVersion' => _PS_VERSION_, 'themeName' => $this->context->shop->theme_name, 'ready1' => $ready1, 'ready2' => $ready2, 'update' => $stickerUpdate->update, 'updateList' => $stickerUpdate->updateList, 'updated_date' => date('d-m-Y', strtotime($activeted['active']['licence']->date_expire_update)), 'licence_update' => $activeted['active']['licence']->licence_update, 'support_date' =>date('d-m-Y', strtotime($activeted['active']['licence']->date_expire_support)), 'licence_date' => date('d-m-Y', strtotime($activeted['active']['licence']->date_expire)), 'activeted' => $activeted, 'licence' => $activeted['active']['licence'], )); $output .= $this->context->smarty->fetch($this->local_path . 'views/templates/admin/list.tpl'); } } else { $output = ''; $showLicence = 0; // $this->postProcess(); $shop = new Shop((int)$this->context->shop->id); $this->context->smarty->assign(array( 'moduleDomain' => $shop->getBaseURL(), 'modConf' => 0, 'licenceCode' => Configuration::get('PHSTICKERS_LICENCE'), 'licenceCodeGen' => Configuration::get('PHSTICKERS_LICENCE_GEN'), 'licGenData' => Configuration::get('PHSTICKERS_LICENCE_GEN_DATA'), 'showLicence' => $showLicence, )); $output .= $this->context->smarty->fetch($this->local_path . 'views/templates/admin/nolic.tpl'); } return $output; } private function process($stickerUpdate) { $ssl = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; $psAdminDir = explode('/', _PS_ADMIN_DIR_); $adminDir = end($psAdminDir); if (self::ps16()) { $adminLink = $ssl.$this->context->shop->domain.$this->context->shop->physical_uri.$adminDir.'/'.$this->context->link->getAdminLink('AdminModules', true).'&configure='.$this->name.'&tab_module=other&module_name='.$this->name; } else { $adminLink = $this->context->link->getAdminLink('AdminModules', true, array(), array('configure' => $this->name, 'tab_module' => 'other', 'module_name' => $this->name)); } if (Tools::getIsset('submitAddProcess')) { $files = Sticker::orderFiles($_FILES); $priceOn = (int)Tools::getValue('price_on'); $priceMin = Tools::getValue('price_min'); $priceMax = Tools::getValue('price_max'); $qtyOn = (int)Tools::getValue('qty_on'); $qtyMin = (int)Tools::getValue('qty_min'); $qtyMax = (int)Tools::getValue('qty_max'); $manuOn = (int)Tools::getValue('manu_on'); $idManu = (int)Tools::getValue('id_manufacturer'); $posPrice = (int)Tools::getValue('position_price'); $posQty = (int)Tools::getValue('position_qty'); $posManu = (int)Tools::getValue('position_manu'); $posNew = (int)Tools::getValue('position_new'); $showNew = (int)Tools::getValue('show_new'); Sticker::addSticker($files, (int)$priceOn, $priceMin, $priceMax, (int)$posPrice, (int)$qtyOn, (int)$qtyMin, (int)$qtyMax, (int)$posQty, (int)$manuOn, (int)$idManu, (int)$posManu, (int)$showNew, (int)$posNew); Tools::redirect($adminLink.'&conf=3'); } if (Tools::getIsset('deleteSticker')) { $id_sticker = (int)Tools::getValue('deleteSticker'); $delete = Sticker::deleteSticker((int)$id_sticker); Tools::redirect($adminLink.($delete ? '&conf=1' : '')); } if (Tools::getIsset('submitEditProcess')) { $id_sticker = (int)Tools::getValue('id_sticker'); $files = Sticker::orderFiles($_FILES); $priceOn = (int)Tools::getValue('price_on'); $priceMin = Tools::getValue('price_min'); $priceMax = Tools::getValue('price_max'); $qtyOn = (int)Tools::getValue('qty_on'); $qtyMin = (int)Tools::getValue('qty_min'); $qtyMax = (int)Tools::getValue('qty_max'); $manuOn = (int)Tools::getValue('manu_on'); $idManu = (int)Tools::getValue('id_manufacturer'); $posPrice = (int)Tools::getValue('position_price'); $posQty = (int)Tools::getValue('position_qty'); $posManu = (int)Tools::getValue('position_manu'); $posNew = (int)Tools::getValue('position_new'); $showNew = (int)Tools::getValue('show_new'); Sticker::editSticker((int)$id_sticker, $files, (int)$priceOn, $priceMin, $priceMax, (int)$posPrice, (int)$qtyOn, (int)$qtyMin, (int)$qtyMax, (int)$posQty, (int)$manuOn, (int)$idManu, (int)$posManu, (int)$showNew, (int)$posNew); Tools::redirect($adminLink.'&conf=4'); } if (Tools::getIsset('submitAddCategoryProcess')) { $stickers = Tools::getValue('stickers'); $categorys = Tools::getValue('categoryBox'); $positions = Tools::getValue('position'); Sticker::addCategorySticker($categorys, $stickers, $positions); Tools::redirect($adminLink.'&conf=3'); } if (Tools::getIsset('submitEditCategoryProcess')) { $id_category = (int)Tools::getValue('id_category'); $stickers = Tools::getValue('stickers'); $positions = Tools::getValue('position'); Sticker::deleteCategoryStickers((int)$id_category); Sticker::editStickersCategory((int)$id_category, $stickers, $positions); Tools::redirect($adminLink.'&conf=4'); } if (Tools::getIsset('deleteCategorySticker')) { $id_sticker_category = (int)Tools::getValue('deleteCategorySticker'); $delete = Sticker::deleteCategorySticker((int)$id_sticker_category); Tools::redirect($adminLink.($delete ? '&conf=1' : '')); } if (Tools::getIsset('deleteCategoryMass')) { $items = Tools::getValue('deletItem'); if (!empty($items)) { foreach ($items as $item) { Sticker::deleteCategorySticker((int)$item); } } Tools::redirect($adminLink.'&conf=1'); } if (Tools::getIsset('submitSettingsProcess')) { Configuration::updateValue('PHSTICKERS_PRODUCT_MAX', (int)Tools::getValue('PHSTICKERS_PRODUCT_MAX')); Configuration::updateValue('PHSTICKERS_PRODUCT_STICKER_WIDTH', (int)Tools::getValue('PHSTICKERS_PRODUCT_STICKER_WIDTH')); Configuration::updateValue('PHSTICKERS_PRODUCT_STICKER_HEIGHT', (int)Tools::getValue('PHSTICKERS_PRODUCT_STICKER_HEIGHT')); Configuration::updateValue('PHSTICKERS_PRODUCTLIST_STICKER_WIDTH', (int)Tools::getValue('PHSTICKERS_PRODUCTLIST_STICKER_WIDTH')); Configuration::updateValue('PHSTICKERS_PRODUCTLIST_STICKER_HEIGHT', (int)Tools::getValue('PHSTICKERS_PRODUCTLIST_STICKER_HEIGHT')); Configuration::updateValue('PHSTICKERS_HIDE_MOBILE', (int)Tools::getValue('PHSTICKERS_HIDE_MOBILE')); Configuration::updateValue('PHSTICKERS_PROMOTION_SHOW', (int)Tools::getValue('PHSTICKERS_PROMOTION_SHOW')); Configuration::updateValue('PHSTICKERS_NEWPRODUCT_SHOW', (int)Tools::getValue('PHSTICKERS_NEWPRODUCT_SHOW')); Configuration::updateValue('PHSTICKERS_BESTSELLER_SHOW', (int)Tools::getValue('PHSTICKERS_BESTSELLER_SHOW')); Tools::redirect($adminLink.'&conf=4'); } $stickerUpdate->processUpdate($adminLink); } private static function ps17() { return Tools::version_compare(_PS_VERSION_, '1.7.0.0', '>='); } private static function ps16() { return Tools::version_compare(_PS_VERSION_, '1.7.0.0', '<='); } public function hookDisplayAdminProductsExtra($params) { $activeted = $this->isActiveModule(); if ($activeted['actived'] == 1) { $output = ''; $id_product = (int)Tools::getValue('id_product'); if ($id_product == 0) { $id_product = (int)$params['id_product']; } $ssl = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; $imageStickerDir = $ssl . $this->context->shop->domain . $this->context->shop->physical_uri . 'modules/' . $this->name . '/stickers/' . (int)$this->context->cookie->id_lang . '/'; $list = Sticker::getAllStickers((int)$this->context->cookie->id_lang); $productStickers = Sticker::getProductSticker((int)$id_product); $stickers = array(); $positions = array(); $inherit = 0; if (!empty($productStickers)) { foreach ($productStickers as $item) { $stickers[] = (int)$item['id_sticker']; $positions[$item['id_sticker']] = (int)$item['position']; $inherit = (int)$item['inherit']; } } $this->context->smarty->assign(array( 'list' => $list, 'imageStickerDir' => $imageStickerDir, 'stickers' => $stickers, 'PHSTICKERS_PRODUCT_MAX' => Configuration::get('PHSTICKERS_PRODUCT_MAX'), 'stickerPosition' => $positions, 'positions' => Sticker::$positions, 'ps16' => self::ps16(), 'si' => (int)$inherit )); $output .= $this->context->smarty->fetch($this->local_path . 'views/templates/admin/product.tpl'); return $output; } } public function hookActionProductUpdate() { $activeted = $this->isActiveModule(); if ($activeted['actived'] == 1) { if (Tools::getIsset('stickers')) { $id_product = (int)Tools::getValue('id_product'); $stickers = Tools::getValue('stickers'); $positions = Tools::getValue('position'); $inherit = (int)Tools::getVAlue('stickerInherit'); Sticker::deleteProductSticker((int)$id_product); if (!empty($stickers)) { Sticker::addStickerProduct((int)$id_product, $stickers, $positions, $inherit); } } } } /** * hook in product * @param $params * @return string */ public function hookDisplayProductStickers($params) { $activeted = $this->isActiveModule(); if ($activeted['actived'] == 1) { $id_product = (int)Tools::getValue('id_product'); $output = ''; $ssl = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; $list = Sticker::getAllStickers((int)$this->context->cookie->id_lang); $productStickers = Sticker::getProductSticker((int)$id_product); $stickers = array(); $positions = array(); if (!empty($productStickers)) { $inherit = 0; foreach ($productStickers as $item) { $stickers[] = $item['id_sticker']; $positions[$item['id_sticker']] = $item['position']; $inherit = (int)$item['inherit']; } if ($inherit == 1) { $product = new Product((int)$id_product, false, (int)$this->context->cookie->id_lang); $id_category = (int)$product->id_category_default; $categoryStickers = Sticker::getCategoryStickers((int)$id_category); if (!empty($categoryStickers)) { foreach ($categoryStickers as $item) { $stickers[] = $item['id_sticker']; $positions[$item['id_sticker']] = $item['position']; } } } $stickers = array_unique($stickers); } else { $product = new Product((int)$id_product, false, (int)$this->context->cookie->id_lang); $id_category = (int)$product->id_category_default; $categoryStickers = Sticker::getCategoryStickers((int)$id_category); if (!empty($categoryStickers)) { foreach ($categoryStickers as $item) { $stickers[] = $item['id_sticker']; $positions[$item['id_sticker']] = $item['position']; } } } if (!empty($list)) { $pos = 1; $product = new Product((int)$id_product, true, (int)$this->context->cookie->id_lang); foreach ($list as $l) { if ($l['price_on'] == 1) { if ($l['price_min'] >= '0.000000' && $l['price_max'] > '0.000000') { if ($product->price >= $l['price_min'] && $product->price <= $l['price_max']) { $stickers[] = $l['id_sticker']; $positions[$l['id_sticker']] = $pos; $pos++; } } } if ($l['qty_on'] == 1) { if ($l['qty_min'] >= 0 && $l['qty_max'] > 0) { $qty = Product::getQuantity((int)$id_product); if ($qty >= $l['qty_min'] && $qty <= $l['qty_max']) { $stickers[] = $l['id_sticker']; $positions[$l['id_sticker']] = $pos; $pos++; } } } if ($l['manu_on'] == 1 && $l['id_manufacturer'] > 0) { if ($l['id_manufacturer'] == $product->id_manufacturer) { $stickers[] = $l['id_sticker']; $positions[$l['id_sticker']] = $pos; $pos++; } } if ($l['show_new'] == 1) { if ($product->isNew() == 1) { $stickers[] = $l['id_sticker']; $positions[$l['id_sticker']] = $l['position_new']; } } } } $stickersImage = array(); if (!empty($list) && !empty($stickers)) { $i = 0; foreach ($list as $l) { if (in_array($l['id_sticker'], $stickers)) { $stickersImage[$i]['image'] = $ssl . $this->context->shop->domain . $this->context->shop->physical_uri . 'modules/' . $this->name . '/stickers/' . (int)$this->context->cookie->id_lang . '/' . $l['file_name']; $pos = 0; if (isset($positions[$l['id_sticker']])) { $pos = $positions[$l['id_sticker']]; } $stickersImage[$i]['position'] = $pos; $i++; } } } if (!empty($stickersImage)) { $this->context->smarty->assign(array( 'stickers' => $stickersImage, 'stickerWidth' => Configuration::get('PHSTICKERS_PRODUCT_STICKER_WIDTH'), 'stickerHeight' => Configuration::get('PHSTICKERS_PRODUCT_STICKER_HEIGHT'), )); $output .= $this->context->smarty->fetch($this->local_path . 'views/templates/hook/product.tpl'); return $output; } } } /** * hook listy produktowej * @param $params * @return string|void */ public function hookDisplayProductListStickers($params) { $activeted = $this->isActiveModule(); if ($activeted['actived'] == 1) { $bestSaleShow = Configuration::get('PHSTICKERS_BESTSELLER_SHOW'); $newProductShow = Configuration::get('PHSTICKERS_NEWPRODUCT_SHOW'); $promotionShow = Configuration::get('PHSTICKERS_PROMOTION_SHOW'); $hideMobile = Configuration::get('PHSTICKERS_HIDE_MOBILE'); if ($hideMobile == 1) { require_once _PS_TOOL_DIR_ . 'mobile_Detect/Mobile_Detect.php'; $md = new Mobile_Detect(); if ($md->isMobile()) { return; } } if ($this->context->controller->php_self == 'best-sales' && $bestSaleShow == 0) { return; } if ($this->context->controller->php_self == 'new-products' && $newProductShow == 0) { return; } if ($this->context->controller->php_self == 'prices-drop' && $promotionShow == 0) { return; } $id_product = $params['pro']['id_product']; $output = ''; $ssl = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; $list = Sticker::getAllStickers((int)$this->context->cookie->id_lang); $productStickers = Sticker::getProductSticker((int)$id_product); $stickers = array(); $positions = array(); if (!empty($productStickers)) { $inherit = 0; foreach ($productStickers as $item) { $stickers[] = $item['id_sticker']; $positions[$item['id_sticker']] = $item['position']; $inherit = (int)$item['inherit']; } if ($inherit == 1) { $id_category = (int)Tools::getValue('id_category'); $categoryStickers = Sticker::getCategoryStickers((int)$id_category); if (!empty($categoryStickers)) { foreach ($categoryStickers as $item) { $stickers[] = $item['id_sticker']; $positions[$item['id_sticker']] = $item['position']; } } } $stickers = array_unique($stickers); } else { $id_category = (int)Tools::getValue('id_category'); $categoryStickers = Sticker::getCategoryStickers((int)$id_category); if (!empty($categoryStickers)) { foreach ($categoryStickers as $item) { $stickers[] = $item['id_sticker']; $positions[$item['id_sticker']] = $item['position']; } } } if (!empty($list)) { $product = new Product((int)$id_product, true, (int)$this->context->cookie->id_lang); foreach ($list as $l) { if ($l['price_on'] == 1) { if ($l['price_min'] >= '0.000000' && $l['price_max'] > '0.000000') { $price = $product->price; if (Product::isDiscounted($product->id)) { $sp = SpecificPrice::getSpecificPrice((int)$product->id, $this->context->shop->id, $this->context->currency->id, $this->context->country->id, $this->context->customer->id_default_group, 1, null, 0, 0, 1); if (!empty($sp)) { $price = $product->getPrice(false); } } if ($price >= $l['price_min'] && $price <= $l['price_max']) { $stickers[] = $l['id_sticker']; $positions[$l['id_sticker']] = $l['position_price']; } } } if ($l['qty_on'] == 1) { if ($l['qty_min'] >= 0 && $l['qty_max'] > 0) { $qty = Product::getQuantity((int)$id_product); if ($qty >= $l['qty_min'] && $qty <= $l['qty_max']) { $stickers[] = $l['id_sticker']; $positions[$l['id_sticker']] = $l['position_qty']; } } } if ($l['manu_on'] == 1 && $l['id_manufacturer'] > 0) { if ($l['id_manufacturer'] == $product->id_manufacturer) { $stickers[] = $l['id_sticker']; $positions[$l['id_sticker']] = $l['position_manu']; } } if ($l['show_new'] == 1) { if ($product->isNew() == 1) { $stickers[] = $l['id_sticker']; $positions[$l['id_sticker']] = $l['position_new']; } } } } $stickersImage = array(); if (!empty($list) && !empty($stickers)) { $i = 0; foreach ($list as $l) { if (in_array($l['id_sticker'], $stickers)) { $stickersImage[$i]['image'] = $ssl . $this->context->shop->domain . $this->context->shop->physical_uri . 'modules/' . $this->name . '/stickers/' . (int)$this->context->cookie->id_lang . '/' . $l['file_name']; $pos = 0; if (isset($positions[$l['id_sticker']])) { $pos = $positions[$l['id_sticker']]; } $stickersImage[$i]['position'] = $pos; $i++; } } } if (!empty($stickersImage)) { $this->context->smarty->assign(array( 'stickers' => $stickersImage, 'stickerWidth' => Configuration::get('PHSTICKERS_PRODUCTLIST_STICKER_WIDTH'), 'stickerHeight' => Configuration::get('PHSTICKERS_PRODUCTLIST_STICKER_HEIGHT'), )); $output .= $this->context->smarty->fetch($this->local_path . 'views/templates/hook/productList.tpl'); return $output; } } } }