first commit

This commit is contained in:
2024-11-05 12:22:50 +01:00
commit e5682a3912
19641 changed files with 2948548 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
{**
* 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.
*
* @author PrestaShop SA <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)
*}
{function get_limit_select element=''}
{assign var="name" value="{$element}_filter_show_limit"}
<select name="{$name}">
<option value="0">{l s='No limit' d='Modules.Facetedsearch.Admin'}</option>
{for $index=2 to 20}
<option value="{$index}">{$index}</option>
{/for}
</select>
{/function}

View File

@@ -0,0 +1,30 @@
{**
* 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.
*
* @author PrestaShop SA <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)
*}
<div class="form-group">
<label class="control-label col-lg-3">{l s='Categories used for this template:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
{if trim($categories_tree) != ''}
{$categories_tree}
{else}
<div class="alert alert-warning">
{l s='Categories selection is disabled because you have no categories or you are in a "all shops" context.' d='Modules.Facetedsearch.Admin'}
</div>
{/if}
</div>
</div>

View File

@@ -0,0 +1,31 @@
{**
* 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.
*
* @author PrestaShop SA <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)
*}
<div class="panel-footer" id="toolbar-footer">
<button class="btn btn-default pull-right" id="submit-filter" name="SubmitFilter" type="submit"><i class="process-icon-save"></i> <span>{l s='Save' d='Admin.Actions'}</span></button>
<a class="btn btn-default" href="{$current_url}">
<i class="process-icon-cancel"></i> <span>{l s='Cancel' d='Admin.Actions'}</span>
</a>
</div>
<script type="text/javascript">
var translations = new Array();
{if isset($filters)}var filters = '{$filters|@json_encode}';{/if}
translations['no_selected_categories'] = "{l s='You must select at least one category' d='Modules.Facetedsearch.Admin'}";
translations['no_selected_filters'] = "{l s='You must select at least one filter' d='Modules.Facetedsearch.Admin'}";
</script>

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 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.
*
* @author PrestaShop SA <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)
*}
<div class="form-group">
<label class="control-label col-lg-3">{l s='Template name:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
<input type="text" id="layered_tpl_name" name="layered_tpl_name" maxlength="64" value="{$template_name}" />
<p class="help-block">{l s='Only as a reminder' d='Modules.Facetedsearch.Admin'}</p>
</div>
</div>

View File

@@ -0,0 +1,43 @@
{**
* 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.
*
* @author PrestaShop SA <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)
*}
{if isset($message)}{$message}{/if}
<div id="ajax-message-ok" class="conf ajax-message alert alert-success" style="display: none">
<span class="message"></span>
</div>
<div id="ajax-message-ko" class="error ajax-message alert alert-danger" style="display: none">
<span class="message"></span>
</div>
{if !empty($limit_warning)}
<div class="alert alert-danger">
{if $limit_warning['error_type'] == 'suhosin'}
{l s='Warning! Your hosting provider is using the Suhosin patch for PHP, which limits the maximum number of fields allowed in a form:' d='Modules.Facetedsearch.Admin'}
<b>{$limit_warning['post.max_vars']}</b> {l s='for suhosin.post.max_vars.' d='Modules.Facetedsearch.Admin'}<br/>
<b>{$limit_warning['request.max_vars']}</b> {l s='for suhosin.request.max_vars.' d='Modules.Facetedsearch.Admin'}<br/>
{l s='Please ask your hosting provider to increase the Suhosin limit to' d='Modules.Facetedsearch.Admin'}
{else}
{l s='Warning! Your PHP configuration limits the maximum number of fields allowed in a form:' d='Modules.Facetedsearch.Admin'}<br/>
<b>{$limit_warning['max_input_vars']}</b> {l s='for max_input_vars.' d='Modules.Facetedsearch.Admin'}<br/>
{l s='Please ask your hosting provider to increase this limit to' d='Modules.Facetedsearch.Admin'}
{/if}
{l s='%s at least, or you will have to edit the translation files manually.' sprintf=$limit_warning['needed_limit'] d='Modules.Facetedsearch.Admin'}
</div>
{/if}

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 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.
*
* @author PrestaShop SA <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)
*}
{if isset($asso_shops)}
<div class="form-group">
<label class="control-label col-lg-3">{l s='Choose shop association:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">{$asso_shops}</div>
</div>
{/if}

View File

@@ -0,0 +1,345 @@
{**
* 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.
*
* @author PrestaShop SA <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)
*}
{include file='./_partials/messages.tpl'}
{include file='./_functions/show_limit.tpl'}
<div class="panel">
<h3><i class="icon-cogs"></i> {l s='New filters template' d='Modules.Facetedsearch.Admin'}</h3>
<form action="{$current_url}" method="post" class="form-horizontal" onsubmit="return checkForm();">
<input type="hidden" name="id_layered_filter" id="id_layered_filter" value="{$id_layered_filter}" />
{include file='./_partials/header.tpl'}
{include file='./_partials/categories-tree.tpl'}
{include file='./_partials/shops.tpl'}
<div class="form-group">
<label class="control-label col-lg-3">
<span class="badge" id="selected_filters">0</span>
<span class="label-tooltip" data-toggle="tooltip" title="" data-original-title="{l s='You can drag and drop filters to adjust position' d='Modules.Facetedsearch.Admin'}">{l s='Filters:' d='Modules.Facetedsearch.Admin'}</span>
</label>
<div class="col-lg-9">
<section class="filter_panel">
<header class="clearfix">
<span class="badge pull-right">
{l
s='Total filters: %s'
sprintf=[$total_filters]
d='Modules.Facetedsearch.Admin'
}
</span>
</header>
<section class="filter_list">
<ul class="list-unstyled sortable">
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_subcategories" id="layered_selection_subcategories" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<h4>{l s='Sub-categories filter' d='Modules.Facetedsearch.Admin'}</h4>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter result limit:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
{call get_limit_select element="layered_selection_subcategories"}
</div>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<select name="layered_selection_subcategories_filter_type">
<option value="0">{l s='Checkbox' d='Modules.Facetedsearch.Admin'}</option>
<option value="1">{l s='Radio button' d='Modules.Facetedsearch.Admin'}</option>
<option value="2">{l s='Drop-down list' d='Modules.Facetedsearch.Admin'}</option>
</select>
</div>
</div>
</li>
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_stock" id="layered_selection_stock" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<span class="module_name">{l s='Product stock filter' d='Modules.Facetedsearch.Admin'}</span>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter result limit:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
{call get_limit_select element="layered_selection_stock"}
</div>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<select name="layered_selection_stock_filter_type">
<option value="0">{l s='Checkbox' d='Modules.Facetedsearch.Admin'}</option>
<option value="1">{l s='Radio button' d='Modules.Facetedsearch.Admin'}</option>
<option value="2">{l s='Drop-down list' d='Modules.Facetedsearch.Admin'}</option>
</select>
</div>
</div>
</li>
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_condition" id="layered_selection_condition" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<span class="module_name">{l s='Product condition filter' d='Modules.Facetedsearch.Admin'}</span>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter result limit:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
{call get_limit_select element="layered_selection_condition"}
</div>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<select name="layered_selection_condition_filter_type">
<option value="0">{l s='Checkbox' d='Modules.Facetedsearch.Admin'}</option>
<option value="1">{l s='Radio button' d='Modules.Facetedsearch.Admin'}</option>
<option value="2">{l s='Drop-down list' d='Modules.Facetedsearch.Admin'}</option>
</select>
</div>
</div>
</li>
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_manufacturer" id="layered_selection_manufacturer" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<span class="module_name">{l s='Product brand filter' d='Modules.Facetedsearch.Admin'}</span>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter result limit:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
{call get_limit_select element="layered_selection_manufacturer"}
</div>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<select name="layered_selection_manufacturer_filter_type">
<option value="0">{l s='Checkbox' d='Modules.Facetedsearch.Admin'}</option>
<option value="1">{l s='Radio button' d='Modules.Facetedsearch.Admin'}</option>
<option value="2">{l s='Drop-down list' d='Modules.Facetedsearch.Admin'}</option>
</select>
</div>
</div>
</li>
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_weight_slider" id="layered_selection_weight_slider" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<span class="module_name">{l s='Product weight filter (slider)' d='Modules.Facetedsearch.Admin'}</span>
</div>
<div class="col-lg-3 pull-right">
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<input type="hidden" name="layered_selection_weight_slider_filter_type" value="1">
<p class="form-control-static">{l s='List of ranges' d='Modules.Facetedsearch.Admin'}</p>
</div>
</div>
</li>
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_price_slider" id="layered_selection_price_slider" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<span class="module_name">{l s='Product price filter (slider)' d='Modules.Facetedsearch.Admin'}</span>
</div>
<div class="col-lg-3 pull-right">
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<input type="hidden" name="layered_selection_price_slider_filter_type" value="1">
<p class="form-control-static">{l s='List of ranges' d='Modules.Facetedsearch.Admin'}</p>
</div>
</div>
</li>
{if $attribute_groups|count > 0}
{foreach $attribute_groups as $attribute_group}
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_ag_{(int)$attribute_group['id_attribute_group']}" id="layered_selection_ag_{(int)$attribute_group['id_attribute_group']}" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<span class="module_name">
{if $attribute_group['n'] > 1}
{l
s='Attribute group: %name% (%count% attributes)'
sprintf=[
'%name%' => $attribute_group['name'],
'%count%' => $attribute_group['n']
]
d='Modules.Facetedsearch.Admin'
}
{else}
{l
s='Attribute group: %name% (%count% attribute)'
sprintf=[
'%name%' => $attribute_group['name'],
'%count%' => $attribute_group['n']
]
d='Modules.Facetedsearch.Admin'
}
{/if}
{if $attribute_group['is_color_group']}
<img src="../img/admin/color_swatch.png" alt="" title="{l s='This group will allow user to select a color' d='Modules.Facetedsearch.Admin'}" />
{/if}
</span>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter result limit:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
{call get_limit_select element="layered_selection_ag_{(int)$attribute_group['id_attribute_group']}"}
</div>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<select name="layered_selection_ag_{(int)$attribute_group['id_attribute_group']}_filter_type">
<option value="0">{l s='Checkbox' d='Modules.Facetedsearch.Admin'}</option>
<option value="1">{l s='Radio button' d='Modules.Facetedsearch.Admin'}</option>
<option value="2">{l s='Drop-down list' d='Modules.Facetedsearch.Admin'}</option>
</select>
</div>
</div>
</li>
{/foreach}
{/if}
{if $features|count > 0}
{foreach $features as $feature}
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_feat_{(int)$feature['id_feature']}" id="layered_selection_feat_{(int)$feature['id_feature']}" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<span class="module_name">
{if $feature['n'] > 1}
{l
s='Feature: %name% (%count% values)'
sprintf=[
'%name%' => $feature['name'],
'%count%' => $feature['n']
]
d='Modules.Facetedsearch.Admin'
}
{else}
{l
s='Feature: %name% (%count% value)'
sprintf=[
'%name%' => $feature['name'],
'%count%' => $feature['n']
]
d='Modules.Facetedsearch.Admin'
}
{/if}
</span>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter result limit:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
{call get_limit_select element="layered_selection_feat_{(int)$feature['id_feature']}"}
</div>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<select name="layered_selection_feat_{(int)$feature['id_feature']}_filter_type">
<option value="0">{l s='Checkbox' d='Modules.Facetedsearch.Admin'}</option>
<option value="1">{l s='Radio button' d='Modules.Facetedsearch.Admin'}</option>
<option value="2">{l s='Drop-down list' d='Modules.Facetedsearch.Admin'}</option>
</select>
</div>
</div>
</li>
{/foreach}
{/if}
</ul>
</section>
</section>
</div>
</div>
{include file='./_partials/footer.tpl'}
</form>
</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 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.
*
* @author PrestaShop SA <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)
*/
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,266 @@
{**
* 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.
*
* @author PrestaShop SA <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)
*}
{include file='./_partials/messages.tpl'}
<div class="panel">
<h3><i class="icon-cogs"></i> {l s='Indexes and caches' d='Modules.Facetedsearch.Admin'}</h3>
<div id="indexing-warning" class="alert alert-warning" style="display: none">
{l s='Indexing is in progress. Please do not leave this page' d='Modules.Facetedsearch.Admin'}
</div>
<div class="row">
<p>
<a class="ajaxcall-recurcive btn btn-default" href="{$price_indexer_url}">{l s='Index all missing prices' d='Modules.Facetedsearch.Admin'}</a>
<a class="ajaxcall-recurcive btn btn-default" href="{$full_price_indexer_url}">{l s='Rebuild entire price index' d='Modules.Facetedsearch.Admin'}</a>
<a class="ajaxcall btn btn-default" href="{$attribute_indexer_url}">{l s='Build attributes and features indexes' d='Modules.Facetedsearch.Admin'}</a>
<a class="ajaxcall btn btn-default" href="{$clear_cache_url}">{l s='Clear cache' d='Modules.Facetedsearch.Admin'}</a>
</p>
</div>
<div class="row">
<div class="alert alert-info">
{l s='You can set a cron job that will rebuild price index using the following URL:' d='Modules.Facetedsearch.Admin'}
<br>
<strong>{$price_indexer_url}</strong>
<br>
<br>
{l s='You can set a cron job that will rebuild attribute index using the following URL:' d='Modules.Facetedsearch.Admin'}
<br>
<strong>{$attribute_indexer_url}</strong>
</div>
</div>
<div class="row">
<div class="alert alert-info">{l s='A nightly rebuild is recommended.' d='Modules.Facetedsearch.Admin'}</div>
</div>
</div>
<div class="panel">
<h3><i class="icon-cogs"></i> {l s='Filters templates' d='Modules.Facetedsearch.Admin'}<span class="badge">{$filters_templates|count}</span></h3>
{if $filters_templates|count > 0}
<div class="row">
<table class="table">
<thead>
<tr>
<th class="fixed-width-xs center"><span class="title_box">{l s='ID' d='Admin.Global'}</span></th>
<th><span class="title_box text-left">{l s='Name' d='Admin.Global'}</span></th>
<th class="fixed-width-sm center"><span class="title_box">{l s='Categories' d='Admin.Global'}</span></th>
<th class="fixed-width-lg"><span class="title_box">{l s='Created on' d='Modules.Facetedsearch.Admin'}</span></th>
<th class="fixed-width-sm"><span class="title_box text-right">{l s='Actions' d='Modules.Facetedsearch.Admin'}</span></th>
</tr>
</thead>
<tbody>
{foreach $filters_templates as $template}
<tr>
<td class="center">{(int)$template['id_layered_filter']}</td>
<td class="text-left">{$template['name']}</td>
<td class="center">{(int)$template['n_categories']}</td>
<td>{Tools::displayDate($template['date_add'],null , true)}</td>
<td>
{if empty($limit_warning)}
<div class="btn-group-action">
<div class="btn-group pull-right">
<a href="{$current_url}&amp;edit_filters_template=1&amp;id_layered_filter={(int)$template['id_layered_filter']}" class="btn btn-default">
<i class="icon-pencil"></i> {l s='Edit' d='Admin.Actions'}
</a>
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>&nbsp;
</button>
<ul class="dropdown-menu">
<li>
<a href="{$current_url}&amp;deleteFilterTemplate=1&amp;id_layered_filter={(int)$template['id_layered_filter']}"
onclick="return confirm('{l s='Do you really want to delete this filter template?' d='Modules.Facetedsearch.Admin'}');">
<i class="icon-trash"></i> {l s='Delete' d='Admin.Actions'}
</a>
</li>
</ul>
</div>
</div>
{/if}
</td>
</tr>
{/foreach}
</tbody>
</table>
<div class="clearfix">&nbsp;</div>
</div>
{else}
<div class="row alert alert-warning">{l s='No filter template found.' d='Modules.Facetedsearch.Admin'}</div>
{/if}
{if empty($limit_warning)}
<div class="panel-footer">
<a class="btn btn-default pull-right" href="{$current_url}&amp;add_new_filters_template=1"><i class="process-icon-plus"></i> {l s='Add new template' d='Modules.Facetedsearch.Admin'}</a>
</div>
{/if}
</div>
<div class="panel">
<h3><i class="icon-cogs"></i> {l s='Configuration' d='Admin.Global'}</h3>
<form action="{$current_url}" method="post" class="form-horizontal">
<div class="form-group">
<label class="col-lg-3 control-label">{l s='Enable cache system' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
<span class="switch prestashop-switch fixed-width-lg">
<input type="radio" name="ps_layered_cache_enabled" id="ps_layered_cache_enabled_on" value="1"{if $cache_enabled} checked="checked"{/if}>
<label for="ps_layered_cache_enabled_on" class="radioCheck">
<i class="color_success"></i> {l s='Yes' d='Admin.Global'}
</label>
<input type="radio" name="ps_layered_cache_enabled" id="ps_layered_cache_enabled_off" value="0"{if !$cache_enabled} checked="checked"{/if}>
<label for="ps_layered_cache_enabled_off" class="radioCheck">
<i class="color_danger"></i> {l s='No' d='Admin.Global'}
</label>
<a class="slide-button btn"></a>
</span>
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">{l s='Show the number of matching products' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
<span class="switch prestashop-switch fixed-width-lg">
<input type="radio" name="ps_layered_show_qties" id="ps_layered_show_qties_on" value="1"{if $show_quantities} checked="checked"{/if}>
<label for="ps_layered_show_qties_on" class="radioCheck">
<i class="color_success"></i> {l s='Yes' d='Admin.Global'}
</label>
<input type="radio" name="ps_layered_show_qties" id="ps_layered_show_qties_off" value="0"{if !$show_quantities} checked="checked"{/if}>
<label for="ps_layered_show_qties_off" class="radioCheck">
<i class="color_danger"></i> {l s='No' d='Admin.Global'}
</label>
<a class="slide-button btn"></a>
</span>
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">{l s='Show products from subcategories' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
<span class="switch prestashop-switch fixed-width-lg">
<input type="radio" name="ps_layered_full_tree" id="ps_layered_full_tree_on" value="1"{if $full_tree} checked="checked"{/if}>
<label for="ps_layered_full_tree_on" class="radioCheck">
<i class="color_success"></i> {l s='Yes' d='Admin.Global'}
</label>
<input type="radio" name="ps_layered_full_tree" id="ps_layered_full_tree_off" value="0"{if !$full_tree} checked="checked"{/if}>
<label for="ps_layered_full_tree_off" class="radioCheck">
<i class="color_danger"></i> {l s='No' d='Admin.Global'}
</label>
<a class="slide-button btn"></a>
</span>
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">{l s='Show products only from default category' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
<span class="switch prestashop-switch fixed-width-lg">
<input type="radio" name="ps_layered_filter_by_default_category" id="ps_layered_filter_by_default_category_on" value="1"{if $filter_by_default_category} checked="checked"{/if}>
<label for="ps_layered_filter_by_default_category_on" class="radioCheck">
<i class="color_success"></i> {l s='Yes' d='Admin.Global'}
</label>
<input type="radio" name="ps_layered_filter_by_default_category" id="ps_layered_filter_by_default_category_off" value="0"{if !$filter_by_default_category} checked="checked"{/if}>
<label for="ps_layered_filter_by_default_category_off" class="radioCheck">
<i class="color_danger"></i> {l s='No' d='Admin.Global'}
</label>
<a class="slide-button btn"></a>
</span>
</div>
<div class="col-lg-9 col-lg-offset-3">
<div class="help-block">
{l s='Works only if "Show products from subcategories" is off.' d='Modules.Facetedsearch.Admin'}
</div>
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">{l s='Category filter depth (0 for no limits, 1 by default)' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
<input type="text" name="ps_layered_filter_category_depth" value="{if $category_depth !== false}{$category_depth}{else}1{/if}" class="fixed-width-sm" />
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">{l s='Use tax to filter price' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
<span class="switch prestashop-switch fixed-width-lg">
<input type="radio" name="ps_layered_filter_price_usetax" id="ps_layered_filter_price_usetax_on" value="1"{if $price_use_tax} checked="checked"{/if}>
<label for="ps_layered_filter_price_usetax_on" class="radioCheck">
<i class="color_success"></i> {l s='Yes' d='Admin.Global'}
</label>
<input type="radio" name="ps_layered_filter_price_usetax" id="ps_layered_filter_price_usetax_off" value="0"{if !$price_use_tax} checked="checked"{/if}>
<label for="ps_layered_filter_price_usetax_off" class="radioCheck">
<i class="color_danger"></i> {l s='No' d='Admin.Global'}
</label>
<a class="slide-button btn"></a>
</span>
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">{l s='Use rounding to filter price' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
<span class="switch prestashop-switch fixed-width-lg">
<input type="radio" name="ps_layered_filter_price_rounding" id="ps_layered_filter_price_rounding_on" value="1"{if $price_use_rounding} checked="checked"{/if}/>
<label for="ps_layered_filter_price_rounding_on" class="radioCheck">
<i class="color_success"></i> {l s='Yes' d='Admin.Global'}
</label>
<input type="radio" name="ps_layered_filter_price_rounding" id="ps_layered_filter_price_rounding_off" value="0"{if !$price_use_rounding} checked="checked"{/if}/>
<label for="ps_layered_filter_price_rounding_off" class="radioCheck">
<i class="color_danger"></i> {l s='No' d='Admin.Global'}
</label>
<a class="slide-button btn"></a>
</span>
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">{l s='Show unavailable, out of stock last' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-9">
<span class="switch prestashop-switch fixed-width-lg">
<input type="radio" name="ps_layered_filter_show_out_of_stock_last" id="ps_layered_filter_show_out_of_stock_last_on" value="1"{if $show_out_of_stock_last} checked="checked"{/if}/>
<label for="ps_layered_filter_show_out_of_stock_last_on" class="radioCheck">
<i class="color_success"></i> {l s='Yes' d='Admin.Global'}
</label>
<input type="radio" name="ps_layered_filter_show_out_of_stock_last" id="ps_layered_filter_show_out_of_stock_last_off" value="0"{if !$show_out_of_stock_last} checked="checked"{/if}/>
<label for="ps_layered_filter_show_out_of_stock_last_off" class="radioCheck">
<i class="color_danger"></i> {l s='No' d='Admin.Global'}
</label>
<a class="slide-button btn"></a>
</span>
</div>
</div>
<div class="panel-footer">
<button type="submit" class="btn btn-default pull-right" name="submitLayeredSettings"><i class="process-icon-save"></i> {l s='Save' d='Admin.Actions'}</button>
</div>
</form>
</div>
<script type="text/javascript">
{if isset($PS_LAYERED_INDEXED)}var PS_LAYERED_INDEXED = {$PS_LAYERED_INDEXED};{/if}
var token = '{$token}';
var id_lang = {$id_lang};
var base_folder = '{$base_folder}';
var translations = new Object();
translations.in_progress = '{l s='(in progress)' js=1 d='Modules.Facetedsearch.Admin'}';
translations.url_indexation_finished = '{l s='URL indexing finished' js=1 d='Modules.Facetedsearch.Admin'}';
translations.attribute_indexation_finished = '{l s='Attribute indexing finished' js=1 d='Modules.Facetedsearch.Admin'}';
translations.url_indexation_failed = '{l s='URL indexing failed' js=1 d='Modules.Facetedsearch.Admin'}';
translations.attribute_indexation_failed = '{l s='Attribute indexing failed' js=1 d='Modules.Facetedsearch.Admin'}';
translations.price_indexation_finished = '{l s='Price indexing finished' js=1 d='Modules.Facetedsearch.Admin'}';
translations.price_indexation_failed = '{l s='Price indexing failed' js=1 d='Modules.Facetedsearch.Admin'}';
translations.price_indexation_in_progress = '{l s='(in progress, %s products price to index)' js=1 d='Modules.Facetedsearch.Admin'}';
translations.loading = '{l s='Loading...' js=1 d='Modules.Facetedsearch.Admin'}';
translations.delete_all_filters_templates = '{l s='You selected -All categories-: all existing filter templates will be deleted. Is it OK?' js=1 d='Modules.Facetedsearch.Admin'}';
translations.no_selected_categories = '{l s='You must select at least one category' js=1 d='Modules.Facetedsearch.Admin'}';
</script>

View File

@@ -0,0 +1,215 @@
{**
* 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.
*
* @author PrestaShop SA <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)
*}
{include file='./_partials/messages.tpl'}
{include file='./_functions/show_limit.tpl'}
<div class="panel">
<h3><i class="icon-cogs"></i> {l s='New filters template' d='Modules.Facetedsearch.Admin'}</h3>
<form action="{$current_url}" method="post" class="form-horizontal" onsubmit="return checkForm();">
<input type="hidden" name="id_layered_filter" id="id_layered_filter" value="{$id_layered_filter}" />
{include file='./_partials/header.tpl'}
{include file='./_partials/categories-tree.tpl'}
{include file='./_partials/shops.tpl'}
<div class="form-group">
<label class="control-label col-lg-3">
<span class="badge" id="selected_filters">0</span>
<span class="label-tooltip" data-toggle="tooltip" title="" data-original-title="{l s='You can drag and drop filters to adjust position' d='Modules.Facetedsearch.Admin'}">{l s='Filters:' d='Modules.Facetedsearch.Admin'}</span>
</label>
<div class="col-lg-9">
<section class="filter_panel">
<header class="clearfix">
<span class="badge pull-right">
{l
s='Total filters: %s'
sprintf=[$total_filters]
d='Modules.Facetedsearch.Admin'
}
</span>
</header>
<section class="filter_list">
<ul id="" class="list-unstyled sortable">
{foreach from=$default_filters item=filter key=filterId}
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="{$filterId}" id="{$filterId}" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<h4>{l s=$filter['label'] d='Modules.Facetedsearch.Admin'}</h4>
</div>
<div class="col-lg-3">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
{if !empty($filter['slider'])}
<p class="form-control-static">{l s='List of ranges' d='Modules.Facetedsearch.Admin'}</p>
{else}
<div class="col-lg-6">
<select name="{$filterId}_filter_type">
<option value="0">{l s='Checkbox' d='Modules.Facetedsearch.Admin'}</option>
<option value="1">{l s='Radio button' d='Modules.Facetedsearch.Admin'}</option>
<option value="2">{l s='Drop-down list' d='Modules.Facetedsearch.Admin'}</option>
</select>
</div>
{/if}
</div>
<div class="col-lg-3">
{if empty($filter['slider'])}
<label class="control-label col-lg-6">{l s='Filter result limit:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
{call get_limit_select element=$filterId}
</div>
{/if}
</div>
</li>
{/foreach}
{if $attribute_groups|count > 0}
{foreach $attribute_groups as $attribute_group}
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_ag_{(int)$attribute_group['id_attribute_group']}" id="layered_selection_ag_{(int)$attribute_group['id_attribute_group']}" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<span class="module_name">
{if $attribute_group['n'] > 1}
{l
s='Attribute group: %name% (%count% attributes)'
sprintf=[
'%name%' => $attribute_group['name'],
'%count%' => $attribute_group['n']
]
d='Modules.Facetedsearch.Admin'
}
{else}
{l
s='Attribute group: %name% (%count% attribute)'
sprintf=[
'%name%' => $attribute_group['name'],
'%count%' => $attribute_group['n']
]
d='Modules.Facetedsearch.Admin'
}
{/if}
{if $attribute_group['is_color_group']}
<img src="../img/admin/color_swatch.png" alt="" title="{l s='This group will allow user to select a color' d='Modules.Facetedsearch.Admin'}" />
{/if}
</span>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter result limit:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
{call get_limit_select element="layered_selection_ag_{(int)$attribute_group['id_attribute_group']}"}
</div>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<select name="layered_selection_ag_{(int)$attribute_group['id_attribute_group']}_filter_type">
<option value="0">{l s='Checkbox' d='Modules.Facetedsearch.Admin'}</option>
<option value="1">{l s='Radio button' d='Modules.Facetedsearch.Admin'}</option>
<option value="2">{l s='Drop-down list' d='Modules.Facetedsearch.Admin'}</option>
</select>
</div>
</div>
</li>
{/foreach}
{/if}
{if $features|count > 0}
{foreach $features as $feature}
<li class="filter_list_item row" draggable="true">
<div class="col-lg-2">
<label class="switch-light prestashop-switch fixed-width-lg">
<input name="layered_selection_feat_{(int)$feature['id_feature']}" id="layered_selection_feat_{(int)$feature['id_feature']}" type="checkbox" />
<span>
<span>{l s='Yes' d='Admin.Global'}</span>
<span>{l s='No' d='Admin.Global'}</span>
</span>
<a class="slide-button btn"></a>
</label>
</div>
<div class="col-lg-4">
<span class="module_name">
{if $feature['n'] > 1}
{l
s='Feature: %name% (%count% values)'
sprintf=[
'%name%' => $feature['name'],
'%count%' => $feature['n']
]
d='Modules.Facetedsearch.Admin'
}
{else}
{l
s='Feature: %name% (%count% value)'
sprintf=[
'%name%' => $feature['name'],
'%count%' => $feature['n']
]
d='Modules.Facetedsearch.Admin'
}
{/if}
</span>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter result limit:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
{call get_limit_select element="layered_selection_feat_{(int)$feature['id_feature']}"}
</div>
</div>
<div class="col-lg-3 pull-right">
<label class="control-label col-lg-6">{l s='Filter style:' d='Modules.Facetedsearch.Admin'}</label>
<div class="col-lg-6">
<select name="layered_selection_feat_{(int)$feature['id_feature']}_filter_type">
<option value="0">{l s='Checkbox' d='Modules.Facetedsearch.Admin'}</option>
<option value="1">{l s='Radio button' d='Modules.Facetedsearch.Admin'}</option>
<option value="2">{l s='Drop-down list' d='Modules.Facetedsearch.Admin'}</option>
</select>
</div>
</div>
</li>
{/foreach}
{/if}
</ul>
</section>
</section>
</div>
</div>
{include file='./_partials/footer.tpl'}
</form>
</div>