Not logged in. · Lost password · Register
Forum: Non-English Discussion Russian discussion RSS
Отображение названия страницы в шаблоне
Avatar
d0lphin #1
Member since Sep 2015 · 3 posts
Group memberships: Members
Show profile · Link to this post
Subject: Отображение названия страницы в шаблоне
Столкнулся с такой проблемой. Использую шаблон lisps. Все ок, но в нем вместо заголовка страниц отображается только ссылка:
[Image: http://i.imgur.com/NT422ee.png]

Хотя в хлебных крошках все нормально:
[Image: http://i.imgur.com/nCqqHeJ.png]

Собственно, вопрос: можно ли как-то поправить шаблон так, чтобы вместо ссылки отображался так же заголовок страницы?
Avatar
Aleksandr #2
Member since Mar 2010 · 587 posts · Location: Volgograd, Russia
Group memberships: Members
Show profile · Link to this post
Это не баг, это фича. В шаблоне по-умолчанию этот элемент интерфейса ведёт себя точно так же.
ru: Пожалуйста, избегайте избыточного цитирования.
en: Don’t use an overquoting, please.
Avatar
d0lphin #3
Member since Sep 2015 · 3 posts
Group memberships: Members
Show profile · Link to this post
Ну так я и не говорю, что это баг. Я просто спрашиваю, можно ли с этим как-то бороться?
Avatar
Aleksandr #4
Member since Mar 2010 · 587 posts · Location: Volgograd, Russia
Group memberships: Members
Show profile · Link to this post
Строка в файле dokuwiki/main.php, отвечающая за вывод элемента:

<div class="pageId"><span><?php echo hsc($ID) ?></span></div>
ru: Пожалуйста, избегайте избыточного цитирования.
en: Don’t use an overquoting, please.
This post was edited on 2015-09-11, 08:56 by Aleksandr.
Avatar
d0lphin #5
Member since Sep 2015 · 3 posts
Group memberships: Members
Show profile · Link to this post
Т.к. я не слишком знаком с php, сделал как смог. Результатом доволен.

В template.php Добавляем две функции:

function tpl_currlink($sep = '') {
    global $conf;
    global $ID;
    global $lang;

    // check if enabled
    if(!$conf['youarehere']) return false;

    $parts = explode(':', $ID);
    $count = count($parts);
   
    // print current page, skipping start page, skipping for namespace index
    resolve_pageid('', $page, $exists);
    if(isset($page) && $page == $part.$parts[$i]) return true;
    $page = $part.$parts[$i];
    if($page == $conf['start']) return true;
    echo $sep;
    tpl_pagecurrlink($page);
    return true;
}

function tpl_pagecurrlink($id, $name = null) {
    print ''.html_wikilink($id, $name).'';
    return true;
}


В шаблоне меняем строку, отвечающую за вывод названия (в файле main.php шаблона):
<div class="pageId"><span><?php tpl_currlink() ?></span></div>

Результат:
Было:
[Image: http://i.imgur.com/a0IlzUE.jpg]

Стало:
[Image: http://i.imgur.com/50cZUEW.jpg]

Уверен, что знатоки php смогут сделать гораздо лучше.
Avatar
Aleksandr #6
Member since Mar 2010 · 587 posts · Location: Volgograd, Russia
Group memberships: Members
Show profile · Link to this post
В коде /dokuwiki/main.php есть ссылка на функцию, выводящую, в зависимости от настроек в конфигурации вики, имя страницы или первый заголовок в титул: tpl_pagetitle(). Можно использовать её.
ru: Пожалуйста, избегайте избыточного цитирования.
en: Don’t use an overquoting, please.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Imprint
This board is powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2015 by Yves Goergen
Current time: 2020-04-02, 21:55:24 (UTC +02:00)