|
|
|
| Простой вопрос, но ответ нигде не могу найти. Как разместить два объекта в одну строку в цикле Smarty foreach?
Задача очень простая, есть меню, в каждой строке которого 2 объекта:
- первый – иконка RSS и она же ссылка на RSS канал раздела
- второй – ссылка на саму категорию
Smarty foreach генерирует почему-то две строки, одну для RSS иконки, вторую для категории.
Вот такой код у меня, вроде правильный:
<div id="menu">
<ul>
<li><a href="/rss.php?cat=-1"><img src="/images/rss.gif" width="12" height="12" border="0" alt="RSS"></a> <a href="/">Главная</a></li>
{foreach from=$categories item=cat key=cat_id}
<li>
<a href="/rss.php?cat={$cat_id}"><img src="/images/rss.gif" width="12" height="12" border="0" alt="RSS"></a>
{""|indent:$cat.level:" "}
<a href="/categories/id/{$cat_id}">{$cat.title}</a>
</li>{/foreach}
<ul>
</div>
|
А в браузере получается так:
Иконка
Категория
Иконка
Категория
А мне нужно так:
Иконка – категория
Иконка - категория
Иконка - категория | |
|
|
|
|
|
|
|
для: allforweb
(01.10.2010 в 17:20)
| | Вы результирующий код для начала просмотрите. | |
|
|
|
|
|
|
|
для: sim5
(01.10.2010 в 19:12)
| | Код правильно, одна строка в блоке списка и никаких лишних элементов | |
|
|
|
|
|
|
|
для: allforweb
(01.10.2010 в 21:22)
| | Все что угодно можно было ожидать, но ни такого ответа. )
Вам нужно, чтобы каждый элемент LI содеражал изображение и строку (ссылку). Если вы отвечаете, что "Код правильно, одна строка в блоке списка и никаких лишних элементов", то чего тогда вы хотите?
Если ваш код, это LI изображение, LI строка, что вы называете "правильным", то значит в шаблон вы передаете неверный массив элементов. | |
|
|
|
|
|
|
|
для: allforweb
(01.10.2010 в 17:20)
| | Мне вот это у вас не понравилось: {""|indent:$cat.level:" "}
indent применяется к какому-либо фрагменту строки, у вас строка пустая...
при indent тоже по-моему как отступ идет по умолчанию, его указывать не надо.
Попробуйте так:
{foreach from=$categories item=cat key=cat_id}
{assign var="text" value="<li>
<a href='/rss.php?cat=$cat_id'><img src='/images/rss.gif' width='12' height='12' border='0' alt='RSS'></a>
<a href='/categories/id/$cat_id'>$cat.title</a>
</li>"}
{$text|indent:$cat.level}
{/foreach}
|
Хотя... я когда делала подобное, формировала отступы в php через str_repeat() с указанием уровня, а после переменную с количеством необходимых пробелов отправляла в шаблон. Может, это и неправильно... | |
|
|
|