Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Вывод списка подраздела
« : 29 Марта 2012, 22:40:23 »
Помогите разобраться, пытаюсь вывести список пунктов,
выводится шаблоном /tpls/catalog/default.tpl
Мне в списке необходимо оформить графически, четные пункты из списка по одному шаблону выводились, нечетные по другому
Нашел как можно сделать, ниже ссылка
http://help-dev.umi-cms.ru/catalog.getCategoryList.html#tplDesc
%list-class-odd%

    в случае, если элемент четный, выводит "odd"
%list-class-even%

    в случае, если элемент нечетный, выводит "even"
$FORMS['objects_block'] = <<<END

<table class="table_zakup">
<tr>
<th class="td1"><div>дата</div></th>
<th class="td2"><div>предмет закупки</div></th>
</tr>
<div umi:method="catalog" umi:module="category" umi:element-id="%category_id%">

                            %list-class-odd%
                            %list-class-even%
</div>                                                                  
</table>

<div style="clear: both;"></div>
<br /><br />

END;

$FORMS['objects_block_odd'] = <<<END

%catalog viewObject(%id%, 'preview_1')%

END;
$FORMS['objects_block_even'] = <<<END

%catalog viewObject(%id%, 'preview_2')%

END;
Как правильно их использовать в шаблоне?
« Последнее редактирование: 31 Марта 2012, 22:55:23 от john »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Вывод списка подраздела
« Ответ #1 : 02 Апреля 2012, 09:59:19 »
%list-class-odd% и %list-class-even% выводят строчки "odd"  или "even" но это просто строчки, никаких шаблонов вида $FORMS['objects_block_odd'] = <<<END система не будет обрабатывать. Эти строчки в основном используются в классах, то есть в вашем шаблоне /tpls/catalog/default.tpl делаем все как обычно.
$FORMS['objects_block'] = <<<END
%lines%
END;


$FORMS['objects_block_line'] = <<<END
%catalog viewObject(%id%, 'preview')%
END;

А вот в шаблоне /tpls/catalog/preview.tpl мы уже можем использовать макросы %list-class-odd% и %list-class-even% прописывая их в class к dom элементу div (ищи вставку вида line_%list-class-odd%)

<?php
$FORMS = Array();

$FORMS['view_block_empty'] = <<<END

END;

$FORMS['view_block'] = <<<END
<div class="item line_%list-class-odd%" umi:element-id="%id%">

<table border="0">
<tr>
<td style="vertical-align:top;" umi:element-id="%id%" umi:field-name="photo">
%data getProperty(%id%, 'photo', 'preview_image')%
</td>
<td style="padding-left: 15px; vertical-align:top;">
<a href="%link%" umi:element-id="%id%" umi:field-name="name" class="title">%name%</a>
%data getProperty(%id%, 'price', 'catalog_preview')%
%data getPropertyGroup(%id%, 'short_info', 'catalog_preview')%
</td>
</tr>
</table>


<div style="clear: both; margin-top: 10px; padding-bottom: 10px;">
%emarket basketAddLink(%id%)%
<a href="%pre_lang%/emarket/addToCompare/%id%/" rel="nofollow">Добавить к сравнению</a>
| <a href="%link%#comments" >Комментарии (%comments countComments(%id%)%)</a>
</div>
</div>
END;
?>



теперь в css мы можем прописать правило для .line_odd, в котором будут визуальные отличия, например фон этого элемента темнее и т.д.

Или можно, используя этот класс, средствами js делать какие-то другие изменения и т.п.
« Последнее редактирование: 02 Апреля 2012, 10:01:49 от admin »