From 4a2135cf13b95a0c42da39f2636e7a83c341bb93 Mon Sep 17 00:00:00 2001 From: Jacek Pyziak Date: Wed, 1 Apr 2026 12:48:10 +0200 Subject: [PATCH] update --- .vscode/ftp-kr.sync.cache.json | 39 +------------------ changelog/2026-04-01.md | 20 ++++++++++ modules/crosssellpro/crosssellpro.php | 2 +- .../views/templates/hook/cartCrossSell.tpl | 9 ++++- .../views/js/as4_plugin-17.js | 13 +++++++ .../pm_advancedsearch4/views/js/as4_plugin.js | 15 ++++++- 6 files changed, 58 insertions(+), 40 deletions(-) diff --git a/.vscode/ftp-kr.sync.cache.json b/.vscode/ftp-kr.sync.cache.json index cb781796..00717f29 100644 --- a/.vscode/ftp-kr.sync.cache.json +++ b/.vscode/ftp-kr.sync.cache.json @@ -187,23 +187,8 @@ "lmtime": 0, "modified": false }, + "changelog": {}, "classes": {}, - ".claude": { - "settings.local.json": { - "type": "-", - "size": 96, - "lmtime": 1772461611751, - "modified": false - }, - "memory": { - "feedback_changelog.md": { - "type": "-", - "size": 636, - "lmtime": 1773876629308, - "modified": false - } - } - }, "composer.lock": { "type": "-", "size": 429111, @@ -795,6 +780,7 @@ "lmtime": 0, "modified": false }, + "scripts": {}, "sitemaps": {}, "sitemap_shop_2.xml": { "type": "-", @@ -841,27 +827,6 @@ "size": 448, "lmtime": 0, "modified": false - }, - ".serena": { - ".gitignore": { - "type": "-", - "size": 28, - "lmtime": 1773876286926, - "modified": false - }, - "memories": {}, - "project.local.yml": { - "type": "-", - "size": 407, - "lmtime": 1773876286922, - "modified": false - }, - "project.yml": { - "type": "-", - "size": 8787, - "lmtime": 1773876286912, - "modified": false - } } } } diff --git a/changelog/2026-04-01.md b/changelog/2026-04-01.md index 9de5dc1b..4bb55fb3 100644 --- a/changelog/2026-04-01.md +++ b/changelog/2026-04-01.md @@ -25,3 +25,23 @@ - `modules/crosssellpro/` - `scripts/` +## Aktualizacja: bieżące zmiany robocze + +### Co zmieniono +- Zmieniono nagłówek sekcji cross-sell w `cartCrossSell.tpl`: +- W checkout (`$crosssellpro_is_checkout`) wyświetlany jest komunikat: `Ostatnia szansa na pełen komfort snu`. +- Poza checkout wyświetlany jest komunikat: `Klienci, ktorzy kupili ten materac, wybierali tez:`. +- Usunięto znak BOM z początku pliku `modules/crosssellpro/crosssellpro.php` (porządkowanie kodowania pliku). +- Dodano zabezpieczenie w `pm_advancedsearch4` dla cyklu AJAX: +- W callbacku `complete` zawsze usuwany jest loader (`removeLayer()`). +- Dodano callback błędu `showAsError`, który usuwa loader i loguje błąd do konsoli. +- Podpięto callback `error` oraz `complete` do opcji żądań AJAX w obu wariantach konfiguracji pluginu. +- Zaktualizowano wpisy w `.vscode/ftp-kr.sync.cache.json` (cache synchronizacji FTP po zmianach w drzewie projektu). + +### Bieżąco zmienione pliki +- `.vscode/ftp-kr.sync.cache.json` +- `modules/crosssellpro/crosssellpro.php` +- `modules/crosssellpro/views/templates/hook/cartCrossSell.tpl` +- `modules/pm_advancedsearch4/views/js/as4_plugin-17.js` +- `modules/pm_advancedsearch4/views/js/as4_plugin.js` + diff --git a/modules/crosssellpro/crosssellpro.php b/modules/crosssellpro/crosssellpro.php index 2ed3aa0e..7b828a26 100644 --- a/modules/crosssellpro/crosssellpro.php +++ b/modules/crosssellpro/crosssellpro.php @@ -1,4 +1,4 @@ -
-

{l s='Produkty, ktore moga Ci sie przydac' mod='crosssellpro'}

+

+ {if $crosssellpro_is_checkout} + {l s='Ostatnia szansa na pełen komfort snu' mod='crosssellpro'} + {else} + {l s='Klienci, ktorzy kupili ten materac, wybierali tez:' mod='crosssellpro'} + {/if} +

{/if} + diff --git a/modules/pm_advancedsearch4/views/js/as4_plugin-17.js b/modules/pm_advancedsearch4/views/js/as4_plugin-17.js index 99676782..5f016ff5 100644 --- a/modules/pm_advancedsearch4/views/js/as4_plugin-17.js +++ b/modules/pm_advancedsearch4/views/js/as4_plugin-17.js @@ -86,6 +86,16 @@ var as4Plugin = { // Prevent some action to be done if search is triggered from back/forward event getASFormOptionsCompleteCallBack: function(arg1) { as4Plugin.fromBackForwardEvent = false; + // Safety net: always remove loader/blur at the end of an AJAX cycle. + as4Plugin.removeLayer(); + }, + + // Ajax error callback + showAsError: function(xhr, statusText, errorThrown) { + as4Plugin.removeLayer(); + if (typeof(window.console) !== 'undefined' && typeof(window.console.error) === 'function') { + window.console.error('[AS4] AJAX error', statusText, errorThrown, xhr); + } }, // Get Ajax dynamic parameters @@ -93,6 +103,7 @@ var as4Plugin = { return { beforeSubmit: as4Plugin.showAsRequest, success: as4Plugin.showAsResponse, + error: as4Plugin.showAsError, complete: as4Plugin.getASFormOptionsCompleteCallBack, localCache: as4Plugin.localCache, localCacheKey: as4Plugin.localCacheKey, @@ -113,6 +124,8 @@ var as4Plugin = { return { beforeSubmit: as4Plugin.showAsRequest, success: as4Plugin.showAsResponse, + error: as4Plugin.showAsError, + complete: as4Plugin.getASFormOptionsCompleteCallBack, localCache: as4Plugin.localCache, localCacheKey: as4Plugin.localCacheKey, cacheTTL: 2, diff --git a/modules/pm_advancedsearch4/views/js/as4_plugin.js b/modules/pm_advancedsearch4/views/js/as4_plugin.js index feef3703..e6859d65 100644 --- a/modules/pm_advancedsearch4/views/js/as4_plugin.js +++ b/modules/pm_advancedsearch4/views/js/as4_plugin.js @@ -81,6 +81,16 @@ var as4Plugin = { // Prevent some action to be done if search is triggered from back/forward event getASFormOptionsCompleteCallBack: function(arg1) { as4Plugin.fromBackForwardEvent = false; + // Safety net: always remove loader/blur at the end of an AJAX cycle. + as4Plugin.removeLayer(); + }, + + // Ajax error callback + showAsError: function(xhr, statusText, errorThrown) { + as4Plugin.removeLayer(); + if (typeof(window.console) !== 'undefined' && typeof(window.console.error) === 'function') { + window.console.error('[AS4] AJAX error', statusText, errorThrown, xhr); + } }, // Get Ajax dynamic parameters @@ -88,6 +98,7 @@ var as4Plugin = { return { beforeSubmit: as4Plugin.showAsRequest, success: as4Plugin.showAsResponse, + error: as4Plugin.showAsError, complete: as4Plugin.getASFormOptionsCompleteCallBack, localCache: as4Plugin.localCache, localCacheKey: as4Plugin.localCacheKey, @@ -108,6 +119,8 @@ var as4Plugin = { return { beforeSubmit: as4Plugin.showAsRequest, success: as4Plugin.showAsResponse, + error: as4Plugin.showAsError, + complete: as4Plugin.getASFormOptionsCompleteCallBack, localCache: as4Plugin.localCache, localCacheKey: as4Plugin.localCacheKey, cacheTTL: 2, @@ -1233,4 +1246,4 @@ var as4Plugin = { } } -} \ No newline at end of file +}