Ссылки на вопросы для быстрого перехода — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Как можно вывести список вопросов над списком "вопрос-ответ" с ссылками на якоря? Для нача…»)
 
 
(не показаны 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
  
Для начала в шаблоне ~tpls/faq/default.tpl (внимание, инструкция написана для дефолтных шаблонов демо-версии) подредактируем блоки ['questions_block'] и ['questions_block_line']:
+
$FORMS = Array();
  
 
$FORMS['questions_block'] = <<<END
 
$FORMS['questions_block'] = <<<END
% faq category('test')%
+
<ul>
% lines%
+
%lines%
% system numpages(% total%, % per_page%, 'standart')% <br/><br/>
+
</ul>
<h3>Задайте свой вопрос</h3>
 
% faq addQuestionForm()%
 
 
END;
 
END;
  
+
$FORMS['questions_block_empty'] = <<<END
 
+
<p>Вопросов данной категории пока нет.</p>
Мы добавили макрос % faq category('test')%, который по шаблону ~tpls/faq/test.tpl будет выводить список вопросов.
+
END;
  
 
$FORMS['questions_block_line'] = <<<END
 
$FORMS['questions_block_line'] = <<<END
<div style="background-color: #EEEEEE; padding: 5px;">
+
<li>
<b>Вопрос:</b> <a name="% id%" title="% id%"></a>% question%
+
    <a href="#%alt_name%">%question%</a><br />
</div>
+
</li>
<div style="background-color: white; padding: 5px;">
 
<b>Ответ:</b> % answer%
 
</div>
 
<br /><br />
 
 
END;
 
END;
  
 
 
А здесь мы к макросу % question% добавили якоря:
 
 
<a name="% id%" title="% id%"></a>
 
 
 
 
Теперь создаем шаблон ~tpls/faq/test.tpl, о котором шла речь выше:
 
  
<?php
 
$FORMS = Array();
 
$FORMS['question'] = <<<END
 
% question%
 
END;
 
$FORMS['questions_block'] = <<<END
 
<ul>% lines%</ul>
 
END;
 
$FORMS['questions_block_empty'] = <<<END
 
END;
 
$FORMS['questions_block_line'] = <<<END
 
<li><a href="#% id%">% question%</a></li>
 
END;
 
 
?>
 
?>
 +
</source>
  
+
В итоге при переходе по ссылкам из списка будет происходить прокрутка страницы до соответствующего блока "вопрос-ответ".
 
 
Тут все просто - формируем список вопросов и добавляем ссылку на якоря.
 
 
 
P.S. Поведение данной схемы не совсем изучено. Могут возникнуть небольшие конфликты при использовании  % system numpages()%
 

Текущая версия на 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;


?>

В итоге при переходе по ссылкам из списка будет происходить прокрутка страницы до соответствующего блока "вопрос-ответ".