Реклама на сайте Advertise with us

XPL-2 + Smarty. Как выводить категории колонками?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 30.10.06
Сообщения: 242
Рейтинг: 248

Ссылка на сообщениеДобавлено: 12/12/07 в 16:25       Ответить с цитатойцитата 

Xpowerlinks 2 использует Смарти в шаблонах.
Может быть кто-то знает как средствами смарти разбивать автоматически листинг категорий на несколько колонок
Категории выводятся в шаблоне таким кодом:
Код:

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

Как научить Смарти рабивать этот листинг на несколько td?
Я думаю нужно считать шаги цикла и через определенное количество шагов ставить td
Но как это сделать я хз...

0
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 12/12/07 в 16:34       Ответить с цитатойцитата 

Примерно так:

Код:
<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>   

KVS - профессиональный софт для платных, тюб, cjtube сайтов от 99$

3
 



С нами с 30.10.06
Сообщения: 242
Рейтинг: 248

Ссылка на сообщениеДобавлено: 12/12/07 в 16:46       Ответить с цитатойцитата 

Спасибо! Практически работает.
Махонькая незадача:
Я понял в данном случа 4 это число строк в колонке...
Только почему то получается первая колонка на 1 строку меньше чем нужно, а последняя колонка - всего 1 строка

0
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 12/12/07 в 18:11       Ответить с цитатойцитата 



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

Код:

<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) - и отвечает за них.

KVS - профессиональный софт для платных, тюб, cjtube сайтов от 99$

3
 



С нами с 30.10.06
Сообщения: 242
Рейтинг: 248

Ссылка на сообщениеДобавлено: 12/12/07 в 19:04       Ответить с цитатойцитата 

Громадное спасибо!
+3 два раза

0
 



С нами с 30.10.06
Сообщения: 242
Рейтинг: 248

Ссылка на сообщениеДобавлено: 12/12/07 в 19:20       Ответить с цитатойцитата 

Кстати еще назрел вопросик:
А можно ли средствами Смарти выводить в определенной очередности данные из двух секций?

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

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

0
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 12/12/07 в 19:36       Ответить с цитатойцитата 



Под конкретную задачу решение можно простое подобрать. К примеру зная что у тебя всегда 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}

KVS - профессиональный софт для платных, тюб, cjtube сайтов от 99$

3
 



С нами с 08.12.06
Сообщения: 756
Рейтинг: 531

Ссылка на сообщениеДобавлено: 13/12/07 в 13:01       Ответить с цитатойцитата 

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

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

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

0
 



С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430

Ссылка на сообщениеДобавлено: 13/12/07 в 13:41       Ответить с цитатойцитата 

А я и не знал что там смарти... Это очень даже неплохо можно многое сделать, удобный шаблонизатор.

0
 



С нами с 08.06.04
Сообщения: 5651
Рейтинг: 1681

Ссылка на сообщениеДобавлено: 13/12/07 в 20:17       Ответить с цитатойцитата 

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

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

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


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

Начальник отдела по борьбе с инопланетянами 2-го городского лечебно-трудового профилактория.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »