Модуль Полезные модификации Prestashop 1.7

fortuner

Хранитель порядка
Регистрация
26 Июн 2012
Сообщения
631
Реакции
1.241
Делимся полезными модификациями, хаками, допиленными модулями (или самописными) для Prestashop 1.7.
Предлагаю скопировать правила из темы модулей Prestashop, чтобы в теме было проще ориентироваться.
Правила:
1. Увидели чужую ошибку - исправьте :)
2. Запросы "а сделайте мне то-то" пожалуйста пишите в тему "Помощь с Prestashop".
3. Не спамьте, пусть раздел будет соответствовать своему названию :)
4. Не пишите "спасибо, должен навеки вечные!", просто нажмите "спасибо".
 
Можно еще так, тогда № заказа будет ID
это под 1.6 на 1.7 не проверял
тот же classes/order/Order.php
Код:
    {
        /*return strtoupper(Tools::passwdGen(9, 'NUMERIC'));*/
        {
        $query = new DbQuery();
        $query->select('MAX(id_order) as max');
        $query->from('orders');
        $query->where('id_cart' > 0);
        $order = Db::getInstance()->getRow($query);
        $reference = $order['max'] +1 ;
        return sprintf('%06d', $reference);
     }
    }
 
Последнее редактирование:
Всем привет
у меня вот такая штука
<h1 class="h1">{$page.meta.keywords}{$category.name}</h1>

Как сделать, чтобы {$page.meta.keywords} выводился вместо {$category.name}, если в keywords есть какое-то значение?

Или может есть какой готовый модуль для этих целей?
Мне нужно заголовкам категорий указывать свое название
 
Раскрываем текущую категорию в дереве категорий - модуль ps_categorytree
Спросили Для просмотра ссылки Войди или Зарегистрируйся
В настройках модуля поставить "Отображать главную категорию", чтобы отображалось все дерево категорий
В файле
\themes\classic\modules\ps_categorytree\views\templates\hook\ps_categorytree.tpl
Изменить две строчки: 39 и 50
Полный код файла, можно ctrl+c - ctrl-v:
Код:
{function name="categories" nodes=[] depth=0}
  {strip}
    {if $nodes|count}
      <ul class="category-sub-menu">
        {foreach from=$nodes item=node}
          <li data-depth="{$depth}">
            {if $depth===0}
              <a href="{$node.link}">{$node.name}</a>
              {if $node.children}
                <div class="navbar-toggler collapse-icons" data-toggle="collapse" data-target="#exCollapsingNavbar{$node.id}">
                  <i class="material-icons add">&#xE145;</i>
                  <i class="material-icons remove">&#xE15B;</i>
                </div>
                {* Раскрываем текущую категорию, если у нее есть дочерние *}
                <div class="collapse{if ($category.id|intval) ge ($node.id|intval)} in{/if}" id="exCollapsingNavbar{$node.id}">
                  {categories nodes=$node.children depth=$depth+1}
                </div>
              {/if}
            {else}
              <a class="category-sub-link" href="{$node.link}">{$node.name}</a>
              {if $node.children}
                <span class="arrows" data-toggle="collapse" data-target="#exCollapsingNavbar{$node.id}">
                  <i class="material-icons arrow-right">&#xE315;</i>
                  <i class="material-icons arrow-down">&#xE313;</i>
                </span>
                {* Раскрываем родительскую категорию, если находимся в дочерней *}
                <div class="collapse{if ($node.id|intval eq $category.id_parent|intval) or ($node.id|intval eq $category.id|intval)}  in{/if}" id="exCollapsingNavbar{$node.id}">
                  {categories nodes=$node.children depth=$depth+1}
                </div>
              {/if}
            {/if}
          </li>
        {/foreach}
      </ul>
    {/if}
  {/strip}
{/function}

<div class="block-categories hidden-sm-down">
  <ul class="category-top-menu">
    <li><a class="text-uppercase h6" href="{$categories.link nofilter}">{$categories.name}</a></li>
    <li>{categories nodes=$categories.children}</li>
  </ul>
</div>
Теперь дерево категорий будет раскрываться, показывая дочерние категории или соседние, если у текущей нет дочерних.

Добрый день!
Вроде бы сделал всё, как указано. Не не работает.
Заменил содержимое файла \themes\transformer\modules\ps_categorytree\views\templates\hook\ps_categorytree.tpl
(у меня тема transformer)
Почистил кеш.
Никакого толку.
Подскажите, пожалуйста, в чем может быть проблема?
 
Иногда полезно почистить кеш, например, можно сделать задачу CRON, которая будет выполнять этот небольшой скрипт один или несколько раз в день - в зависимости от ваших потребностей.

1. Создать PHP - файл в вашем магазине в корне каталога и назовите его , как вы хотите - в данном примере это будет cache_clear.php название произвольное
2. Откройте этот файл и вставите код
Код:
<?php
include('./config/config.inc.php');
$token = Tools::getValue('token');
if($token == "vBnmmP3218") {
    Tools::clearSmartyCache();
    Tools::clearXMLCache();
    Media::clearCache();
    Tools::generateIndex();
    echo "Cache clear ended successfully.";
} else {
    echo "Wrong security token - cache clear failed.";
}
?>

3. Измените строку с токеном vBnmmP3218 на ваш случайный код для безопасности.
4. Сохраните файл.
5. Добавить URL скрипта на ваш CRON менеджер задач или выполнить его непосредственно через браузер в формате: Для просмотра ссылки Войди или Зарегистрируйся/cache_clear.php?token=vBnmmP3218
скрипт не проверялся, взято с престакрафт
 
В стандартном шаблоне 1.7 номера телефонов не кликабельны на мобилках

Сделать номер телефона кликабельным можно с помощью обыкновенной ссылки, но со специальным адресом:

<a href="tel:+78142332211">+7(814)-233-22-11</a>
Или:

<a href="tel:+7 (8142) 33 22 11">Позвоните нам</a>
То есть в атрибуте href должно быть указано: tel: и номер телефона в формате, который вам нужен.

Выглядеть это будет так:

Для просмотра ссылки Войди или Зарегистрируйся

После этого пользователи мобильных устройств смогут просто кликнуть на ссылку и, не совершая дополнительных действий, позвонить вам.

Для престы контактов магазина это файл шаблон\templates\cms\stores.tpl 71 строка
<ul class="card-block">
{if $store.phone}
<li><i class="material-icons">&#xE0B0;</i><a href="tel:+790********">{$store.phone}</a></li> - Если стандартный код заменить на этот то телефон будет кликабельным.
{/if}


Вопрос для сообщества и тех кто силен в PHP как сделать кликабельными телефоны в стандартном фаблоне в шапке:
В шапке - шаблон\modules\ps_contactinfo\nav.tpl
Вот такой код
<div id="_desktop_contact_link">
<div id="contact-link">
{if $contact_infos.phone}
{* [1][/1] is for a HTML tag. *}
{l
s='Call us: [1]%phone%[/1]'
sprintf=[
'[1]' => '<span>',
'[/1]' => '</span>',
'%phone%' => $contact_infos.phone
]
d='Shop.Theme.Global'
}
{else}
<a href="{$urls.pages.contact}">{l s='Contact us' d='Shop.Theme.Global'}</a>
{/if}
</div>
</div>

Подскажите кто знает PHP, куда тут вставить tel: чтобы тоже кликабельно было ? И если в верхней строке нужно 2 номера вывести, то как добавить и куда переменную, чтобы настроить оба тедлефона ?? Может просто где '%phone%' => $contact_infos.phone вместо $contact_infos.phone впихнуть 2 номера телефона с tel: ??
 
Для автоматической вставки Вам придется разбирать массив и сравнивать по вхождению. Это не очень тяжело, но надо ли? Обновите престу - все потеряется.
Куда легче сделать это отдельным блоком html. Тем более, что делается это один раз, а показывается на всех страницах.
 
У меня возникают проблемы с отображением изображений с помощью этого кода. Бывают идеи? Это может быть тема, а не проблема с кодом?
The code working fine, but how i can change welcome message from Russian language to english?
 
На странице заказов можно как бы их сгрупировать по дате, добавляя Заказы за такое то число и т.д. Так удобней пялится в эту простыню.

Нужно переопределить файл-хелпер листинга контента (list_content.tpl). Для PS1.6 и PS1.7 положить нужно в
/override/controllers/admin/templates/orders/helpers/list/

Измененный файла из PS1.6.1.23 (list_content.tpl)

Код:
{*
* 2007-2017 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* 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 http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2017 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
{capture name='tr_count'}{counter name='tr_count'}{/capture}
<tbody>
{if count($list)}
{*Дата первого заказа из цикла*}
{assign var='day_split' value=$list[0].date_add|date_format:"%e"}
{foreach $list AS $index => $tr}
    {*Старт разбить по дням*}
    {assign var='day_order' value=$tr.date_add|date_format:"%e"}
    {if $day_split != $day_order || $index == 0}
        <tr>
            {assign var='colspan_by_day' value=count($fields_display)+1}
            {if $has_actions}{assign var='colspan_by_day' value=$colspan_by_day+1}{/if}
            <td colspan="{$colspan_by_day}" style="font-size: 16px; background-color: #f1f1f1; text-align: center;">Заказы за {$tr.date_add|date_format:"%d %B %Y"}</td>
        </tr>
    {/if}
    {assign var='day_split' value=$day_order}
    {*Конец разбить по дням*}
    <tr{if $position_identifier} id="tr_{$position_group_identifier}_{$tr.$identifier}_{if isset($tr.position['position'])}{$tr.position['position']}{else}0{/if}"{/if} class="{if isset($tr.class)}{$tr.class}{/if} {if $tr@iteration is odd by 1}odd{/if}"{if isset($tr.color) && $color_on_bg} style="background-color: {$tr.color}"{/if} >
        {if $bulk_actions && $has_bulk_actions}
            <td class="row-selector text-center">
                {if isset($list_skip_actions.delete)}
                    {if !in_array($tr.$identifier, $list_skip_actions.delete)}
                        <input type="checkbox" name="{$list_id}Box[]" value="{$tr.$identifier}"{if isset($checked_boxes) && is_array($checked_boxes) && in_array({$tr.$identifier}, $checked_boxes)} checked="checked"{/if} class="noborder" />
                    {/if}
                {else}
                    <input type="checkbox" name="{$list_id}Box[]" value="{$tr.$identifier}"{if isset($checked_boxes) && is_array($checked_boxes) && in_array({$tr.$identifier}, $checked_boxes)} checked="checked"{/if} class="noborder" />
                {/if}
            </td>
        {/if}
        {foreach $fields_display AS $key => $params}
            {block name="open_td"}
                <td
                    {if isset($params.position)}
                        id="td_{if !empty($position_group_identifier)}{$position_group_identifier}{else}0{/if}_{$tr.$identifier}{if $smarty.capture.tr_count > 1}_{($smarty.capture.tr_count - 1)|intval}{/if}"
                    {/if}
                    class="{strip}{if !$no_link}pointer{/if}
                    {if isset($params.position) && $order_by == 'position'  && $order_way != 'DESC'} dragHandle{/if}
                    {if isset($params.class)} {$params.class}{/if}
                    {if isset($params.align)} {$params.align}{/if}{/strip}"
                    {if (!isset($params.position) && !$no_link && !isset($params.remove_onclick))}
                        onclick="document.location = '{$current_index|escape:'html':'UTF-8'}&amp;{$identifier|escape:'html':'UTF-8'}={$tr.$identifier|escape:'html':'UTF-8'}{if $view}&amp;view{else}&amp;update{/if}{$table|escape:'html':'UTF-8'}{if $page > 1}&amp;page={$page|intval}{/if}&amp;token={$token|escape:'html':'UTF-8'}'">
                    {else}
                    >
                {/if}
            {/block}
            {block name="td_content"}
                {if isset($params.prefix)}{$params.prefix}{/if}
                {if isset($params.badge_success) && $params.badge_success && isset($tr.badge_success) && $tr.badge_success == $params.badge_success}<span class="badge badge-success">{/if}
                {if isset($params.badge_warning) && $params.badge_warning && isset($tr.badge_warning) && $tr.badge_warning == $params.badge_warning}<span class="badge badge-warning">{/if}
                {if isset($params.badge_danger) && $params.badge_danger && isset($tr.badge_danger) && $tr.badge_danger == $params.badge_danger}<span class="badge badge-danger">{/if}
                {if isset($params.color) && isset($tr[$params.color])}
                    <span class="label color_field" style="background-color:{$tr[$params.color]};color:{if Tools::getBrightness($tr[$params.color]) < 128}white{else}#383838{/if}">
                {/if}
                {if isset($tr.$key)}
                    {if isset($params.active)}
                        {$tr.$key}
                    {elseif isset($params.callback)}
                        {if isset($params.maxlength) && Tools::strlen($tr.$key) > $params.maxlength}
                            <span title="{$tr.$key}">{$tr.$key|truncate:$params.maxlength:'...'}</span>
                        {else}
                            {$tr.$key}
                        {/if}
                    {elseif isset($params.activeVisu)}
                        {if $tr.$key}
                            <i class="icon-check-ok"></i> {l s='Enabled'}
                        {else}
                            <i class="icon-remove"></i> {l s='Disabled'}
                        {/if}
                    {elseif isset($params.position)}
                        {if !$filters_has_value && $order_by == 'position' && $order_way != 'DESC'}
                            <div class="dragGroup">
                                <div class="positions">
                                    {$tr.$key.position + 1}
                                </div>
                            </div>
                        {else}
                            {$tr.$key.position + 1}
                        {/if}
                    {elseif isset($params.image)}
                        {$tr.$key}
                    {elseif isset($params.icon)}
                        {if is_array($tr[$key])}
                            {if isset($tr[$key]['class'])}
                                <i class="{$tr[$key]['class']}"></i>
                            {else}
                                <img src="../img/admin/{$tr[$key]['src']}" alt="{$tr[$key]['alt']}" title="{$tr[$key]['alt']}" />
                            {/if}
                        {/if}
                    {elseif isset($params.type) && $params.type == 'price'}
                        {if isset($tr.id_currency)}
                            {displayPrice price=$tr.$key currency=$tr.id_currency}
                        {else}
                            {displayPrice price=$tr.$key}
                        {/if}
                    {elseif isset($params.float)}
                        {$tr.$key}
                    {elseif isset($params.type) && $params.type == 'date'}
                        {dateFormat date=$tr.$key full=0}
                    {elseif isset($params.type) && $params.type == 'datetime'}
                        {dateFormat date=$tr.$key full=1}
                    {elseif isset($params.type) && $params.type == 'decimal'}
                        {$tr.$key|string_format:"%.2f"}
                    {elseif isset($params.type) && $params.type == 'percent'}
                        {$tr.$key} {l s='%'}
                    {* If type is 'editable', an input is created *}
                    {elseif isset($params.type) && $params.type == 'editable' && isset($tr.id)}
                        <input type="text" name="{$key}_{$tr.id}" value="{$tr.$key|escape:'html':'UTF-8'}" class="{$key}" />
                    {elseif $key == 'color'}
                        {if !is_array($tr.$key)}
                        <div style="background-color: {$tr.$key};" class="attributes-color-container"></div>
                        {else} {*TEXTURE*}
                        <img src="{$tr.$key.texture}" alt="{$tr.name}" class="attributes-color-container" />
                        {/if}
                    {elseif isset($params.maxlength) && Tools::strlen($tr.$key) > $params.maxlength}
                        <span title="{$tr.$key|escape:'html':'UTF-8'}">{$tr.$key|truncate:$params.maxlength:'...'|escape:'html':'UTF-8'}</span>
                    {else}
                        {$tr.$key|escape:'html':'UTF-8'}
                    {/if}
                {else}
                    {block name="default_field"}--{/block}
                {/if}
                {if isset($params.suffix)}{$params.suffix}{/if}
                {if isset($params.color) && isset($tr.color)}
                    </span>
                {/if}
                {if isset($params.badge_danger) && $params.badge_danger && isset($tr.badge_danger) && $tr.badge_danger == $params.badge_danger}</span>{/if}
                {if isset($params.badge_warning) && $params.badge_warning && isset($tr.badge_warning) && $tr.badge_warning == $params.badge_warning}</span>{/if}
                {if isset($params.badge_success) && $params.badge_success && isset($tr.badge_success) && $tr.badge_success == $params.badge_success}</span>{/if}
            {/block}
            {block name="close_td"}
                </td>
            {/block}
        {/foreach}

    {if $shop_link_type}
        <td title="{$tr.shop_name}">
            {if isset($tr.shop_short_name)}
                {$tr.shop_short_name}
            {else}
                {$tr.shop_name}
            {/if}
        </td>
    {/if}
    {if $has_actions}
        <td class="text-right">
            {assign var='compiled_actions' value=array()}
            {foreach $actions AS $key => $action}
                {if isset($tr.$action)}
                    {if $key == 0}
                        {assign var='action' value=$action}
                    {/if}
                    {if $action == 'delete' && $actions|@count > 2}
                        {$compiled_actions[] = 'divider'}
                    {/if}
                    {$compiled_actions[] = $tr.$action}
                {/if}
            {/foreach}
            {if $compiled_actions|count > 0}
                {if $compiled_actions|count > 1}<div class="btn-group-action">{/if}
                <div class="btn-group pull-right">
                    {$compiled_actions[0]}
                    {if $compiled_actions|count > 1}
                    <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                        <i class="icon-caret-down"></i>&nbsp;
                    </button>
                        <ul class="dropdown-menu">
                        {foreach $compiled_actions AS $key => $action}
                            {if $key != 0}
                            <li{if $action == 'divider' && $compiled_actions|count > 3} class="divider"{/if}>
                                {if $action != 'divider'}{$action}{/if}
                            </li>
                            {/if}
                        {/foreach}
                        </ul>
                    {/if}
                </div>
                {if $compiled_actions|count > 1}</div>{/if}
            {/if}
        </td>
    {/if}
    </tr>
{/foreach}
{else}
    <tr>
        <td class="list-empty" colspan="{count($fields_display)+1}">
            <div class="list-empty-msg">
                <i class="icon-warning-sign list-empty-icon"></i>
                {l s='No records found'}
            </div>
        </td>
    </tr>
{/if}
</tbody>
 
На странице заказов можно как бы их сгрупировать по дате, добавляя Заказы за такое то число и т.д. Так удобней пялится в эту простыню.

Нужно переопределить файл-хелпер листинга контента (list_content.tpl). Для PS1.7 положить нужно в
/override/controllers/admin/templates/orders/helpers/list/

Измененный файла из PS1.7.5.0 (list_content.tpl)
Код:
{**
* 2007-2018 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/OSL-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 http://www.prestashop.com for more information.
*
* @author    PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2018 PrestaShop SA
* @license   https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
{capture name='tr_count'}{counter name='tr_count'}{/capture}
<tbody>
{if count($list)}
{*Дата первого заказа из цикла*}
{assign var='day_split' value=$list[0].date_add|date_format:"%e"}
{foreach $list AS $index => $tr}
    {*Старт разбить по дням*}
    {assign var='day_order' value=$tr.date_add|date_format:"%e"}
    {if $day_split != $day_order || $index == 0}
        <tr>
            {assign var='colspan_by_day' value=count($fields_display)+1}
            {if $has_actions}{assign var='colspan_by_day' value=$colspan_by_day+1}{/if}
            <td colspan="{$colspan_by_day}" style="font-size: 16px; background-color: #f1f1f1; text-align: center;">Заказы за {$tr.date_add|date_format:"%d %B %Y"}</td>
        </tr>
    {/if}
    {assign var='day_split' value=$day_order}
    {*Конец разбить по дням*}
    <tr{if $position_identifier} id="tr_{$position_group_identifier}_{$tr.$identifier}_{if isset($tr.position['position'])}{$tr.position['position']}{else}0{/if}"{/if} class="{if isset($tr.class)}{$tr.class}{/if} {if $tr@iteration is odd by 1}odd{/if}"{if isset($tr.color) && $color_on_bg} style="background-color: {$tr.color}"{/if} >
        {if $bulk_actions && $has_bulk_actions}
            <td class="row-selector text-center">
                {if isset($list_skip_actions.delete)}
                    {if !in_array($tr.$identifier, $list_skip_actions.delete)}
                        <input type="checkbox" name="{$list_id}Box[]" value="{$tr.$identifier}"{if isset($checked_boxes) && is_array($checked_boxes) && in_array({$tr.$identifier}, $checked_boxes)} checked="checked"{/if} class="noborder" />
                    {/if}
                {else}
                    <input type="checkbox" name="{$list_id}Box[]" value="{$tr.$identifier}"{if isset($checked_boxes) && is_array($checked_boxes) && in_array({$tr.$identifier}, $checked_boxes)} checked="checked"{/if} class="noborder" />
                {/if}
            </td>
        {/if}
        {foreach $fields_display AS $key => $params}
            {block name="open_td"}
                <td
                    {if isset($params.position)}
                        id="td_{if !empty($position_group_identifier)}{$position_group_identifier}{else}0{/if}_{$tr.$identifier}{if $smarty.capture.tr_count > 1}_{($smarty.capture.tr_count - 1)|intval}{/if}"
                    {/if}
                    class="{strip}{if !$no_link}pointer{/if}
                    {if isset($params.position) && $order_by == 'position'  && $order_way != 'DESC'} dragHandle{/if}
                    {if isset($params.class)} {$params.class}{/if}
                    {if isset($params.align)} {$params.align}{/if}{/strip}"
                    {if (!isset($params.position) && !$no_link && !isset($params.remove_onclick))}
                        onclick="document.location = '{$current_index|addslashes|escape:'html':'UTF-8'}&amp;{$identifier|escape:'html':'UTF-8'}={$tr.$identifier|escape:'html':'UTF-8'}{if $view}&amp;view{else}&amp;update{/if}{$table|escape:'html':'UTF-8'}{if $page > 1}&amp;page={$page|intval}{/if}&amp;token={$token|escape:'html':'UTF-8'}'">
                    {else}
                    >
                {/if}
            {/block}
            {block name="td_content"}
                {if isset($params.prefix)}{$params.prefix}{/if}
                {if isset($params.badge_success) && $params.badge_success && isset($tr.badge_success) && $tr.badge_success == $params.badge_success}<span class="badge badge-success">{/if}
                {if isset($params.badge_warning) && $params.badge_warning && isset($tr.badge_warning) && $tr.badge_warning == $params.badge_warning}<span class="badge badge-warning">{/if}
                {if isset($params.badge_danger) && $params.badge_danger && isset($tr.badge_danger) && $tr.badge_danger == $params.badge_danger}<span class="badge badge-danger">{/if}
                {if isset($params.color) && isset($tr[$params.color])}
                    <span class="label color_field" style="background-color:{$tr[$params.color]};color:{if Tools::getBrightness($tr[$params.color]) < 128}white{else}#383838{/if}">
                {/if}
                {if isset($tr.$key)}
                    {if isset($params.active)}
                        {$tr.$key}
                    {elseif isset($params.callback)}
                        {if isset($params.maxlength) && Tools::strlen($tr.$key) > $params.maxlength}
                            <span title="{$tr.$key}">{$tr.$key|truncate:$params.maxlength:'...'}</span>
                        {else}
                            {$tr.$key}
                        {/if}
                    {elseif isset($params.activeVisu)}
                        {if $tr.$key}
                            <i class="icon-check-ok"></i> {l s='Enabled' d='Admin.Global'}
                        {else}
                            <i class="icon-remove"></i> {l s='Disabled' d='Admin.Global'}
                        {/if}
                    {elseif isset($params.position)}
                        {if !$filters_has_value && $order_by == 'position' && $order_way != 'DESC'}
                            <div class="dragGroup">
                                <div class="positions">
                                    {$tr.$key.position + 1}
                                </div>
                            </div>
                        {else}
                            {$tr.$key.position + 1}
                        {/if}
                    {elseif isset($params.image)}
                        {$tr.$key}
                    {elseif isset($params.icon)}
                        {if is_array($tr[$key])}
                            {if isset($tr[$key]['class'])}
                                <i class="{$tr[$key]['class']}"></i>
                            {else}
                                <img src="../img/admin/{$tr[$key]['src']}" alt="{$tr[$key]['alt']}" title="{$tr[$key]['alt']}" />
                            {/if}
                        {/if}
                    {elseif isset($params.type) && $params.type == 'price'}
                        {if isset($tr.id_currency)}
                            {displayPrice price=$tr.$key currency=$tr.id_currency}
                        {else}
                            {displayPrice price=$tr.$key}
                        {/if}
                    {elseif isset($params.float)}
                        {$tr.$key}
                    {elseif isset($params.type) && $params.type == 'date'}
                        {dateFormat date=$tr.$key full=0}
                    {elseif isset($params.type) && $params.type == 'datetime'}
                        {dateFormat date=$tr.$key full=1}
                    {elseif isset($params.type) && $params.type == 'decimal'}
                        {$tr.$key|string_format:"%.2f"}
                    {elseif isset($params.type) && $params.type == 'percent'}
                        {$tr.$key} {l s='%'}
                    {elseif isset($params.type) && $params.type == 'bool'}
            {if $tr.$key == 1}
              {l s='Yes' d='Admin.Global'}
            {elseif $tr.$key == 0 && $tr.$key != ''}
              {l s='No' d='Admin.Global'}
            {/if}
                    {* If type is 'editable', an input is created *}
                    {elseif isset($params.type) && $params.type == 'editable' && isset($tr.id)}
                        <input type="text" name="{$key}_{$tr.id}" value="{$tr.$key|escape:'html':'UTF-8'}" class="{$key}" />
                    {elseif $key == 'color'}
                        {if !is_array($tr.$key)}
                        <div style="background-color: {$tr.$key};" class="attributes-color-container"></div>
                        {else} {*TEXTURE*}
                        <img src="{$tr.$key.texture}" alt="{$tr.name}" class="attributes-color-container" />
                        {/if}
                    {elseif isset($params.maxlength) && Tools::strlen($tr.$key) > $params.maxlength}
                        <span title="{$tr.$key|escape:'html':'UTF-8'}">{$tr.$key|truncate:$params.maxlength:'...'|escape:'html':'UTF-8'}</span>
                    {else}
                        {$tr.$key|escape:'html':'UTF-8'}
                    {/if}
                {else}
                    {block name="default_field"}--{/block}
                {/if}
                {if isset($params.suffix)}{$params.suffix}{/if}
                {if isset($params.color) && isset($tr.color)}
                    </span>
                {/if}
                {if isset($params.badge_danger) && $params.badge_danger && isset($tr.badge_danger) && $tr.badge_danger == $params.badge_danger}</span>{/if}
                {if isset($params.badge_warning) && $params.badge_warning && isset($tr.badge_warning) && $tr.badge_warning == $params.badge_warning}</span>{/if}
                {if isset($params.badge_success) && $params.badge_success && isset($tr.badge_success) && $tr.badge_success == $params.badge_success}</span>{/if}
            {/block}
            {block name="close_td"}
                </td>
            {/block}
        {/foreach}

    {if $multishop_active && $shop_link_type}
        <td title="{$tr.shop_name}">
            {if isset($tr.shop_short_name)}
                {$tr.shop_short_name}
            {else}
                {$tr.shop_name}
            {/if}
        </td>
    {/if}
    {if $has_actions}
        <td class="text-right">
            {assign var='compiled_actions' value=array()}
            {foreach $actions AS $key => $action}
                {if isset($tr.$action)}
                    {if $key == 0}
                        {assign var='action' value=$action}
                    {/if}
                    {if $action == 'delete' && $actions|@count > 2}
                        {$compiled_actions[] = 'divider'}
                    {/if}
                    {$compiled_actions[] = $tr.$action}
                {/if}
            {/foreach}
            {if $compiled_actions|count > 0}
                {if $compiled_actions|count > 1}<div class="btn-group-action">{/if}
                <div class="btn-group pull-right">
                    {$compiled_actions[0]}
                    {if $compiled_actions|count > 1}
                    <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                        <i class="icon-caret-down"></i>&nbsp;
                    </button>
                        <ul class="dropdown-menu">
                        {foreach $compiled_actions AS $key => $action}
                            {if $key != 0}
                            <li{if $action == 'divider' && $compiled_actions|count > 3} class="divider"{/if}>
                                {if $action != 'divider'}{$action}{/if}
                            </li>
                            {/if}
                        {/foreach}
                        </ul>
                    {/if}
                </div>
                {if $compiled_actions|count > 1}</div>{/if}
            {/if}
        </td>
    {/if}
    </tr>
{/foreach}
{else}
    <tr>
        <td class="list-empty" colspan="{count($fields_display)+1}">
            <div class="list-empty-msg">
                <i class="icon-warning-sign list-empty-icon"></i>
                {l s='No records found'}
            </div>
        </td>
    </tr>
{/if}
</tbody>
 
Назад
Сверху