Ссылки на вопросы для быстрого перехода — различия между версиями
(Новая страница: «Как можно вывести список вопросов над списком "вопрос-ответ" с ссылками на якоря? Для нача…») |
Stexe (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | [[Категория:Верстка в TPL]][[Категория: Модуль FAQ]] | |
+ | '''Актуально для версии 2.9.6'''<br/><br/> | ||
+ | '''Задача:''' Вывести список ссылок для быстрого перехода к соответствующему блоку "вопрос-ответ" при помощи якорей<br/><br/> | ||
+ | '''Реализация:'''<br/> | ||
+ | Для вывода блока "вопрос-ответ" используется макрос %faq category()%. Для реализации описанной задачи вопросы-ответы должны отображаться с игнорированием постраничного вывода, то есть для параметра ignore_paging макроса %faq category()% должно быть указано значение '1'.<br/> | ||
+ | В блок 'questions_block' (по умолчанию в файле tpls\faq\default.tpl) добавим код для вывода списка ссылок: | ||
+ | <source lang="html4strict"> | ||
+ | <div> | ||
+ | %faq category('list', %id%)% | ||
+ | </div> | ||
+ | </source> | ||
+ | В блоке 'questions_block_line' вывода вопроса оформим следующим образом: | ||
+ | |||
+ | <source lang="html4strict"> | ||
+ | <div id="%alt_name%"> | ||
+ | <b>Вопрос:</b> %question% | ||
+ | </div> | ||
+ | </source> | ||
+ | |||
+ | После добавления описанного выше кода для каждого блока "вопрос-ответ" в атрибуте id будет указан псевдостатический адрес вопроса.<br/> | ||
+ | Создадим файл tpls\faq\list.tpl и добавим в него блоки вывода списка ссылок для быстрого перехода: | ||
+ | <source lang="html4strict"> | ||
+ | <?php | ||
− | + | $FORMS = Array(); | |
$FORMS['questions_block'] = <<<END | $FORMS['questions_block'] = <<<END | ||
− | + | <ul> | |
− | % lines% | + | %lines% |
− | + | </ul> | |
− | |||
− | |||
END; | END; | ||
− | + | $FORMS['questions_block_empty'] = <<<END | |
− | + | <p>Вопросов данной категории пока нет.</p> | |
− | + | END; | |
$FORMS['questions_block_line'] = <<<END | $FORMS['questions_block_line'] = <<<END | ||
− | < | + | <li> |
− | + | <a href="#%alt_name%">%question%</a><br /> | |
− | </ | + | </li> |
− | |||
− | |||
− | |||
− | < | ||
END; | END; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
?> | ?> | ||
+ | </source> | ||
− | + | В итоге при переходе по ссылкам из списка будет происходить прокрутка страницы до соответствующего блока "вопрос-ответ". | |
− | |||
− | |||
− | |||
− |
Текущая версия на 13:09, 11 апреля 2014
Актуально для версии 2.9.6
Задача: Вывести список ссылок для быстрого перехода к соответствующему блоку "вопрос-ответ" при помощи якорей
Реализация:
Для вывода блока "вопрос-ответ" используется макрос %faq category()%. Для реализации описанной задачи вопросы-ответы должны отображаться с игнорированием постраничного вывода, то есть для параметра ignore_paging макроса %faq category()% должно быть указано значение '1'.
В блок 'questions_block' (по умолчанию в файле tpls\faq\default.tpl) добавим код для вывода списка ссылок:
<div>
%faq category('list', %id%)%
</div>
В блоке 'questions_block_line' вывода вопроса оформим следующим образом:
<div id="%alt_name%">
<b>Вопрос:</b> %question%
</div>
После добавления описанного выше кода для каждого блока "вопрос-ответ" в атрибуте id будет указан псевдостатический адрес вопроса.
Создадим файл tpls\faq\list.tpl и добавим в него блоки вывода списка ссылок для быстрого перехода:
<?php
$FORMS = Array();
$FORMS['questions_block'] = <<<END
<ul>
%lines%
</ul>
END;
$FORMS['questions_block_empty'] = <<<END
<p>Вопросов данной категории пока нет.</p>
END;
$FORMS['questions_block_line'] = <<<END
<li>
<a href="#%alt_name%">%question%</a><br />
</li>
END;
?>
В итоге при переходе по ссылкам из списка будет происходить прокрутка страницы до соответствующего блока "вопрос-ответ".