This commit is contained in:
2025-04-01 00:38:54 +02:00
parent d4d4c0c09d
commit 87da06293a
22351 changed files with 5168854 additions and 7538 deletions

View File

@@ -0,0 +1,22 @@
/**
* PrestaShop module created by VEKIA, a guy from official PrestaShop community ;-)
*
* @author VEKIA https://www.prestashop.com/forums/user/132608-vekia/
* @copyright 2010-2023 VEKIA
* @license This program is not free software and you can't resell and redistribute it
*
* CONTACT WITH DEVELOPER
* support@mypresta.eu
*/
.cmsproducts ul {
list-style: none !important;
padding: 0px !important;
margin: 0px !important;
}
#cms #center_column .cmsproducts img {
margin: auto;
max-width: 100%;
height: auto;
}

View File

@@ -0,0 +1,319 @@
<?php
/**
* PrestaShop module created by VEKIA, a guy from official PrestaShop community ;-)
*
* @author VEKIA https://www.prestashop.com/forums/user/132608-vekia/
* @copyright 2010-2023 VEKIA
* @license This program is not free software and you can't resell and redistribute it
*
* CONTACT WITH DEVELOPER
* support@mypresta.eu
*/
class cmsproducts extends Module
{
function __construct()
{
$this->name = 'cmsproducts';
$this->tab = 'front_office_features';
$this->author = 'MyPresta.eu';
$this->version = '1.6.5';
$this->bootstrap = 1;
$this->mypresta_link = 'https://mypresta.eu/modules/front-office-features/products-on-cms-pages.html';
parent::__construct();
$this->displayName = $this->getTranslator()->trans('Products on CMS pages', array(), 'Modules.CmsProducts.Admin');
$this->description = $this->getTranslator()->trans('Module allows to display lists of products on your shop CMS pages', array(), 'Modules.CmsProducts.Admin');
$this->checkforupdates();
}
public function checkforupdates($display_msg = 0, $form = 0)
{
// ---------- //
// ---------- //
// VERSION 16 //
// ---------- //
// ---------- //
$this->mkey = "nlc";
if (@file_exists('../modules/' . $this->name . '/key.php')) {
@require_once('../modules/' . $this->name . '/key.php');
} else {
if (@file_exists(dirname(__FILE__) . $this->name . '/key.php')) {
@require_once(dirname(__FILE__) . $this->name . '/key.php');
} else {
if (@file_exists('modules/' . $this->name . '/key.php')) {
@require_once('modules/' . $this->name . '/key.php');
}
}
}
if ($form == 1) {
return '
<div class="panel" id="fieldset_myprestaupdates" style="margin-top:20px;">
' . ($this->psversion() == 6 || $this->psversion() == 7 ? '<div class="panel-heading"><i class="icon-wrench"></i> ' . $this->l('MyPresta updates') . '</div>' : '') . '
<div class="form-wrapper" style="padding:0px!important;">
<div id="module_block_settings">
<fieldset id="fieldset_module_block_settings">
' . ($this->psversion() == 5 ? '<legend style="">' . $this->l('MyPresta updates') . '</legend>' : '') . '
<form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
<label>' . $this->l('Check updates') . '</label>
<div class="margin-form">' . (Tools::isSubmit('submit_settings_updates_now') ? ($this->inconsistency(0) ? '' : '') . $this->checkforupdates(1) : '') . '
<button style="margin: 0px; top: -3px; position: relative;" type="submit" name="submit_settings_updates_now" class="button btn btn-default" />
<i class="process-icon-update"></i>
' . $this->l('Check now') . '
</button>
</div>
<label>' . $this->l('Updates notifications') . '</label>
<div class="margin-form">
<select name="mypresta_updates">
<option value="-">' . $this->l('-- select --') . '</option>
<option value="1" ' . ((int)(Configuration::get('mypresta_updates') == 1) ? 'selected="selected"' : '') . '>' . $this->l('Enable') . '</option>
<option value="0" ' . ((int)(Configuration::get('mypresta_updates') == 0) ? 'selected="selected"' : '') . '>' . $this->l('Disable') . '</option>
</select>
<p class="clear">' . $this->l('Turn this option on if you want to check MyPresta.eu for module updates automatically. This option will display notification about new versions of this addon.') . '</p>
</div>
<label>' . $this->l('Module page') . '</label>
<div class="margin-form">
<a style="font-size:14px;" href="' . $this->mypresta_link . '" target="_blank">' . $this->displayName . '</a>
<p class="clear">' . $this->l('This is direct link to official addon page, where you can read about changes in the module (changelog)') . '</p>
</div>
<div class="panel-footer">
<button type="submit" name="submit_settings_updates"class="button btn btn-default pull-right" />
<i class="process-icon-save"></i>
' . $this->l('Save') . '
</button>
</div>
</form>
</fieldset>
<style>
#fieldset_myprestaupdates {
display:block;clear:both;
float:inherit!important;
}
</style>
</div>
</div>
</div>';
} else {
if (defined('_PS_ADMIN_DIR_')) {
if (Tools::isSubmit('submit_settings_updates')) {
Configuration::updateValue('mypresta_updates', Tools::getValue('mypresta_updates'));
}
if (Configuration::get('mypresta_updates') != 0 || (bool)Configuration::get('mypresta_updates') != false) {
if (Configuration::get('update_' . $this->name) < (date("U") - 259200)) {
$actual_version = cmsproductsUpdate::verify($this->name, (isset($this->mkey) ? $this->mkey : 'nokey'), $this->version);
}
if (cmsproductsUpdate::version($this->version) < cmsproductsUpdate::version(Configuration::get('updatev_' . $this->name)) && Tools::getValue('ajax','false') == 'false') {
$this->context->controller->warnings[] = '<strong>' . $this->displayName . '</strong>: ' . $this->l('New version available, check http://MyPresta.eu for more informations') . ' <a href="' . $this->mypresta_link . '">' . $this->l('More details in changelog') . '</a>';
$this->warning = $this->context->controller->warnings[0];
}
} else {
if (Configuration::get('update_' . $this->name) < (date("U") - 259200)) {
$actual_version = cmsproductsUpdate::verify($this->name, (isset($this->mkey) ? $this->mkey : 'nokey'), $this->version);
}
}
if ($display_msg == 1) {
if (cmsproductsUpdate::version($this->version) < cmsproductsUpdate::version(cmsproductsUpdate::verify($this->name, (isset($this->mkey) ? $this->mkey : 'nokey'), $this->version))) {
return "<span style='color:red; font-weight:bold; font-size:16px; margin-right:10px;'>" . $this->l('New version available!') . "</span>";
} else {
return "<span style='color:green; font-weight:bold; font-size:16px; margin-right:10px;'>" . $this->l('Module is up to date!') . "</span>";
}
}
}
}
}
public function install()
{
if (parent::install())
{
Configuration::updateValue('mypresta_updates', 1);
return true;
}
}
public function getContent()
{
if (Tools::isSubmit('selecttab'))
{
Configuration::updateValue('cmsp_last_tab', Tools::getValue('selecttab'));
}
if (Tools::isSubmit('cmsproducts_hide'))
{
Configuration::updateValue('cmsproducts_hide', Tools::getValue('cmsproducts_hide'));
}
$output = "";
return $output . "<div class='clearfix'>".$this->displayForm()."</div>";
}
public static function psversion($part = 1)
{
$version = _PS_VERSION_;
$exp = explode('.', $version);
if ($part == 0) {
return $exp[0];
}
if ($part == 1) {
if ($exp[0] >= 8) {
return 7;
}
return $exp[1];
}
if ($part == 2) {
return $exp[2];
}
if ($part == 3) {
return $exp[3];
}
}
public function displayForm()
{
$form = '';
if (Configuration::get('cmsp_last_tab') == 3)
{
$form .= '
<div id="module_block_settings" class="clearfix">
<fieldset id="fieldset_module_block_settings">
<legend style="display:inline-block;"><img src="' . $this->_path . 'logo.gif" alt="" title="" />' . $this->l('MyPresta updates') . '</legend>
<form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
<label>' . $this->l('Check updates') . '</label>
<div class="margin-form">' . (Tools::isSubmit('submit_settings_updates_now') ? $this->checkforupdates(1) : '') . '
<input style="margin: 0px; top: -3px; position: relative;" type="submit" name="submit_settings_updates_now" value="' . $this->l('Check now') . '" class="button" />
</div>
<label>' . $this->l('Updates notifications') . '</label>
<div class="margin-form">
<select name="mypresta_updates">
<option value="-">' . $this->l('-- select --') . '</option>
<option value="1" ' . ((int)(Configuration::get('mypresta_updates') == 1) ? 'selected="selected"' : '') . '>' . $this->l('Enable') . '</option>
<option value="0" ' . ((int)(Configuration::get('mypresta_updates') == 0) ? 'selected="selected"' : '') . '>' . $this->l('Disable') . '</option>
</select>
<p class="clear">' . $this->l('Turn this option on if you want to check MyPresta.eu for module updates automatically. This option will display notification about new versions of this addon.') . '</p>
</div>
<label>' . $this->l('Module page') . '</label>
<div class="margin-form">
<a style="font-size:14px;" href="' . $this->mypresta_link . '" target="_blank">' . $this->displayName . '</a>
<p class="clear">' . $this->l('This is direct link to official addon page, where you can read about changes in the module (changelog)') . '</p>
</div>
<center><input type="submit" name="submit_settings_updates" value="' . $this->l('Save Settings') . '" class="button" /></center>
</form>
</fieldset>
</div>';
}
elseif (Configuration::get('cmsp_last_tab') == 2)
{
$form = '
<div style="display:block; overflow:hidden; margin:auto;">
<form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
<fieldset style="display:block; ertical-align:top;">
<legend><img src="' . $this->_path . 'logo.gif" alt="" title="" />' . $this->l('Appearance settings') . '</legend>
<div style="display:block; clear:both;">
<label>' . $this->l('Hide products and shortcodes') . ':</label>
<div class="margin-form">
<select name="cmsproducts_hide">
<option value="0" ' . (Configuration::get('cmsproducts_hide') != "1" ? 'selected' : '') . '>' . $this->l('No') . '</option>
<option value="1" ' . (Configuration::get('cmsproducts_hide') != "1" ? '' : 'selected') . '>' . $this->l('Yes') . '</option>
</select>
</div>
</div>
<div style="display:block; clear:both;">
<center><input type="submit" name="submit_colors" value="' . $this->l('Save') . '" class="button" /></center>
</div>
</fieldset>
</form>
</div>';
}
elseif (Configuration::get('cmsp_last_tab') == 4)
{
$form = '
<div style="display:block; overflow:hidden; margin:auto;">
<form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
<fieldset style="display:block; vertical-align:top;">
<legend><img src="' . $this->_path . 'logo.gif" alt="" title="" />' . $this->l('How to use this module?') . '</legend>
' . $this->l('read instructions about module usage:') . ' <a target="_blank" href="https://mypresta.eu/en/art/videos/shortcodes-products-on-cms-page.html">' . $this->l('How to use cms products module') . '</a>
</fieldset>
</form>
</div>';
}
else
{
$form = '
<div style="display:block; overflow:hidden; margin:auto;">
<form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
<fieldset style="display:block; vertical-align:top;">
<legend><img src="' . $this->_path . 'logo.gif" alt="" title="" />' . $this->l('') . '</legend>
' . $this->l('Select configuration menu item from the left hand side column') . '
</fieldset>
</form>
</div>';
}
return '
<div class="clearfix">
<form name="selectform2" id="selectform2" action="' . $_SERVER['REQUEST_URI'] . '" method="post"><input type="hidden" name="selecttab" value="2"></form>
<form name="selectform3" id="selectform3" action="' . $_SERVER['REQUEST_URI'] . '" method="post"><input type="hidden" name="selecttab" value="3"></form>
<form name="selectform4" id="selectform4" action="' . $_SERVER['REQUEST_URI'] . '" method="post"><input type="hidden" name="selecttab" value="4"></form>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">' . "<script>/*<![CDATA[*/window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement(\"iframe\");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src=\"javascript:false\",r.title=\"\",r.role=\"presentation\",(r.frameElement||r).style.cssText=\"display: none\",d=document.getElementsByTagName(\"script\"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(c){n=document.domain,r.src='javascript:var d=document.open();d.domain=\"'+n+'\";void(0);',o=s}o.open()._l=function(){var o=this.createElement(\"script\");n&&(this.domain=n),o.id=\"js-iframe-async\",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload=\"document._l();\">'),o.close()}(\"//assets.zendesk.com/embeddable_framework/main.js\",\"prestasupport.zendesk.com\");/*]]>*/</script>" . '
<link href="../modules/cmsproducts/css.css" rel="stylesheet" type="text/css" />
<div id="cssmenu" class="col-lg-3 col-md-3 col-xs-12 col-sm-12" style="z-index:9;">
<ul class="form">
<li class="' . (Configuration::get('cmsp_last_tab') == 2 ? 'selected' : '') . '" onclick="selectform2.submit();"><a><span><i class="fa fa-paint-brush"></i>' . $this->l('Appearance settings') . '</span></a></li>
<li class="' . (Configuration::get('cmsp_last_tab') == 4 ? 'selected' : '') . '" onclick="selectform4.submit();"><a><span><i class="fa fa-info-circle" aria-hidden="true"></i>' . $this->l('How to use?') . '</span></a></li>
<li class="' . (Configuration::get('cmsp_last_tab') == 3 ? 'selected' : '') . '" onclick="selectform3.submit();"><a><span><i class="fa fa-refresh" aria-hidden="true"></i>' . $this->l('Updates') . '</span></a></li>
<li class="mega"><a href="https://mypresta.eu/modules/front-office-features/display-products-on-cms-pages-pro.html"><span><i class="fa fa-puzzle-piece" aria-hidden="true"></i>' . $this->l('Get Pro Version') . '</span></a></li>
</ul>
<iframe src="//apps.facepages.eu/somestuff/cmsproducts.html" width="100%" height="450" border="0" style="border:none;"></iframe>
</div>
<div class="col-lg-9 col-md-9 col-xs-12 col-sm-12" style="z-index: 9;"><div class="' . ($this->psversion() == 6 || $this->psversion() == 7 ? 'nobootstrap' : '') . '" style="' . ($this->psversion() == 6 || $this->psversion() == 7 ? 'padding-top:0px!important; background:none!important; min-width:100%!important; max-width:100px!important; z-index:9;' : 'z-index:9;') . '">' . $form . '</div></div></div>';
}
}
class cmsproductsUpdate extends cmsproducts
{
public static function version($version)
{
$version = (int)str_replace(".", "", $version);
if (strlen($version) == 3)
{
$version = (int)$version . "0";
}
if (strlen($version) == 2)
{
$version = (int)$version . "00";
}
if (strlen($version) == 1)
{
$version = (int)$version . "000";
}
if (strlen($version) == 0)
{
$version = (int)$version . "0000";
}
return (int)$version;
}
public static function encrypt($string)
{
return base64_encode($string);
}
public static function verify($module, $key, $version)
{
if (ini_get("allow_url_fopen"))
{
if (function_exists("file_get_contents"))
{
$actual_version = @file_get_contents('http://dev.mypresta.eu/update/get.php?module=' . $module . "&version=" . self::encrypt($version) . "&lic=$key&u=" . self::encrypt(_PS_BASE_URL_ . __PS_BASE_URI__));
}
}
Configuration::updateValue("update_" . $module, date("U"));
Configuration::updateValue("updatev_" . $module, $actual_version);
return $actual_version;
}
}
?>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<module>
<name>cmsproducts</name>
<displayName><![CDATA[Products on CMS pages]]></displayName>
<version><![CDATA[1.6.4]]></version>
<description><![CDATA[Module allows to display lists of products on your shop CMS pages]]></description>
<author><![CDATA[MyPresta.eu]]></author>
<tab><![CDATA[front_office_features]]></tab>
<is_configurable>1</is_configurable>
<need_instance>1</need_instance>
<limited_countries></limited_countries>
</module>

186
modules/cmsproducts/css.css Normal file
View File

@@ -0,0 +1,186 @@
/**
* PrestaShop module created by VEKIA, a guy from official PrestaShop community ;-)
*
* @author VEKIA https://www.prestashop.com/forums/user/132608-vekia/
* @copyright 2010-2023 VEKIA
* @license This program is not free software and you can't resell and redistribute it
*
* CONTACT WITH DEVELOPER
* support@mypresta.eu
*/
.inconsistency0 {
width: 5px;
background: red;
padding: 10px;
border: 1px solid red !important;
}
.inconsistency1 {
width: 5px;
background: green;
padding: 10px;
border: 1px solid green !important;
}
.inconsistency td {
padding: 5px;
border: 1px solid #c0c0c0;
}
#cssmenu {
float: left;
display: inline-block;
}
.nobootstrap legend img {
display: none;
}
#cssmenu ul.form {
position: relative;
background: #fff;
margin: auto;
padding: 0;
list-style: none;
overflow: hidden;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
}
#cssmenu .form li a {
border-left: 5px solid #fff;
padding-left: 20px;
height: 50px;
line-height: 50px;
display: block;
overflow: hidden;
position: relative;
text-decoration: none;
text-transform: uppercase;
font-size: 14px;
color: #686868;
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
-o-transition: all 0.2s linear;
transition: all 0.2s linear;
cursor: pointer;
border-bottom: 1px dashed #cecece
}
#cssmenu .form li.selected a {
border-left: 5px solid #cf2130;
color: #cf2130;
}
#cssmenu .form li:first-child a:hover,
#cssmenu .form li:first-child a {
-webkit-border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}
#cssmenu .form li:last-child a:hover,
#cssmenu .form li:last-child a {
-webkit-border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
}
#cssmenu .form li a:hover i, #cssmenu .form li a:hover span {
color: #ea4f35;
}
#cssmenu .form i {
margin-right: 15px;
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
-o-transition: all 0.2s linear;
transition: all 0.2s linear;
min-width: 20px;
}
#cssmenu .form em {
font-size: 10px;
background: #ea4f35;
padding: 3px 5px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
font-style: normal;
color: #fff;
margin-top: 17px;
margin-right: 15px;
line-height: 10px;
height: 10px;
float: right;
}
#cssmenu h1 {
color: #fff;
margin: 0 auto;
margin-top: 60px;
margin-bottom: 40px;
font-size: 30px;
width: 300px;
text-align: center;
}
#cssmenu p a {
color: #fff;
text-decoration: none;
}
.language_flags {
display: none;
}
.flags_block img {
cursor: pointer;
}
.flags_block {
position: relative;
clear: both;
}
.flags_block .language_flags {
background: #FFF;
left: 25px;
top: 0px;
position: absolute;
clear: both;
padding: 20px;
box-shadow: 0px 0px 5px 2px #c0c0c0;
border: 1px solid #c3c3c3;
}
#cssmenu .form li.mega a {
border-left: 5px solid #DE6C59;
padding-left: 20px;
height: 50px;
line-height: 50px;
display: block;
overflow: hidden;
position: relative;
text-decoration: none;
text-transform: uppercase;
font-size: 14px;
color: #FFF;
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
-o-transition: all 0.2s linear;
transition: all 0.2s linear;
cursor: pointer;
border-bottom: 0px dashed #cecece;
background: #DE6C59;
}
#cssmenu .form li.mega a:hover i, #cssmenu .form li.mega:hover, #cssmenu .form li.mega a:hover, #cssmenu .form li.mega a:hover span {
background: #DE6C59;
color: #FFF !important;
}

View File

@@ -0,0 +1,12 @@
{*
* PrestaShop module created by VEKIA, a guy from official PrestaShop community ;-)
*
* @author VEKIA https://www.prestashop.com/forums/user/132608-vekia/
* @copyright 2010-2020 VEKIA
* @license This program is not free software and you can't resell and redistribute it
*
* CONTACT WITH DEVELOPER
* support@mypresta.eu
*}
{$cmsproducts_htmlboxpro nofilter}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,446 @@
<?php
/**
* PrestaShop module created by VEKIA, a guy from official PrestaShop community ;-)
*
* @author VEKIA https://www.prestashop.com/forums/user/132608-vekia/
* @copyright 2010-9999 VEKIA
* @license This program is not free software and you can't resell and redistribute it
*
* CONTACT WITH DEVELOPER http://mypresta.eu
* support@mypresta.eu
*/
use PrestaShop\PrestaShop\Adapter\Image\ImageRetriever;
use PrestaShop\PrestaShop\Adapter\Product\PriceFormatter;
use PrestaShop\PrestaShop\Core\Product\ProductListingPresenter;
use PrestaShop\PrestaShop\Adapter\Product\ProductColorsRetriever;
class CmsController extends CmsControllerCore
{
public static function psversion($part = 1)
{
$version = _PS_VERSION_;
$exp = explode('.', $version);
if ($part == 0) {
return $exp[0];
}
if ($part == 1) {
if ($exp[0] >= 8) {
return 7;
}
return $exp[1];
}
if ($part == 2) {
return $exp[2];
}
if ($part == 3) {
return $exp[3];
}
}
public function initContent()
{
if (Tools::version_compare(_PS_VERSION_, '8.0.0', '>=')) {
if ($this->assignCase == self::CMS_CASE_PAGE) {
$cmsVar = $this->objectPresenter->present($this->cms);
$filteredCmsContent = Hook::exec(
'filterCmsContent',
['object' => $cmsVar],
$id_module = null,
$array_return = false,
$check_exceptions = true,
$use_push = false,
$id_shop = null,
$chain = true
);
if (!empty($filteredCmsContent['object'])) {
$cmsVar = $filteredCmsContent['object'];
}
$this->cms->content = $this->returnContent($this->cms->content);
$this->context->smarty->assign([
'cms' => $cmsVar,
]);
if ($this->cms->indexation == 0) {
$this->context->smarty->assign('nobots', true);
}
$this->setTemplate(
'cms/page',
['entity' => 'cms', 'id' => $this->cms->id]
);
} elseif ($this->assignCase == self::CMS_CASE_CATEGORY) {
$cmsCategoryVar = $this->getTemplateVarCategoryCms();
$filteredCmsCategoryContent = Hook::exec(
'filterCmsCategoryContent',
['object' => $cmsCategoryVar],
$id_module = null,
$array_return = false,
$check_exceptions = true,
$use_push = false,
$id_shop = null,
$chain = true
);
if (!empty($filteredCmsCategoryContent['object'])) {
$cmsCategoryVar = $filteredCmsCategoryContent['object'];
}
$this->context->smarty->assign($cmsCategoryVar);
$this->setTemplate(
'cms/category',
['entity' => 'cms_category', 'id' => $this->cms_category->id]
);
}
parent::initContent();
} elseif ($this->psversion() == 7) {
parent::initContent();
if ($this->assignCase == 1) {
$this->cms->content = $this->returnContent($this->cms->content);
$this->context->smarty->assign(array(
'cms' => $this->objectPresenter->present($this->cms),
'psver' => $this->psversion()
));
if ($this->cms->indexation == 0) {
$this->context->smarty->assign('nobots', true);
}
$this->setTemplate('cms/page', array(
'entity' => 'cms',
'id' => $this->cms->id
));
} elseif ($this->assignCase == 2) {
$this->context->smarty->assign($this->getTemplateVarCategoryCms());
$this->setTemplate('cms/category');
}
}
}
public function returnProduct($id_product)
{
$x = (array)new Product($id_product, true, $this->context->language->id);
if (is_int($x['id'])) {
$productss[$id_product] = $x;
$productss[$id_product]['id_product'] = $id_product;
}
$products = Product::getProductsProperties($this->context->language->id, $productss);
$assembler = new ProductAssembler($this->context);
$presenterFactory = new ProductPresenterFactory($this->context);
$presentationSettings = $presenterFactory->getPresentationSettings();
$presenter = new ProductListingPresenter(
new ImageRetriever(
$this->context->link
),
$this->context->link,
new PriceFormatter(),
new ProductColorsRetriever(),
$this->context->getTranslator()
);
$products_for_template = [];
foreach ($products as $rawProduct) {
$products_for_template[] = $presenter->present(
$presentationSettings,
$assembler->assembleProduct($rawProduct),
$this->context->language
);
}
$this->context->smarty->assign('products', $products_for_template);
$this->context->smarty->assign('feedtype', "cmsSingleProductFeed");
return $this->context->smarty->fetch('module:cmsproducts/products.tpl');
}
public function returnProducts($id_product)
{
$explode_products = explode(",", $id_product);
foreach ($explode_products AS $idp) {
$explode[] = $idp;
foreach ($explode as $tproduct) {
if ($tproduct != '') {
$x = (array)new Product($tproduct, true, $this->context->language->id);
if (is_int($x['id'])) {
$productss[$tproduct] = $x;
$productss[$tproduct]['id_product'] = $tproduct;
}
}
}
}
$products = Product::getProductsProperties($this->context->language->id, $productss);
$assembler = new ProductAssembler($this->context);
$presenterFactory = new ProductPresenterFactory($this->context);
$presentationSettings = $presenterFactory->getPresentationSettings();
$presenter = new ProductListingPresenter(
new ImageRetriever(
$this->context->link
),
$this->context->link,
new PriceFormatter(),
new ProductColorsRetriever(),
$this->context->getTranslator()
);
$products_for_template = [];
foreach ($products as $rawProduct) {
$products_for_template[] = $presenter->present(
$presentationSettings,
$assembler->assembleProduct($rawProduct),
$this->context->language
);
}
$this->context->smarty->assign('products', ($this->psversion() == 7 ? $products_for_template : $products));
$this->context->smarty->assign('feedtype', "cmsProductsFeed");
return $this->context->smarty->fetch('module:cmsproducts/products.tpl');
}
public function returnCarouselHpp($block)
{
return $this->displayCarouselHpp($block);
}
public function returnProductsHpp($block)
{
if (class_exists("Hpp")) {
$hpp = new Hpp();
if (method_exists($hpp, 'returnProducts')) {
return $this->displayHpp($hpp->returnProducts($block), $block);
} else {
return $this->noModuleMessage("Homepage Products Pro");
}
} else {
return $this->noModuleMessage("Homepage Products Pro");
}
}
public function returnCcarousel($block)
{
$ccarousel = Module::getInstanceByName('ccarousel');
if ($ccarousel != false) {
$ccarousel = new ccarousel();
if (method_exists($ccarousel, 'shortcode')) {
return $ccarousel->shortcode($block);
} else {
return $this->noModuleMessage("Custom contents carousel");
}
} else {
return $this->noModuleMessage("Custom contents carousel");
}
}
public function returnProductsRpp($block)
{
if (class_exists("Ppb")) {
$rpp = new Ppb();
if (method_exists($rpp, 'returnProducts')) {
return $this->displayRpp($rpp->returnProducts($block));
} else {
return $this->noModuleMessage("Related Products Pro");
}
} else {
return $this->noModuleMessage("Related Products Pro");
}
}
public function returnHtmlboxpro($block)
{
if (class_exists("htmlboxpro")) {
$hbp = new htmlboxpro();
$hb = new hbox();
if (method_exists($hbp, 'prepare_variables')) {
$hb = new hbox($block, $this->context->language->id);
if ($hb->id != NULL && is_numeric($hb->id)) {
$contents = $hbp->prepare_variables('', $hb->body, array());
$this->context->smarty->assign('cmsproducts_htmlboxpro', $contents);
return $this->context->smarty->fetch('module:cmsproducts/html.tpl');
} else {
//
}
} else {
//return $this->noModuleMessage("Html box pro");
}
} else {
//return $this->noModuleMessage("Html box pro");
}
}
public function returnProductsDiffTool($id)
{
if (class_exists("beforeafter")) {
$bf = new beforeafter();
if (method_exists($bf, 'displayOnCms')) {
$_GET['id_product'] = (int)$id;
$this->context->controller->addJS($this->_path . '../beforeafter/js/jquery.event.move.js', 'all');
$this->context->controller->addJS($this->_path . '../beforeafter/js/jquery.twentytwenty.js', 'all');
$this->context->controller->addCSS($this->_path . '../beforeafter/css/twentytwenty.css');
return $bf->displayOnCms(array());
} else {
return $this->noModuleMessage("Before and after");
}
} else {
return $this->noModuleMessage("Before and after");
}
}
public function displayRpp($products)
{
if (count($products) <= 0) {
$this->context->smarty->assign('feedtype', "noProducts");
} else {
$this->context->smarty->assign('products', $products);
$this->context->smarty->assign('feedtype', "rppfeed");
}
$contents = $this->context->smarty->fetch('module:cmsproducts/products.tpl');
return $contents;
}
public function displayHpp($products, $id = 0)
{
if (count($products) <= 0) {
$this->context->smarty->assign('feedtype', "noProducts");
} else {
$this->context->smarty->assign('products', $products);
if (class_exists('HppBlock')) {
$this->context->smarty->assign('id_hpp', $id);
$block = new HppBlock($id, $this->context->language->id);
$this->context->smarty->assign('block', $block);
}
$this->context->smarty->assign('feedtype', "hppfeed");
$this->context->smarty->assign('id_hpp_block', 'hpp'.$id);
}
$contents = $this->context->smarty->fetch('module:cmsproducts/products.tpl') . $this->displayCarouselHpp($id);
return $contents;
}
public function displayCarouselHpp($id = 0)
{
$this->context->smarty->assign('id_hpp', $id);
if (class_exists('HppBlock')) {
$block = new HppBlock($id, $this->context->language->id);
$this->context->smarty->assign('block', $block);
$contents = $this->context->smarty->fetch('module:cmsproducts/products-carousel.tpl');
return $contents;
}
}
public function noModuleMessage($module)
{
$products = false;
$this->context->smarty->assign('products', $products);
$this->context->smarty->assign('module', $module);
$this->context->smarty->assign('feedtype', "error");
$contents = $this->context->smarty->fetch('module:cmsproducts/products.tpl');
return $contents;
}
public function returnlastReviews()
{
if (Module::isInstalled('lastreviews') && Module::isEnabled('lastreviews')) {
$module = Module::getInstanceByName('lastreviews');
if (method_exists($module, 'showOnCmsPage')) {
return $module->showOnCmsPage();
}
}
return $this->noModuleMessage("<a href=\"https://mypresta.eu/modules/front-office-features/last-product-reviews.html\">[Last Product Reviews by Mypresta]</a>");
}
public function returnCustomersGalleryProduct($id_product=0) {
if ($id_product == 0 || !is_int($id_product)) {
$customersgallery = Module::getInstanceByName('customersgallery');
if ($customersgallery != false) {
if (method_exists($customersgallery, 'shortcode_by_product')) {
return $customersgallery->shortcode_by_product($id_product);
}
}
return $this->noModuleMessage("<a href=\"https://mypresta.eu/modules/front-office-features/customer-photo-gallery.html\">[CustomersGallery by Mypresta]</a>");
}
}
public function returnCustomersGalleryCategory($id_category=0) {
if ($id_category == 0 || !is_int($id_category)) {
$customersgallery = Module::getInstanceByName('customersgallery');
if ($customersgallery != false) {
if (method_exists($customersgallery, 'shortcode_by_category')) {
return $customersgallery->shortcode_by_category($id_category);
}
}
return $this->noModuleMessage("<a href=\"https://mypresta.eu/modules/front-office-features/customer-photo-gallery.html\">[CustomersGallery by Mypresta]</a>");
}
}
public function returnContent($contents)
{
preg_match_all('/\[ccarousel\:[(0-9\,)]+\]/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnCcarousel(str_replace("]", "", $explode[1])), $contents);
}
preg_match_all('/\{products\:[(0-9\,)]+\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnProducts(str_replace("}", "", $explode[1])), $contents);
}
preg_match_all('/\{product\:[(0-9\,)]+\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnProduct(str_replace("}", "", $explode[1])), $contents);
}
preg_match_all('/\{hpp\:[(0-9)]+\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnProductsHpp(str_replace("}", "", $explode[1])), $contents);
}
preg_match_all('/\{carousel\:[(0-9)]+\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnCarouselHpp(str_replace("}", "", $explode[1])), $contents);
}
preg_match_all('/\{rpp\:[(0-9)]+\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnProductsRpp(str_replace("}", "", $explode[1])), $contents);
}
preg_match_all('/\{lastreviews\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$contents = str_replace($match, $this->returnlastReviews(str_replace("}", "")), $contents);
}
preg_match_all('/\{htmlboxpro\:[(0-9)]+\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnHtmlboxpro(str_replace("}", "", $explode[1])), $contents);
}
preg_match_all('/\{diff\:[(0-9)]+\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnProductsDiffTool(str_replace("}", "", $explode[1])), $contents);
}
preg_match_all('/\{customersgallery\-product\:[(0-9)]+\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnCustomersGalleryProduct(str_replace("}", "", $explode[1])), $contents);
}
preg_match_all('/\{customersgallery\-category\:[(0-9)]+\}/i', $contents, $matches);
foreach ($matches[0] as $index => $match) {
$explode = explode(":", $match);
$contents = str_replace($match, $this->returnCustomersGalleryCategory(str_replace("}", "", $explode[1])), $contents);
}
return $contents;
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,45 @@
{if $block->carousell==1}
{literal}
<script>
document.addEventListener("DOMContentLoaded", function(event) {
var {/literal}homefeatured{$block->id}{literal} = $('.{/literal}hpp{$block->id}{literal} .products').lightSlider(
{
item: {/literal}{$block->carousell_nb}{literal},
loop: false,
slideMove: 1,
speed: 600,
pager: {/literal}{if $block->carousell_pager==1}true{else}false{/if}{literal},
loop: {/literal}{if $block->carousell_loop==1}true{else}false{/if}{literal},
controls: false,
pauseOnHover: true,
auto: {/literal}{if $block->carousell_auto==1}true{else}false{/if}{literal},
responsive: [
{
breakpoint: 1200,
settings: {
item: {/literal}{$block->carousell_nb_large_tablet}{literal},
slideMove: 1,
slideMargin: 6,
}
},
{
breakpoint: 992,
settings: {
item: {/literal}{$block->carousell_nb_tablet}{literal},
slideMove: 1,
slideMargin: 6,
}
},
{
breakpoint: 768,
settings: {
item: {/literal}{$block->carousell_nb_mobile}{literal},
slideMove: 1
}
}
]
}
);{/literal}{if $block->carousell_controls==1 && $block->carousell==1}{literal}$('.hppb{/literal}{$block->id}{literal}').click(function () {{/literal}homefeatured{$block->id}{literal}.goToPrevSlide();});$('.hppf{/literal}{$block->id}{literal}').click(function () {{/literal}homefeatured{$block->id}{literal}.goToNextSlide();});{/literal}{/if}{literal}});</script>
{/literal}
{/if}

View File

@@ -0,0 +1,27 @@
{*
* PrestaShop module created by VEKIA, a guy from official PrestaShop community ;-)
*
* @author VEKIA https://www.prestashop.com/forums/user/132608-vekia/
* @copyright 2010-2023 VEKIA
* @license This program is not free software and you can't resell and redistribute it
*
* CONTACT WITH DEVELOPER
* support@mypresta.eu
*}
{if Configuration::get('cmsproducts_hide')!=1}
{if $feedtype == 'noProducts'}
<p class="alert alert-warning">{l s='No products available in this feed.' d='Modules.CmsProducts.Shop'}</p>
{elseif $feedtype != 'error'}
<section class="featured-products {if isset($id_hpp_block)}{$id_hpp_block} {/if} homefeaturedslider hppContainerBlockMainDiv hppCarouselBlock featured-products hpp-products clearfix">
{if isset($id_hpp_block)}<h1 class="h1 products-section-title text-uppercase ">{if $block->head_url==1}<a href="{$block->url}">{/if}{$block->name|escape:'html':'utf-8'}{if $block->head_url==1}</a>{/if}{if $block->carousell_controls==1 && $block->carousell==1}<i class="hppback hppb{$block->id} material-icons">&#xE5CB;</i><i class="material-icons hppf{$block->id} hppforward">&#xE5CC;</i>{/if}</h1>{/if}
<div class="products">
{foreach from=$products item="product"}
{include file="catalog/_partials/miniatures/product.tpl" product=$product productClasses="col-xs-12 col-sm-6 col-xl-3"}
{/foreach}
</div>
</section>
{else}
<p class="alert alert-warning">{l s='Feed of products is not available.' d='Modules.CmsProducts.Shop'} {l s='Module:' d='Modules.CmsProducts.Shop'} <a href="{if $module=="Related Products Pro"}https://mypresta.eu/modules/front-office-features/related-products-pro.html{elseif $module=="Homepage Products Pro"}https://mypresta.eu/modules/front-office-features/homepage-products-pro.html{/if}" target="_blank">{$module}</a> {l s='not found or version of this module is too old' d='Modules.CmsProducts.Shop'}</p>
{/if}
{/if}

View File

@@ -0,0 +1,30 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{cmsproducts}prestashop>cmsproducts_57206dc27305060c5c29150d3ad00401'] = 'Aktualizacje mypresta';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_d7d90723c19e43735e731a36a2739c8b'] = 'sprawdź dostępność aktualizacji';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_2c872e677f8b5831f20a66c65e7f8966'] = 'Sprawdź';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_722eb8a4b2d0b1c305d6361bcc7564e7'] = 'Notyfikacje';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_633703a658469b7fab7f42e04e59d27a'] = '-- wybierz --';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_2faec1f9f8cc7f8f40d521c4dd574f49'] = 'Włącz';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_bcfaccebf745acfd5e75351095a5394a'] = 'Wyłącz';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_cc6fc347e9fd233bddcb7895e307e9a9'] = 'Włącz tę opcję jeżeli chcesz sprawdzać strony mypresta.eu w celu otrzymania informacji o aktualziacji. Opcja wyświetli notyfikacje w zapleczu sklepu gdy tylko pojawi się nowa wersja modułu.';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_0d24168598880003b80f9e85b8e1d62a'] = 'Strona modułu';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_07ac9eab57de962a9518a7545fd475fe'] = 'To jest bezpośredni link do strony modułu gdzie można przeczytać aktualny log zmian w module.';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_c9cc8cce247e49bae79f15173ce97354'] = 'Zapisz';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_4c73ce9e52a25c69cf0dce126d548f98'] = 'Nowa wersja dostępna. Szczegóły na mypresta.eu';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_af02b06496e83946e73e69d774782654'] = 'Nowa wersja dostępna!';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_358a5fcb448d507b41d7c0a83485973a'] = 'Moduł jest aktualny!';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_9daf1fb753b42c3cdc8f1d01669cd6d8'] = 'Zapisz';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_037f12bd995417125196b0eacdfd5d47'] = 'Ustawienia widoczności';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_d4b8a235cb30179876d48c5ccbef7c5a'] = 'Ukryj wszystkie shortcode oraz produkty';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Nie';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_93cba07454f06a4a960172bbd6e2a435'] = 'Tak';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_9c087dcc3c8fd0d7e71cbbf2759ba7dd'] = 'Jak używać modułu?';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_51ec3c676f500322c8e27bc1cdc1639b'] = 'Przeczytaj instrukcje na temat korzystania z modułu:';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_184e0fd7a94969fcefae06c9ed711238'] = 'Jak korzystać z modułu ?';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_c948a645583c460e8b209123267a0b58'] = 'Wybierz podsekcję konfiguracji modułu z menu po lewej stronie';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_24c9a580ff22cda9435023d893e53155'] = 'Jak korzystać?';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_9ac41b6a577daadd588f0fcde0071e8b'] = 'Aktualizacje';
$_MODULE['<{cmsproducts}prestashop>cmsproducts_3db4890fcc78d1d703ca24eb7b1a5e35'] = 'Wersja profesjonalna modułu';