Master-X
Форум | Новости | Статьи
Главная » Форум » Линк Листы » 
Тема: XPL-2 + Smarty. Как выводить категории колонками?
цитата
12/12/07 в 16:25
 Leka
Xpowerlinks 2 использует Смарти в шаблонах.
Может быть кто-то знает как средствами смарти разбивать автоматически листинг категорий на несколько колонок
Категории выводятся в шаблоне таким кодом:
Код:

{section name=c loop=$categories}
   <a href="{$categories[c].url}">{$categories[c].name}</a><br>
{sectionelse}
   No categories
{/section}

Как научить Смарти рабивать этот листинг на несколько td?
Я думаю нужно считать шаги цикла и через определенное количество шагов ставить td
Но как это сделать я хз...
цитата
12/12/07 в 16:34
 KVS Support
Примерно так:

Код:
<tr><td>
   {section name=c loop=$categories}
      {if $smarty.section.c.iteration % 4 == 0}</td><td>{/if}
      <a href="{$categories[c].url}">{$categories[c].name}</a><br>
   {sectionelse}
         No categories
   {/section}
</td></tr>   
цитата
12/12/07 в 16:46
 Leka
Спасибо! Практически работает.
Махонькая незадача:
Я понял в данном случа 4 это число строк в колонке...
Только почему то получается первая колонка на 1 строку меньше чем нужно, а последняя колонка - всего 1 строка
цитата
12/12/07 в 18:11
 KVS Support


По ходу просто местами поменять надо строки:

Код:

<tr><td>
   {section name=c loop=$categories}
      <a href="{$categories[c].url}">{$categories[c].name}</a><br>
      {if $smarty.section.c.iteration % 4 == 0}</td><td>{/if}
   {sectionelse}
         No categories
   {/section}
</td></tr> 


А кол-во столбцов легко сменить - 4-ка в коде (% 4) - и отвечает за них.
цитата
12/12/07 в 19:04
 Leka
Громадное спасибо!
+3 два раза
цитата
12/12/07 в 19:20
 Leka
Кстати еще назрел вопросик:
А можно ли средствами Смарти выводить в определенной очередности данные из двух секций?

К примеру есть секция {section name=li loop=$links} и секция {section name=ban loop=$baners}

Можно ли научить Смартю выводить 9-10 строк из первой секции а потом лепить одну строку из второй? Типа чередование 10:1
цитата
12/12/07 в 19:36
 KVS Support


Под конкретную задачу решение можно простое подобрать. К примеру зная что у тебя всегда 3 баннера есть в $baners можно сделаь так:

Код:
{section name=li loop=$links}
   {$links[li].smth_data}
   {if $smarty.section.li.iteration == 3} {$baners[0].banner_url_or_other_field}  {/if}
   {if $smarty.section.li.iteration == 6} {$baners[1].banner_url_or_other_field}  {/if}
   {if $smarty.section.li.iteration == 9} {$baners[2].banner_url_or_other_field}  {/if}
{/section}

На самом деле этот код будет работать и есть у тебя меньше 3-х или больше 3-х баннеров - просто в первом случае ничего не выведется а во втором не выведется более 3-х баннеров - т.е. на самом деле этот вариант может быть довольно удобным. В общем случае тоже можно подобную задачу записать, но в синтаксисе могу ошибиться на вскидку:

Код:
{assign var=li_counter value=`0`}
{section name=li loop=$links}
   {$links[li].smth_data}
   {if $smarty.section.li.iteration % 3 == 0}
      {if $baners[li_counter].banner_url_or_other_field!=''}
         {$baners[li_counter].banner_url_or_other_field}
         {assign var=li_counter value=`$li_counter+1`}
      {/if}
   {/if}
{/section}
цитата
13/12/07 в 13:01
 Wetall2
Мне необходимо сделать так, чтоб в листинге с фришниками выводились линки и на платники, к примеру каждая пятая линка спонсорская, может кто нить знает код?

В мануале написано что это возможно, цитирую:

• Листинг спонсорских ссылок может быть выведен на страницу либо отдельно от основного, либо «подмешан» в основной листинг с визуальным «выделением» спонсорских ссылок.
цитата
13/12/07 в 13:41
 dDan
А я и не знал что там смарти... Это очень даже неплохо можно многое сделать, удобный шаблонизатор.
цитата
13/12/07 в 20:17
 Vasilich
Wetall2 писал:
Мне необходимо сделать так, чтоб в листинге с фришниками выводились линки и на платники, к примеру каждая пятая линка спонсорская, может кто нить знает код?

В мануале написано что это возможно, цитирую:

• Листинг спонсорских ссылок может быть выведен на страницу либо отдельно от основного, либо «подмешан» в основной листинг с визуальным «выделением» спонсорских ссылок.


Коль пошла такая пьянка, присоеденяюсь к вопросу, пробовал, крутил, получается в листинге либо скопом платники вверху и потом фрихи , либо внизу платники , а так чтобы платниками листинг размешать , не получилось, мож кто код кинет?


Эта страница в полной версии