Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Два объекта в цикле Smarty foreach
 
 автор: allforweb   (01.10.2010 в 17:20)   письмо автору
 
 

Простой вопрос, но ответ нигде не могу найти. Как разместить два объекта в одну строку в цикле 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:"&nbsp;&nbsp;&nbsp; "}
            <a href="/categories/id/{$cat_id}">{$cat.title}</a>
            </li>{/foreach}
            <ul>
                </div>


А в браузере получается так:
Иконка
Категория
Иконка
Категория

А мне нужно так:
Иконка – категория
Иконка - категория
Иконка - категория

  Ответить  
 
 автор: sim5   (01.10.2010 в 19:12)   письмо автору
 
   для: allforweb   (01.10.2010 в 17:20)
 

Вы результирующий код для начала просмотрите.

  Ответить  
 
 автор: allforweb   (01.10.2010 в 21:22)   письмо автору
 
   для: sim5   (01.10.2010 в 19:12)
 

Код правильно, одна строка в блоке списка и никаких лишних элементов

  Ответить  
 
 автор: sim5   (02.10.2010 в 06:02)   письмо автору
 
   для: allforweb   (01.10.2010 в 21:22)
 

Все что угодно можно было ожидать, но ни такого ответа. )
Вам нужно, чтобы каждый элемент LI содеражал изображение и строку (ссылку). Если вы отвечаете, что "Код правильно, одна строка в блоке списка и никаких лишних элементов", то чего тогда вы хотите?
Если ваш код, это LI изображение, LI строка, что вы называете "правильным", то значит в шаблон вы передаете неверный массив элементов.

  Ответить  
 
 автор: Лена   (01.10.2010 в 23:06)   письмо автору
 
   для: allforweb   (01.10.2010 в 17:20)
 

Мне вот это у вас не понравилось: {""|indent:$cat.level:"&nbsp;&nbsp;&nbsp; "}
indent применяется к какому-либо фрагменту строки, у вас строка пустая...
&nbsp; при 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() с указанием уровня, а после переменную с количеством необходимых пробелов отправляла в шаблон. Может, это и неправильно...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования