Solution Technologies
Управление сайтом без ограничений

Руководство разработчика XS2

Скачать pdf-версию.

Часть 1. XS2 шаг за шагом

Глава 5. Процессор

Выше уже говорилось, что метод в XS2 состоит из двух элементов: шаблона и процессора. До сих мы использовали исключительно шаблоны, и настало время познакомится с процессором.

Если шаблон представляет собой смесь кода HTML с языком Smarty, то процессор - это обычный код на языке PHP. Важно помнить, что этот код выполняется до обработки и вывода шаблона, поэтому в нем можно готовить данные для дальнейшего вывода через шаблон. То, что процессор не является обязательной частью метода, мы уже успели убедиться - до сих пор мы создавали методы, состоящие только из шаблона. Однако и шаблон не является обязательной частью метода, он вполне может состоят исключительно из процессора. Таким образом, метод в XS2 может иметь следующую структуру:

  • процессор
  • процессор+шаблон
  • шаблон 

В каких случаях необходимо использовать процессор? Процессор требуется в тех случаях, когда для вывода данных на странице необходимо произвести операции, которые невозможно, сложно или неудобно сделать средствами языка Smarty. PHP - полноценный язык программирования с огромным количеством полезных функций. Его использование в процессорах делает практически безграничным возможности расширения функциональности ваших методов.

Для знакомства с процессорами мы попробуем решить следующую задачу: необходимо сделать RSS-трансляцию новостей из модуля "Новости". Для этого мы создадим новый метод с именем "rss" и прикрепим его непосредственно к модулю "Новости". Напомним, что в Главе 2 мы прикрепляли метод "index" непосредственно к проекту, в Главе 3 - к типу "Новостное сообщение"; теперь же мы реализуем третий и последний вариант размещения метода - мы прикрепим его к модулю. Для этого в дереве проектов на пункте "Новости" необходимо щелкнуть правой кнопкой мыши и в появившемся контекстном меню выбрать пункт "Методы". В открывшемся справа пустом списке методов нажмите на кнопку "Добавить". В появившемся окне введем в поле "Название" значение "rss". Наш метод будет состоять из процессора и шаблона, поэтому на этот раз нужно будет указать пустые файлы с диска и в поле "Процессор", и в поле "Шаблон". Сохранив метод, мы можем приступить к написанию процессора.

Поскольку мы делаем метод, который будет показывать данные в формате XML (RSS - это подмножество языка XML), а не HTML, нам необходимо отправить в браузер заголовок, который сообщил бы, что отсылаемые с сервера данные содержат XML. Для этого мы можем воспользоваться функцией PHP header() и написать в процессоре следующее:

Листинг 7
1.  <?php
2.    header('Content-type: text/xml');
3.  ?>

Теперь код шаблона:

Листинг 8
1.  <?xml version="1.0" encoding="UTF-8"?>
2.  
3.  <rss version="2.0">
4.    <channel>
5.      <title>Новости сайта www.example.com</title>
6.      <link>http://www.example.com/</link>
7.      <description>Все самое интересное с ¶
                 www.example.com</description>
8.      <language>ru</language>
9.      <generator>XS2</generator>
10. 
11.     {xs2GetNodes mod="news" Ntype="news_post" limit=5 ¶
                 sort="Date desc" var="my_news_posts"}
12.     {foreach from=$my_news_posts item="$mp"}
13.       <item>
14.         <title>{$mp.NName}</title>
15.         <link>
16.        http://www.ex.com/news/news_post/show/{$mp.NodId}.htm
17.         </link>
18.         <description>{$mp.Text}</description>
19.         <pubDate>{$mp.Date}</pubDate>
20.       </item>
21.     {/foreach}
22.   </channel>
23. </rss>

В коде шаблона вам все должно быть уже знакомо, кроме, возможно, незнакомых для вас тэгов, использующихся в RSS. Подробнее об этом замечательном формате можно прочитать в Википедии. Если запустить наш метод в браузере (его URL будет таким http://ваш домен/news/rss/), ты мы увидим RSS-поток из пяти свежих новостей.

Введение

Основные характеристики системы XS2
Требование к хостинг-площадке, на которой устанавливается XS2.
Инструкции по установке XS2 на хостинг-площадке.

Часть 1. XS2 шаг за шагом

Модель данных в XS2: модуль, тип, узел, метод.
Как организовать простейшую структуру данных в XS2 и вывести узлы на главной странице сайта.
Множественный выборки узлов и их вывод на странице в цикле.
Создание второстепенной страницы и организация ссылок на нее.
Структура метода в XS2. Что такое процессор и как он взаимодействует в шаблоном внутри одного метода.
Дерево как универсальный способ организации узлов в XS2. Как настраивать вложенность узлов друг в друга.
Ссылки между узлами как основное средство построения альтернативных структур узлов.
Использование функция XS2 API для выполнения редакторских операций в коде методов.
Функция xs2Fetch и ее возможности при организации повторного использования методов.
Подробнее о взаимодействии процессора и шаблона в одном методе: передача данных между процессором и шаблоном.

Часть 2. Решения на платформе XS2

О чем пойдет речь во второй части, для кого она предназначена.
Как производить дополнительные манипуляции с узломпри его вставка, редактировании, удалении, копировании или перемещении.
Постраничный вывод как способ показа больших массивов данных в одном шаблоне.
Как с помощью XS2 быстро сделать сайт с поддержкой множества языковых версий.
Быстрое развертывание удобных пользовательских интерфейсов с технологией AJAX на платформе XS2.
Подробнее о том, как организовать сложные структуры данных в XS2 и производить в них поиск.
В следующих главах, которые будут публиковаться здесь по мере их написания, мы планируем рассказать о:
Copyright ©1998-2008 Солютекс. Все права защищены.
Этот сайт сделан в designLab | Работает на технологии XS2
Условия использования | О защите конфиденциальности