Логотип

Документация по макросам и шаблонам UMI.CMS

Страницы: протокол UPage

Протокол UPage предназначен для получения любой страницы сайта в XML-формате.

Просмотр страниц сайта в виде XML

Чтобы увидеть результат запроса по этому протоколу, наберем в адресной строке браузера http://ваш_сайт/upage/ и затем url или id страницы сайта, например http://ваш_сайт/upage/mypage или http://ваш_сайт/upage/23052. Вы увидите страницу, подобную представленной:

<?xml version="1.0" encoding="utf-8" ?>
<udata>
    <page
        id="23052"
        parentId="0"
        link="/mypage/"
        is-visible="1"
        is-active="1"
        object-id="27089"
        type-id="10"
        type-guid="content-page"
        update-time="1302511149"
        alt-name="mypage">
        <name>Моя страница</name>
        <properties>
            <group id="22" name="common">
                <title>Основные</title>
                <property id="22" name="title" type="string">
                    <title>Поле TITLE</title>
                    <value>Заголовок моей страницы (TITLE)</value>
                </property>
                <property id="23" name="h1" type="string">
                    <title>Поле H1</title>
                    <value>Заголовок моей страницы</value>
                </property>
            ... другие свойства...
            </group>
        ... другие группы свойств...
        </properties>
    </page>
</udata>

Замечание

Для версий до 2.8: если на странице http://ваш_сайт/upage/mypage отображается сообщение, что протокол UPage недоступен, создайте в корневой папке сайта пустой файл с именем scheme.upage.allow и обновите страницу.

Для версий, начиная с 2.8: необходимо указать параметр upage.http.allow = "1" в файле config.ini в секции [streams] (см. Секция [streams]).

Внимание

Из соображений безопасности после окончания этапа разработки файл scheme.upage.allow настоятельно рекомендуется удалить. В противном случае некоторые данные, получаемые по этому протоколу через http, могут быть доступны любому посетителю сайта.

Вызов отдельного свойства страницы

Если вам нужна не вся страница, а только одно ее свойство, например h1, вы легко можете получить его, добавив к запросу имя этого свойства, например http://ваш_сайт/upage/mypage.h1:

<?xml version="1.0" encoding="utf-8" ?>
<udata>
    <property id="23" name="h1" type="string">
        <title>Поле H1</title>
        <value>Заголовок моей страницы</value>
    </property>
</udata>

Добавление результатов вызова UPage в шаблон

Как и в случае с запросами по протоколу UData, добавить результат выполнения запроса по протоколу UPage в XSLT-шаблон можно с помощью функции document(): document('upage://mypage.h1').

Например следующий код вставит значение поля контент для страницы с id = 7:



<xsl:value-of select="document('upage://7.content')//value" disable-output-escaping="yes" />

Аналогично вызовам макросов с параметрами, можно при помощи функции concat() динамически передавать параметр в запрос Upage:



<xsl:value-of select="document(concat('upage://', @id, '.anons'))//value" disable-output-escaping="yes" />

Кэширование результатов вызова

Аналогично кэшированию результов вызова по протоколу UData (см. «Макросы: протокол UData»).

Страницы сайта в формате JSON

Для того чтобы получить страницу сайта в формате JSON, допишите после вызова ".json"