Subida del módulo y tema de PrestaShop

This commit is contained in:
Kaloyan
2026-04-09 18:31:51 +02:00
parent 12c253296f
commit 16b3ff9424
39262 changed files with 7418797 additions and 0 deletions

View File

@@ -0,0 +1,105 @@
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
.cdc-error-container {
padding-bottom: 1rem;
margin-bottom: 15px;
background: #FFFFFF;
border-radius: 0.5rem;
border-width: 1px;
flex-direction: column;
display: flex;
--tw-border-opacity: 1;
border-color: rgb(200 215 228 / var(--tw-border-opacity));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
--tw-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
--tw-shadow-colored: 0px 4px 8px var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.cdc-error-content {
display: flex;
height: 100%;
width: 100%;
flex-direction: column;
align-items: center;
justify-content: center;
padding-top: 20%;
padding-bottom: 20%;
padding-left: 1rem;
padding-right: 1rem;
}
.cdc-error-content-wrapper {
justify-content: center;
align-items: center;
flex-direction: column;
max-width: 42rem;
display: flex;
margin-bottom: 2rem;
}
.cdc-error-title {
font-family: Inter, Helvetica, Verdana, sans-serif;
font-size: 1.25rem;
line-height: 1.75rem;
text-align: center;
margin-bottom: 0.5rem;
}
.cdc-error-message {
font-size: 1rem;
line-height: 1.5rem;
font-family: Roboto, Helvetica, Verdana, sans-serif;
text-align: center;
}
.cdc-error-button-container {
gap: 1rem;
justify-content: center;
display: flex;
}
.cdc-error-button {
border-style: none;
--tw-bg-opacity: 1;
background-color: rgb(68 44 199 / var(--tw-bg-opacity));
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity));
padding-top: 0.75rem;
padding-bottom: 0.75rem;
padding-left: 1rem;
padding-right: 1rem;
font-size: 0.875rem;
line-height: 1rem;
display: inline-flex;
cursor: pointer;
align-items: center;
justify-content: center;
text-align: center;
font-family: Inter, Helvetica, Verdana, sans-serif;
font-weight: 600;
letter-spacing: 1px;
border-radius: 0.25rem;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
height: 2.5rem;
}

View File

@@ -0,0 +1,21 @@
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
.header-toolbar .container-fluid, .header-toolbar .page-head-tabs {
display: none;
}

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,306 @@
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
#recommended-modules-container .alert-addons,
#modules_list_container_tab_modal .alert-addons {
border-color: #25b9d7;
}
#recommended-modules-container .alert-addons:before,
#modules_list_container_tab_modal .alert-addons:before {
color: #25b9d7;
background-color: #dff5f9;
content: "\E88F";
}
#modules_list_container_content .img-thumbnail {
max-width: 56px;
width: 56px;
}
#content.bootstrap .nav-tabs .nav-item.show .nav-link,
#content.bootstrap .nav-tabs .nav-item.active .nav-link {
border-top: 3px solid #25b9d7;
}
#content.bootstrap .nav-tabs .nav-item.show .nav-link,
#content.bootstrap .nav-tabs .nav-link.active {
color: #363a41;
background-color: #fff;
border-color: #25b9d7;
}
#content.bootstrap .nav-tabs,
#content.bootstrap .nav-tabs .nav-link {
border: none;
}
#content.bootstrap #modules_list_container_content .img-thumbnail {
max-width: 56px;
width: 56px;
}
#content.bootstrap #modules_list_container_content .btn {
border-radius: 0;
}
#content.bootstrap #modules_list_container_content .btn .caret {
border-top-color: #25b9d7 !important;
}
#content.bootstrap #modules_list_container_content .btn-outline-primary {
color: #25b9d7;
background-color: transparent;
background-image: none;
border-color: #25b9d7;
}
#content.bootstrap #modules_list_container_content .btn-outline-primary:hover {
color: #fff;
background-color: #3ed2f0;
border-color: #3ed2f0;
}
#content.bootstrap #modules_list_container_content .btn-block {
padding-left: 8px;
padding-right: 8px;
}
#content.bootstrap #modules_list_container_content .btn-group {
display: inline-flex;
}
#content.bootstrap #modules_list_container_content .dropdown-item {
display: block;
width: 100%;
padding: 5px;
clear: both;
font-weight: 400;
color: #6c868e;
text-align: inherit;
white-space: nowrap;
background-color: transparent;
border: 0;
}
#content.bootstrap #modules_list_container_content .dropdown-item:focus,
#content.bootstrap #modules_list_container_content .dropdown-item:hover {
color: #25b9d7;
text-decoration: none;
background-color: #fff;
}
#content.bootstrap #modules_list_container_content button.spinner {
display: inline-block;
width: 2.5rem;
height: 2.5rem;
font-size: 0;
color: #fff;
background-color: #fff;
border-style: solid;
border-width: 0.1875rem;
border-color: #bbcdd2 #25b9d7 #25b9d7 #bbcdd2;
border-radius: 2.5rem;
outline: 0;
-webkit-animation: rotatingMbo 2s linear infinite;
animation: rotatingMbo 2s linear infinite;
}
/** Mandatory for legacy pages **/
@keyframes rotatingMbo {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
#content.bootstrap #tab_modules_list_installed > tbody > tr > td:nth-child(2),
#content.bootstrap
#tab_modules_list_not_installed
> tbody
> tr
> td:nth-child(2) {
width: 90%;
}
#content.bootstrap .card {
position: relative;
display: block;
background-color: #fff;
border: 1px solid #dbe6e9;
border-radius: 5px;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.06);
}
#content.bootstrap .card-body {
padding: 20px;
}
#content.bootstrap .card-body .img-responsive {
display: inline;
max-width: 100%;
}
#content.bootstrap .mt-3 {
margin-top: 15px;
}
@media (min-width: 768px) {
#modules_list_container .modal-dialog {
position: relative;
height: 80%;
max-width: 862px;
overflow-y: auto;
overflow-x: hidden;
width: 100%;
pointer-events: auto;
}
}
/* Override all styling because of some legacy pages */
#modules_list_container .modal-wrapper {
position: fixed;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
#modules_list_container .modal-body {
min-height: 60px;
padding: 1.25rem 1.25rem 0;
position: relative;
-webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-right: -0.9375rem;
margin-left: -0.9375rem;
}
#modules_list_container .modal-title {
font-size: 1.25rem;
display: inline-block;
vertical-align: top;
margin-bottom: 0;
line-height: 1.5;
font-family: "Open Sans", helvetica, arial, sans-serif;
font-weight: 700;
color: #363a41;
}
#modules_list_container .modal-header .close {
padding: 1.25rem;
margin: -1.25rem -1.25rem -1.25rem auto;
font-size: 2rem;
cursor: pointer;
font-weight: normal;
background-color: transparent;
border: 0;
text-shadow: 0 1px 0 #fff;
float: right;
line-height: 1;
color: #000;
opacity: 0.5;
-webkit-appearance: button;
text-transform: none;
overflow: visible;
}
#growls.default {
top: 10px;
right: 10px;
}
#growls {
z-index: 50000;
position: fixed;
}
.growl.growl-error {
color: #363a41;
background-color: #fbc6c3;
border: 1px solid #f44336;
}
.growl.growl-notice {
color: #363a41;
background-color: #beeaf3;
border: 1px solid #25b9d7;
}
.growl.growl-warning {
color: #363a41;
background-color: #fffbd3;
border: 1px solid #fab000;
}
.growl.growl-default {
color: #363a41;
background-color: #cbf2d4;
border: 1px solid #53d572;
}
/** Legacy controllers */
body.ps_back-office div#main #modules_list_container .modal-header {
border-bottom: none;
padding: 1.25rem;
}
body.ps_back-office div#main #modules_list_container .modal-body {
margin: 0 auto;
}
.bootstrap .page-head .toolbarBox .btn-toolbar .btn-secondary {
color: #fff;
background-color: #6c868e;
border-color: #6c868e;
-webkit-box-shadow: none;
box-shadow: none;
}
.bootstrap .page-head .toolbarBox .btn-toolbar .btn-secondary:hover {
color: #fff;
background-color: #b7ced3;
border-color: #b7ced3;
}
.bootstrap .page-head .toolbarBox .btn-toolbar .toolbar_btn .material-icons {
display: inline;
margin-right: 5px;
font-size: 16px;
line-height: 16px;
}
.bootstrap
.page-head
.toolbarBox
.btn-toolbar
.toolbar_btn
.material-icons:hover {
color: #fff;
}
.bootstrap .page-head .toolbarBox .btn-toolbar #recommended-modules-button {
display: flex;
align-items: center;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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: 426 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,30 @@
'use strict';
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
const renderCdcError = ((container) => {
if (container.length) {
const url = container.data('error-path')
if (url) {
$.get(url, (data) => {
container.html(data);
});
}
}
});

View File

@@ -0,0 +1,29 @@
'use strict';
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
(function() {
window.$(document).ready(function() {
if (typeof renderCdcError === 'function') {
window.$(document).ready(function() {
renderCdcError($('.cdc-container'));
});
}
})
})();

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,431 @@
'use strict';
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
var mbo = {};
(function() {
var pageMapDefault = {
toolbarButtonsContainer: '#toolbar-nav',
toolbarButtons: '#toolbar-nav > li > a.toolbar_btn',
toolbarHelpButton: '#toolbar-nav li:last-of-type > a.btn-help',
toolbarLastElement: '#toolbar-nav li:last-of-type',
recommendedModulesButton: '#recommended-modules-button',
fancybox: '.fancybox-quick-view',
contentContainer: '#content',
modulesListModal: '#modules_list_container',
modulesListModalContainer: '#content',
modulesListModalContent: '#modules_list_container_tab_modal',
};
var pageMapNewTheme = {
toolbarButtonsContainer: '.toolbar-icons .wrapper',
toolbarHelpButton: '.toolbar-icons a.btn-help',
toolbarLastElement: '.toolbar-icons a:last-of-type',
recommendedModulesButton: '#recommended-modules-button',
oldButton: '#page-header-desc-configuration-modules-list',
contentContainer: '#main-div .content-div',
modulesListModal: '#modules_list_container',
modulesListModalContainer: '#main-div .content-div',
modulesListModalContent: '#modules_list_container_tab_modal',
};
/**
* Handles page interactions
*
* @param {object} pageMap
* @constructor
*/
var Page = function(pageMap) {
/**
* Indicates if the help button is the last one in the toolbar
* @return {boolean}
*/
var lastElementIsHelpButton = function() {
return $(pageMap.toolbarHelpButton).length > 0;
};
/**
* Inserts the button before the help one
* @param {RecommendedModulesButton} button
*/
var insertItBeforeHelpButton = function(button) {
$(pageMap.toolbarLastElement).before(button.getMarkup());
};
/**
* Inserts the button as the last item in the toolbar
* @param {RecommendedModulesButton} button
*/
var insertItLastInToolbar = function(button) {
$(pageMap.toolbarButtonsContainer).append(button.getMarkup());
};
/**
* Remove core-generated "recommended module" button in PS < 1.7.6.0
* @return this
*/
this.removeOldButton = function() {
if (pageMap.toolbarButtons) {
// default theme
$(pageMap.toolbarButtons).filter(
function() {
var buttonIdPattern = /^page-header-desc-[a-z-_]+-modules-list$/;
return String($(this).attr('id'))
.match(buttonIdPattern);
}
).parent().remove();
}
if (pageMap.oldButton) {
// new theme
$(pageMap.oldButton).remove();
}
return this;
};
/**
* Inserts the provided button in the toolbar
*
* @param {RecommendedModulesButton} button
* @return this
*/
this.insertToolbarButton = function(button) {
if (lastElementIsHelpButton()) {
insertItBeforeHelpButton(button);
} else {
insertItLastInToolbar(button);
}
return this;
};
/**
* Inserts the recommended modules in the DOM
*
* @param {object} config
* @param {array} config.translations
* @param {string} config.recommendedModulesUrl
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
* @param {boolean} config.shouldAttachRecommendedModulesButton
* @param {boolean} config.shouldUseLegacyTheme
* @param {object} pageMap
* @param {string} pageMap.contentContainer
*
* @return this
*/
this.insertRecommendedModules = function(config, pageMap) {
if (pageMap.contentContainer) {
var recommendedModulesRequest = $.ajax({
type: 'GET',
dataType: 'json',
url: config.recommendedModulesUrl,
});
recommendedModulesRequest.done(function(data) {
$(pageMap.contentContainer).append(data.content);
});
recommendedModulesRequest.fail(function(jqXHR, textStatus, errorThrown) {
var recommendedModulesAlertMessage = new RecommendedModulesAlertMessage(config, 'danger', errorThrown);
var content = recommendedModulesAlertMessage.getMarkup().get(0).outerHTML;
if (undefined !== jqXHR.responseJSON && undefined !== jqXHR.responseJSON.content) {
content += jqXHR.responseJSON.content;
}
var recommendedModulesContainer = new RecommendedModulesContainer(config, content);
$(pageMap.contentContainer).append(recommendedModulesContainer.getMarkup().get(0).outerHTML);
});
}
return this;
};
};
/**
* Handles markup for the Recommended modules button
*
* @param {object} config
* @param {array} config.translations
* @param {string} config.recommendedModulesUrl
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
* @param {boolean} config.shouldAttachRecommendedModulesButton
* @param {boolean} config.shouldUseLegacyTheme
*
* @constructor
*/
var RecommendedModulesButton = function(config) {
var label = config.translations['Recommended Modules and Services'];
var buttonId = 'recommended-modules-button';
var $markup;
if (config.shouldUseLegacyTheme) {
$markup = $(
'<li id="recommended-modules-button-container">\n' +
' <a id="' + buttonId + '" class="toolbar_btn pointer btn-secondary" href="' + config.recommendedModulesUrl + '" title="' + label + '">\n' +
' <i class="material-icons">extension</i>\n' +
' <div>' + label + '</div>\n' +
' </a>\n' +
'</li>'
);
} else {
$markup = $(
'<a class="btn btn-secondary" id="' + buttonId + '" href="' + config.recommendedModulesUrl + '" title="' + label + '">\n' +
'<i class="material-icons">extension</i>\n' +
label +
'</a>'
);
}
/**
* Returns the button's markup
* @return {jQuery|HTMLElement}
*/
this.getMarkup = function() {
return $markup;
}
};
/**
* Handles markup for the Recommended modules container
*
* @param {object} config
* @param {array} config.translations
* @param {string} config.recommendedModulesUrl
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
* @param {boolean} config.shouldAttachRecommendedModulesButton
* @param {boolean} config.shouldUseLegacyTheme
* @param {jQuery|HTMLElement} content
* @constructor
*/
var RecommendedModulesContainer = function(config, content) {
var containerTitle = config.translations['Recommended Modules and Services'];
var containerId = 'recommended-modules-container';
var $markup;
if (config.shouldUseLegacyTheme) {
$markup = $(
'<div class="panel" id="' + containerId + '">\n' +
' <h3>\n' +
' <i class="icon-puzzle-piece"></i>\n' +
' ' + containerTitle + '\n' +
' </h3>\n' +
' <div class="modules_list_container_tab row">\n' +
' ' + content +'\n' +
' </div>\n' +
'</div>'
);
} else {
$markup = $(
'<div class="row" id="' + containerId + '">\n' +
' <div class="col">\n' +
' <div class="card">\n' +
' <h3 class="card-header">\n' +
' <i class="material-icons">extension</i>\n' +
' ' + containerTitle + '\n' +
' </h3>\n' +
' <div class="card-block">\n' +
' ' + content +'\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
'</div>'
);
}
/**
* Returns the button's markup
* @return {jQuery|HTMLElement}
*/
this.getMarkup = function() {
return $markup;
}
};
/**
* Handles markup for the Recommended modules container
*
* @param {object} config
* @param {array} config.translations
* @param {string} config.recommendedModulesUrl
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
* @param {boolean} config.shouldAttachRecommendedModulesButton
* @param {boolean} config.shouldUseLegacyTheme
* @param {string} type
* @param {string} text
* @constructor
*/
var RecommendedModulesAlertMessage = function(config, type, text) {
var $markup = $(
'<div class="alert alert-' + type + '" role="alert">\n' +
' <p class="alert-text">\n' +
' ' + text + '\n' +
' </p>\n' +
'</div>'
);
/**
* Returns the button's markup
* @return {jQuery|HTMLElement}
*/
this.getMarkup = function() {
return $markup;
}
};
/**
* Handles markup for the Recommended modules container
*
* @param {object} pageMap
* @param {object} config
* @param {array} config.translations
* @param {string} config.recommendedModulesUrl
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
* @param {boolean} config.shouldAttachRecommendedModulesButton
* @param {boolean} config.shouldUseLegacyTheme
* @constructor
*/
var RecommendedModulesModal = function(pageMap, config) {
let $markup = $(
'<div id="modules_list_container" class="modal modal-vcenter fade" role="dialog">\n' +
' <div class="modal-wrapper">\n' +
' <div class="modal-dialog">\n' +
' <div class="modal-content">\n' +
' <div class="modal-header">\n' +
' <h4 class="modal-title module-modal-title">\n' +
' ' + config.translations['Recommended Modules and Services'] + '\n' +
' </h4>\n' +
' <button type="button" class="close" data-dismiss="modal" aria-label="' + config.translations['Close'] + '">\n' +
' <span aria-hidden="true">&times;</span>\n' +
' </button>\n' +
' </div>\n' +
' <div class="modal-body row">\n' +
' <div id="modules_list_container_tab_modal" class="col-xs-12 col-sm-12 col-md-12 col-lg-12" style="display:none;"></div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
'</div>'
);
/**
* Returns the button's markup
* @return {jQuery|HTMLElement}
*/
this.getMarkup = function() {
return $markup;
}
};
/**
* @param {object} pageMap
* @param {object} config
* @param {array} config.translations
* @param {string} config.recommendedModulesUrl
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
* @param {boolean} config.shouldAttachRecommendedModulesButton
* @param {boolean} config.shouldUseLegacyTheme
* @constructor
*/
var RecommendedModulesPopinHandler = function(pageMap, config) {
var initPopin = function() {
if ($(pageMap.modulesListModal).length === 0) {
var modal = new RecommendedModulesModal(pageMap, config);
$(pageMap.modulesListModalContainer).append(modal.getMarkup().get(0).outerHTML);
}
};
var openModulesList = function() {
var cdcContainer = $('#cdc-container')
if(cdcContainer.length > 0 && cdcContainer.html().length > 0) {
cdcContainer.html('')
}
var recommendedModulesRequest = $.ajax({
type: 'GET',
dataType: 'json',
url: config.recommendedModulesUrl,
});
$(pageMap.modulesListModal).modal('show');
recommendedModulesRequest.done(function (data) {
$(pageMap.modulesListModalContent).html(data.content).show();
});
recommendedModulesRequest.fail(function(jqXHR, textStatus, errorThrown) {
var recommendedModulesAlertMessage = new RecommendedModulesAlertMessage(config, 'danger', errorThrown);
var content = recommendedModulesAlertMessage.getMarkup().get(0).outerHTML;
if (undefined !== jqXHR.responseJSON && undefined !== jqXHR.responseJSON.content) {
content += jqXHR.responseJSON.content;
}
$(pageMap.modulesListModalContent).html(content).show();
});
};
var bindButtonEvents = function() {
// wait for dom ready
$(document).on('click', pageMap.recommendedModulesButton, function(event) {
event.preventDefault();
openModulesList();
});
};
this.initialize = function() {
// wait for dom ready
$(function() {
initPopin();
bindButtonEvents();
});
};
};
/**
* Inserts the recommended modules button in the toolbar
*
* @param {object} config
* @param {array} config.translations
* @param {string} config.recommendedModulesUrl
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
* @param {boolean} config.shouldAttachRecommendedModulesButton
* @param {boolean} config.shouldUseLegacyTheme
*/
mbo.initialize = function(config) {
var pageMap = config.shouldUseLegacyTheme ? pageMapDefault : pageMapNewTheme;
var page = new Page(pageMap);
page.removeOldButton();
if (config.shouldAttachRecommendedModulesButton) {
var button = new RecommendedModulesButton(config);
var recommendedModulesPopinHandler = new RecommendedModulesPopinHandler(pageMap, config);
page.insertToolbarButton(button);
recommendedModulesPopinHandler.initialize();
}
if (config.shouldAttachRecommendedModulesAfterContent) {
page.insertRecommendedModules(config, pageMap);
}
};
})();

View File

@@ -0,0 +1,31 @@
"use strict";
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
(function () {
window.$(document).ready(function () {
$("#module-modal-import").on("shown.bs.modal", function () {
$("iframe").css("pointer-events", "none");
});
$("#module-modal-import").on("hidden.bs.modal", function () {
$("iframe").css("pointer-events", "");
});
});
})();

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,24 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% block content %}
{{ pageContent|raw }}
{% endblock %}

View File

@@ -0,0 +1,78 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{% extends '@PrestaShop/Admin/Module/common.html.twig' %}
{% block javascripts %}
{{ parent() }}
<script type="application/javascript" src="{{ cdc_error_templating_url }}"></script>
{% if cdc_script_not_found is defined and cdc_script_not_found is same as(true) %}
<script type="application/javascript" src="{{ cdc_error_url }}"></script>
{% else %}
<script type="application/javascript" src="{{ cdc_url }}"></script>
{% endif %}
<script>
var psAccountLoaded = false;
</script>
{% if urlAccountsCdn is defined and urlAccountsCdn is not empty %}
{# PrestaShop Account #}
<script src="{{ urlAccountsCdn }}" rel=preload></script>
<script>
if (window?.psaccountsVue) {
window?.psaccountsVue?.init();
psAccountLoaded = true;
}
</script>
<script async type="application/javascript" src="{{ upload }}"></script>
{% endif %}
<script>
if (typeof window.mboCdc == undefined || typeof window.mboCdc == "undefined") {
if (typeof renderCdcError === 'function') {
window.$(document).ready(function() {
renderCdcError($('#cdc-container'));
});
}
} else {
const renderModules = window.mboCdc.renderModules
const context = {{ shop_context|json_encode()|raw }};
if (psAccountLoaded) {
context.accounts_component_loaded = true;
}
renderModules(context, '#cdc-container')
}
</script>
{% endblock %}
{% block stylesheets %}
{{ parent() }}
<link rel="stylesheet" href="{{ cdc_error_templating_css }}" type="text/css" media="all">
{% endblock %}
{% block content %}
<prestashop-accounts style="display: none;"></prestashop-accounts>
<div class="mbo-catalog-wrapper cdc-container" id="cdc-container" data-error-path="{{ path('admin_mbo_module_cdc_error') }}"></div>
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/includes/modal_import.html.twig' with { 'level' : level, 'errorMessage' : errorMessage } %}
{% endblock %}

View File

@@ -0,0 +1,35 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
<div class="cdc-error-container">
<div class="cdc-error-content">
<div class="cdc-error-content-wrapper">
<h1 class="cdc-error-title">
{{ 'Oh no.. something went wrong'|trans({}, 'Modules.Mbo.Global') }}
</h1>
<p class="cdc-error-message">
{{ 'There has been a problem on our side. Refresh your page and if the problem persists, try again later.'|trans({}, 'Modules.Mbo.Global') }}
</p>
</div>
<div class="cdc-error-button-container">
<button class="cdc-error-button" onclick="javascript:window.location.reload();">
{{ 'Refresh page'|trans({}, 'Modules.Mbo.Global') }}
</button>
</div>
</div>
</div>

View File

@@ -0,0 +1,36 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{% set displayAction = action|title|replace({'_': " "})|trans({}, transDomain[action]) %}
{% if (action == 'configure') %}
<a class="{{ classes }}" href="{{ url }}">
{{ displayAction }}
</a>
{% else %}
<form class='{{classes_form|default() }}' method="post" action="{{ url }}">
<button type="submit" class="{{ classes }} module_action_menu_{{ action }}" data-confirm_modal="module-modal-confirm-{{ name }}-{{ action }}">
{{ displayAction }}
</button>
</form>
{% endif %}

View File

@@ -0,0 +1,65 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{% set url, priceRaw, priceDisplay, url_active, urls, name, transDomains =
module.attributes.url,
module.attributes.price.raw,
module.attributes.price.displayPrice,
module.attributes.url_active,
module.attributes.urls,
module.attributes.name,
constant('PrestaShop\\Module\\Mbo\\Module\\ModuleBuilder::ACTIONS_TRANSLATION_DOMAINS')
%}
<div class="btn-group module-actions">
{% if url_active == 'buy' %}
<a class="btn btn-primary btn-primary-reverse btn-block btn-outline-primary module_action_menu_go_to_addons" href="{{ url }}" target="_blank">
{{ 'Discover'|trans({}, 'Modules.Mbo.Modulescatalog') }}
</a>
{% elseif urls|length %}
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/includes/action_button.html.twig' with {
'name': name,
'classes_form': 'btn-group form-action-button',
'classes' : 'btn btn-primary-reverse btn-outline-primary',
'url': urls[url_active],
'action': url_active,
'transDomain': transDomains}
%}
{% if (urls|length > 1) %}
<input type="hidden" class="btn" />
<button type="button" class="btn btn-outline-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="caret"></span>
</button>
<span class="sr-only">{{ 'Toggle Dropdown'|trans({}, 'Modules.Mbo.Modulescatalog') }}</span>
<div class="dropdown-menu">
{% for module_action, module_url in urls %}
{% if module_action != url_active %}
<li>
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/includes/action_button.html.twig' with {
'name': name,
'classes' : 'dropdown-item',
'url': module_url,
'action': module_action,
'transDomain': transDomains}
%}
</li>
{% endif %}
{% endfor %}
</div>
{% endif %}
{% endif %}
</div>

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,84 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
<div id="module-modal-import" class="modal modal-vcenter fade" role="dialog" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title module-modal-title">{{ 'Upload a module'|trans({}, 'Modules.Mbo.Modulescatalog') }}</h4>
<button id="module-modal-import-closing-cross" type="button" class="close">&times;</button>
</div>
<div class="modal-body">
{% if level <= constant('PrestaShopBundle\\Security\\Voter\\PageVoter::LEVEL_UPDATE') %}
<div class="row">
<div class="col-md-12">
<div class="alert alert-danger" role="alert">
<p class="alert-text">
{{ errorMessage }}
</p>
</div>
</div>
</div>
{% else %}
<div class="row">
<div class="col-md-12">
<form action="#" class="dropzone" id="importDropzone">
<div class="module-import-start">
<i class="module-import-start-icon material-icons">cloud_upload</i><br/>
<p class=module-import-start-main-text>
{{ 'Drop your module archive here or [1]select file[/1]'|trans({}, 'Modules.Mbo.Modulescatalog')|replace({'[1]' : '<a href="#" class="module-import-start-select-manual">', '[/1]' : '</a>'})|raw }}
</p>
<p class=module-import-start-footer-text>
{{ 'Please upload one file at a time, .zip or tarball format (.tar, .tar.gz or .tgz).'|trans({}, 'Modules.Mbo.Modulescatalog') }}
{{ 'Your module will be installed right after that.'|trans({}, 'Modules.Mbo.Modulescatalog') }}
</p>
</div>
<div class='module-import-processing'>
<!-- Loader -->
<div class="spinner"></div>
<p class=module-import-processing-main-text>{{ 'Installing module...'|trans({}, 'Modules.Mbo.Modulescatalog') }}</p>
<p class=module-import-processing-footer-text>
{{ "It will close as soon as the module is installed. It won't be long!"|trans({}, 'Modules.Mbo.Modulescatalog') }}
</p>
</div>
<div class='module-import-success'>
<i class="module-import-success-icon material-icons">done</i><br/>
<p class='module-import-success-msg'>{{ 'Module installed!'|trans({}, 'Modules.Mbo.Modulescatalog') }}</p>
<p class="module-import-success-details"></p>
<a class="module-import-success-configure btn btn-primary-reverse btn-outline-primary light-button" href='#'>{{ 'Configure'|trans({}, 'Admin.Actions') }}</a>
</div>
<div class='module-import-failure'>
<i class="module-import-failure-icon material-icons">error</i><br/>
<p class='module-import-failure-msg'>{{ 'Oops... Upload failed.'|trans({}, 'Modules.Mbo.Modulescatalog') }}</p>
<a href="#" class="module-import-failure-details-action">{{ 'What happened?'|trans({}, 'Modules.Mbo.Modulescatalog') }}</a>
<div class='module-import-failure-details'></div>
<a class="module-import-failure-retry btn btn-tertiary" href='#'>{{ 'Try again'|trans({}, 'Admin.Actions') }}</a>
</div>
<div class='module-import-confirm'>
</div>
</form>
</div>
</div>
{% endif %}
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,38 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{% extends app.request.isxmlhttprequest ? '@Modules/ps_mbo/views/templates/admin/layout-ajax.html.twig' : '@PrestaShop/Admin/layout.html.twig' %}
{% block content %}
<script>
if (typeof window.mboCdc == undefined || typeof window.mboCdc == "undefined") {
if (typeof renderCdcError === 'function') {
window.$(document).ready(function() {
renderCdcError($('#cdc-container'));
});
}
} else {
if (typeof window.mboRenderRecommendations === 'undefined') {
window.mboRenderRecommendations = window.mboCdc.renderRecommendations
}
window.mboRenderRecommendations({{ shop_context|json_encode()|raw }}, '#cdc-container')
}
</script>
<div id="cdc-container" class="cdc-container" data-error-path="{{ path('admin_mbo_module_cdc_error') }}"></div>
{% endblock %}

View File

@@ -0,0 +1,24 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{% extends app.request.isxmlhttprequest ? '@Modules/ps_mbo/views/templates/admin/layout-ajax.html.twig' : '@PrestaShop/Admin/layout.html.twig' %}
{% block content %}
{{ pageContent|raw }}
{% endblock %}

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,38 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{% extends app.request.isxmlhttprequest ? '@Modules/ps_mbo/views/templates/admin/layout-ajax.html.twig' : '@PrestaShop/Admin/layout.html.twig' %}
{% block content %}
<div class="row">
<div class="col">
<div class="card">
<div class="card-body text-center">
<img class="img-responsive"
src="{{ asset('../modules/ps_mbo/views/img/error.svg') }}"
alt="{{ 'It looks like we have trouble connecting to Addons. Please refresh the page or check your firewall configuration.'|trans({}, 'Modules.Mbo.Errors') }}"
>
<p class="mt-3 error-header">
{{ 'It looks like we have trouble connecting to Addons. Please refresh the page or check your firewall configuration.'|trans({}, 'Modules.Mbo.Errors') }}
</p>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,19 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{% block content %}{% endblock %}

View File

@@ -0,0 +1,80 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*}
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*}
<script defer type="application/javascript" src="{$cdc_error_templating_url}"></script>
{if $cdc_script_not_found}
<script defer type="application/javascript" src="{$cdc_error_url}"></script>
{else}
<script defer type="application/javascript" src="{$cdc_url}"></script>
{/if}
{if isset($urlAccountsCdn)}
<script src="{$urlAccountsCdn}" rel=preload></script>
<script defer>
var psAccountLoaded = false;
if (window?.psaccountsVue) {
window?.psaccountsVue?.init();
psAccountLoaded = true;
}
</script>
{/if}
<script>
window.$(document).ready(function () {
window.mboDashboardContext = null;
if (typeof window.mboCdc == undefined || typeof window.mboCdc == "undefined") {
if (typeof renderCdcError === 'function') {
renderCdcError($('#cdc-tips-and-update-container'));
}
} else {
const renderTipsAndUpdate = window.mboCdc.renderDashboardTipsAndUpdate
window.mboDashboardContext = {$shop_context};
if (psAccountLoaded) {
window.mboDashboardContext.accounts_component_loaded = true;
}
renderTipsAndUpdate(window.mboDashboardContext, '#cdc-tips-and-update-container')
}
});
</script>
<prestashop-accounts style="display: none;"></prestashop-accounts>
<section id="cdc-tips-and-update-container" class="cdc-container" data-error-path="{$cdcErrorUrl}"></section>

View File

@@ -0,0 +1,41 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*}
<script>
window.$(document).ready(function () {
if (typeof window.mboCdc == undefined || typeof window.mboCdc == "undefined") {
if (typeof renderCdcError === 'function') {
renderCdcError($('#cdc-dashboard-news'));
}
} else {
const renderNews = window.mboCdc.renderDashboardNews
if (!window.mboDashboardContext) {
setTimeout(() => {
if (window.mboDashboardContext) {
renderNews(window.mboDashboardContext, '#cdc-dashboard-news')
}
},
1000)
} else {
renderNews(window.mboDashboardContext, '#cdc-dashboard-news')
}
}
});
</script>
<section id="cdc-dashboard-news" class="dash_news cdc-container" data-error-path="{$cdcErrorUrl}"></section>

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,21 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*}
<div class="alert alert-info">
{$catchPhrase} <a href="{$linkTarget}" target="_blank">{$linkText}</a>
</div>

View File

@@ -0,0 +1,44 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*}
<script async type="application/javascript" src="{$cdc_error_templating_url}"></script>
{if $cdc_script_not_found}
<script async type="application/javascript" src="{$cdc_error_url}"></script>
{else}
<script async type="application/javascript" src="{$cdc_url}"></script>
{/if}
<script defer type="application/javascript" src="{$recommended_modules_js}"></script>
<link rel="stylesheet" href="{$recommended_modules_css}" type="text/css" media="all">
<script>
window.$(document).ready(function () {
if (undefined !== mbo) {
mbo.initialize({
translations: {
'Recommended Modules and Services': '{$recommendedModulesTitleTranslated|escape:'javascript':'UTF-8'}',
'Close': '{$recommendedModulesCloseTranslated|escape:'javascript':'UTF-8'}',
},
recommendedModulesUrl: '{$recommendedModulesUrl|escape:'javascript':'UTF-8'}',
shouldAttachRecommendedModulesAfterContent: {$shouldAttachRecommendedModulesAfterContent|intval},
shouldAttachRecommendedModulesButton: {$shouldAttachRecommendedModulesButton|intval},
shouldUseLegacyTheme: {$shouldUseLegacyTheme|intval},
});
}
});
</script>

View File

@@ -0,0 +1,44 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*}
<script defer type="application/javascript" src="{$cdc_error_templating_url}"></script>
{if isset($cdc_script_not_found) && $cdc_script_not_found}
<script defer type="application/javascript" src="{$cdc_error_url}"></script>
{else}
<script defer type="application/javascript" src="{$cdc_url}"></script>
{/if}
<script>
window.$(document).ready(function () {
$('#themes-logo-page > .card > .card-body > .row').append('<div id="cdc-explore-themes-catalog" class="col-lg-3 col-md-4 col-sm-6 theme-card-container cdc-container" data-error-path="{$cdcErrorUrl}"></div>')
if (typeof window.mboCdc == undefined || typeof window.mboCdc == "undefined") {
if (typeof renderCdcError === 'function') {
renderCdcError($('#cdc-explore-themes-catalog'));
}
} else {
const renderExploreThemesCatalog = window.mboCdc.renderExploreThemeCatalog
const exploreThemesCatalogContext = {$shop_context};
renderExploreThemesCatalog(exploreThemesCatalogContext, '#cdc-explore-themes-catalog')
}
});
</script>

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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,25 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{% if moduleUrl is not empty and moduleName is not empty %}
<span class="mbo-module-read-more-grid">
<a class="mbo-module-read-more-list-btn url" id="see-more-{{ moduleName }}" href="{{ moduleUrl }}" target="_blank">
{{ 'Read More'|trans({}, 'Modules.Mbo.Modulescatalog') }}
</a>
</span>
{% endif %}

View File

@@ -0,0 +1,19 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
{{ 'Discover the best-selling modules of this category in the %link% page.' | trans({'%link%': '<a href="'~ categoryLink ~ '">'~categoryName~'</a>'}, 'Modules.Mbo.Modulescatalog') | raw }}

View File

@@ -0,0 +1,38 @@
{#**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*#}
<script defer type="application/javascript" src="{{ cdc_error_templating_url }}"></script>
{% if cdc_script_not_found is defined and cdc_script_not_found is same as(true) %}
<script defer type="application/javascript" src="{{ cdc_error_url }}"></script>
{% else %}
<script defer type="application/javascript" src="{{ cdc_url }}"></script>
{% endif %}
<script>
window.$(document).ready(function () {
$('#main-div').prepend('<div class="module-manager-message-wrapper cdc-container" id="module-manager-message-cdc-container" data-error-path="{{ path('admin_mbo_module_cdc_error') }}"></div>')
if (typeof window.mboCdc !== undefined && typeof window.mboCdc !== "undefined") {
const renderModulesManagerMessage = window.mboCdc.renderModulesManagerMessage
const context = {{ shop_context|json_encode()|raw }};
renderModulesManagerMessage(context, '#module-manager-message-cdc-container')
}
});
</script>

View File

@@ -0,0 +1,28 @@
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* 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.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
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;