Add Creative Elements templates and update index files

- Introduced new templates for catalog, checkout, contact, and error pages.
- Implemented caching headers and redirection in index.php files across various directories.
- Enhanced product and layout templates for better integration with Creative Elements.
- Added backoffice header styles and scripts for improved UI/UX in the admin panel.
This commit is contained in:
2025-07-01 00:56:07 +02:00
parent f00cd5b992
commit 6cc26c0ed2
642 changed files with 213294 additions and 12 deletions

View File

@@ -0,0 +1,163 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{capture ce_alert}<div class="alert alert-%s">%s</div>{/capture}
{capture ce_undefined_position}
{ce__('Undefined Position!')}
<a href="http://docs.webshopworks.com/creative-elements/79-troubleshooting/337-undefined-position" class="ce-read-more">{ce__('Learn More')}</a>
{/capture}
{capture ce_action_link}<a href="%s" target="%s"><i class="icon-%s"></i> %s</a>{/capture}
{capture ce_modal_license_status}{ce__('License Status:')} <span class="text-success">{ce__('Active')}</span>{/capture}
{capture ce_modal_license}
<form name="activate" action="%s" method="post">
<div class="modal-body">%s</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary"><i class="icon-file-text"></i>&nbsp; %s</button>
</div>
</form>
{/capture}
{capture ce_modal_replace_url}
<form name="replace_url" class="form-horizontal">
<div class="modal-body">
<input type="hidden" name="ajax" value="1">
<input type="hidden" name="action" value="replace_url">
<div class="alert alert-warning">%s</div>
<div class="form-group">
<div class="col-sm-6">
<input type="url" placeholder="%s" class="form-control" name="from" required>
</div>
<div class="col-sm-6">
<input type="url" placeholder="%s" class="form-control" name="to" required>
</div>
</div>
<div class="help-block">%s</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary"><i class="icon-refresh"></i>&nbsp; %s</button>
</div>
</form>
{/capture}
{function ce_preview_breadcrumb links=[]}
{$last = array_pop($links)}
{foreach $links as $link}
<a>{$link['title']|cleanHtml}</a><span class="navigation-pipe">&gt;</span>
{/foreach}
{$last['title']|cleanHtml}
{/function}
{capture ce_inline_script}
<script data-cfasync="false">
%s
</script>
{/capture}
{function ce_add_custom_font}
<div class="elementor-metabox-content">
<div class="elementor-field font_face elementor-field-repeater">
<script type="text/template" id="tmpl-elementor-add-font">
<div class="repeater-block block-visible">
<span class="repeater-title ce-hidden" data-default="{ce__('Settings')}" data-selector=".font_weight">{ce__('Settings')}</span>
<span class="elementor-repeater-tool-btn close-repeater-row" title="{ce__('Close')}">
<i aria-hidden="true" class="icon-times"></i> {ce__('Close')}
</span>
<span class="elementor-repeater-tool-btn toggle-repeater-row" title="{ce__('Edit')}">
<i aria-hidden="true" class="icon-edit"></i> {ce__('Edit')}
</span>
<span class="elementor-repeater-tool-btn remove-repeater-row" data-confirm="{ce__('Are you sure?')}" title="{ce__('Delete')}">
<i aria-hidden="true" class="icon-trash"></i> {ce__('Delete')}
</span>
<div class="repeater-content form-table">
<div class="repeater-content-top">
<div class="elementor-field font_face elementor-field-select">
<p class="elementor-field-label">
<label for="font_face[__counter__][font_weight]">{ce__('Weight')}:</label>
</p>
<select class="font_weight" id="font_face[__counter__][font_weight]" name="font_face[__counter__][font_weight]">
<option value="normal">{ce__('Normal')}</option>
<option value="bold">{ce__('Bold')}</option>
<option value="100">100</option>
<option value="200">200</option>
<option value="300">300</option>
<option value="400">400</option>
<option value="500">500</option>
<option value="600">600</option>
<option value="700">700</option>
<option value="800">800</option>
<option value="900">900</option>
</select>
</div>
<div class="elementor-field font_face elementor-field-select">
<p class="elementor-field-label">
<label for="font_face[__counter__][font_style]">{ce__('Style')}:</label>
</p>
<select class="font_style" id="font_face[__counter__][font_style]" name="font_face[__counter__][font_style]">
<option value="normal">{ce__('Normal')}</option>
<option value="italic">{ce__('Italic')}</option>
<option value="oblique">{ce__('Oblique')}</option>
</select>
</div>
<div class="inline-preview">Creative Elements Module is Making The Web Beautiful!</div>
<div class="elementor-field font_face elementor-field-toolbar">
<span class="elementor-repeater-tool-btn close-repeater-row" title="{ce__('Close')}">
<i aria-hidden="true" class="icon-times"></i> {ce__('Close')}
</span>
<span class="elementor-repeater-tool-btn toggle-repeater-row" title="{ce__('Edit')}">
<i aria-hidden="true" class="icon-edit"></i> {ce__('Edit')}
</span>
<span class="elementor-repeater-tool-btn remove-repeater-row" data-confirm="Are you sure?" title="{ce__('Delete')}">
<i aria-hidden="true" class="icon-trash"></i> {ce__('Delete')}
</span>
</div>
</div>
<div class="repeater-content-bottom">
<div class="elementor-field font_face elementor-field-file">
<p class="elementor-field-label">
<label for="font_face[__counter__][woff]file">{sprintf(ce__('%s File'), 'WOFF')}</label>
</p>
<input class="hidden" name="font_face[__counter__][woff][file]" type="file" accept=".woff,font/woff">
<input class="elementor-field-input" name="font_face[__counter__][woff][url]" placeholder="{ce__('The Web Open Font Format, Used by Modern Browsers')}" type="text">
<input class="elementor-button elementor-upload-btn" data-ext="woff" data-preview_anchor="none" data-remove_text="{ce__('Delete')}" data-upload_text="{ce__('Upload')}" id="font_face[__counter__][woff]" name="font_face[__counter__][woff]" type="button">
</div>
<div class="elementor-field font_face elementor-field-file">
<p class="elementor-field-label">
<label for="font_face[__counter__][woff2]file">{sprintf(ce__('%s File'), 'WOFF2')}</label>
</p>
<input class="hidden" name="font_face[__counter__][woff2][file]" type="file" accept=".woff2,font/woff2">
<input class="elementor-field-input" name="font_face[__counter__][woff2][url]" placeholder="{ce__('The Web Open Font Format 2, Used by Super Modern Browsers')}" type="text">
<input class="elementor-button elementor-upload-btn" data-ext="woff2" data-preview_anchor="none" data-remove_text="{ce__('Delete')}" data-upload_text="{ce__('Upload')}" id="font_face[__counter__][woff2]" name="font_face[__counter__][woff2]" type="button">
</div>
<div class="elementor-field font_face elementor-field-file">
<p class="elementor-field-label">
<label for="font_face[__counter__][ttf]file">{sprintf(ce__('%s File'), 'TTF')}</label>
</p>
<input class="hidden" name="font_face[__counter__][ttf][file]" type="file" accept=".ttf,font/ttf">
<input class="elementor-field-input" name="font_face[__counter__][ttf][url]" placeholder="{ce__('TrueType Fonts, Used for better supporting Safari, Android, iOS')}" type="text">
<input class="elementor-button elementor-upload-btn" data-ext="ttf" data-preview_anchor="none" data-remove_text="{ce__('Delete')}" data-upload_text="{ce__('Upload')}" id="font_face[__counter__][ttf]" name="font_face[__counter__][ttf]" type="button">
</div>
<div class="elementor-field font_face elementor-field-file">
<p class="elementor-field-label">
<label for="font_face[__counter__][otf]file">{sprintf(ce__('%s File'), 'OTF')}</label>
</p>
<input class="hidden" name="font_face[__counter__][otf][file]" type="file" accept=".otf,font/otf">
<input class="elementor-field-input" name="font_face[__counter__][otf][url]" placeholder="{ce__('OpenType Fonts, Used for better supporting Safari, Android, iOS')}" type="text">
<input class="elementor-button elementor-upload-btn" data-ext="otf" data-preview_anchor="none" data-remove_text="{ce__('Delete')}" data-upload_text="{ce__('Upload')}" id="font_face[__counter__][otf]" name="font_face[__counter__][otf]" type="button">
</div>
</div>
</div>
</div>
</script>
<input type="button" class="elementor-button add-repeater-row" value="{ce__('Add Font Variation')}" data-template-id="tmpl-elementor-add-font">
</div>
</div>
{/function}

View File

@@ -0,0 +1,65 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{extends file="helpers/form/form.tpl"}
{block name="input_row"}
{$smarty.block.parent}
{if 'hook' == $input.name}
<script>
var $hook = $('#hook').attr('type', 'hidden');
var $select = $('<select name="hook">').html(
'<option value="displayHome">displayHome</option>' +
'<option value="displayTop">displayTop</option>' +
'<option value="displayBanner">displayBanner</option>' +
'<option value="displayNav1">displayNav1</option>' +
'<option value="displayNav2">displayNav2</option>' +
'<option value="displayNavFullWidth">displayNavFullWidth</option>' +
'<option value="displayTopColumn">displayTopColumn</option>' +
'<option value="displayLeftColumn">displayLeftColumn</option>' +
'<option value="displayRightColumn">displayRightColumn</option>' +
'<option value="displayFooterBefore">displayFooterBefore</option>' +
'<option value="displayFooter">displayFooter</option>' +
'<option value="displayFooterAfter">displayFooterAfter</option>' +
'<option value="displayAfterBodyOpeningTag">displayAfterBodyOpeningTag</option>' +
'<option value="displayShoppingCart">displayShoppingCart</option>' +
'<option value="displayShoppingCartFooter">displayShoppingCartFooter</option>' +
'<option value="displayFooterProduct">displayFooterProduct</option>' +
'<option value="displayNotFound">displayNotFound</option>'
).insertAfter($hook);
if (!$select.find('[value="'+$hook.val()+'"]').length) {
$('<option>', {
value: $hook.val(),
html: $hook.val()
}).appendTo($select);
}
$select.select2({
tags: true,
createTag: function(params) {
return {
id: params.term,
text: params.term,
newOption: true
};
},
templateResult: function(data) {
var $result = $('<span>').text(data.text);
if (data.newOption) {
$result.append(" <i>(custom)</i>");
}
return $result;
}
}).val($hook.val())
.trigger('change.select2')
;
</script>
{/if}
{/block}

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../../');
die;

View File

@@ -0,0 +1,20 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{extends file="helpers/list/list_content.tpl"}
{block name="td_content"}
{if 'preview' === $key}
<style>{str_replace('{{BASE}}', $smarty.const.__PS_BASE_URI__, $tr.$key)}</style>
<span style="font-family: '{$tr.$key->family|escape:'html':'UTF-8'}'; font-size: 16px;">
Creative Elements Module Is Making The Web Beautiful!
</span>
{else}
{$smarty.block.parent}
{/if}
{/block}

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../../');
die;

View File

@@ -0,0 +1,27 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{extends file="helpers/options/options.tpl"}
{block name="input" append}
{if $field['type'] == 'multiselect'}
<div class="col-lg-9">
{if $field.list}
{$json = Configuration::get($key)}
{if $json}{$selected = json_decode($json)}{else}{$selected = []}{/if}
<select multiple class="form-control fixed-width-xxl {if isset($field.class)}{$field.class}{/if}" name="{$key}[]"{if isset($field.js)} onchange="{$field.js}"{/if} id="{$key}" {if isset($field.size)} size="{$field.size}"{/if}>
{foreach $field.list as $option}
<option value="{$option[$field['identifier']]}"{if in_array($option[$field.identifier], $selected)} selected="selected"{/if}>{$option.name}</option>
{/foreach}
</select>
{elseif isset($input.empty_message)}
{$input.empty_message}
{/if}
</div>
{/if}
{/block}

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../');
die;

View File

@@ -0,0 +1,17 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{extends file='page.tpl'}
{block name='page_content_container'}
{if isset($ce_content)}
{$ce_content.content|cefilter}
{else}
{$ce_template.content|cefilter}
{/if}
{/block}

View File

@@ -0,0 +1,36 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if $stylesheets}
{foreach $stylesheets.external as $stylesheet}
<link rel="stylesheet" href="{$stylesheet.uri}" media="{$stylesheet.media}">
{/foreach}
{foreach $stylesheets.inline as $stylesheet}
<style>
{$stylesheet.content|cefilter}
</style>
{/foreach}
{/if}
{foreach $javascript.external as $js}
<script src="{$js.uri}" {$js.attribute}></script>
{/foreach}
{foreach $javascript.inline as $js}
<script>
{$js.content|cefilter}
</script>
{/foreach}
{if $js_custom_vars}
<script>
{foreach $js_custom_vars as $var_key => $var_val}
var {$var_key} = {json_encode($var_val)|cefilter};
{/foreach}
</script>
{/if}

View File

@@ -0,0 +1,14 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_FOOTER)}
{$CE_FOOTER|cefilter}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/_partials/footer.tpl")}
{include '[1]_partials/footer.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{include 'parent:_partials/footer.tpl'}
{/if}

View File

@@ -0,0 +1,14 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_HEADER)}
{$CE_HEADER|cefilter}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/_partials/header.tpl")}
{include '[1]_partials/header.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{include 'parent:_partials/header.tpl'}
{/if}

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../');
die;

View File

@@ -0,0 +1,13 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if file_exists("{$smarty.const._PS_THEME_DIR_}templates/_partials/javascript.tpl")}
{include '[1]_partials/javascript.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{include 'parent:_partials/javascript.tpl'}
{/if}
<!--CE-JS-->

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../../../');
die;

View File

@@ -0,0 +1,25 @@
{**
* Creative Elements - live PageBuilder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_PRODUCT_MINIATURE_UID) && get_class($CE_PRODUCT_MINIATURE_UID) === 'CE\\UId' &&
file_exists("{$smarty.const._CE_TEMPLATES_}front/theme/catalog/_partials/miniatures/product-$CE_PRODUCT_MINIATURE_UID.tpl")}
{if !isset($productClasses)}
{if !isset($layout)}
{$layout = Context::getContext()->controller->getLayout()}
{/if}
{if preg_match('/(left|right|both)-column/', $layout)}
{$productClasses = 'col-xs-6 col-xl-4'}
{else}
{$productClasses = 'col-xs-6 col-xl-3'}
{/if}
{/if}
{include "catalog/_partials/miniatures/product-$CE_PRODUCT_MINIATURE_UID.tpl"}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/catalog/_partials/miniatures/product.tpl")}
{include '[1]catalog/_partials/miniatures/product.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{include 'parent:catalog/_partials/miniatures/product.tpl'}
{/if}

View File

@@ -0,0 +1,96 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{extends file='catalog/product.tpl'}
{block name='page_content'}
{capture ce_page_content}{$smarty.block.parent}{/capture}
{/block}
{block name='product_flags' append}
{capture ce_product_flags}{$smarty.block.parent}{/capture}
{/block}
{block name='product_cover_thumbnails' append}
{capture ce_product_cover_thumbnails}{$smarty.block.parent}{/capture}
{/block}
{block name='product_prices'}
{capture ce_product_prices}{$smarty.block.parent}{/capture}
{/block}
{block name='product_customization'}
{capture ce_product_customization}{$smarty.block.parent}{/capture}
{/block}
{block name='product_pack'}
{capture ce_product_pack}{$smarty.block.parent}{/capture}
{/block}
{block name='product_discounts'}
{capture ce_product_discounts}{$smarty.block.parent}{/capture}
{/block}
{block name='product_availability'}
{capture ce_product_availability}{$smarty.block.parent}{/capture}
{/block}
{block name='product_minimal_quantity'}
{capture ce_product_minimal_quantity}{$smarty.block.parent}{/capture}
{/block}
{block name='product_quantity'}
{capture ce_product_actions}{hook h='displayProductActions' product=$product}{/capture}
{/block}
{block name='product_additional_info'}
{capture ce_product_additional_info}{$smarty.block.parent}{/capture}
{/block}
{block name='hook_display_reassurance'}
{capture ce_hook_display_reassurance}{$smarty.block.parent}{/capture}
{/block}
{block name='product_tabs'}
{capture ce_product_tabs}{$smarty.block.parent}{/capture}
{/block}
{block name='product_reference' append}
{capture ce_product_reference}{$smarty.block.parent}{/capture}
{/block}
{block name='product_quantities' append}
{capture ce_product_quantities}{$smarty.block.parent}{/capture}
{/block}
{block name='product_availability_date' append}
{capture ce_product_availability_date}{$smarty.block.parent}{/capture}
{/block}
{block name='product_out_of_stock' append}
{capture ce_product_out_of_stock}{$smarty.block.parent}{/capture}
{/block}
{block name='product_features' append}
{capture ce_product_features}{$smarty.block.parent}{/capture}
{/block}
{block name='product_specific_references' append}
{capture ce_product_specific_references}{$smarty.block.parent}{/capture}
{/block}
{block name='product_condition' append}
{capture ce_product_condition}{$smarty.block.parent}{/capture}
{/block}
{block name='product_accessories'}
{capture ce_product_accessories}{$smarty.block.parent}{/capture}
{/block}
{block name='product_footer'}
{capture ce_product_footer}{$smarty.block.parent}{/capture}
{/block}

View File

@@ -0,0 +1,21 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_PRODUCT_QUICK_VIEW_ID)}
<form id="add-to-cart-or-refresh" action="{$urls.pages.cart}" method="post" style="display:none">
<input type="hidden" name="token" value="{$static_token}">
<input type="hidden" name="id_product" value="{$product.id}" id="product_page_product_id">
<input type="hidden" name="id_customization" value="{$product.id_customization}" id="product_customization_id">
<input type="hidden" name="qty" value="{$product.quantity_wanted}" id="quantity_wanted">
<input type="submit" class="ce-add-to-cart" data-button-action="add-to-cart">
</form>
{call_user_func('CE\\apply_filters', 'the_content', '')|cefilter}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/catalog/_partials/quickview.tpl")}
{include '[1]catalog/_partials/quickview.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{include 'parent:catalog/_partials/quickview.tpl'}
{/if}

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../');
die;

View File

@@ -0,0 +1,60 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_PRODUCT)}
{$ce_layout=$layout}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/catalog/product.tpl")}
{$ce_layout='[1]catalog/product.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{$ce_layout='parent:catalog/product.tpl'}
{/if}
{extends $ce_layout}
{if isset($CE_PRODUCT)}
{block name='head_seo' prepend}
<link rel="canonical" href="{$product.canonical_url}">
{/block}
{block name='head' append}
<meta property="og:type" content="product">
{if version_compare($smarty.const._PS_VERSION_, '1.7.8', '<')}
<meta property="og:title" content="{$page.meta.title}">
<meta property="og:description" content="{$page.meta.description}">
<meta property="og:url" content="{$urls.current_url}">
<meta property="og:site_name" content="{$shop.name}">
{/if}
{if $product.cover}
<meta property="og:image" content="{$product.cover.large.url}">
{/if}
{if $product.show_price}
<meta property="product:pretax_price:amount" content="{$product.price_tax_exc}">
<meta property="product:pretax_price:currency" content="{$currency.iso_code}">
<meta property="product:price:amount" content="{$product.price_amount}">
<meta property="product:price:currency" content="{$currency.iso_code}">
{/if}
{if !empty($product.weight)}
<meta property="product:weight:value" content="{$product.weight}">
<meta property="product:weight:units" content="{$product.weight_unit}">
{/if}
{/block}
{block name='content'}
<section id="content" style="max-width: none;" itemscope itemtype="https://schema.org/Product">
<meta itemprop="url" content="{$product.url}">
<form id="add-to-cart-or-refresh" action="{$urls.pages.cart}" method="post" style="display:none">
<input type="hidden" name="token" value="{$static_token}">
<input type="hidden" name="id_product" value="{$product.id}" id="product_page_product_id">
<input type="hidden" name="id_customization" value="{$product.id_customization}" id="product_customization_id">
<input type="hidden" name="qty" value="{$product.quantity_wanted}" id="quantity_wanted"
{if $product['show_quantities']}data-stock="{$product.quantity}" data-allow-oosp="{$product.allow_oosp}"{/if}>
<input type="submit" class="ce-add-to-cart" data-button-action="add-to-cart">
</form>
{$CE_PRODUCT|cefilter}
</section>
{/block}
{/if}

View File

@@ -0,0 +1,14 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_FOOTER)}
{$CE_FOOTER|cefilter}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/checkout/_partials/footer.tpl")}
{include '[1]checkout/_partials/footer.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{include 'parent:checkout/_partials/footer.tpl'}
{/if}

View File

@@ -0,0 +1,14 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_HEADER)}
{$CE_HEADER|cefilter}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/checkout/_partials/header.tpl")}
{include file='[1]checkout/_partials/header.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{include file='parent:checkout/_partials/header.tpl'}
{/if}

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../');
die;

View File

@@ -0,0 +1,22 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_PAGE_CONTACT)}
{$ce_layout=$layout}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/contact.tpl")}
{$ce_layout='[1]contact.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{$ce_layout='parent:contact.tpl'}
{/if}
{extends $ce_layout}
{if isset($CE_PAGE_CONTACT)}
{block name='content'}
<section id="content">{$CE_PAGE_CONTACT|cefilter}</section>
{/block}
{/if}

View File

@@ -0,0 +1,22 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_PAGE_NOT_FOUND)}
{$ce_layout=$layout}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/errors/404.tpl")}
{$ce_layout='[1]errors/404.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{$ce_layout='parent:errors/404.tpl'}
{/if}
{extends $ce_layout}
{if isset($CE_PAGE_NOT_FOUND)}
{block name='content'}
<section id="content">{$CE_PAGE_NOT_FOUND|cefilter}</section>
{/block}
{/if}

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../');
die;

View File

@@ -0,0 +1,37 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{$lang = Context::getContext()->language}
<!doctype html>
<html lang="{$lang->iso_code}">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
{if isset($ce_content)}
<title>{$ce_content->title}</title>{$content = $ce_content->content|strip_tags|trim|strip}
<meta name="description" content="{$content}">
{/if}
<meta name="viewport" content="width=device-width, initial-scale=1">
{if !empty($favicon)}
<link rel="icon" type="image/vnd.microsoft.icon" href="{$smarty.const._PS_IMG_}{$favicon}?{$favicon_update_time}">
<link rel="shortcut icon" type="image/x-icon" href="{$smarty.const._PS_IMG_}{$favicon}?{$favicon_update_time}">
{/if}
<style>
html, body { margin: 0; padding: 0; }
</style>
<script>
var baseDir = {json_encode($smarty.const.__PS_BASE_URI__)|cefilter};
</script>
<!--CE-JS-->
</head>
<body id="maintenance" class="{if $lang->is_rtl}lang-rtl {/if}lang-{$lang->iso_code} page-maintenance">
<main>
{$HOOK_MAINTENANCE|cefilter}
</main>
<!--CE-JS-->
</body>
</html>

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../');
die;

View File

@@ -0,0 +1,22 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if isset($CE_PAGE_INDEX)}
{$ce_layout=$layout}
{elseif file_exists("{$smarty.const._PS_THEME_DIR_}templates/index.tpl")}
{$ce_layout='[1]index.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_}
{$ce_layout='parent:index.tpl'}
{/if}
{extends $ce_layout}
{if isset($CE_PAGE_INDEX)}
{block name='content'}
<section id="content">{$CE_PAGE_INDEX|cefilter}</section>
{/block}
{/if}

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../');
die;

View File

@@ -0,0 +1,26 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
<!doctype html>
<html lang="{$language.iso_code}">
<head>
{block name='head'}
{include file='_partials/head.tpl'}
{/block}
</head>
<body id="{$page.page_name}" class="{$page.body_classes|classnames}">
<main>
{block name='notifications'}
{include file='_partials/notifications.tpl'}
{/block}
{$ce_desc['description']|cefilter}
</main>
{block name='javascript_bottom'}
{include file="_partials/javascript.tpl" javascript=$javascript.bottom}
{/block}
</body>
</html>

View File

@@ -0,0 +1,50 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{if file_exists("{$smarty.const._PS_THEME_DIR_}templates/_partials/helpers.tpl")}
{include '[1]_partials/helpers.tpl'}
{elseif $smarty.const._PARENT_THEME_NAME_ && file_exists("{$smarty.const._PARENT_THEME_NAME_}templates/_partials/helpers.tpl")}
{include 'parent:_partials/helpers.tpl'}
{/if}
<!doctype html>
<html lang="{$language.iso_code}">
<head>
{block name='head'}
{include file='_partials/head.tpl'}
{/block}
</head>
<body id="{$page.page_name}" class="{$page.body_classes|classnames}">
{block name='hook_after_body_opening_tag'}
{hook h='displayAfterBodyOpeningTag'}
{/block}
<main>
{block name='product_activation'}
{include file='catalog/_partials/product-activation.tpl'}
{/block}
<header id="header">
{block name='header'}
{include file='_partials/header.tpl'}
{/block}
</header>
{block name='notifications'}
{include file='_partials/notifications.tpl'}
{/block}
{block name="content"}{/block}
<footer id="footer">
{block name="footer"}
{include file="_partials/footer.tpl"}
{/block}
</footer>
</main>
{block name='javascript_bottom'}
{include file="_partials/javascript.tpl" javascript=$javascript.bottom}
{/block}
{block name='hook_before_body_closing_tag'}
{hook h='displayBeforeBodyClosingTag'}
{/block}
</body>
</html>

View File

@@ -0,0 +1,8 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
{block name='content'}{/block}

View File

@@ -0,0 +1,48 @@
{**
* Creative Elements - live Theme & Page Builder
*
* @author WebshopWorks
* @copyright 2019-2022 WebshopWorks.com
* @license One domain support license
*}
<style>
i.mi-ce {
font-size: 14px !important;
}
i.icon-AdminParentCEContent, i.mi-ce {
position: relative;
height: 1em;
width: 1.2857em;
}
i.icon-AdminParentCEContent:before, i.mi-ce:before,
i.icon-AdminParentCEContent:after, i.mi-ce:after {
content: '';
position: absolute;
margin: 0;
left: .2143em;
top: 0;
width: .9286em;
height: .6428em;
border-width: .2143em 0;
border-style: solid;
border-color: inherit;
box-sizing: content-box;
}
i.icon-AdminParentCEContent:after, i.mi-ce:after {
top: .4286em;
width: .6428em;
height: 0;
border-width: .2143em 0 0;
}
#maintab-AdminParentCreativeElements, #subtab-AdminParentCreativeElements {
display: none;
}
</style>
{if !empty($edit_width_ce)}
<script type="text/html" id="tmpl-btn-back-to-ps">
<a href="{$edit_width_ce|escape:'html':'UTF-8'}&amp;action=backToPsEditor" class="btn btn-default btn-back-to-ps"><i class="material-icons">navigate_before</i> {l s='Back to PrestaShop Editor' mod='creativeelements'}</a>
</script>
<script type="text/html" id="tmpl-btn-edit-with-ce">
<a href="{$edit_width_ce|escape:'html':'UTF-8'}" class="btn pointer btn-edit-with-ce"><i class="material-icons mi-ce"></i> {l s='Edit with Creative Elements' mod='creativeelements'}</a>
</script>
{/if}

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../');
die;

View File

@@ -0,0 +1,8 @@
<?php
header('Expires: Thu, 28 Feb 2019 00:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../');
die;