Совсем недавно всплыла проблема с навигацией в dokuwiki.
ПХПисты совсем обалдели и расхлябались! Суют свой быдлокод куда ни попадя, правильно на неправильно исправляют (ибо в предыдущей версии такого не было). Приходится всё за них переделывать.
Итак, у кого кривая навигация в dokuwiki наверху, смело применяем этот патч на файле inc/template.php:
diff -cr template.old template.php *** template.old 2009-02-14 15:13:25.000000000 +0300 --- template.php 2009-03-14 17:29:19.000000000 +0300 *************** *** 875,885 **** // output echo $sep; if($exists){ ! $title = useHeading('navigation') ? p_get_first_heading($page) : $page; ! if(!$title) $title = $parts[$i]; ! tpl_link(wl($page),hsc($title),'title="'.$page.'"'); }else{ ! tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); } } --- 875,888 ---- // output echo $sep; if($exists){ ! //$title = useHeading('navigation') ? p_get_first_heading($page) : $page; ! //if(!$title) $title = $parts[$i]; ! //tpl_link(wl($page),hsc($title),'title="'.$page.'"'); ! $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; ! tpl_link(wl($page),hsc($title),'title="'.$page.'"'); }else{ ! //tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); ! tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); } } *************** *** 889,897 **** if($page == $conf['start']) return; echo $sep; if(page_exists($page)){ ! $title = useHeading('navigation') ? p_get_first_heading($page) : $page; ! if(!$title) $title = $parts[$i]; ! tpl_link(wl($page),hsc($title),'title="'.$page.'"'); }else{ tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); } --- 892,902 ---- if($page == $conf['start']) return; echo $sep; if(page_exists($page)){ ! //$title = useHeading('navigation') ? p_get_first_heading($page) : $page; ! //if(!$title) $title = $parts[$i]; ! //tpl_link(wl($page),hsc($title),'title="'.$page.'"'); ! $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; ! tpl_link(wl($page),hsc($title),'title="'.$page.'"'); }else{ tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); } |
UPD1:
Чтобы увидеть работу патча, привожу скриншоты.
Это панель навигации до патча:

А вот так она выглядит после патча:

UPD2:
Для недовольных выкладываю патч в universal-формате:
diff -ruN template.old template.php --- template.old 2009-02-14 15:13:25.000000000 +0300 +++ template.php 2009-03-14 17:29:19.000000000 +0300 @@ -875,11 +875,14 @@ // output echo $sep; if($exists){ - $title = useHeading('navigation') ? p_get_first_heading($page) : $page; - if(!$title) $title = $parts[$i]; - tpl_link(wl($page),hsc($title),'title="'.$page.'"'); + //$title = useHeading('navigation') ? p_get_first_heading($page) : $page; + //if(!$title) $title = $parts[$i]; + //tpl_link(wl($page),hsc($title),'title="'.$page.'"'); + $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; + tpl_link(wl($page),hsc($title),'title="'.$page.'"'); }else{ - tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); + //tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); + tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); } } @@ -889,9 +892,11 @@ if($page == $conf['start']) return; echo $sep; if(page_exists($page)){ - $title = useHeading('navigation') ? p_get_first_heading($page) : $page; - if(!$title) $title = $parts[$i]; - tpl_link(wl($page),hsc($title),'title="'.$page.'"'); + //$title = useHeading('navigation') ? p_get_first_heading($page) : $page; + //if(!$title) $title = $parts[$i]; + //tpl_link(wl($page),hsc($title),'title="'.$page.'"'); + $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; + tpl_link(wl($page),hsc($title),'title="'.$page.'"'); }else{ tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); } |
UPD 3:
Обсуждение патча на багзилле DokuWiki.
сначала научитесь пользоваться diff’ом.
единственный человеко-читаемый формат патча получается с ключом -u.
А вы неспособны применить patch?
Было бы здорово, если бы Вы отправили патч к ним в багзиллу. Может быть, они исправят недочеты со следующим релизом.
Кстати, а что с навигацией не так? Интересно увидеть скриншот.
Обновил запись
О, супер! Спасибо за скриншоты и патч в багзилле!
Теперь я понимаю, почему не видел такой навигации. У меня стоят такие опции: «показывать первый заголовок» включено и «вы находитесь здесь» отключено.
Вообще, мне кажется, оба представления имеют право на существование. Просто надо дать пользователю выбор (в настройках вики).
Да не за что! Рад, что обратили внимание.
А вы один из разработчиков?
Нет, но активно пользуюсь, поэтому заинтересовало. Правда, один раз побаловался, написал плагинчик для своих нужд (он доступен у меня на сайте под GPL-2), но не более, времени нет.