PageRenderTime 29ms CodeModel.GetById 11ms RepoModel.GetById 1ms app.codeStats 0ms

/modules/blocklayered/blocklayered.tpl

https://bitbucket.org/enurkov/prestashop
Smarty Template | 257 lines | 232 code | 1 blank | 24 comment | 46 complexity | 65acbd59728b6962fb75ef994316dd59 MD5 | raw file
  1. {*
  2. * 2007-2012 PrestaShop
  3. *
  4. * NOTICE OF LICENSE
  5. *
  6. * This source file is subject to the Academic Free License (AFL 3.0)
  7. * that is bundled with this package in the file LICENSE.txt.
  8. * It is also available through the world-wide-web at this URL:
  9. * http://opensource.org/licenses/afl-3.0.php
  10. * If you did not receive a copy of the license and are unable to
  11. * obtain it through the world-wide-web, please send an email
  12. * to license@prestashop.com so we can send you a copy immediately.
  13. *
  14. * DISCLAIMER
  15. *
  16. * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
  17. * versions in the future. If you wish to customize PrestaShop for your
  18. * needs please refer to http://www.prestashop.com for more information.
  19. *
  20. * @author PrestaShop SA <contact@prestashop.com>
  21. * @copyright 2007-2012 PrestaShop SA
  22. * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
  23. * International Registred Trademark & Property of PrestaShop SA
  24. *}
  25. <!-- Block layered navigation module -->
  26. {if $nbr_filterBlocks != 0}
  27. <script type="text/javascript">
  28. current_friendly_url = '#{$current_friendly_url}';
  29. {if version_compare($smarty.const._PS_VERSION_,'1.5','>')}
  30. param_product_url = '#{$param_product_url}';
  31. {else}
  32. param_product_url = '';
  33. {/if}
  34. </script>
  35. <div id="layered_block_left" class="block">
  36. <h4 class="title_block">{l s='Catalog' mod='blocklayered'}</h4>
  37. <div class="block_content">
  38. <form action="#" id="layered_form">
  39. <div>
  40. {if isset($selected_filters) && $n_filters > 0}
  41. <div id="enabled_filters">
  42. <span class="layered_subtitle" style="float: none;">{l s='Enabled filters:' mod='blocklayered'}</span>
  43. <ul>
  44. {foreach from=$selected_filters key=filter_type item=filter_values}
  45. {foreach from=$filter_values key=filter_key item=filter_value name=f_values}
  46. {foreach from=$filters item=filter}
  47. {if $filter.type == $filter_type && isset($filter.values)}
  48. {if isset($filter.slider)}
  49. {if $smarty.foreach.f_values.first}
  50. <li>
  51. <a href="#" rel="layered_{$filter.type}_slider" title="{l s='Cancel' mod='blocklayered'}">x</a>
  52. {$filter.name|escape:html:'UTF-8'}{l s=':' mod='blocklayered'}
  53. {if $filter.format}
  54. {displayPrice price=$filter.values[0]} -
  55. {displayPrice price=$filter.values[1]}
  56. {else}
  57. {$filter.values[0]|escape:html:'UTF-8'}{$filter.unit|escape:html:'UTF-8'} -
  58. {$filter.values[1]|escape:html:'UTF-8'}{$filter.unit|escape:html:'UTF-8'}
  59. {/if}
  60. </li>
  61. {/if}
  62. {else}
  63. {foreach from=$filter.values key=id_value item=value}
  64. {if $id_value == $filter_key && !is_numeric($filter_value) && ($filter.type eq 'id_attribute_group' || $filter.type eq 'id_feature') || $id_value == $filter_value && $filter.type neq 'id_attribute_group' && $filter.type neq 'id_feature'}
  65. <li>
  66. <a href="#" rel="layered_{$filter.type_lite}_{$id_value}" title="{l s='Cancel' mod='blocklayered'}">x</a>
  67. {$filter.name|escape:html:'UTF-8'}{l s=':' mod='blocklayered'} {$value.name|escape:html:'UTF-8'}
  68. </li>
  69. {/if}
  70. {/foreach}
  71. {/if}
  72. {/if}
  73. {/foreach}
  74. {/foreach}
  75. {/foreach}
  76. </ul>
  77. </div>
  78. {/if}
  79. {foreach from=$filters item=filter}
  80. {if isset($filter.values)}
  81. {if isset($filter.slider)}
  82. <div class="layered_{$filter.type}" style="display: none;">
  83. {else}
  84. <div>
  85. {/if}
  86. <span class="layered_subtitle">{$filter.name|escape:html:'UTF-8'}</span>
  87. <span class="layered_close"><a href="#" rel="ul_layered_{$filter.type}_{$filter.id_key}">v</a></span>
  88. <div class="clear"></div>
  89. <ul id="ul_layered_{$filter.type}_{$filter.id_key}">
  90. {if !isset($filter.slider)}
  91. {if $filter.filter_type == 0}
  92. {foreach from=$filter.values key=id_value item=value name=fe}
  93. {if $value.nbr || !$hide_0_values}
  94. <li class="nomargin {if $smarty.foreach.fe.index >= $filter.filter_show_limit}hiddable{/if}">
  95. {if isset($filter.is_color_group) && $filter.is_color_group}
  96. <input class="color-option {if isset($value.checked) && $value.checked}on{/if} {if !$value.nbr}disable{/if}" type="button" name="layered_{$filter.type_lite}_{$id_value}" rel="{$id_value}_{$filter.id_key}" id="layered_id_attribute_group_{$id_value}" {if !$value.nbr}disabled="disabled"{/if} style="background: {if isset($value.color)}{if file_exists($smarty.const._PS_ROOT_DIR_|cat:"/img/co/$id_value.jpg")}url(img/co/{$id_value}.jpg){else}{$value.color}{/if}{else}#CCC{/if};" />
  97. {if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}
  98. {else}
  99. <input type="checkbox" class="checkbox" name="layered_{$filter.type_lite}_{$id_value}" id="layered_{$filter.type_lite}{if $id_value || $filter.type == 'quantity'}_{$id_value}{/if}" value="{$id_value}{if $filter.id_key}_{$filter.id_key}{/if}"{if isset($value.checked)} checked="checked"{/if}{if !$value.nbr} disabled="disabled"{/if} />
  100. {/if}
  101. <label for="layered_{$filter.type_lite}_{$id_value}"{if !$value.nbr} class="disabled"{else}{if isset($filter.is_color_group) && $filter.is_color_group} name="layered_{$filter.type_lite}_{$id_value}" class="layered_color" rel="{$id_value}_{$filter.id_key}"{/if}{/if}>
  102. {if !$value.nbr}
  103. {$value.name|escape:html:'UTF-8'}{if $layered_show_qties}<span> ({$value.nbr})</span>{/if}
  104. {else}
  105. <a href="{$value.link}" rel="{$value.rel}">{$value.name|escape:html:'UTF-8'}{if $layered_show_qties}<span> ({$value.nbr})</span>{/if}</a>
  106. {/if}
  107. </label>
  108. </li>
  109. {/if}
  110. {/foreach}
  111. {else}
  112. {if $filter.filter_type == 1}
  113. {foreach from=$filter.values key=id_value item=value name=fe}
  114. {if $value.nbr || !$hide_0_values}
  115. <li class="nomargin {if $smarty.foreach.fe.index >= $filter.filter_show_limit}hiddable{/if}">
  116. {if isset($filter.is_color_group) && $filter.is_color_group}
  117. <input class="radio color-option {if isset($value.checked) && $value.checked}on{/if} {if !$value.nbr}disable{/if}" type="button" name="layered_{$filter.type_lite}_{$id_value}" rel="{$id_value}_{$filter.id_key}" id="layered_id_attribute_group_{$id_value}" {if !$value.nbr}disabled="disabled"{/if} style="background: {if isset($value.color)}{if file_exists($smarty.const._PS_ROOT_DIR_|cat:"/img/co/$id_value.jpg")}url(img/co/{$id_value}.jpg){else}{$value.color}{/if}{else}#CCC{/if};"/>
  118. {if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}
  119. {else}
  120. <input type="radio" class="radio layered_{$filter.type_lite}_{$id_value}" name="layered_{$filter.type_lite}{if $filter.id_key}_{$filter.id_key}{else}_1{/if}" id="layered_{$filter.type_lite}{if $id_value || $filter.type == 'quantity'}_{$id_value}{if $filter.id_key}_{$filter.id_key}{/if}{/if}" value="{$id_value}{if $filter.id_key}_{$filter.id_key}{/if}"{if isset($value.checked)} checked="checked"{/if}{if !$value.nbr} disabled="disabled"{/if} />
  121. {/if}
  122. <label for="layered_{$filter.type_lite}_{$id_value}"{if !$value.nbr} class="disabled"{else}{if isset($filter.is_color_group) && $filter.is_color_group} name="layered_{$filter.type_lite}_{$id_value}" class="layered_color" rel="{$id_value}_{$filter.id_key}"{/if}{/if}>
  123. {if !$value.nbr}
  124. {$value.name|escape:html:'UTF-8'}{if $layered_show_qties}<span> ({$value.nbr})</span>{/if}</a>
  125. {else}
  126. <a href="{$value.link}" rel="{$value.rel}">{$value.name|escape:html:'UTF-8'}{if $layered_show_qties}<span> ({$value.nbr})</span>{/if}</a>
  127. {/if}
  128. </label>
  129. </li>
  130. {/if}
  131. {/foreach}
  132. {else}
  133. <select class="select" {if $filter.filter_show_limit > 1}multiple="multiple" size="{$filter.filter_show_limit}"{/if}>
  134. <option value="">{l s='No filters' mod='blocklayered'}</option>
  135. {foreach from=$filter.values key=id_value item=value}
  136. {if $value.nbr || !$hide_0_values}
  137. <option style="color: {if isset($value.color)}{$value.color}{/if}" id="layered_{$filter.type_lite}{if $id_value || $filter.type == 'quantity'}_{$id_value}{/if}" value="{$id_value}_{$filter.id_key}" {if isset($value.checked) && $value.checked}selected="selected"{/if} {if !$value.nbr}disabled="disabled"{/if}>
  138. {$value.name|escape:html:'UTF-8'}{if $layered_show_qties}<span> ({$value.nbr})</span>{/if}</a>
  139. </option>
  140. {/if}
  141. {/foreach}
  142. </select>
  143. {/if}
  144. {/if}
  145. {else}
  146. {if $filter.filter_type == 0}
  147. <label for="{$filter.type}">{l s='Range:' mod='blocklayered'}</label> <span id="layered_{$filter.type}_range"></span>
  148. <div class="layered_slider_container">
  149. <div class="layered_slider" id="layered_{$filter.type}_slider"></div>
  150. </div>
  151. <script type="text/javascript">
  152. {literal}
  153. var filterRange = {/literal}{$filter.max}-{$filter.min}{literal};
  154. var step = filterRange / 100;
  155. if (step > 1)
  156. step = parseInt(step);
  157. addSlider('{/literal}{$filter.type}{literal}',{
  158. range: true,
  159. step: step,
  160. min: {/literal}{$filter.min}{literal},
  161. max: {/literal}{$filter.max}{literal},
  162. values: [ {/literal}{$filter.values[0]}{literal}, {/literal}{$filter.values[1]}{literal}],
  163. slide: function( event, ui ) {
  164. stopAjaxQuery();
  165. {/literal}
  166. {if $filter.format < 5}
  167. {literal}
  168. from = blocklayeredFormatCurrency(ui.values[0], {/literal}{$filter.format}{literal}, '{/literal}{$filter.unit}{literal}');
  169. to = blocklayeredFormatCurrency(ui.values[1], {/literal}{$filter.format}{literal}, '{/literal}{$filter.unit}{literal}');
  170. {/literal}
  171. {else}
  172. {literal}
  173. from = ui.values[0]+'{/literal}{$filter.unit}{literal}';
  174. to = ui.values[1]+'{/literal}{$filter.unit}{literal}';
  175. {/literal}
  176. {/if}
  177. {literal}
  178. $('#layered_{/literal}{$filter.type}{literal}_range').html(from+' - '+to);
  179. },
  180. stop: function () {
  181. reloadContent();
  182. }
  183. }, '{/literal}{$filter.unit}{literal}', {/literal}{$filter.format}{literal});
  184. {/literal}
  185. </script>
  186. {else}
  187. {if $filter.filter_type == 1}
  188. <li class="nomargin">
  189. {l s='From' mod='blocklayered'} <input class="layered_{$filter.type}_range layered_input_range_min layered_input_range" id="layered_{$filter.type}_range_min" type="text" value="{$filter.values[0]}"/>
  190. <span class="layered_{$filter.type}_range_unit">{$filter.unit}</span>
  191. {l s='to' mod='blocklayered'} <input class="layered_{$filter.type}_range layered_input_range_max layered_input_range" id="layered_{$filter.type}_range_max" type="text" value="{$filter.values[1]}"/>
  192. <span class="layered_{$filter.type}_range_unit">{$filter.unit}</span>
  193. <span class="layered_{$filter.type}_format" style="display:none;">{$filter.format}</span>
  194. <script type="text/javascript">
  195. {literal}
  196. $('#layered_{/literal}{$filter.type}{literal}_range_min').attr('limitValue', {/literal}{$filter.min}{literal});
  197. $('#layered_{/literal}{$filter.type}{literal}_range_max').attr('limitValue', {/literal}{$filter.max}{literal});
  198. {/literal}
  199. </script>
  200. </li>
  201. {else}
  202. {foreach from=$filter.list_of_values item=values}
  203. <li class="nomargin {if $filter.values[1] == $values[1] && $filter.values[0] == $values[0]}layered_list_selected{/if} layered_list" onclick="$('#layered_{$filter.type}_range_min').val({$values[0]});$('#layered_{$filter.type}_range_max').val({$values[1]});reloadContent();">
  204. - {l s='From' mod='blocklayered'} {$values[0]} {$filter.unit} {l s='to' mod='blocklayered'} {$values[1]} {$filter.unit}
  205. </li>
  206. {/foreach}
  207. <li style="display: none;">
  208. <input class="layered_{$filter.type}_range" id="layered_{$filter.type}_range_min" type="hidden" value="{$filter.values[0]}"/>
  209. <input class="layered_{$filter.type}_range" id="layered_{$filter.type}_range_max" type="hidden" value="{$filter.values[1]}"/>
  210. </li>
  211. {/if}
  212. {/if}
  213. {/if}
  214. {if count($filter.values) > $filter.filter_show_limit && $filter.filter_show_limit > 0 && $filter.filter_type != 2}
  215. <span class="hide-action more">{l s='Show more' mod='blocklayered'}</span>
  216. <span class="hide-action less">{l s='Show less' mod='blocklayered'}</span>
  217. {/if}
  218. </ul>
  219. </div>
  220. <script type="text/javascript">
  221. {literal}
  222. $('.layered_{/literal}{$filter.type}{literal}').show();
  223. {/literal}
  224. </script>
  225. {/if}
  226. {/foreach}
  227. </div>
  228. <input type="hidden" name="id_category_layered" value="{$id_category_layered}" />
  229. {foreach from=$filters item=filter}
  230. {if $filter.type_lite == 'id_attribute_group' && isset($filter.is_color_group) && $filter.is_color_group && $filter.filter_type != 2}
  231. {foreach from=$filter.values key=id_value item=value}
  232. {if isset($value.checked)}
  233. <input type="hidden" name="layered_id_attribute_group_{$id_value}" value="{$id_value}_{$filter.id_key}" />
  234. {/if}
  235. {/foreach}
  236. {/if}
  237. {/foreach}
  238. </form>
  239. </div>
  240. <div id="layered_ajax_loader" style="display: none;">
  241. <p><img src="{$img_ps_dir}loader.gif" alt="" /><br />{l s='Loading...' mod='blocklayered'}</p>
  242. </div>
  243. </div>
  244. {else}
  245. <div id="layered_block_left" class="block">
  246. <div class="block_content">
  247. <form action="#" id="layered_form">
  248. <input type="hidden" name="id_category_layered" value="{$id_category_layered}" />
  249. </form>
  250. </div>
  251. <div style="display: none;">
  252. <p style=""><img src="{$img_ps_dir}loader.gif" alt="" /><br />{l s='Loading...' mod='blocklayered'}</p>
  253. </div>
  254. </div>
  255. {/if}
  256. <!-- /Block layered navigation module -->