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