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,102 @@
{**
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*}
{$componentName = 'account-menu'}
{block name='account_menu'}
<aside class="{$componentName} {$componentName}--sidebar">
<p class="h2 {$componentName}__title">{l s='My Account' d='Shop.Theme.Customeraccount'}</p>
<nav class="{$componentName}__nav" aria-label="{l s='My account navigation sidebar' d='Shop.Theme.Customeraccount'}">
<a
class="{$componentName}__link{if $urls.current_url === $urls.pages.identity} {$componentName}__link--active{/if}"
id="identity_link"
href="{$urls.pages.identity}"
{if $urls.current_url === $urls.pages.identity}aria-current="page"{/if}
>
<i class="{$componentName}__icon material-icons" aria-hidden="true">&#xE853;</i>
{l s='Information' d='Shop.Theme.Customeraccount'}
</a>
{if $customer.addresses|count}
<a
class="{$componentName}__link{if $urls.current_url === $urls.pages.addresses} {$componentName}__link--active{/if}"
id="addresses_link"
href="{$urls.pages.addresses}"
{if $urls.current_url === $urls.pages.addresses}aria-current="page"{/if}
>
<i class="{$componentName}__icon material-icons" aria-hidden="true">&#xF00F;</i>
{l s='Addresses' d='Shop.Theme.Customeraccount'}
</a>
{else}
<a
class="{$componentName}__link{if $urls.current_url === $urls.pages.address} {$componentName}__link--active{/if}"
id="address_link"
href="{$urls.pages.address}"
{if $urls.current_url === $urls.pages.address}aria-current="page"{/if}
>
<i class="{$componentName}__icon material-icons" aria-hidden="true">&#xEF3A;</i>
{l s='Add first address' d='Shop.Theme.Customeraccount'}
</a>
{/if}
{if !$configuration.is_catalog}
<a
class="{$componentName}__link{if $urls.current_url === $urls.pages.history} {$componentName}__link--active{/if}"
id="history_link"
href="{$urls.pages.history}"
{if $urls.current_url === $urls.pages.history}aria-current="page"{/if}
>
<i class="{$componentName}__icon material-icons" aria-hidden="true">&#xE916;</i>
{l s='Order history and details' d='Shop.Theme.Customeraccount'}
</a>
{/if}
{if !$configuration.is_catalog}
<a
class="{$componentName}__link{if $urls.current_url === $urls.pages.order_slip} {$componentName}__link--active{/if}"
id="order-slips_link"
href="{$urls.pages.order_slip}"
{if $urls.current_url === $urls.pages.order_slip}aria-current="page"{/if}
>
<i class="{$componentName}__icon material-icons" aria-hidden="true">&#xE8B0;</i>
{l s='Credit slips' d='Shop.Theme.Customeraccount'}
</a>
{/if}
{if $configuration.voucher_enabled && !$configuration.is_catalog}
<a
class="{$componentName}__link{if $urls.current_url === $urls.pages.discount} {$componentName}__link--active{/if}"
id="discounts_link"
href="{$urls.pages.discount}"
{if $urls.current_url === $urls.pages.discount}aria-current="page"{/if}
>
<i class="{$componentName}__icon material-icons" aria-hidden="true">&#xE54E;</i>
{l s='Vouchers' d='Shop.Theme.Customeraccount'}
</a>
{/if}
{if $configuration.return_enabled && !$configuration.is_catalog}
<a
class="{$componentName}__link{if $urls.current_url === $urls.pages.order_follow} {$componentName}__link--active{/if}"
id="returns_link"
href="{$urls.pages.order_follow}"
{if $urls.current_url === $urls.pages.order_follow}aria-current="page"{/if}
>
<i class="{$componentName}__icon material-icons" aria-hidden="true">&#xE860;</i>
{l s='Merchandise returns' d='Shop.Theme.Customeraccount'}
</a>
{/if}
{block name='display_customer_account'}
{hook h='displayCustomerAccount'}
{/block}
<a class="{$componentName}__link {$componentName}__link--signout" id="signout_link" href="{$urls.actions.logout}">
<i class="{$componentName}__icon material-icons" aria-hidden="true">&#xE879;</i>
{l s='Sign out' d='Shop.Theme.Actions'}
</a>
</nav>
</aside>
{/block}

View File

@@ -0,0 +1,25 @@
{block name='module_products'}
{block name='module_products_variables'}
{assign var="need_container" value="true"}
{/block}
<section class="{block name='module_products_name'}{/block}">
<div class="module-products {if isset($need_container) && $need_container}container{/if}">
{block name='module_products_title'}{/block}
{block name='module_products_list'}
{if $products}
<div class="module-products__list">
{include file='catalog/_partials/productlist.tpl' products=$products}
</div>
{/if}
{/block}
{block name='module_products_footer' hide}
<div class="module-products__buttons">
{$smarty.block.child}
</div>
{/block}
</div>
</section>
{/block}

View File

@@ -0,0 +1,13 @@
{**
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*}
{$componentName = 'page-loader'}
{block name='page_loader'}
<div class="page-loader js-page-loader d-none">
<div class="spinner-border text-primary-emphasis" role="status">
<span class="visually-hidden">{l s='Loading...' d='Shop.Theme.Global'}</span>
</div>
</div>
{/block}

View File

@@ -0,0 +1,9 @@
{**
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*}
{$componentName = 'page-title-section'}
{block name='page_title_section'}
<h1 class="{$componentName}">{$title}</h1>
{/block}

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 3.0 (AFL-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.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://devdocs.prestashop.com/ for more information.
*
* @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 3.0 (AFL-3.0)
*}
<template data-ps-ref="password-feedback-template">
<div
class="my-3 d-none"
data-ps-ref="password-feedback-container"
>
<div class="progress-container">
<div class="progress mb-3" aria-hidden="true">
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" data-ps-ref="password-strength-progress-bar"></div>
</div>
</div>
<script type="text/javascript" data-ps-ref="password-strength-hints">
{if !empty($page['password-policy']['feedbacks'])}
{$page['password-policy']['feedbacks']|@json_encode nofilter}
{/if}
</script>
<div
class="password-invalid-message"
data-ps-ref="password-invalid-message"
data-ps-data="{l s='Your password is too weak' d='Shop.Theme.Customeraccount'}"
></div>
<div
class="password-valid-message"
data-ps-ref="password-valid-message"
data-ps-data="{l s='Your password is valid' d='Shop.Theme.Customeraccount'}"
></div>
<div
class="password-length-message"
data-ps-ref="password-length-message"
data-ps-data="{l s='Your password length is invalid' d='Shop.Theme.Customeraccount'}"
></div>
<div
class="password-announce-validity visually-hidden"
data-ps-target="password-announce-validity"
aria-live="off"
aria-atomic="true"
></div>
<div class="password-requirements">
<p class="password-requirements__length" data-translation="{l s='Enter a password between %s and %s characters' d='Shop.Theme.Customeraccount'}" data-ps-ref="password-requirements-length">
<i class="password-requirements__icon material-icons" aria-hidden="true" data-ps-ref="password-requirements-length-icon">&#xE86C;</i>
<span data-ps-ref="password-requirements-length-message"></span>
</p>
<p class="password-requirements__score" data-translation="{l s='The minimum score must be: %s' d='Shop.Theme.Customeraccount'}" data-ps-ref="password-requirements-score">
<i class="password-requirements__icon material-icons" aria-hidden="true" data-ps-ref="password-requirements-score-icon">&#xE86C;</i>
<span data-ps-ref="password-requirements-score-message"></span>
</p>
</div>
</div>
</template>

View File

@@ -0,0 +1,37 @@
{**
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*}
{$radius = $size / 2 - $stroke * 2}
{$circumference = $radius * 2 * constant('M_PI')}
{$circumference = $circumference|string_format:"%.4f"}
<svg
class="progress-ring{if $classes} {$classes}{/if}"
width="{$size}"
height="{$size}"
style="width: {$size}px; height: {$size}px;"
>
<circle
class="progress-ring__background-circle"
stroke-width="{$stroke}"
fill="transparent"
r="{$radius}"
cx="{$size / 2}"
cy="{$size / 2}"
/>
<circle
class="progress-ring__circle"
stroke="currentColor"
stroke-width="{$stroke}"
data-percent="0"
fill="transparent"
r="{$radius}"
cx="{$size / 2}"
cy="{$size / 2}"
style="stroke-dasharray: {$circumference}, {$circumference}; stroke-dashoffset: {$circumference};"
/>
<text class="progress-ring__text" x="50%" y="52%" dominant-baseline="middle" text-anchor="middle"></text>
</svg>

View File

@@ -0,0 +1,51 @@
{**
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*}
{assign var="increment_icon" value="E145"}
{assign var="decrement_icon" value="E15B"}
{assign var="submit_icon" value="E5CA"}
{assign var="cancel_icon" value="E5CD"}
{assign var="increment_label" value={l s='Increase quantity of %product_name%' sprintf=['%product_name%' => $product.name] d='Shop.Theme.Actions'}}
{assign var="decrement_label" value={l s='Decrease quantity of %product_name%' sprintf=['%product_name%' => $product.name] d='Shop.Theme.Actions'}}
{assign var="quantity_label" value={l s='Change quantity of %product_name%' sprintf=['%product_name%' => $product.name] d='Shop.Theme.Actions'}}
{* The spin button placement for RTL should be same as LTR *}
{* To fix mirroring by CSS need to place them in reverse for RTL *}
{if $language.is_rtl}
{assign var="prepend" value=["button"=>"increment", "icon"=>$increment_icon, "confirm_icon"=>$submit_icon]}
{assign var="append" value=["button"=>"decrement", "icon"=>$decrement_icon, "confirm_icon"=>$cancel_icon]}
{else}
{assign var="prepend" value=["button"=>"decrement", "icon"=>$decrement_icon, "confirm_icon"=>$cancel_icon]}
{assign var="append" value=["button"=>"increment", "icon"=>$increment_icon, "confirm_icon"=>$submit_icon]}
{/if}
<div class="quantity-button__group input-group">
<button aria-label="{$decrement_label}" class="btn {$prepend.button} btn-square-icon js-{$prepend.button}-button" type="button" id="decrement_button_{$product.id_product}">
<i class="material-icons" aria-hidden="true">&#x{$prepend.icon};</i>
<i class="material-icons confirmation d-none">&#x{$prepend.confirm_icon};</i>
<div class="spinner-border spinner-border-sm align-middle d-none" role="status"></div>
</button>
<input
{foreach $attributes as $key=>$value}
{$key}="{$value}"
{/foreach}
{if !isset($attributes.id)}id="quantity_input_{$product.id_product}"{/if}
{if !isset($attributes.class)}class="form-control"{/if}
{if !isset($attributes.name)}name="qty"{/if}
{if !isset($attributes['aria-label'])}aria-label="{$quantity_label}"{/if}
{if !isset($attributes.type)}type="text"{/if}
{if !isset($attributes.inputmode)}inputmode="numeric"{/if}
{if !isset($attributes.pattern)}pattern="[0-9]+"{/if}
{if !isset($attributes.value)}value="1"{/if}
{if !isset($attributes.min)}min="1"{/if}
>
<button aria-label="{$increment_label}" class="btn {$append.button} btn-square-icon js-{$append.button}-button" type="button" id="increment_button_{$product.id_product}">
<i class="material-icons" aria-hidden="true">&#x{$append.icon};</i>
<i class="material-icons confirmation d-none">&#x{$append.confirm_icon};</i>
<div class="spinner-border spinner-border-sm align-middle d-none" role="status"></div>
</button>
</div>

View File

@@ -0,0 +1,9 @@
{**
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*}
{$componentName = 'section-title'}
{block name='section_title'}
<h2 class="{$componentName}">{$title}</h2>
{/block}

View File

@@ -0,0 +1,9 @@
{**
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*}
{$componentName = 'toast-container'}
<div class="{$componentName} position-fixed top-0 end-0 p-3" id="js-{$componentName}">
{include file='components/toast.tpl'}
</div>

View File

@@ -0,0 +1,14 @@
{**
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*}
{$componentName = 'toast'}
<template class="js-{$componentName}-template">
<div class="{$componentName}" role="alert" aria-live="assertive" aria-atomic="true">
<div class="d-flex">
<div class="{$componentName}-body"></div>
<button type="button" class="btn-close me-2 m-auto d-none" data-bs-dismiss="toast"></button>
</div>
</div>
</template>