This commit is contained in:
2025-04-15 15:18:44 +02:00
25 changed files with 10154 additions and 4503 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -3851,6 +3851,7 @@ class ProductCore extends ObjectModel
$result = self::$_pricesLevel2[$cache_id_2][(int) $id_product_attribute]; $result = self::$_pricesLevel2[$cache_id_2][(int) $id_product_attribute];
// echo '<pre>' . print_r( $specific_price , true) . '</pre>';
if (!$specific_price || $specific_price['price'] < 0) { if (!$specific_price || $specific_price['price'] < 0) {
$price = (float) $result['price']; $price = (float) $result['price'];
} else { } else {
@@ -3954,6 +3955,11 @@ class ProductCore extends ObjectModel
$price -= $specific_price_reduction; $price -= $specific_price_reduction;
} }
// Zaokrąglanie w górę tylko gdy mamy redukcję
if ($specific_price && $specific_price['reduction'] > 0) {
$price = Tools::ceilf($price);
}
// Group reduction // Group reduction
if ($use_group_reduction) { if ($use_group_reduction) {
$reduction_from_category = GroupReduction::getValueForProduct($id_product, $id_group); $reduction_from_category = GroupReduction::getValueForProduct($id_product, $id_group);

View File

@@ -2687,7 +2687,7 @@ class AdminControllerCore extends Controller
$this->addJqueryPlugin(['scrollTo', 'alerts', 'chosen', 'autosize', 'fancybox']); $this->addJqueryPlugin(['scrollTo', 'alerts', 'chosen', 'autosize', 'fancybox']);
$this->addJqueryPlugin('growl', null, false); $this->addJqueryPlugin('growl', null, false);
$this->addJqueryUI(['ui.slider', 'ui.datepicker']); $this->addJqueryUI(['ui.core', 'ui.widget', 'ui.mouse', 'ui.draggable', 'ui.sortable','ui.datepicker','ui.slider']);
$this->addJS(__PS_BASE_URI__ . $this->admin_webpath . '/themes/' . $this->bo_theme . '/js/vendor/bootstrap.min.js'); $this->addJS(__PS_BASE_URI__ . $this->admin_webpath . '/themes/' . $this->bo_theme . '/js/vendor/bootstrap.min.js');
$this->addJS(__PS_BASE_URI__ . $this->admin_webpath . '/themes/' . $this->bo_theme . '/js/vendor/modernizr.min.js'); $this->addJS(__PS_BASE_URI__ . $this->admin_webpath . '/themes/' . $this->bo_theme . '/js/vendor/modernizr.min.js');
@@ -2717,6 +2717,10 @@ class AdminControllerCore extends Controller
// Specific Admin Theme // Specific Admin Theme
$this->addCSS(__PS_BASE_URI__ . $this->admin_webpath . '/themes/' . $this->bo_theme . '/css/overrides.css', 'all', PHP_INT_MAX); $this->addCSS(__PS_BASE_URI__ . $this->admin_webpath . '/themes/' . $this->bo_theme . '/css/overrides.css', 'all', PHP_INT_MAX);
$this->context->controller->addJs(apPageHelper::getJsAdminDir().'admin/form.js');
} }
$this->addJS([ $this->addJS([

View File

@@ -235,7 +235,7 @@ define('_PS_SMARTY_CONSOLE_OPEN_BY_URL_', 1);
define('_PS_SMARTY_CONSOLE_OPEN_', 2); define('_PS_SMARTY_CONSOLE_OPEN_', 2);
if (!defined('_PS_JQUERY_VERSION_')) { if (!defined('_PS_JQUERY_VERSION_')) {
define('_PS_JQUERY_VERSION_', '3.4.1'); define('_PS_JQUERY_VERSION_', '1.12.4');
} }
define('_PS_CACHE_CA_CERT_FILE_', _PS_CACHE_DIR_.'cacert.pem'); define('_PS_CACHE_CA_CERT_FILE_', _PS_CACHE_DIR_.'cacert.pem');

View File

@@ -1926,6 +1926,7 @@ class APPageBuilder extends Module
$cache_id = $this->getCacheId('apshortcode', $shortcode_key); $cache_id = $this->getCacheId('apshortcode', $shortcode_key);
if ($disable_cache || !$this->isCached($this->templateFile, $cache_id)) { if ($disable_cache || !$this->isCached($this->templateFile, $cache_id)) {
$shortcode_html = ''; $shortcode_html = '';
$shortcode_obj = ApPageBuilderShortcodeModel::getShortCode($shortcode_key); $shortcode_obj = ApPageBuilderShortcodeModel::getShortCode($shortcode_key);
if (isset($shortcode_obj['id_appagebuilder']) && $shortcode_obj['id_appagebuilder'] != '' && $shortcode_obj['id_appagebuilder'] != 0) { if (isset($shortcode_obj['id_appagebuilder']) && $shortcode_obj['id_appagebuilder'] != '' && $shortcode_obj['id_appagebuilder'] != 0) {

View File

@@ -112,6 +112,11 @@ class AdminApPageBuilderProfilesController extends ModuleAdminControllerCore
public function initPageHeaderToolbar() public function initPageHeaderToolbar()
{ {
$this->context->controller->addJs(__PS_BASE_URI__.'js/jquery/jquery-3.5.1.min.js');
// $this->context->controller->addJquery();
$this->context->controller->addJqueryUI('ui.sortable'); // FILE FORM.js required this
$this->context->controller->addJqueryUI('ui.draggable'); // FILE FORM.js required this
$this->context->controller->addJs(apPageHelper::getJsAdminDir().'admin/form.js'); $this->context->controller->addJs(apPageHelper::getJsAdminDir().'admin/form.js');
$this->page_header_toolbar_btn['SaveAndStay'] = array( $this->page_header_toolbar_btn['SaveAndStay'] = array(

View File

@@ -19,6 +19,8 @@ function updateListIdFullSlider() {
$("#total_slider").val(listId); $("#total_slider").val(listId);
} }
$(document).ready(function() { $(document).ready(function() {
console.log("ready!");
$("#modal_form").draggable({ $("#modal_form").draggable({
handle: ".modal-header" handle: ".modal-header"
}); });

View File

@@ -19,6 +19,8 @@ function updateListIdFullSlider() {
$("#total_slider").val(listId); $("#total_slider").val(listId);
} }
$(document).ready(function() { $(document).ready(function() {
console.log("ready");
$("#modal_form").draggable({ $("#modal_form").draggable({
handle: ".modal-header" handle: ".modal-header"
}); });

View File

@@ -506,10 +506,9 @@ function htmlentitiesDecode(str) {
//edit group //edit group
$(document).on("click", ".btn-edit", function () { $(document).on("click", ".btn-edit", function () {
if ($(this).data('type' == undefined) && $(this).data('type') == undefined) { var type = $(this).data('type') !== undefined
var type = $(this).closest('.widget-row').data("type"); ? $(this).data('type')
} else : $(this).closest('.widget-row').data('type');
var type = $(this).data("type");
if (type.indexOf("apSub") == 0) { if (type.indexOf("apSub") == 0) {
if (type == "apSubAccordions") { if (type == "apSubAccordions") {

View File

@@ -6,7 +6,6 @@
* @description: ApPageBuilder is module help you can build content for your shop * @description: ApPageBuilder is module help you can build content for your shop
*} *}
<!-- @file modules\appagebuilder\views\templates\hook\header --> <!-- @file modules\appagebuilder\views\templates\hook\header -->
<script> <script>
/** /**
* List functions will run when document.ready() * List functions will run when document.ready()

View File

@@ -17,7 +17,7 @@ require_once(dirname(__FILE__).'/../../config/config.inc.php');
require_once(dirname(__FILE__).'/../../init.php'); require_once(dirname(__FILE__).'/../../init.php');
include_once(dirname(__FILE__).'/leofeature.php'); include_once(dirname(__FILE__).'/leofeature.php');
include_once(dirname(__FILE__).'/classes/LeofeatureProduct.php'); include_once(dirname(__FILE__).'/../classes/LeofeatureProduct.php');
$module = new Leofeature(); $module = new Leofeature();

View File

@@ -0,0 +1,54 @@
<?php
if (!defined('_PS_VERSION_')) {
exit;
}
class PromotionalPriceRounding extends Module
{
public function __construct()
{
$this->name = 'promotionalpricerounding';
$this->tab = 'pricing';
$this->version = '1.0.0';
$this->author = 'Twoja Nazwa';
$this->need_instance = 0;
$this->ps_versions_compliancy = ['min' => '1.7.0.0', 'max' => _PS_VERSION_];
parent::__construct();
$this->displayName = $this->l('Zaokrąglanie cen promocyjnych w górę');
$this->description = $this->l('Zaokrągla ceny promocyjne w górę, tak jak zwykłe ceny.');
$this->confirmUninstall = $this->l('Czy na pewno chcesz odinstalować ten moduł?');
}
public function install()
{
return parent::install() && $this->registerHook('actionProductGetPrice');
}
public function uninstall()
{
return parent::uninstall() && $this->unregisterHook('actionProductGetPrice');
}
public function hookActionProductGetPrice($params)
{
if (isset($params['product'])) {
$product = $params['product'];
$price = $params['price'];
$currency = Context::getContext()->currency;
$decimals = is_array($currency) ? (int) $currency['decimals'] : (int) $currency->decimals;
$factor = pow(10, $decimals);
// Sprawdź, czy produkt ma aktywną promocję
if (isset($product->specificPrice) && $product->specificPrice && $product->specificPrice['reduction'] > 0) {
$params['price'] = ceil($price * $factor) / $factor;
} elseif (isset($product->reduction) && $product->reduction > 0) {
// Obsługa reguł cenowych
$params['price'] = ceil($price * $factor) / $factor;
}
}
}
}

View File

@@ -23,7 +23,7 @@
* International Registered Trademark & Property of PrestaShop SA * International Registered Trademark & Property of PrestaShop SA
*/ */
$(document).ready(function () { $(document).ready(function () {
$('.block_newsletter form').on('submit', function () { $('.my_row.newsletter form').on('submit', function () {
var psemailsubscriptionForm = $(this); var psemailsubscriptionForm = $(this);
if (typeof psemailsubscription_subscription === 'undefined') { if (typeof psemailsubscription_subscription === 'undefined') {
return true; return true;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -1051,3 +1051,24 @@ $(document).ready(function(){
} }
}) })
}) })
$(document).ready(function () {
$('.nav-item.parent.dropdown').on('mouseenter', function () {
var $submenu = $(this).find('.dropdown-menu');
if ($submenu.length) {
$submenu.css({ left: '', right: '', transform: '' });
var submenuRect = $submenu[0].getBoundingClientRect();
var windowWidth = $(window).width();
if (submenuRect.right > windowWidth) {
$submenu.attr('style', 'left: 50% !important; right: auto !important; transform: translateX(-50%) !important;');
} else if (submenuRect.left < 0) {
$submenu.attr('style', 'left: 50% !important; right: auto !important; transform: translateX(-50%) !important;');
} else {
$submenu.css({ left: '', right: '', transform: '' });
}
}
});
});

View File

@@ -22,49 +22,49 @@
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
* International Registered Trademark & Property of PrestaShop SA * International Registered Trademark & Property of PrestaShop SA
*} *}
{extends file='page.tpl'} {extends file='page.tpl'}
{block name='page_title'} {block name='page_title'}
{$cms.meta_title} {$cms.meta_title}
{/block} {/block}
{block name='page_content_container'} {block name='page_content_container'}
<section id="content" class="page-content page-cms page-cms-{$cms.id}"> <section id="content" class="page-content page-cms page-cms-{$cms.id}">
{if $cms.id == 61} {if $cms.id == 61}
<iframe id="paypoIframe" src="https://start.paypo.pl" width="100%" frameborder="no"></iframe> <iframe id="paypoIframe" src="https://start.paypo.pl" width="100%" frameborder="no"></iframe>
{literal} {literal}
<script type="module"> <script type="module">
window.addEventListener('message', event => { window.addEventListener('message', event => {
const paypoIframe = document.querySelector('#paypoIframe'); const paypoIframe = document.querySelector('#paypoIframe');
const eventData = JSON.parse(event.data); const eventData = JSON.parse(event.data);
let isPageHeightSet = false; let isPageHeightSet = false;
if (typeof eventData === "object") { if (typeof eventData === "object") {
if ('pageBodyHeight' in eventData) { if ('pageBodyHeight' in eventData) {
paypoIframe.style.height = eventData.pageBodyHeight + 'px'; paypoIframe.style.height = eventData.pageBodyHeight + 'px';
isPageHeightSet = true; isPageHeightSet = true;
} else { } else {
isPageHeightSet || (paypoIframe.style.height = '5200px'); isPageHeightSet || (paypoIframe.style.height = '5200px');
} }
} }
}); });
</script> </script>
{/literal} {/literal}
{/if} {/if}
{block name='cms_content'} {block name='cms_content'}
{$cms.content nofilter} {$cms.content nofilter}
{/block} {/block}
{block name='hook_cms_dispute_information'} {block name='hook_cms_dispute_information'}
{hook h='displayCMSDisputeInformation'} {hook h='displayCMSDisputeInformation'}
{/block} {/block}
{block name='hook_cms_print_button'} {block name='hook_cms_print_button'}
{hook h='displayCMSPrintButton'} {hook h='displayCMSPrintButton'}
{/block} {/block}
</section> </section>
{/block} {/block}

View File

@@ -31,7 +31,7 @@
{/block} {/block}
</head> </head>
<body id="{$page.page_name}" class="{$page.body_classes|classnames}{if isset($LEO_LAYOUT_MODE)} {$LEO_LAYOUT_MODE}{/if}{if isset($USE_FHEADER) && $USE_FHEADER} keep-header{/if}"> <body id="{$page.page_name}" class="1 {$page.body_classes|classnames}{if isset($LEO_LAYOUT_MODE)} {$LEO_LAYOUT_MODE}{/if}{if isset($USE_FHEADER) && $USE_FHEADER} keep-header{/if}">
<!-- Google Tag Manager (noscript) --> <!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MJDZPHD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MJDZPHD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>