www.textpattern.ru

Статьи и Документация

Управление статическими страницами в Textpattern

Автор: Alex Shiels aka Zem (Австралия)
Первоисточник
Дата статьи: 13.09.2004

Распространенный вопрос начинающих о ТекстПаттерне, каким образом сделать не блоговое содержимое, наподобие страниц “о нас”, или сборника документов. Это довольно легко реализовать, хотя не вполне очевидно с самого начала.
Ниже приводится несколько примеров, которые могут помочь начинающим; опытные пользователи, вероятно, захотят пропустить этот материал.

Прежде всего, поможем понять, как в Textpattern-е организовано содержимое.

Статьи (аrticles) – это документы, которые имеют заголовок (title), основную часть (body) и создателя (author), плюс некоторые необязательные поля, такие как отрывок (excerpts), категории (categories), комментарии (comments) и другие.

Секции (sections) – это разделы внутри веб сайта, которые содержат статьи.

Каждая статья может относиться только к одной секции.
В зависимости от типа отображения ссылок (url mode), определенном в ваших настройках Textpattern-а, ссылки секций выглядят( см. примечание к этой статье) либо http://example.com/mysection/, либо http://example.com/index.php?s=mysection.

Внешний вид секций определяется шаблонами страниц(Page templates) и формами Текстпаттерна для статей (article Forms). Стандартная блог-ориентированная секция ТекстПаттерна использует шаблон страницы, на которой отображается список статей (<txp:article limit=5 />), а форма статьи выводит заголовок статьи, постоянную ссылку (permlink), дату, автора, основную часть, т.е. собственно содержание статьи и ссылку на комментарии.

Для отображения статического или не блог-подобного содержимого, все, что нам необходимо – это использовать форму вывода статьи, в которой опущены излишние возможности, например – комментарии и изменить макет соответствующей страницы.
Затем мы можем использовать тот же самый интерфейс статей Textpattern-а для создания и редактирования контента.

Форма для отображения статьи

По умолчанию форма Текстпаттерна для статей выглядит наподобие этой:


<h3><txp:permlink><txp:title /></txp:permlink>·<txp:posted /></h3>
<txp:body />
<p><txp:comments_invite /></p>

Этот шаблон используется для отображения списка статей на странице выбранной секции, а каждая отдельная статья выводится на отдельной архивной странице.
Это простой, подходящий для блогов макет, но совершенно не то, что бы мы хотели для нашего статического контента.
Создаем новую форму:


<h3><txp:title /></h3>
<p><i><txp:excerpt /></i></p>
<txp:body />

Присвоим форме тип “Article”, и сохраним ее под именем “static_article”.
Этот вариант макета статьи существенно приблизил к тому, что нам было необходимо: комментарии исчезли, и выдержка из статьи (если таковая определена), отображается наверху,
перед содержимым статьи, сразу под заголовком.
Вы можете удалить часть формы с участием отрывка-цитаты-выдержки из статьи (excerpt), если не планируете ее использовать.
Мы можем использовать эту форму для отображения всего нашего не блого-подобного контента, либо это может быть простой страницей “about”, или одна из цикла статей.

Теперь создадим вторую форму:


<h4><txp:permlink><txp:title /></txp:permlink></h4>
<p>
<txp:excerpt /> <txp:permlink>(read more..)</txp:permlink>
</p>

Присвоим форме снова тип “Article”, и назовем ее “static_list”.
Мы можем использовать данную форму для отображения списка статей секции, которая содержит несколько статей (например, коллекция рецептов или учебных пособий).
Далее – нам надо создать макет страницы, которая будет использовать эти формы.

Шаблон страницы

Здесь мы создадим два различных шаблона: один для секции «о нас» («about»), которая содержит одиночную статью; и один для секции «рецептов» (“recipe”), которая содержит много статей (разумеется, вы можете сменить название секции на иное, наиболее подходящее для вашего сайта).
В разделе Presentation/Page административного интерфейса, выберите “default” шаблон, и скопируйте его дважды: один как “static_page”, а другой как “static_list”.
В шаблоне “static_page” взгляните на тэг <txp:article />, и измените его следующим образом:


<txp:article limit=1 form="static_article" />

Мы используем его для отображения нашей страницы “about”, которая будет содержать только одну статью (поэтому “limit=1”).
Теперь редактируем аналогичный тэг в “static_list”:


<txp:article limit=100 form="static_article" listform="static_list" />

Будет отображаться перечень статей и цитат (excerpts), как определено в форме static_list, и дает возможность увидеть статью целиком, если посетитель кликнет на заголовок.
В завершение нам надо настроить наши секции, чтобы они использовали корректные макеты страниц.

Секции

Начнем с секции «about».
Textpattern уже имеет секцию, называемую “about”, поэтому мы можем использовать ее.
Найдите раздел Presentation/Sections в интерфейсе администратора и задайте следующие установки для “about”:

  • Uses page: static_page
  • Uses style: default
  • Selected by default: no
  • On front page: no
  • Syndicate: no
  • Include in site search: yes

Теперь создайте новую секцию под названием “recipe”,
и смените ее установки на следующие:

  • Uses page: static_list
  • Uses style: default
  • Selected by default: no
  • On front page: no
  • Syndicate: no
  • Include in site search: yes

Если после этого рядом с наименованием секции появится красный восклицательный знак, вам надо кликнуть на него и следовать инструкциям.
Все, что осталось сделать, это написать немного контента.

Добавьте статью, определите для нее секцию – “about”; и она будет доступна по адресу http://example.com/about/ (или http://example.com/index.php?s=about, если вы используете messy урлы).
Заголовок статьи будет расположен вверху страницы, затем будет располагаться содержимое статьи.
Статьи, добавленные в секцию “recipe” будут представлены списком по адресу http://example.com/recipe/ (или http://example.com/index.php?s=recipe).
Клик на заголовок статьи или на надпись “read more..” приведет посетителя на страницу с полным текстом статьи.

Если вы желаете добавить еще секции для статического контента, нет необходимости создавать новые формы или макеты страниц, за исключением случаев, когда вы захотите изменить их функциональность. В этом случае создайте новую секцию, используя установки для одиночной страницы или для списка, подобно тем, что указаны выше для “about” или “recipe”.

Окончательная доводка

В заключение вашему вниманию представлю несколько возможных простых улучшений.

Если захотите сделать возможными комментарии на ваших страницах с рецептами, вам понадобится сделать необходимые установки для комментариев в административном разделе – ярлык Admin/Preferences, и добавить этот тэг внизу вашей формы static_article:


<txp:comments_invite />

На странице “about” Вы можете запретить комментарии, просто установив “Comments: off” в режиме редактирования статьи.

Предпочитаете отсортировать список рецептов не по дате, а по алфавиту?
Для этого потребуется немного схитрить.
Измените шаблон страницы static_list следующим образом:


<txp:if_article_list> <txp:article_custom limit=100 sortby="title" form="static_list" />
</txp:if_article_list>
<txp:if_individual_article> <txp:article limit=1 form="static_article" />
</txp:if_individual_article>

Примите во внимание, что этот метод имеет некоторые неудобства.
Тэг article_custom не поддерживает просмотр по категориям или страницам, т.е. эта возможность не работает в вашей секции с рецептами при использовании вышеуказанного шаблона.
Проверьте, чтобы атрибут limit был достаточно велик,
чтобы на странице поместился список всех статей, присутствующих в этой секции.

Ссылки на сами статьи в перечне рецептов по умолчанию показывают текст-пояснение “Permanent link to this article”.
Чтобы это изменить установите плагин zem_link(http://thresholdstate.com/software/3702/zem_link),
и измените вашу форму static_headline, следующим образом:


<h4><txp:zem_link title="link to '%s'"><txp:title /></txp:zem_link></h4>
<p><txp:excerpt /> <txp:zem_link title="read the full article">(read more..)</txp:zem_link></p>

Если вы хотите, чтобы статьи ваших рецептов были бы доступны пользователям RSS и Atom-каналов, в настройках секции установите “Syndicate” в Yes.


Примечание:
так называемые “clean” урлы требует некоторого дополнительного шаманства с .htaccess и файлами секций, описание которого выходит за рамки этой статьи.
Если вы испытываете трудности с 404-ыми ошибками или на страницах отображается не соответствующее содержимое, начните с экспериментов в режиме Messy URL.

 
Rambler's Top100