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

Форум PHP

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

 

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

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

тема: Рекурсия в Smarty
 
 автор: enshteyns   (14.06.2008 в 17:23)   письмо автору
 
 

function ShowCat($ParentID, $lvl) {

    global $DB;

        $lvl++;

        $result = $DB->query("SELECT * FROM news_cat WHERE pid=".$ParentID." ORDER BY name",$db);


    if ($DB->get_num_rows($result) > 0)
    {
    echo("<UL>");

        while ( $row = $DB->fetch_array($result) )
            {
                $ID1 = $row["id"];

                    echo("\n<LI>");
                    echo($row["name"] . "</a>");

                        ShowCat($ID1, $lvl);

                $lvl--;
            }

    echo("</UL>\n");

    }

}


Здравствуйте! Может у кого есть опыт как передать рекурсивную функцию в Smarty. если использовать буферизацию и отправить все в переменную - не подходит. нужно чтобы из шаблона можно было устанавливать классы к списку, ставить нумерованный или точками и т.д.

   
 
 автор: sim5   (14.06.2008 в 17:49)   письмо автору
 
   для: enshteyns   (14.06.2008 в 17:23)
 

Наверное использовать объекты.

   
 
 автор: enshteyns   (15.06.2008 в 00:24)   письмо автору
 
   для: sim5   (14.06.2008 в 17:49)
 

Спасибо за совет! :)

   
 
 автор: enshteyns   (15.06.2008 в 00:31)   письмо автору
 
   для: sim5   (14.06.2008 в 17:49)
 

Ещё такой вопрос...

Имею шаблон:

{if isset($smarty.get.page) && $smarty.get.page == '$mod'}
    {include file='$mod.tpl'}
{else}
    {include file='$mod.tpl'}
{/if}


Т.е. присвоена в php файле переменной {$mod} значение news.

Но выскакивает такая вот ошибка:

Warning: Smarty error: unable to read resource: "$mod.tpl" in L:\home\dvig\www\inc\classes\Smarty\Smarty.class.php on line 1092


т.е. переменная не обрабатывается в инклуде. ставил и $mod и {$mod}

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

   
 
 автор: enshteyns   (15.06.2008 в 00:38)   письмо автору
 
   для: enshteyns   (15.06.2008 в 00:31)
 

Нашел решение ))) Может кому пригодится...

Вообщем путь до файла нужно заключать в двойные кавычки ", а если в ординарной - то не пашет...

Пример:
{include file="$mod.tpl"}


P.S. Это если вы решили включить свою переменную. со статичным названием - всё оки

   
Rambler's Top100
вверх

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