Jump to content

markers

Newbie
  • Posts

    2
  • Joined

  • Last visited

About markers

  • Birthday 04/22/1982

Information

  • Sex
    Мужчина
  • From
    Новосибирск

Contacts

  • Web site
    http://

markers's Achievements

Explorer

Explorer (1/14)

0

Reputation

  1. Спасибо, сегодня буду курить код! ADD: Есть одна проблемка, у меня разный стиль ссылки в зависимости от того есть у пункта под меню или нет, при плоской выборке без дополнительного запроса заранее не известно есть ли у пункта подпункты, а что если оставить рекурсивную функцию, но заполнять в глобальный одномерный массив где по мимо ID и URL будет и пометка есть подменю или нет?
  2. День добрый! Я очень сильно извиняюсь что я с тупыми вопросами к вам, но я только начал изучать SMARTY параллельно с написанием нового сайта и стал вопрос. Есть функция которая рекурсивно генерирует меню беря данные из БД: function menu_create($pid=0, $level=0) { global $db; // Сейчас запросим у БД меню $query = "SELECT id, name, URL FROM ".MENU_TABLE." WHERE `parent_id`='{$pid}' ORDER BY `priority` ASC;"; // Возьмём меню if( !($res = @$db->sql_query($query)) ) { message_die(CRITICAL_ERROR, "Невозможно получить меню системы", "", __LINE__, __FILE__, $query); } // Выясняем что с этим всем теперь делать и делаем $whid = 0; // Обнулим счётчик итераций $nums = @$db->sql_numrows($res); // Получим количество строк while (list($id, $name, $URL) = $db->sql_fetchrow($res)) // Цикл по результатам из БД { $sp=""; $st=""; $et=""; // Очистим переменные for ($i=0; $i<$level+$level; $i++) $sp.=" "; // Добавляем пробелов для красоты кода в зависимости от уровня $submenu = menu_create($id,$level+1); // Запускаем саму себя if ($level == 0) // Если уровень первый {$st = " <LI class=\"drop\"> <A Class=\"".(empty($submenu) ? "main" : "main down")."\" Href=\"{$URL}\"><b>{$name}</b></A>\n"; $et = " </LI>"; } else { if ($whid == 0) {$st = " {$sp}<UL>\n";} // Если первая итерация $st.= " {$sp}<LI".(empty($submenu) ? "" : " class=\"fly\"")."><a class=\"".(empty($submenu) ? "" : "main")."\" href=\"{$URL}\"><b>{$name}</b></a>\n"; $et.= " {$sp}</LI>\n"; if ($whid == $nums-1) {$et.= " {$sp}</UL>\n";} // Если последняя итерация } $ret.= $st.$submenu.$et; // Подготовим строку для возврата $whid++; // Увеличим счётчик итераций } return $ret; // Вернём результаты } Подскажите как перевести на Smarty? Заранее спасибо!
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy