форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Управление статическими страницами в Textpattern.
Автор: Alex Shiels aka Zem (Австралия)
перевод.
оригинал на английском - здесь
Распространенный вопрос начинающих о ТекстПаттерне, каким образом сделать не блоговое содержимое,
наподобие страниц “о нас”, или сборника документов.
Это довольно легко реализовать, хотя не вполне очевидно с самого начала.
Ниже приводится несколько примеров, которые могут помочь начинающим;
опытные пользователи, вероятно, захотят пропустить этот материал.
Прежде всего, поможем понять, как в 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_headline”.
Мы можем использовать данную форму для отображения списка статей секции,
которая содержит несколько статей (например, коллекция рецептов или учебных пособий).
Далее – нам надо создать макет страницы, которая будет использовать эти формы.
Шаблон страницы.
Здесь мы создадим два различных шаблона: один для секции «о нас» («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.
September 13, 2004
----------------------------------------------------------------------------------------------------------------------------------------------
замечания и вопросы по переводу рассматриваются здесь
Неактивен
form static_list does not exist - вот что мне показывает страничка, вместо ожидаемого списка статей...
Неактивен
Alex написал:
form static_list does not exist - вот что мне показывает страничка, вместо ожидаемого списка статей...
Значит, надо ее сделать.
Неактивен
"Теперь редактируем аналогичный тэг в “static_list”:
<txp:article limit=100 form="static_article" listform="static_list" />"
static_list - это шаблон, не форма
Пардон, но я немного не врубаюсь, как это шаблон вызывает внутри своего кода сам себя?
Неактивен
Даже так - где используется в описанных шаблонах static_headline?
Неактивен
static_list это форма. Иначе и быть не может. См. первый пост треда. Внимательно.
Отредактированно glebotr (03-11-2005 10:45:39)
Неактивен
Alex написал:
form static_list does not exist - вот что мне показывает страничка, вместо ожидаемого списка статей...
зайди в админ.панель. меню presentation/forms, там сразу откроется форма default.
скопируй ее в буфер, затем нажми на Создание новой формы, и из буфера сбрось в окно то, что перед этим сохранил. Назови эту форму "static_list" и сохранись. Потом экспериментируй (редактируй) эту форму. Не забудь посмотреть Тэги форм
Неактивен
Да, надо учится доброте... Овип Локос... Снимаю шляпу.
Неактивен
"Назови эту форму "static_list""
Нет, в статье так:
"<h3><txp:title /></h3>
<p><i><txp:excerpt /></i></p>
<txp:body />
Присвоим форме тип “Article”, и сохраним ее под именем “static_article”."
Неактивен
Доброта Evgeny ни при чем...
Я просто выполняю то, что написано в статье пошагово - и ОНО не получается так, как написано!
Значит где-то очепятка...
Так все-таки - где используется в описанных шаблонах форма static_headline?
Неактивен
Alex написал:
выполняю то, что написано в статье пошагово - и ОНО не получается так, как написано!
Значит где-то очепятка...
Так все-таки - где используется в описанных шаблонах форма static_headline?
Действительно! В одном месте одно название, в другом - другое. Это одно и то же.
static_headline == static_list
Неактивен
У меня все static статьи дополняются сообщением: "Комментирование этой статьи закрыто".
Причем только если в настройках включено "Автоматически добавлять коментарии к статье",
в противном случае комментарии не добавляются даже к блог-статьям
Неактивен
glebotr написал:
Думаю, проблема в форме статьи.
Для блог-статей:
<div class="entry"> <txp:if_article_list> <h3><a href="<txp:permlink/>" title="<txp:title/>"><txp:title/></a></h3> <txp:else /> <h3><txp:title/></h3> </txp:if_article_list> <txp:body /> <p class="info"> <img src="<txp:site_url />images/blix_comments.gif" alt=""/> <txp:comments_invite /> | <img src="<txp:site_url />images/blix_post.gif" alt=""/> опубликовано: <txp:posted /> </p> </div>
Для статики:
<h3><txp:title /></h3> <txp:php> #<p><i><txp:excerpt /></i></p> </txp:php> <txp:body />
дело явно не в форме.
Неактивен