diff --git a/.vscode/ftp-kr.sync.cache.json b/.vscode/ftp-kr.sync.cache.json
index 9b881695..f48d1302 100644
--- a/.vscode/ftp-kr.sync.cache.json
+++ b/.vscode/ftp-kr.sync.cache.json
@@ -4595,6 +4595,1158 @@
"TwigBundle": {},
"views": {}
},
+ "Resources": {
+ "all_languages.json": {
+ "type": "-",
+ "size": 17065,
+ "lmtime": 0,
+ "modified": false
+ },
+ "geoip": {},
+ "legacy-to-standard-locales.json": {
+ "type": "-",
+ "size": 1363,
+ "lmtime": 0,
+ "modified": false
+ },
+ "security": {},
+ "translations": {
+ "ar-SA": {},
+ "de-DE": {},
+ "default": {},
+ "en-US": {},
+ "es-ES": {},
+ "fr-FR": {},
+ "it-IT": {},
+ "pl-PL": {
+ "AdminActions.pl-PL.xlf": {
+ "type": "-",
+ "size": 58129,
+ "lmtime": 1744096927700,
+ "modified": false
+ },
+ "AdminAdvparametersFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 111758,
+ "lmtime": 1744096927702,
+ "modified": false
+ },
+ "AdminAdvparametersHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 55481,
+ "lmtime": 1744096927704,
+ "modified": false
+ },
+ "AdminAdvparametersNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 87081,
+ "lmtime": 1744096927705,
+ "modified": false
+ },
+ "AdminCatalogFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 149789,
+ "lmtime": 1744096927707,
+ "modified": false
+ },
+ "AdminCatalogHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 70262,
+ "lmtime": 1744096927708,
+ "modified": false
+ },
+ "AdminCatalogNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 71864,
+ "lmtime": 1744096927711,
+ "modified": false
+ },
+ "AdminDashboardFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 6459,
+ "lmtime": 1744096927712,
+ "modified": false
+ },
+ "AdminDashboardHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 4834,
+ "lmtime": 1744096927712,
+ "modified": false
+ },
+ "AdminDashboardNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 1660,
+ "lmtime": 1744096927713,
+ "modified": false
+ },
+ "AdminDesignFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 31697,
+ "lmtime": 1744096927714,
+ "modified": false
+ },
+ "AdminDesignHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 27735,
+ "lmtime": 1744096927715,
+ "modified": false
+ },
+ "AdminDesignNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 18740,
+ "lmtime": 1744096927716,
+ "modified": false
+ },
+ "AdminGlobalError.pl-PL.xlf": {
+ "type": "-",
+ "size": 307,
+ "lmtime": 1744096927717,
+ "modified": false
+ },
+ "AdminGlobal.pl-PL.xlf": {
+ "type": "-",
+ "size": 102172,
+ "lmtime": 1744096927717,
+ "modified": false
+ },
+ "AdminInternationalFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 55424,
+ "lmtime": 1744096927719,
+ "modified": false
+ },
+ "AdminInternationalHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 35008,
+ "lmtime": 1744096927720,
+ "modified": false
+ },
+ "AdminInternationalNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 49644,
+ "lmtime": 1744096927721,
+ "modified": false
+ },
+ "AdminLoginFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 2343,
+ "lmtime": 1744096927722,
+ "modified": false
+ },
+ "AdminLoginNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 8488,
+ "lmtime": 1744096927722,
+ "modified": false
+ },
+ "AdminModulesFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 35883,
+ "lmtime": 1744096927723,
+ "modified": false
+ },
+ "AdminModulesHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 5976,
+ "lmtime": 1744096927724,
+ "modified": false
+ },
+ "AdminModulesNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 49638,
+ "lmtime": 1744096927725,
+ "modified": false
+ },
+ "AdminNavigationFooter.pl-PL.xlf": {
+ "type": "-",
+ "size": 2006,
+ "lmtime": 1744096927727,
+ "modified": false
+ },
+ "AdminNavigationHeader.pl-PL.xlf": {
+ "type": "-",
+ "size": 18779,
+ "lmtime": 1744096927727,
+ "modified": false
+ },
+ "AdminNavigationMenu.pl-PL.xlf": {
+ "type": "-",
+ "size": 35048,
+ "lmtime": 1744096927728,
+ "modified": false
+ },
+ "AdminNavigationNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 7467,
+ "lmtime": 1744096927729,
+ "modified": false
+ },
+ "AdminNavigationSearch.pl-PL.xlf": {
+ "type": "-",
+ "size": 6571,
+ "lmtime": 1744096927730,
+ "modified": false
+ },
+ "AdminNotificationsError.pl-PL.xlf": {
+ "type": "-",
+ "size": 100777,
+ "lmtime": 1744096927732,
+ "modified": false
+ },
+ "AdminNotificationsInfo.pl-PL.xlf": {
+ "type": "-",
+ "size": 5513,
+ "lmtime": 1744096927733,
+ "modified": false
+ },
+ "AdminNotificationsSuccess.pl-PL.xlf": {
+ "type": "-",
+ "size": 12841,
+ "lmtime": 1744096927733,
+ "modified": false
+ },
+ "AdminNotificationsWarning.pl-PL.xlf": {
+ "type": "-",
+ "size": 8774,
+ "lmtime": 1744096927734,
+ "modified": false
+ },
+ "AdminOrderscustomersFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 117190,
+ "lmtime": 1744096927736,
+ "modified": false
+ },
+ "AdminOrderscustomersHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 22566,
+ "lmtime": 1744096927737,
+ "modified": false
+ },
+ "AdminOrderscustomersNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 67580,
+ "lmtime": 1744096927738,
+ "modified": false
+ },
+ "AdminPaymentFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 2412,
+ "lmtime": 1744096927739,
+ "modified": false
+ },
+ "AdminPaymentHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 3303,
+ "lmtime": 1744096927740,
+ "modified": false
+ },
+ "AdminPaymentNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 5154,
+ "lmtime": 1744096927740,
+ "modified": false
+ },
+ "AdminShippingFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 20229,
+ "lmtime": 1744096927741,
+ "modified": false
+ },
+ "AdminShippingHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 19826,
+ "lmtime": 1744096927742,
+ "modified": false
+ },
+ "AdminShippingNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 6634,
+ "lmtime": 1744096927743,
+ "modified": false
+ },
+ "AdminShopparametersFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 96126,
+ "lmtime": 1744096927745,
+ "modified": false
+ },
+ "AdminShopparametersHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 66431,
+ "lmtime": 1744096927746,
+ "modified": false
+ },
+ "AdminShopparametersNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 20905,
+ "lmtime": 1744096927748,
+ "modified": false
+ },
+ "AdminStatsFeature.pl-PL.xlf": {
+ "type": "-",
+ "size": 2978,
+ "lmtime": 1744096927749,
+ "modified": false
+ },
+ "AdminStatsHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 1819,
+ "lmtime": 1744096927749,
+ "modified": false
+ },
+ "AdminStatsNotification.pl-PL.xlf": {
+ "type": "-",
+ "size": 1224,
+ "lmtime": 1744096927750,
+ "modified": false
+ },
+ "EmailsBody.pl-PL.xlf": {
+ "type": "-",
+ "size": 134470,
+ "lmtime": 1744096927751,
+ "modified": false
+ },
+ "EmailsSubject.pl-PL.xlf": {
+ "type": "-",
+ "size": 10143,
+ "lmtime": 1744096927751,
+ "modified": false
+ },
+ "GlobalActions.pl-PL.xlf": {
+ "type": "-",
+ "size": 1082,
+ "lmtime": 1744096927752,
+ "modified": false
+ },
+ "Install.pl-PL.xlf": {
+ "type": "-",
+ "size": 73128,
+ "lmtime": 1744096927753,
+ "modified": false
+ },
+ "messages.pl-PL.xlf": {
+ "type": "-",
+ "size": 146821,
+ "lmtime": 1744096927853,
+ "modified": false
+ },
+ "ModulesAdvertisingAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 3948,
+ "lmtime": 1744096927754,
+ "modified": false
+ },
+ "ModulesAutoupgradeAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 79510,
+ "lmtime": 1744096927756,
+ "modified": false
+ },
+ "ModulesBannerAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 3099,
+ "lmtime": 1744096927756,
+ "modified": false
+ },
+ "ModulesBannerShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 530,
+ "lmtime": 1744096927757,
+ "modified": false
+ },
+ "ModulesBestsellersAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1578,
+ "lmtime": 1744096927758,
+ "modified": false
+ },
+ "ModulesBestsellersShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 905,
+ "lmtime": 1744096927758,
+ "modified": false
+ },
+ "ModulesBlockreassuranceAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 20289,
+ "lmtime": 1744096927759,
+ "modified": false
+ },
+ "ModulesBlockreassuranceShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 2373,
+ "lmtime": 1744096927760,
+ "modified": false
+ },
+ "ModulesBlockwishlistAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6374,
+ "lmtime": 1744096927761,
+ "modified": false
+ },
+ "ModulesBlockwishlistShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 18017,
+ "lmtime": 1744096927762,
+ "modified": false
+ },
+ "ModulesBrandlistAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2952,
+ "lmtime": 1744096927762,
+ "modified": false
+ },
+ "ModulesBrandlistShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 1042,
+ "lmtime": 1744096927763,
+ "modified": false
+ },
+ "ModulesBuybuttonliteAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 3188,
+ "lmtime": 1744096927763,
+ "modified": false
+ },
+ "ModulesCarriercomparisonAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1629,
+ "lmtime": 1744096927764,
+ "modified": false
+ },
+ "ModulesCarriercomparisonShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 3291,
+ "lmtime": 1744096927765,
+ "modified": false
+ },
+ "ModulesCashondeliveryAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 902,
+ "lmtime": 1744096927765,
+ "modified": false
+ },
+ "ModulesCashondeliveryShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 3099,
+ "lmtime": 1744096927766,
+ "modified": false
+ },
+ "ModulesCategoryproductsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2348,
+ "lmtime": 1744096927767,
+ "modified": false
+ },
+ "ModulesCategoryproductsShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 1022,
+ "lmtime": 1744096927768,
+ "modified": false
+ },
+ "ModulesCategorytreeAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 3573,
+ "lmtime": 1744096927769,
+ "modified": false
+ },
+ "ModulesCheckpaymentAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 4537,
+ "lmtime": 1744096927770,
+ "modified": false
+ },
+ "ModulesCheckpaymentShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 5878,
+ "lmtime": 1744096927770,
+ "modified": false
+ },
+ "ModulesContactformAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 3067,
+ "lmtime": 1744096927771,
+ "modified": false
+ },
+ "ModulesContactformShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 4521,
+ "lmtime": 1744096927773,
+ "modified": false
+ },
+ "ModulesContactinfoAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1164,
+ "lmtime": 1744096927773,
+ "modified": false
+ },
+ "ModulesContactinfoShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 2441,
+ "lmtime": 1744096927774,
+ "modified": false
+ },
+ "ModulesCrosssellingAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2869,
+ "lmtime": 1744096927775,
+ "modified": false
+ },
+ "ModulesCrosssellingShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 597,
+ "lmtime": 1744096927775,
+ "modified": false
+ },
+ "ModulesCurrencyselectorAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 801,
+ "lmtime": 1744096927776,
+ "modified": false
+ },
+ "ModulesCustomeraccountlinksAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1531,
+ "lmtime": 1744096927777,
+ "modified": false
+ },
+ "ModulesCustomersigninAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1437,
+ "lmtime": 1744096927777,
+ "modified": false
+ },
+ "ModulesCustomtextAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1895,
+ "lmtime": 1744096927778,
+ "modified": false
+ },
+ "ModulesDashactivityAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 7831,
+ "lmtime": 1744096927779,
+ "modified": false
+ },
+ "ModulesDashgoalsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 5594,
+ "lmtime": 1744096927779,
+ "modified": false
+ },
+ "ModulesDashproductsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6885,
+ "lmtime": 1744096927780,
+ "modified": false
+ },
+ "ModulesDashtrendsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 5260,
+ "lmtime": 1744096927780,
+ "modified": false
+ },
+ "ModulesDataprivacyAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 3303,
+ "lmtime": 1744096927781,
+ "modified": false
+ },
+ "ModulesDataprivacyShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 579,
+ "lmtime": 1744096927782,
+ "modified": false
+ },
+ "ModulesDateofdeliveryAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 10041,
+ "lmtime": 1744096927783,
+ "modified": false
+ },
+ "ModulesDateofdeliveryShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 2209,
+ "lmtime": 1744096927783,
+ "modified": false
+ },
+ "ModulesEmailalertsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 7552,
+ "lmtime": 1744096927784,
+ "modified": false
+ },
+ "ModulesEmailalertsShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 1613,
+ "lmtime": 1744096927785,
+ "modified": false
+ },
+ "ModulesEmailsubscriptionAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 11612,
+ "lmtime": 1744096927786,
+ "modified": false
+ },
+ "ModulesEmailsubscriptionShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 4609,
+ "lmtime": 1744096927786,
+ "modified": false
+ },
+ "ModulesFacetedsearchAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 31046,
+ "lmtime": 1744096927787,
+ "modified": false
+ },
+ "ModulesFacetedsearchShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 3410,
+ "lmtime": 1744096927788,
+ "modified": false
+ },
+ "ModulesFaviconnotificationboAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 3047,
+ "lmtime": 1744096927788,
+ "modified": false
+ },
+ "ModulesFeaturedproductsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 4609,
+ "lmtime": 1744096927789,
+ "modified": false
+ },
+ "ModulesFeaturedproductsShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 754,
+ "lmtime": 1744096927790,
+ "modified": false
+ },
+ "ModulesFeederAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 872,
+ "lmtime": 1744096927790,
+ "modified": false
+ },
+ "ModulesGAnalyticsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 9198,
+ "lmtime": 1744096927792,
+ "modified": false
+ },
+ "ModulesGraphnvd3Admin.pl-PL.xlf": {
+ "type": "-",
+ "size": 869,
+ "lmtime": 1744096927792,
+ "modified": false
+ },
+ "ModulesGridhtmlAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 829,
+ "lmtime": 1744096927793,
+ "modified": false
+ },
+ "ModulesGsitemapAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 12896,
+ "lmtime": 1744096927794,
+ "modified": false
+ },
+ "ModulesImagesliderAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 10688,
+ "lmtime": 1744096927794,
+ "modified": false
+ },
+ "ModulesLanguageselectorAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 873,
+ "lmtime": 1744096927795,
+ "modified": false
+ },
+ "ModulesLegalcomplianceAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 22412,
+ "lmtime": 1744096927796,
+ "modified": false
+ },
+ "ModulesLegalcomplianceShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 8665,
+ "lmtime": 1744096927797,
+ "modified": false
+ },
+ "ModulesLinklistAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 8106,
+ "lmtime": 1744096927797,
+ "modified": false
+ },
+ "ModulesLinklistShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 711,
+ "lmtime": 1744096927798,
+ "modified": false
+ },
+ "ModulesLivetranslationAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6060,
+ "lmtime": 1744096927798,
+ "modified": false
+ },
+ "ModulesLivetranslationShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 648,
+ "lmtime": 1744096927799,
+ "modified": false
+ },
+ "ModulesMailalertsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 10988,
+ "lmtime": 1744096927799,
+ "modified": false
+ },
+ "ModulesMailalertsShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 2770,
+ "lmtime": 1744096927800,
+ "modified": false
+ },
+ "ModulesMainmenuAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 9589,
+ "lmtime": 1744096927801,
+ "modified": false
+ },
+ "ModulesNewproductsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2542,
+ "lmtime": 1744096927802,
+ "modified": false
+ },
+ "ModulesNewproductsShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 898,
+ "lmtime": 1744096927803,
+ "modified": false
+ },
+ "ModulesNewsletterAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6043,
+ "lmtime": 1744096927803,
+ "modified": false
+ },
+ "ModulesPagesnotfoundAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6780,
+ "lmtime": 1744096927804,
+ "modified": false
+ },
+ "ModulesProductcommentsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 13568,
+ "lmtime": 1744096927805,
+ "modified": false
+ },
+ "ModulesProductcommentsShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 13123,
+ "lmtime": 1744096927806,
+ "modified": false
+ },
+ "ModulesProductinfoAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 5569,
+ "lmtime": 1744096927806,
+ "modified": false
+ },
+ "ModulesPscleanerAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 7987,
+ "lmtime": 1744096927807,
+ "modified": false
+ },
+ "ModulesReminderAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 13175,
+ "lmtime": 1744096927808,
+ "modified": false
+ },
+ "ModulesRssfeedAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 5258,
+ "lmtime": 1744096927808,
+ "modified": false
+ },
+ "ModulesRssfeedShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 591,
+ "lmtime": 1744096927809,
+ "modified": false
+ },
+ "ModulesSearchbarAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1159,
+ "lmtime": 1744096927810,
+ "modified": false
+ },
+ "ModulesSearchbarShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 482,
+ "lmtime": 1744096927810,
+ "modified": false
+ },
+ "ModulesSekeywordsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6227,
+ "lmtime": 1744096927811,
+ "modified": false
+ },
+ "ModulesSharebuttonsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1828,
+ "lmtime": 1744096927811,
+ "modified": false
+ },
+ "ModulesSharebuttonsShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 1119,
+ "lmtime": 1744096927812,
+ "modified": false
+ },
+ "ModulesShoppingcartAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1922,
+ "lmtime": 1744096927812,
+ "modified": false
+ },
+ "ModulesSocialfollowAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 5891,
+ "lmtime": 1744096927813,
+ "modified": false
+ },
+ "ModulesSocialfollowShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 2541,
+ "lmtime": 1744096927814,
+ "modified": false
+ },
+ "ModulesSpecialsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1601,
+ "lmtime": 1744096927815,
+ "modified": false
+ },
+ "ModulesSpecialsShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 879,
+ "lmtime": 1744096927815,
+ "modified": false
+ },
+ "ModulesStatsbestcategoriesAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2333,
+ "lmtime": 1744096927816,
+ "modified": false
+ },
+ "ModulesStatsbestcustomersAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 5036,
+ "lmtime": 1744096927817,
+ "modified": false
+ },
+ "ModulesStatsbestmanufacturersAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1036,
+ "lmtime": 1744096927817,
+ "modified": false
+ },
+ "ModulesStatsbestproductsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2170,
+ "lmtime": 1744096927818,
+ "modified": false
+ },
+ "ModulesStatsbestsuppliersAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1040,
+ "lmtime": 1744096927819,
+ "modified": false
+ },
+ "ModulesStatsbestvouchersAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 1638,
+ "lmtime": 1744096927819,
+ "modified": false
+ },
+ "ModulesStatscarrierAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2335,
+ "lmtime": 1744096927820,
+ "modified": false
+ },
+ "ModulesStatscatalogAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 5094,
+ "lmtime": 1744096927821,
+ "modified": false
+ },
+ "ModulesStatscheckupAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 4427,
+ "lmtime": 1744096927822,
+ "modified": false
+ },
+ "ModulesStatsdataAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2799,
+ "lmtime": 1744096927823,
+ "modified": false
+ },
+ "ModulesStatsequipmentAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 4456,
+ "lmtime": 1744096927823,
+ "modified": false
+ },
+ "ModulesStatsforecastAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 9587,
+ "lmtime": 1744096927824,
+ "modified": false
+ },
+ "ModulesStatsliveAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 4282,
+ "lmtime": 1744096927825,
+ "modified": false
+ },
+ "ModulesStatsnewsletterAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2362,
+ "lmtime": 1744096927826,
+ "modified": false
+ },
+ "ModulesStatsoriginAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 4474,
+ "lmtime": 1744096927826,
+ "modified": false
+ },
+ "ModulesStatspersonalinfosAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 8724,
+ "lmtime": 1744096927827,
+ "modified": false
+ },
+ "ModulesStatsproductAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6198,
+ "lmtime": 1744096927828,
+ "modified": false
+ },
+ "ModulesStatsregistrationsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6975,
+ "lmtime": 1744096927829,
+ "modified": false
+ },
+ "ModulesStatssalesAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6195,
+ "lmtime": 1744096927829,
+ "modified": false
+ },
+ "ModulesStatssearchAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2551,
+ "lmtime": 1744096927830,
+ "modified": false
+ },
+ "ModulesStatsstockAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2736,
+ "lmtime": 1744096927831,
+ "modified": false
+ },
+ "ModulesStatsvisitsAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 5349,
+ "lmtime": 1744096927832,
+ "modified": false
+ },
+ "ModulesSupplierlistAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 3060,
+ "lmtime": 1744096927832,
+ "modified": false
+ },
+ "ModulesSupplierlistShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 1077,
+ "lmtime": 1744096927833,
+ "modified": false
+ },
+ "ModulesTrackingfrontAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 959,
+ "lmtime": 1744096927834,
+ "modified": false
+ },
+ "ModulesTrackingfrontShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 9934,
+ "lmtime": 1744096927835,
+ "modified": false
+ },
+ "ModulesViewedproductAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 2225,
+ "lmtime": 1744096927835,
+ "modified": false
+ },
+ "ModulesViewedproductShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 612,
+ "lmtime": 1744096927836,
+ "modified": false
+ },
+ "ModulesWatermarkAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 6871,
+ "lmtime": 1744096927836,
+ "modified": false
+ },
+ "ModulesWelcomeAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 17030,
+ "lmtime": 1744096927837,
+ "modified": false
+ },
+ "ModulesWirepaymentAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 7457,
+ "lmtime": 1744096927838,
+ "modified": false
+ },
+ "ModulesWirepaymentShop.pl-PL.xlf": {
+ "type": "-",
+ "size": 7108,
+ "lmtime": 1744096927839,
+ "modified": false
+ },
+ "ModuleWatermarkAdmin.pl-PL.xlf": {
+ "type": "-",
+ "size": 279,
+ "lmtime": 1744096927754,
+ "modified": false
+ },
+ "ShopDemoCatalog.pl-PL.xlf": {
+ "type": "-",
+ "size": 14661,
+ "lmtime": 1744096927839,
+ "modified": false
+ },
+ "ShopFormsErrors.pl-PL.xlf": {
+ "type": "-",
+ "size": 2242,
+ "lmtime": 1744096927840,
+ "modified": false
+ },
+ "ShopFormsHelp.pl-PL.xlf": {
+ "type": "-",
+ "size": 4483,
+ "lmtime": 1744096927840,
+ "modified": false
+ },
+ "ShopFormsLabels.pl-PL.xlf": {
+ "type": "-",
+ "size": 10745,
+ "lmtime": 1744096927841,
+ "modified": false
+ },
+ "ShopNavigation.pl-PL.xlf": {
+ "type": "-",
+ "size": 13152,
+ "lmtime": 1744096927842,
+ "modified": false
+ },
+ "ShopNotificationsError.pl-PL.xlf": {
+ "type": "-",
+ "size": 33282,
+ "lmtime": 1744096927843,
+ "modified": false
+ },
+ "ShopNotificationsInfo.pl-PL.xlf": {
+ "type": "-",
+ "size": 609,
+ "lmtime": 1744096927844,
+ "modified": false
+ },
+ "ShopNotificationsSuccess.pl-PL.xlf": {
+ "type": "-",
+ "size": 3852,
+ "lmtime": 1744096927844,
+ "modified": false
+ },
+ "ShopNotificationsWarning.pl-PL.xlf": {
+ "type": "-",
+ "size": 3781,
+ "lmtime": 1744096927845,
+ "modified": false
+ },
+ "ShopPdf.pl-PL.xlf": {
+ "type": "-",
+ "size": 26800,
+ "lmtime": 1744096927846,
+ "modified": false
+ },
+ "ShopThemeActions.pl-PL.xlf": {
+ "type": "-",
+ "size": 19770,
+ "lmtime": 1744096927847,
+ "modified": false
+ },
+ "ShopThemeCatalog.pl-PL.xlf": {
+ "type": "-",
+ "size": 34710,
+ "lmtime": 1744096927847,
+ "modified": false
+ },
+ "ShopThemeCategory.pl-PL.xlf": {
+ "type": "-",
+ "size": 518,
+ "lmtime": 1744096927848,
+ "modified": false
+ },
+ "ShopThemeCheckout.pl-PL.xlf": {
+ "type": "-",
+ "size": 37023,
+ "lmtime": 1744096927849,
+ "modified": false
+ },
+ "ShopThemeCustomeraccount.pl-PL.xlf": {
+ "type": "-",
+ "size": 27517,
+ "lmtime": 1744096927850,
+ "modified": false
+ },
+ "ShopThemeGlobal.pl-PL.xlf": {
+ "type": "-",
+ "size": 21398,
+ "lmtime": 1744096927850,
+ "modified": false
+ }
+ },
+ "sk-SK": {}
+ },
+ "TwigBundle": {},
+ "views": {}
+ },
"test": {}
},
"autoload.php": {
@@ -6694,7 +7846,7 @@
"defines.inc.php": {
"type": "-",
"size": 8124,
- "lmtime": 1743624449624,
+ "lmtime": 1744213948366,
"modified": false
},
"defines_uri.inc.php": {
@@ -11725,8 +12877,8 @@
},
"appagebuilder.php": {
"type": "-",
- "size": 157926,
- "lmtime": 1742913415376,
+ "size": 156813,
+ "lmtime": 1744230683719,
"modified": false
},
"classes": {
@@ -13066,8 +14218,8 @@
"front": {
"CmsController.php": {
"type": "-",
- "size": 2647,
- "lmtime": 1742913531287,
+ "size": 2639,
+ "lmtime": 1744231251306,
"modified": false
},
"index.php": {
diff --git a/classes/Product.php b/classes/Product.php
index ebbba501..fddf97ca 100644
--- a/classes/Product.php
+++ b/classes/Product.php
@@ -3954,6 +3954,11 @@ class ProductCore extends ObjectModel
$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
if ($use_group_reduction) {
$reduction_from_category = GroupReduction::getValueForProduct($id_product, $id_group);
diff --git a/modules/appagebuilder/appagebuilder.php b/modules/appagebuilder/appagebuilder.php
index cbce4fab..5af70636 100644
--- a/modules/appagebuilder/appagebuilder.php
+++ b/modules/appagebuilder/appagebuilder.php
@@ -38,7 +38,7 @@ class APPageBuilder extends Module
protected $product_active;
protected $backup_dir;
protected $header_content;
-
+
protected $_confirmations = array();
protected $_errors = array();
protected $_warnings = array();
@@ -56,7 +56,7 @@ class APPageBuilder extends Module
$this->secure_key = Tools::encrypt($this->name);
$this->bootstrap = true;
parent::__construct();
-
+
$this->displayName = $this->l('Apollo Page Builder');
$this->description = $this->l('Apollo Page Builder build content for your site.');
$this->theme_name = _THEME_NAME_;
@@ -66,7 +66,7 @@ class APPageBuilder extends Module
$this->templateFile = 'module:appagebuilder/views/templates/hook/appagebuilder.tpl';
$this->redirectFriendUrl();
}
-
+
public function redirectFriendUrl()
{
// if (Context::getContext()->controller === null || (isset(Context::getContext()->controller->controller_type) && in_array(Context::getContext()->controller->controller_type, array('front', 'modulefront')))) {
@@ -80,19 +80,19 @@ class APPageBuilder extends Module
if (isset($profile_data['friendly_url']) && !empty($profile_data['friendly_url'])) {
require_once(_PS_MODULE_DIR_.'appagebuilder/libs/LeoFriendlyUrl.php');
$leo_friendly_url = LeoFriendlyUrl::getInstance();
-
+
$link = Context::getContext()->link;
$idLang = Context::getContext()->language->id;
$idShop = null;
$relativeProtocol = false;
-
+
$url = $link->getBaseLink($idShop, null, $relativeProtocol).$leo_friendly_url->getLangLink($idLang, null, $idShop).$profile_data['friendly_url'].'.html';
$leo_friendly_url->canonicalRedirection($url);
}
}
}
}
-
+
public static function getInstance()
{
static $_instance;
@@ -105,20 +105,20 @@ class APPageBuilder extends Module
public function install()
{
require_once(_PS_MODULE_DIR_.$this->name.'/libs/setup.php');
-
+
//DONGND:: build shortcode, create folder for override
apPageHelper::createShortCode();
-
+
if (!parent::install() || !ApPageSetup::installConfiguration() || !ApPageSetup::createTables() || !ApPageSetup::installModuleTab() || !$this->registerLeoHook()) {
return false;
}
# NOT LOAD DATASAMPLE AGAIN
Configuration::updateValue('AP_INSTALLED_APPAGEBUILDER', '1');
-
+
# REMOVE FILE INDEX.PHP FOR TRANSLATE
ApPageSetup::processTranslateTheme();
-
+
Configuration::updateValue('APPAGEBUILDER_OVERRIDED', 1);
return true;
@@ -127,21 +127,21 @@ class APPageBuilder extends Module
public function uninstall()
{
require_once(_PS_MODULE_DIR_.$this->name.'/libs/setup.php');
-
+
//DONGND:: rollback default file config for tinymce
Tools::copy(_PS_MODULE_DIR_.$this->name.'/views/js/shortcode/backup/tinymce.inc.js', _PS_ROOT_DIR_.'/js/admin/tinymce.inc.js');
if (!parent::uninstall()|| !ApPageSetup::uninstallModuleTab() || !ApPageSetup::deleteTables() || !ApPageSetup::uninstallConfiguration()) {
return false;
}
-
+
//DONGND:: remove overrider folder
// $this->uninstallOverrides();
Configuration::updateValue('APPAGEBUILDER_OVERRIDED', 0);
-
+
return true;
}
-
+
public function hookActionModuleRegisterHookAfter($params)
{
if (isset($params['hook_name']) && ($params['hook_name'] == 'header' || $params['hook_name']=='displayheader')) {
@@ -150,7 +150,7 @@ class APPageBuilder extends Module
$id_hook = Hook::getIdByName($hook_name);
$id_module = $this->id;
$id_shop = Context::getContext()->shop->id;
-
+
// Get module position in hook
$sql = 'SELECT MAX(`position`) AS position
FROM `'._DB_PREFIX_.'hook_module`
@@ -167,13 +167,13 @@ class APPageBuilder extends Module
}
}
}
-
+
public function postProcess()
{
if (count($this->errors) > 0) {
return;
}
-
+
if (Tools::isSubmit('installdemo')) {
require_once(_PS_MODULE_DIR_.$this->name.'/libs/setup.php');
ApPageSetup::installSample();
@@ -242,12 +242,12 @@ class APPageBuilder extends Module
$this->errors[] = $this->trans('You do not have permission to configure this.', array(), 'Admin.Notifications.Error');
$this->context->smarty->assign('errors', $this->errors);
}
-
+
$this->postProcess();
-
+
$output = '';
$this->backup_dir = str_replace('\\', '/', _PS_CACHE_DIR_.'backup/modules/appagebuilder/');
-
+
$create_profile_link = $this->context->link->getAdminLink('AdminApPageBuilderProfiles').'&addappagebuilder_profiles';
$profile_link = $this->context->link->getAdminLink('AdminApPageBuilderProfiles');
$position_link = $this->context->link->getAdminLink('AdminApPageBuilderPositions');
@@ -283,7 +283,7 @@ class APPageBuilder extends Module
foreach ($field_text as $k => $v) {
// validate module
unset($k);
-
+
$v = str_replace(' ', '_', trim($v));
$v = preg_replace('/[^A-Za-z0-9\_]/', '', $v);
if ($v && !in_array($v, $field_default)) {
@@ -299,14 +299,14 @@ class APPageBuilder extends Module
foreach ($field_editor as $k => $v) {
// validate module
unset($k);
-
+
$v = str_replace(' ', '_', trim($v));
$v = preg_replace('/[^A-Za-z0-9\_]/', '', $v);
if ($v && !in_array($v, $field_text) && !in_array($v, $field_default)) {
$field_editor_valid[] = $v;
}
}
-
+
Configuration::updateValue($fe, implode(',', $field_editor_valid));
$this->processExtrafield($field_editor_valid, $type, 'text');
}
@@ -440,7 +440,7 @@ class APPageBuilder extends Module
public function processBackup()
{
$install_folder = $this->backup_dir;
-
+
if (!is_dir($install_folder)) {
mkdir($install_folder, 0755, true);
}
@@ -576,7 +576,7 @@ class APPageBuilder extends Module
}
fclose($fp);
}
-
+
/**
* sub function of back-up database
*/
@@ -934,7 +934,7 @@ class APPageBuilder extends Module
'title' => $this->l('Save'),
)
);
-
+
$form_extrafield = array(
'legend' => array(
@@ -1168,7 +1168,7 @@ class APPageBuilder extends Module
{
$this->context->controller->addCss(apPageHelper::getCssDir().'style.css');
$result = array();
-
+
foreach ($form_general['input'] as $form) {
//$form['name'] = isset($form['name']) ? $form['name'] : '';
if (Configuration::hasKey($form['name'])) {
@@ -1177,7 +1177,7 @@ class APPageBuilder extends Module
$result[$form['name']] = Tools::getValue($form['name'], isset($form['default']) ? $form['default'] : '');
}
}
-
+
foreach ($form_extrafield['input'] as $form) {
//$form['name'] = isset($form['name']) ? $form['name'] : '';
if (Configuration::hasKey($form['name'])) {
@@ -1239,7 +1239,7 @@ class APPageBuilder extends Module
$assign['apLiveEdit'] .= '" target="_blank"> Edit';
$assign['apLiveEditEnd'] = '';
}
-
+
if ($assign) {
foreach ($assign as $key => $ass) {
$this->smarty->assign(array($key => $ass));
@@ -1315,12 +1315,12 @@ class APPageBuilder extends Module
if ($value_by_categories) {
$id_categories = isset($params['categorybox']) ? $params['categorybox'] : '';
$id_categories = apPageHelper::addonValidInt( $id_categories ); # We validate id_categories in apPageHelper::addonValidInt function . This function is used at any where
-
+
if (isset($params['category_type']) && $params['category_type'] == 'default') {
$where .= ' AND product_shop.`id_category_default` IN ('.pSQL($id_categories).')';
} else {
$sql_join .= ' INNER JOIN '._DB_PREFIX_.'category_product cp ON (cp.id_product= p.`id_product` )';
-
+
$where .= ' AND cp.`id_category` IN ('.pSQL($id_categories).')';
$sql_group = ' GROUP BY p.id_product';
}
@@ -1384,7 +1384,7 @@ class APPageBuilder extends Module
}
$where .= ' AND p.`id_product` IN ('.((is_array($tab_id_product) && count($tab_id_product)) ? implode(', ', $tab_id_product) : 0).')';
}
-
+
$sql = 'SELECT p.*, product_shop.*, p.`reference`, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity,
product_attribute_shop.id_product_attribute,
product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity,
@@ -1402,7 +1402,7 @@ class APPageBuilder extends Module
} else {
$sql .= ' FROM `'._DB_PREFIX_.'product` p';
}
-
+
$sql .= ' INNER JOIN '._DB_PREFIX_.'product_shop product_shop ON (product_shop.id_product = p.id_product AND product_shop.id_shop = '.(int)$context->shop->id.')
LEFT JOIN '._DB_PREFIX_.'product_attribute_shop product_attribute_shop ON p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop='.(int)$context->shop->id.'
'.ProductCore::sqlStock('p', 'product_attribute_shop', false, $context->shop).'
@@ -1452,14 +1452,14 @@ class APPageBuilder extends Module
)
);
Configuration::updateValue('shortcode_url_add', $this->context->link->getAdminLink('AdminApPageBuilderShortcode'));
-
+
$this->autoRestoreSampleData();
}
public function hookdisplayHeader()
{
apPageHelper::autoUpdateModule();
-
+
if ( Tools::getIsset('leo_support_team') && (int)Tools::getValue('leo_support_team') == 1) {
Configuration::updateValue('LEO_SUPPORT_TEAM', '1');
die('update');
@@ -1467,7 +1467,7 @@ class APPageBuilder extends Module
Configuration::updateValue('LEO_SUPPORT_TEAM', '0');
die('update');
}
-
+
if (isset(Context::getContext()->controller->controller_type) && in_array(Context::getContext()->controller->controller_type, array('front', 'modulefront'))) {
# WORK AT FRONTEND
apPageHelper::loadShortCode(_PS_THEME_DIR_);
@@ -1479,12 +1479,12 @@ class APPageBuilder extends Module
# FIX 1.7
apPageHelper::setGlobalVariable($this->context);
}
-
-
+
+
if (Configuration::get('APPAGEBUILDER_LOAD_WAYPOINTS')) {
$uri = apPageHelper::getCssDir().'animate.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'waypoints.min.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
}
@@ -1501,7 +1501,7 @@ class APPageBuilder extends Module
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
$uri = apPageHelper::getCssDir().'owl.theme.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'owl.carousel.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
}
@@ -1509,7 +1509,7 @@ class APPageBuilder extends Module
if (Configuration::get('APPAGEBUILDER_LOAD_SWIPER')) {
$uri = apPageHelper::getCssDir().'swiper.min.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'swiper.min.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
}
@@ -1557,12 +1557,12 @@ class APPageBuilder extends Module
if ($product_list_image) {
$this->context->controller->addJqueryPlugin(array('scrollTo', 'serialScroll'));
}
-
+
// add js for html5 youtube video
if (Configuration::get('APPAGEBUILDER_LOAD_HTML5VIDEO')) {
$uri = apPageHelper::getCssDir().'mediaelementplayer.min.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'mediaelement-and-player.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
}
@@ -1570,7 +1570,7 @@ class APPageBuilder extends Module
if (Configuration::get('APPAGEBUILDER_LOAD_FULLPAGEJS')) {
$uri = apPageHelper::getCssDir().'jquery.fullPage.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'jquery.fullPage.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
}
@@ -1578,7 +1578,7 @@ class APPageBuilder extends Module
if (Configuration::get('APPAGEBUILDER_LOAD_IMAGE360')) {
$uri = apPageHelper::getCssDir().'ApImage360.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'ApImage360.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
$this->context->controller->addJqueryUI('ui.slider');
@@ -1587,7 +1587,7 @@ class APPageBuilder extends Module
if (Configuration::get('APPAGEBUILDER_LOAD_IMAGEHOTPOT')) {
$uri = apPageHelper::getCssDir().'ApImageHotspot.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'ApImageHotspot.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
}
@@ -1598,20 +1598,20 @@ class APPageBuilder extends Module
$uri = apPageHelper::getCssDir().'styles.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
- //DONGND:: add unique css file, css of module for all theme, no need override
+
+ //DONGND:: add unique css file, css of module for all theme, no need override
$uri = apPageHelper::getCssDir().'unique.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'script.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
if (!$this->product_active) {
$this->product_active = ApPageBuilderProductsModel::getActive();
}
$this->smarty->smarty->assign(array('productClassWidget' => $this->product_active['class']));
-
+
$tpl_file = apPageHelper::getConfigDir('theme_profiles') . $this->product_active['plist_key'].'.tpl';
-
+
if (is_file($tpl_file)) {
$this->smarty->smarty->assign(array('productProfileDefault' => $this->product_active['plist_key']));
}
@@ -1626,7 +1626,7 @@ class APPageBuilder extends Module
'mediumSize' => Image::getSize(ImageType::getFormattedName('medium'))
));
}
-
+
# LEOTEMCP
$isRTL = $this->context->language->is_rtl;
$leoRTL = $this->context->language->is_rtl;
@@ -1640,7 +1640,7 @@ class APPageBuilder extends Module
break;
}
}
-
+
if ($rtl_file) {
$leoRTL = false; // to remove class RTL
// $this->context->controller->unregisterStylesheet('theme-rtl');
@@ -1650,11 +1650,11 @@ class APPageBuilder extends Module
}
// $id_shop = $this->context->shop->id;
// $helper = LeoFrameworkHelper::getInstance();
-
+
$this->themeCookieName = $this->getConfigName('PANEL_CONFIG');
$panelTool = $this->getConfig('PANELTOOL');
$backGroundValue = '';
-
+
//DONGND:: get product detail layout
$list_productdetail_layout = array();
@@ -1664,17 +1664,17 @@ class APPageBuilder extends Module
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
$uri = apPageHelper::getCssDir().'paneltool.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'colorpicker/js/colorpicker.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
$uri = apPageHelper::getJsDir().'paneltool.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
$this->context->controller->addJqueryPlugin('cooki-plugin');
-
+
$skin = $this->getPanelConfig('default_skin');
$layout_mode = $this->getPanelConfig('layout_mode');
$enable_fheader = (int)$this->getPanelConfig('enable_fheader');
-
+
$backGroundValue = array(
'attachment' => array('scroll', 'fixed', 'local', 'initial', 'inherit'),
'repeat' => array('repeat', 'repeat-x', 'repeat-y', 'no-repeat', 'initial', 'inherit'),
@@ -1720,7 +1720,7 @@ class APPageBuilder extends Module
$this->context->controller->addJqueryPlugin('cooki-plugin');
}
}
-
+
// if ($this->getConfig('ENABLE_CUSTOMFONT')) {
// # CUSTOM FONT
// $uri = apPageHelper::getCssDir().'fonts-cuttom.css';
@@ -1731,7 +1731,7 @@ class APPageBuilder extends Module
$uri = apPageHelper::getCssDir().'fonts-cuttom2.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
}
-
+
$layout_width_val = '';
$layout_width = $this->getConfig('layout_width');
if (trim($layout_width) != 'auto' && trim($layout_width) != '') {
@@ -1742,7 +1742,7 @@ class APPageBuilder extends Module
$layout_width_val .= '';
}
}
-
+
$load_css_type = $this->getConfig('load_css_type');
$css_skin = array();
$css_custom = array();
@@ -1752,19 +1752,19 @@ class APPageBuilder extends Module
$uri = apPageHelper::getCssDir().'non-responsive.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
}
-
+
# LOAD SKIN CSS IN MODULE
$uri = apPageHelper::getCssDir().'skins/'.$skin.'/skin.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
$uri = apPageHelper::getCssDir().'skins/'.$skin.'/custom-rtl.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
# LOAD CUSTOM CSS
if ($this->context->getMobileDevice() != false && !$this->getConfig('enable_responsive')) {
$uri = apPageHelper::getCssDir().'mobile.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
}
-
+
# LOAD POSITIONS AND PROFILES
$this->loadResouceForProfile();
@@ -1782,7 +1782,7 @@ class APPageBuilder extends Module
$css_skin[] = '';
}
}
-
+
# LOAD SKIN CSS IN TPL
$uri = apPageHelper::getCssDir().'skins/'.$skin.'/skin.css';
$skinFileUrl = apPageHelper::getFullPathCss($uri);
@@ -1794,7 +1794,7 @@ class APPageBuilder extends Module
if ($leoRTL && $skinFileUrl !== false) {
$css_skin[] = '';
}
-
+
# LOAD CUSTOM CSS
if ($this->context->getMobileDevice() != false && !$this->getConfig('enable_responsive')) {
$uri = apPageHelper::getCssDir().'mobile.css';
@@ -1803,10 +1803,10 @@ class APPageBuilder extends Module
$css_skin[] = '';
}
}
-
+
# LOAD POSITIONS AND PROFILES
$this->loadResouceForProfile();
-
+
# LOAD PATTERN
if ($profile = $this->getConfig('c_profile')) {
$uri = apPageHelper::getCssDir().'patterns/'.$profile.'.css';
@@ -1816,7 +1816,7 @@ class APPageBuilder extends Module
}
}
}
-
+
if ($this->context->language->is_rtl) {
# OVERRIDE CORE, LOAD RTL.CSS FILE AT BOTTOM
$this->context->controller->registerStylesheet('theme-rtl', '/assets/css/rtl.css', ['media' => 'all', 'priority' => 9000]);
@@ -1930,20 +1930,20 @@ class APPageBuilder extends Module
$shortcode_obj = ApPageBuilderShortcodeModel::getShortCode($shortcode_key);
if (isset($shortcode_obj['id_appagebuilder']) && $shortcode_obj['id_appagebuilder'] != '' && $shortcode_obj['id_appagebuilder'] != 0) {
$shortcode_code = ApPageBuilderShortcodeModel::getAllItems($shortcode_obj['id_appagebuilder'], 1);
-
+
if (!empty($shortcode_code)) {
if (empty(ApShortCodesBuilder::$shortcode_tags)) {
apPageHelper::loadShortCode(_PS_THEME_DIR_);
}
-
+
apPageHelper::setGlobalVariable($this->context);
-
+
// ApShortCodesBuilder::$is_front_office = 1;
// ApShortCodesBuilder::$is_gen_html = 1;
// ApShortCodesBuilder::$profile_param = array();
$ap_helper = new ApShortCodesBuilder();
// ApShortCodesBuilder::$hook_name = 'apshortcode';
-
+
$shortcode_html = $ap_helper->parse($shortcode_code['apshortcode']);
}
}
@@ -2005,7 +2005,7 @@ class APPageBuilder extends Module
}
return $cover_hook_live.$this->fetch( $this->templateFile, $cache_id);
}
-
+
public function hookDisplayBanner($params)
{
return $this->processHook('displayBanner', $params);
@@ -2080,23 +2080,23 @@ class APPageBuilder extends Module
{
return $this->processHook('displayLeftColumnProduct', $params);
}
-
+
public function hookdisplayProductButtons($params)
{
return $this->processHook('displayProductButtons', $params);
}
-
+
public function hookDisplayReassurance($params)
{
return $this->processHook('displayReassurance', $params);
}
-
+
public function hookDisplayLeoProfileProduct($params)
{
apPageHelper::setGlobalVariable($this->context);
$html = '';
$tpl_file = '';
-
+
if (isset($params['ony_global_variable'])) {
# {hook h='displayLeoProfileProduct' ony_global_variable=true}
return $html;
@@ -2148,7 +2148,7 @@ class APPageBuilder extends Module
// $this->unregisterExceptions((int)$row['id_hook']);
// }
}
-
+
/**
* FIX BUG 1.7.3.3 : install theme lose hook displayHome, displayLeoProfileProduct
* because ajax not run hookActionAdminBefore();
@@ -2163,7 +2163,7 @@ class APPageBuilder extends Module
));
}
}
-
+
/**
* Run only one when install/change Theme_of_Leo
*/
@@ -2176,8 +2176,8 @@ class APPageBuilder extends Module
// Other module call this hook -> duplicate data
return;
}
-
-
+
+
# FIX : update Prestashop by 1-Click module -> NOT NEED RESTORE DATABASE
$ap_version = Configuration::get('AP_CURRENT_VERSION');
if ($ap_version != false) {
@@ -2189,8 +2189,8 @@ class APPageBuilder extends Module
return;
}
}
-
-
+
+
# WHENE INSTALL THEME, INSERT HOOK FROM DATASAMPLE IN THEME
$hook_from_theme = false;
if (file_exists(_PS_MODULE_DIR_.'appagebuilder/libs/LeoDataSample.php')) {
@@ -2200,36 +2200,36 @@ class APPageBuilder extends Module
$hook_from_theme = true;
};
}
-
+
# INSERT HOOK FROM MODULE_DATASAMPLE
if ($hook_from_theme == false) {
$this->registerLeoHook();
}
-
+
# WHEN INSTALL MODULE, NOT NEED RESTORE DATABASE IN THEME
$install_module = (int)Configuration::get('AP_INSTALLED_APPAGEBUILDER', 0);
if ($install_module) {
Configuration::updateValue('AP_INSTALLED_APPAGEBUILDER', '0'); // next : allow restore sample
return;
}
-
+
# INSERT DATABASE FROM THEME_DATASAMPLE
if (file_exists(_PS_MODULE_DIR_.'appagebuilder/libs/LeoDataSample.php')) {
require_once(_PS_MODULE_DIR_.'appagebuilder/libs/LeoDataSample.php');
$sample = new Datasample();
$sample->processImport($this->name);
}
-
+
# REMOVE FILE INDEX.PHP FOR TRANSLATE
if (file_exists(_PS_MODULE_DIR_.'appagebuilder/libs/setup.php')) {
require_once(_PS_MODULE_DIR_.'appagebuilder/libs/setup.php');
ApPageSetup::processTranslateTheme();
}
-
+
# REMOVE SUPPORT TEAM FIX LINK CSS, JS
Configuration::updateValue('LEO_SUPPORT_TEAM', '0');
}
-
+
protected function getCacheId($hook_name = null, $shortcode_key = null)
{
$cache_array = array();
@@ -2287,12 +2287,12 @@ class APPageBuilder extends Module
if (Tools::getValue('footer') && Tools::getIsset('leopanelchange') && (in_array($hook_name, ApPageSetting::getHook('footer')) || $hook_name == 'pagebuilderConfig|footer')) {
$cache_array[] = 'footer_'.Tools::getValue('footer');
}
-
+
//DONGND:: update cache for shortcode
if ($shortcode_key) {
$cache_array[] = 'shortcodekey_'.$shortcode_key;
}
-
+
return implode('|', $cache_array);
}
@@ -2372,12 +2372,12 @@ class APPageBuilder extends Module
// $this->_clearCache('appagebuilder.tpl', $this->name);
$this->_clearCache($this->templateFile); # CLEAR CACHE ALL HOOKS
}
-
+
//DONGND:: add clear cache for shortcode
public function clearShortCodeCache($shortcode_key)
{
$cache_id = $this->getCacheId('apshortcode', $shortcode_key);
-
+
$this->_clearCache('appagebuilder.tpl', $cache_id);
}
@@ -2457,19 +2457,19 @@ class APPageBuilder extends Module
if ($list_positions) {
foreach ($list_positions as $item) {
$name = $item['position'].$item['position_key'];
-
+
$uri = apPageHelper::getCssDir().'positions/'.$name.'.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'positions/'.$name.'.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
}
}
}
-
+
$uri = apPageHelper::getCssDir().'profiles/'.$profile['profile_key'].'.css';
$this->context->controller->registerStylesheet(sha1($uri), $uri, array('media' => 'all', 'priority' => 8000));
-
+
$uri = apPageHelper::getJsDir().'profiles/'.$profile['profile_key'].'.js';
$this->context->controller->registerJavascript(sha1($uri), $uri, array('position' => 'bottom', 'priority' => 8000));
}
@@ -2662,7 +2662,7 @@ class APPageBuilder extends Module
}
return $obj;
}
-
+
public function hookModuleRoutes($params)
{
$routes = array();
@@ -2834,7 +2834,7 @@ class APPageBuilder extends Module
$return .= '';
return $return;
}
-
+
/**
* alias from apPageHelper::getConfig()
*/
@@ -2842,7 +2842,7 @@ class APPageBuilder extends Module
{
return apPageHelper::getConfigName($name);
}
-
+
/**
* alias from apPageHelper::getConfig()
*/
@@ -2850,7 +2850,7 @@ class APPageBuilder extends Module
{
return apPageHelper::getConfig($name);
}
-
+
/**
* get Value of configuration based on actived theme
*/
@@ -2862,7 +2862,7 @@ class APPageBuilder extends Module
}
$cookie = LeoFrameworkHelper::getCookie();
-
+
if (isset($cookie[$this->themeCookieName.'_'.$key])) {
return $cookie[$this->themeCookieName.'_'.$key];
}
@@ -2904,16 +2904,16 @@ class APPageBuilder extends Module
}
# register hook to show when paging
$this->registerHook('pagebuilderConfig');
-
+
# register hook to show category and tags of product
$this->registerHook('displayProductInformation');
-
+
# register hook again to after install/change theme
$this->registerHook('actionObjectShopUpdateAfter');
-
+
# Multishop create new shop
$this->registerHook('actionAdminShopControllerSaveAfter');
-
+
$this->registerHook('displayProductButtons');
$this->registerHook('displayReassurance');
$this->registerHook('displayLeoProfileProduct');
@@ -2931,7 +2931,7 @@ class APPageBuilder extends Module
$this->registerHook('actionAdminControllerSetMedia');
return $res;
}
-
+
/**
* @Action Create new shop, choose theme then auto restore datasample.
*/
@@ -2941,7 +2941,7 @@ class APPageBuilder extends Module
&& Tools::getIsset('submitAddshop') !== false && Tools::getValue('submitAddshop')
&& Tools::getIsset('theme_name') !== false && Tools::getValue('theme_name')) {
$shop = $param['return'];
-
+
if (file_exists(_PS_MODULE_DIR_.'appagebuilder/libs/LeoDataSample.php')) {
require_once(_PS_MODULE_DIR_.'appagebuilder/libs/LeoDataSample.php');
$sample = new Datasample();
@@ -2954,16 +2954,16 @@ class APPageBuilder extends Module
public function hookDisplayBackOfficeCategory($params)
{
-
+
if (Validate::isLoadedObject($category = new Category((int)Tools::getValue('id_category')))) {
// validate module
unset($category);
-
+
$id_shop = Context::getContext()->shop->id;
-
+
$category_layouts = array();
$id_category = Tools::getValue('id_category');
-
+
if (is_dir(apPageHelper::getConfigDir('theme_profiles'))) {
//DONGND:: fix get list product list via database
$sql = 'SELECT * FROM '._DB_PREFIX_.'appagebuilder_products p
@@ -3012,7 +3012,7 @@ class APPageBuilder extends Module
$id_shop = Context::getContext()->shop->id;
$sql = 'SELECT page from `'._DB_PREFIX_.'appagebuilder_page` where id_category = \''.(int)$id_category.'\' AND id_shop = \''.(int)$id_shop.'\'';
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
-
+
if ($result) {
if ($aplayout == 'default') {
Db::getInstance()->execute('DELETE from `'._DB_PREFIX_.'appagebuilder_page` where id_category = \''.(int)$id_category.'\' and id_shop=\''.(int)$id_shop.'\'');
@@ -3095,7 +3095,7 @@ class APPageBuilder extends Module
$id_shop = Context::getContext()->shop->id;
$sql = 'SELECT * from `'._DB_PREFIX_.'appagebuilder_page` WHERE id_product = '.(int)$id_product.' AND id_shop = '.(int)$id_shop;
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
-
+
if ($result) {
if ($aplayout == 'default') {
Db::getInstance()->execute('DELETE from `'._DB_PREFIX_.'appagebuilder_page` WHERE id_product = '.(int)$id_product.' and id_shop='.(int)$id_shop);
@@ -3107,7 +3107,7 @@ class APPageBuilder extends Module
Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'appagebuilder_page` (`id_product`,`id_category`,`page`,`id_shop`) VALUES ('.(int)$id_product.',0,\''.pSQL($aplayout).'\','.(int)$id_shop.')');
}
}
-
+
if (Configuration::get('APPAGEBUILDER_PRODUCT_TEXTEXTRA') || Configuration::get('APPAGEBUILDER_PRODUCT_EDITOREXTRA')) {
//save for extrafield
$sql = 'SHOW FIELDS FROM `'._DB_PREFIX_.'appagebuilder_extrapro' .'`';
@@ -3151,7 +3151,7 @@ class APPageBuilder extends Module
if (Validate::isLoadedObject($product = new Product((int)$params['id_product']))) {
// validate module
unset($product);
-
+
$id_shop = Context::getContext()->shop->id;
$extrafied = array();
$data_fields = array();
@@ -3159,7 +3159,7 @@ class APPageBuilder extends Module
if (Configuration::get('APPAGEBUILDER_PRODUCT_TEXTEXTRA') || Configuration::get('APPAGEBUILDER_PRODUCT_EDITOREXTRA')) {
$sql = 'SHOW FIELDS FROM `'._DB_PREFIX_.'appagebuilder_extrapro' .'`';
$result = Db::getInstance()->executeS($sql);
-
+
$rows = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'appagebuilder_extrapro' .'` WHERE id_product="'.(int)$params['id_product'].'" AND id_shop="'.(int)$id_shop.'"');
foreach ($result as $value) {
@@ -3185,7 +3185,7 @@ class APPageBuilder extends Module
'default_language' => $this->default_language,
'current_layout' => Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT page from `'._DB_PREFIX_.'appagebuilder_page` where id_product = \''.(int)$params['id_product'].'\' AND id_shop = \''.(int)$id_shop.'\'')
));
-
+
return $this->display(__FILE__, 'productExtra.tpl');
}
}
@@ -3227,7 +3227,7 @@ class APPageBuilder extends Module
return $params;
}
-
+
/**
* PERMISSION ACCOUNT demo@demo.com
*/
@@ -3240,10 +3240,10 @@ class APPageBuilder extends Module
$view = Module::getPermissionStatic($this->id, 'view', $employee);
return ($configure || $view);
}
-
+
return Module::getPermissionStatic($this->id, $variable, $employee);
}
-
+
/**
* PERMISSION ACCOUNT demo@demo.com
*/
diff --git a/modules/appagebuilder/override/controllers/front/CmsController.php b/modules/appagebuilder/override/controllers/front/CmsController.php
index a1a51988..3a1c423b 100644
--- a/modules/appagebuilder/override/controllers/front/CmsController.php
+++ b/modules/appagebuilder/override/controllers/front/CmsController.php
@@ -72,7 +72,7 @@ class CmsController extends CmsControllerCore
$this->setTemplate('cms/category');
}
FrontController::initContent();
-
+
// validate module
unset($id_module);
unset($array_return);
diff --git a/modules/empikmarketplace/.DS_Store b/modules/empikmarketplace/.DS_Store
new file mode 100644
index 00000000..377f6a8b
Binary files /dev/null and b/modules/empikmarketplace/.DS_Store differ
diff --git a/modules/empikmarketplace/src/Cache/~syncthing~Cache.php.tmp b/modules/empikmarketplace/src/Cache/~syncthing~Cache.php.tmp
new file mode 100644
index 00000000..111546d4
Binary files /dev/null and b/modules/empikmarketplace/src/Cache/~syncthing~Cache.php.tmp differ
diff --git a/modules/empikmarketplace/src/Repository/~syncthing~AttributeRepository.php.tmp b/modules/empikmarketplace/src/Repository/~syncthing~AttributeRepository.php.tmp
new file mode 100644
index 00000000..4e79b32a
--- /dev/null
+++ b/modules/empikmarketplace/src/Repository/~syncthing~AttributeRepository.php.tmp
@@ -0,0 +1,46 @@
+db = Db::getInstance();
+ $this->langId = Utils::getLangId();
+ }
+
+ public function getAttributes($productId, $productAttributeId)
+ {
+ $sql = new DbQuery();
+ $sql->select('al.name AS value, agl.public_name AS name');
+ $sql->from('attribute_group', 'ag');
+ $sql->leftJoin('attribute_group_lang', 'agl', 'agl.id_attribute_group = ag.id_attribute_group AND agl.id_lang = ' . (int)$this->langId);
+ $sql->leftJoin('product_attribute', 'pa', 'pa.id_product = ' . (int)$productId . ' AND pa.id_product_attribute = ' . (int)$productAttributeId);
+ $sql->leftJoin('product_attribute_combination', 'pac', 'pac.id_product_attribute = pa.id_product_attribute');
+ $sql->leftJoin('attribute', 'a', 'a.id_attribute = pac.id_attribute AND ag.id_attribute_group = a.id_attribute_group');
+ $sql->leftJoin('attribute_lang', 'al', 'al.id_attribute = a.id_attribute AND al.id_lang = ' . (int)$this->langId);
+ $sql->orderBy('ag.id_attribute_group');
+
+ $result = $this->db->executeS($sql);
+
+ $resultGrouped = [];
+ foreach ($result as $item) {
+ if (!isset($resultGrouped[$item['name']]) || $item['value']) {
+ $resultGrouped[$item['name']] = $item;
+ }
+ }
+
+ return (array)$resultGrouped;
+ }
+}
diff --git a/modules/empikmarketplace/vendor/composer/installers/src/Composer/Installers/~syncthing~CakePHPInstaller.php.tmp b/modules/empikmarketplace/vendor/composer/installers/src/Composer/Installers/~syncthing~CakePHPInstaller.php.tmp
new file mode 100644
index 00000000..43370fc9
--- /dev/null
+++ b/modules/empikmarketplace/vendor/composer/installers/src/Composer/Installers/~syncthing~CakePHPInstaller.php.tmp
@@ -0,0 +1 @@
+c:\visual studio code\projekty\drmaterac.pl\modules\empikmarketplace\vendor\composer\installers\src\Composer\Installers\~syncthing~CakePHPInstaller.php.tmp
\ No newline at end of file
diff --git a/modules/empikmarketplace/vendor/symfony/config/Tests/Definition/~syncthing~MergeTest.php.tmp b/modules/empikmarketplace/vendor/symfony/config/Tests/Definition/~syncthing~MergeTest.php.tmp
new file mode 100644
index 00000000..46145538
--- /dev/null
+++ b/modules/empikmarketplace/vendor/symfony/config/Tests/Definition/~syncthing~MergeTest.php.tmp
@@ -0,0 +1 @@
+c:\visual studio code\projekty\drmaterac.pl\modules\empikmarketplace\vendor\symfony\config\Tests\Definition\~syncthing~MergeTest.php.tmp
\ No newline at end of file
diff --git a/modules/empikmarketplace/vendor/symfony/config/Tests/DependencyInjection/~syncthing~ConfigCachePassTest.php.tmp b/modules/empikmarketplace/vendor/symfony/config/Tests/DependencyInjection/~syncthing~ConfigCachePassTest.php.tmp
new file mode 100644
index 00000000..45fa326f
Binary files /dev/null and b/modules/empikmarketplace/vendor/symfony/config/Tests/DependencyInjection/~syncthing~ConfigCachePassTest.php.tmp differ
diff --git a/modules/empikmarketplace/vendor/symfony/config/Tests/Fixtures/Resource/~syncthing~.hiddenFile.tmp b/modules/empikmarketplace/vendor/symfony/config/Tests/Fixtures/Resource/~syncthing~.hiddenFile.tmp
new file mode 100644
index 00000000..e69de29b
diff --git a/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Compiler/~syncthing~CheckDefinitionValidityPassTest.php.tmp b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Compiler/~syncthing~CheckDefinitionValidityPassTest.php.tmp
new file mode 100644
index 00000000..2699e38e
--- /dev/null
+++ b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Compiler/~syncthing~CheckDefinitionValidityPassTest.php.tmp
@@ -0,0 +1 @@
+c:\visual studio code\projekty\drmaterac.pl\modules\empikmarketplace\vendor\symfony\dependency-injection\Tests\Compiler\~syncthing~CheckDefinitionValidityPassTest.php.tmp
\ No newline at end of file
diff --git a/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Dumper/~syncthing~YamlDumperTest.php.tmp b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Dumper/~syncthing~YamlDumperTest.php.tmp
new file mode 100644
index 00000000..b7b5be25
Binary files /dev/null and b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Dumper/~syncthing~YamlDumperTest.php.tmp differ
diff --git a/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Fixtures/Prototype/OtherDir/Component2/Dir1/~syncthing~Service4.php.tmp b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Fixtures/Prototype/OtherDir/Component2/Dir1/~syncthing~Service4.php.tmp
new file mode 100644
index 00000000..8bca132a
--- /dev/null
+++ b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Fixtures/Prototype/OtherDir/Component2/Dir1/~syncthing~Service4.php.tmp
@@ -0,0 +1,7 @@
+services()
+ ->set('bar', 'Class1')
+ ->set(BarService::class)
+ ->abstract(true)
+ ->lazy()
+ ->set('foo')
+ ->parent(BarService::class)
+ ->decorate('bar', 'b', 1)
+ ->args([ref('b')])
+ ->class('Class2')
+ ->file('file.php')
+ ->parent('bar')
+ ->parent(BarService::class)
+ ;
+};
diff --git a/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Fixtures/php/~syncthing~services19.php.tmp b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Fixtures/php/~syncthing~services19.php.tmp
new file mode 100644
index 00000000..3e994229
Binary files /dev/null and b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Fixtures/php/~syncthing~services19.php.tmp differ
diff --git a/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Fixtures/xml/~syncthing~services_deprecated.xml.tmp b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Fixtures/xml/~syncthing~services_deprecated.xml.tmp
new file mode 100644
index 00000000..4ec1e59d
--- /dev/null
+++ b/modules/empikmarketplace/vendor/symfony/dependency-injection/Tests/Fixtures/xml/~syncthing~services_deprecated.xml.tmp
@@ -0,0 +1 @@
+c:\visual studio code\projekty\drmaterac.pl\modules\empikmarketplace\vendor\symfony\dependency-injection\Tests\Fixtures\xml\~syncthing~services_deprecated.xml.tmp
\ No newline at end of file
diff --git a/modules/empikmarketplace/views/.DS_Store b/modules/empikmarketplace/views/.DS_Store
new file mode 100644
index 00000000..0e2ac3c7
Binary files /dev/null and b/modules/empikmarketplace/views/.DS_Store differ
diff --git a/modules/empikmarketplace/views/templates/.DS_Store b/modules/empikmarketplace/views/templates/.DS_Store
new file mode 100644
index 00000000..74cc053a
Binary files /dev/null and b/modules/empikmarketplace/views/templates/.DS_Store differ
diff --git a/modules/empikmarketplace/views/templates/admin/.DS_Store b/modules/empikmarketplace/views/templates/admin/.DS_Store
new file mode 100644
index 00000000..92ec7500
Binary files /dev/null and b/modules/empikmarketplace/views/templates/admin/.DS_Store differ
diff --git a/themes/leo_gstore/assets/img/modules/leoslideshow/Nowy Sącz otwarcie - Slider.png b/themes/leo_gstore/assets/img/modules/leoslideshow/Nowy Sącz otwarcie - Slider.png
new file mode 100644
index 00000000..3443f162
Binary files /dev/null and b/themes/leo_gstore/assets/img/modules/leoslideshow/Nowy Sącz otwarcie - Slider.png differ
diff --git a/themes/leo_gstore/assets/img/modules/leoslideshow/Nowy Sącz otwarcie - Slider.webp b/themes/leo_gstore/assets/img/modules/leoslideshow/Nowy Sącz otwarcie - Slider.webp
new file mode 100644
index 00000000..8f972bca
Binary files /dev/null and b/themes/leo_gstore/assets/img/modules/leoslideshow/Nowy Sącz otwarcie - Slider.webp differ
diff --git a/themes/leo_gstore/assets/img/modules/leoslideshow/Wietrzenie Magazynów - Slider.webp b/themes/leo_gstore/assets/img/modules/leoslideshow/Wietrzenie Magazynów - Slider.webp
new file mode 100644
index 00000000..53c1fa3c
Binary files /dev/null and b/themes/leo_gstore/assets/img/modules/leoslideshow/Wietrzenie Magazynów - Slider.webp differ
diff --git a/themes/leo_gstore/assets/img/modules/leoslideshow/Wietrzenie Magazynów - Slider.webp b/themes/leo_gstore/assets/img/modules/leoslideshow/Wietrzenie Magazynów - Slider.webp
index 53c1fa3c..d88b2757 100644
Binary files a/themes/leo_gstore/assets/img/modules/leoslideshow/Wietrzenie Magazynów - Slider.webp and b/themes/leo_gstore/assets/img/modules/leoslideshow/Wietrzenie Magazynów - Slider.webp differ
diff --git a/themes/leo_gstore/assets/img/modules/leoslideshow/Żory - Slider.png b/themes/leo_gstore/assets/img/modules/leoslideshow/Żory - Slider.png
new file mode 100644
index 00000000..926f0b4f
Binary files /dev/null and b/themes/leo_gstore/assets/img/modules/leoslideshow/Żory - Slider.png differ
diff --git a/themes/leo_gstore/assets/img/modules/leoslideshow/Żory - Slider.webp b/themes/leo_gstore/assets/img/modules/leoslideshow/Żory - Slider.webp
new file mode 100644
index 00000000..e3e6730e
Binary files /dev/null and b/themes/leo_gstore/assets/img/modules/leoslideshow/Żory - Slider.webp differ
diff --git a/themes/leo_gstore/assets/img/modules/leoslideshow/Życzenia 2021 - Slider.webp b/themes/leo_gstore/assets/img/modules/leoslideshow/Życzenia 2021 - Slider.webp
new file mode 100644
index 00000000..7539f979
Binary files /dev/null and b/themes/leo_gstore/assets/img/modules/leoslideshow/Życzenia 2021 - Slider.webp differ