ursa Опубліковано 1 Березня, 2008 в 07:03 #1 Опубліковано 1 Березня, 2008 в 07:03 Вопрос к тем, кто разбирается в PHP или просто имеет представление о построении функций.Собственно есть вот такой код (см.ниже).Функция toc выводит меню сайта (положение - сверху). Само меню сделано списком, т.е. каждый пункт меню выводится с новой строки. Это видно в функции li. Неудобная реализация.Требуется сделать вывод меню в одну строчку (например, как на форуме: Каталог ссылок | Правила форума | Gallery | Blogs | Downloads | ibPhotohost | Flash Games | Calendar | Members | Search)Как правильно заменить теги <ul></ul> и <li></li> и на что именно? ? Или как-то табличную вёрстку сделать? Или на div-ах играться?function toc($start, $end) { global $c, $cl, $s, $l, $cf; $ta = array(); if (isset($start)) { if (!isset($end))$end = $start; } else $start = 1; if (!isset($end))$end = $cf['menu']['levels']; $ta = array(); if ($s > -1) { $tl = $l[$s]; for($i = $s; $i > -1; $i--) { if ($l[$i] <= $tl && $l[$i] >= $start && $l[$i] <= $end)if(!hide($i))$ta[] = $i; if ($l[$i] < $tl)$tl = $l[$i]; } @sort($ta); $tl = $l[$s]; } else $tl = 0; $tl += 1+$cf['menu']['levelcatch']; for($i = $s+1; $i < $cl; $i++) { if ($l[$i] <= $tl && $l[$i] >= $start && $l[$i] <= $end)if(!hide($i))$ta[] = $i; if ($l[$i] < $tl)$tl = $l[$i]; } return li($ta, $start);}function li($ta, $st) { global $s, $l, $h, $cl, $cf, $u; $tl = count($ta); if ($tl < 1)return; $t = ''; if ($st == 'submenu' || $st == 'search')$t .= '<ul class="'.$st.'">'; $b = 0; if ($st > 0) { $b = $st-1; $st = 'menulevel'; } $lf = array(); for($i = 0; $i < $tl; $i++) { $tf = ($s != $ta[$i]); if ($st == 'menulevel' || $st == 'sitemaplevel') { for($k = (isset($ta[$i-1])?$l[$ta[$i-1]]:$b); $k < $l[$ta[$i]]; $k++)$t .= '<ul class="'.$st.($k+1).'">'; } $t .= '<li class="'; if (!$tf)$t .= 's'; else if(@$cf['menu']['sdoc'] == "parent" && $s > -1) { if ($l[$ta[$i]] < $l[$s]) { if (@substr($u[$s], 0, 1+strlen($u[$ta[$i]])) == $u[$ta[$i]].$cf['uri']['seperator'])$t .= 's'; } } $t .= 'doc'; for($j = $ta[$i]+1; $j < $cl; $j++)if(!hide($j) && $l[$j]-$l[$ta[$i]] < 2+$cf['menu']['levelcatch']) { if ($l[$j] > $l[$ta[$i]])$t .= 's'; break; } $t .= '">'; if ($tf)$t .= a($ta[$i], ''); $t .= $h[$ta[$i]]; if ($tf)$t .= '</a>'; if ($st == 'menulevel' || $st == 'sitemaplevel') { if ((isset($ta[$i+1])?$l[$ta[$i+1]]:$b) > $l[$ta[$i]])$lf[$l[$ta[$i]]] = true; else { $t .= '</li>'; $lf[$l[$ta[$i]]] = false; } for($k = $l[$ta[$i]]; $k > (isset($ta[$i+1])?$l[$ta[$i+1]]:$b); $k--) { $t .= '</ul>'; if (isset($lf[$k-1]))if($lf[$k-1]) { $t .= '</li>'; $lf[$k-1] = false; } }; } else $t .= '</li>'; } if ($st == 'submenu' || $st == 'search')$t .= '</ul>'; return $t;}
Рекомендовані повідомлення
Заархівовано
Ця тема знаходиться в архіві та закрита для подальших відповідей.