Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Страница регистрации выводит не правильный шаблон

Автор tatfoxРаздел Настройка системы и модулей

Ответов: 5
Просмотров: 1648
Последний ответ 13 Апреля 2016, 11:23:15
от aghigay

0 Пользователей и 2 Гостей просматривают эту тему.

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Не выводит блоки с тектом
« : 24 Февраля 2016, 15:59:44 »
Доброе время суток
Делаю для внутренних страниц меню текстовые блоки для заполнения
Вот xml
<page id="279" parentId="275" link="/napravleniya/obshcheklinicheskie-napravleniya/akusherstvo/" is-visible="1" is-active="1" object-id="1299" type-id="152" update-time="1456317193" alt-name="akusherstvo">
<basetype id="30" module="content">Страницы контента</basetype>
<name>Акушерство</name>
<properties>
<group id="430" name="common">
<title>Общее</title>
<property id="3" name="h1" type="string" is-important="0">
<title>Поле h1</title>
<value>Акушерство</value>
</property>
</group>
<group id="432" name="more_params">
<title>Дополнительные параметры</title>
<property id="12" name="show_submenu" type="boolean" is-important="0">
<title>Показывать подменю</title>
<value>1</value>
</property>
</group>
<group id="436" name="opisanie_naprpavleniya">
<title>описание напрпавления</title>
<property id="514" name="vidimoe_pole_teksta" type="text" is-important="0">
<title>Видимое поле текста</title>
<value>Тест 1</value>
</property>
<property id="515" name="skrytoe_pole_teksta" type="text" is-important="0">
<title>Скрытое поле текста</title>
<value>Тест 1</value>
</property>
<property id="516" name="chem_zanimayutsya" type="text" is-important="0">
<title>Чем занимаются</title>
<value>Тест 1</value>
</property>
<property id="517" name="spisok_uslug" type="text" is-important="0">
<title>Список  услуг</title>
<value>Тест 1</value>
</property>
<property id="518" name="stoimost_uslug" type="text" is-important="0">
<title>Стоимость услуг</title>
<value>Тест 1</value>
</property>
</group>
</properties>
</page>

т.е. для страниц в разделе меню с id275 была определенная структура заполнения, вот мой xsl, но он не подцепляет Тестовый текст вбитый в поле, а берет только текст из основного контента.
Что не так по запросу у меня?((
 	<xsl:template match="result[page/@id = '275']">
<div id="content"  class="content-select">
<xsl:apply-templates select="document('usel://main/275/152')/udata" mode="line"/>
</div>
</xsl:template>

<xsl:template match="udata" mode="line">
<xsl:apply-templates select="page" mode="line"/>
    </xsl:template>
<xsl:template match="page" mode="line">
<div id="content"  class="content-select">
<div id="tab1-reviews">
<section class="block-text">
<xsl:value-of select="//property[@name='vidimoe_pole_teksta']/value" disable-output-escaping="yes" />
<section class="accordionContent">
<xsl:value-of select="//property[@name='skrytoe_pole_teksta']/value" disable-output-escaping="yes" />
</section>
<section class="more accordionButton">читать полностью</section>
</section>

</div>
</div>
</xsl:template>
« Последнее редактирование: 24 Февраля 2016, 17:10:46 от Sumrakrnd »

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #1 : 24 Февраля 2016, 16:55:39 »
P.S.: для конкретной страницы 279 вывод получается

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #2 : 24 Февраля 2016, 17:51:00 »
Не сильно изменила, для конкретной страницы подключение идет, а для страниц относящихся к определенному типу данных привязка не идет, может не так пишу условие?
Да и проблема, указываю проперти и предикат, но данные не выдает...
<xsl:template match="result[page/@id = '279']">
<xsl:apply-templates select="document('usel://main/275/152')/udata" mode="line"/>
</xsl:template>

<xsl:template match="udata" mode="line">
<xsl:apply-templates select="page" mode="line"/>
</xsl:template>
<xsl:template match="page" mode="line">
<div class="block-reviews">
<ul id="tabs">
<li><a title="tab1-reviews" href="#">Услуги</a></li>
<li><a title="tab2-reviews" href="#">Статьи</a></li>
</ul>
<div id="content" class="content-select">
<div id="tab1-reviews">
<section class="block-text">
<xsl:value-of select="//property[@name='vidimoe_pole_teksta']/value" disable-output-escaping="yes" />
<section class="accordionContent">
<xsl:value-of select="//property[@name='skrytoe_pole_teksta']/value" disable-output-escaping="yes" />
</section>
<section class="more accordionButton">читать полностью</section>
</section>
<section class="block-text">
<xsl:value-of select="property[@name='chem_zanimayutsya']/value" disable-output-escaping="yes" />
</section>
<section class="block-text">
<xsl:value-of select="property[@name='spisok_uslug']/value" disable-output-escaping="yes" />
</section>
</div>

<div id="tab2-reviews">
1231223
</div>
</div>
</div>
</xsl:template>

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #3 : 24 Февраля 2016, 19:00:04 »
Блин, а прописываю к стандартному content, он выводит внесенный текст (( а с другим именем нет
<section class="block-text">
<xsl:value-of select="//property[@name = 'content']/value"/>
</section>
« Последнее редактирование: 24 Февраля 2016, 19:04:21 от Sumrakrnd »

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #4 : 24 Февраля 2016, 20:07:49 »
УРА!
Добавила поля в usel и вызов произошел.

Но вот помоги очень надо Т_Т

Как сделать шаблон для определенного типа данных, в частности тип 152

HELP!




Если что вот мой xml
<selection>
    <target result="pages">
        <type id="{2}"/>
        <category depth="1">{1}</category>
    </target>
    <extended>
        <groups>kontakty</groups>
        <properties>h1, content, header_pic, menu_pic_a, photo, descr, vidimoepole, skrytoepole, zanayutiya, uslugi, priceuslug</properties>
    </extended>
    <limit page="{3}">{4}</limit>
</selection>
« Последнее редактирование: 24 Февраля 2016, 20:12:17 от Sumrakrnd »

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #5 : 24 Февраля 2016, 21:03:58 »
HELP Т_Т Очень-очень ><

151 - это id типа данных страницы, внутри которых находятся данные с id 152 (тип данных) Получается структура
-151
--152
--152
--152
и т.д.

Вот мой запрос, он опять теперь стандартно отображает текст из основного блока.
	<xsl:template match="page[@type-id = '151']">
<xsl:apply-templates select="document('usel://main/152/')/udata" mode="line"/>
</xsl:template>

<xsl:template match="udata" mode="line">
<xsl:apply-templates select="page" mode="line"/>
    </xsl:template>

<xsl:template match="page" mode="line">
<div class="block-reviews">
<ul id="tabs">
<li><a title="tab1-reviews" href="#">Услуги</a></li>
<li><a title="tab2-reviews" href="#">Статьи</a></li>
</ul>
<div id="content" class="content-select">
<div id="tab1-reviews">
<section class="block-text">
1
<xsl:value-of select="//property[@name = 'vidimoepole']/value" disable-output-escaping="yes" />
<section class="accordionContent">
2
<xsl:value-of select="//property[@name = 'skrytoepole']/value" disable-output-escaping="yes" />
</section>
<section class="more accordionButton">читать полностью</section>
</section>
<section class="block-text">
3
<xsl:value-of select="//property[@name = 'zanayutiya']/value" disable-output-escaping="yes" />
</section>
<section class="block-text">
4
<xsl:value-of select="//property[@name = 'uslugi']/value" disable-output-escaping="yes" />
</section>
</div>
<div id="tab2-reviews">
<p>Вторая страница</p>
</div>
</div>
</div>
</xsl:template>
Если дело в xml, то не знаю как его даже изменить (xml кидала выше)

Пока получилось вот таким запросом сделать привязку к одной только странице ((
	<xsl:template match="result[page/@id = '279']">
<xsl:apply-templates select="document('usel://main/275/152')/udata" mode="line"/>
</xsl:template>

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #6 : 25 Февраля 2016, 10:12:07 »
Никто не может помочь? Т.т

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #7 : 25 Февраля 2016, 12:16:40 »
Пропустил порядком моментов в вашем саморазвитии)
Вижу, что вы разобрались с тем, как получать дополнительные поля при usel вызове списка страниц.

У вас остался вопрос о том как выводить ваши текстовые блоки именно для той страницы которую вы обрабатываете.

Для этого в шаблоне
<xsl:template match="page" mode="line">
....
</xsl:template>

у всех xpath запросов к полям, вместо
//property[@name='vidimoe_pole_teksta']/value
делаем запросы вида
.//property[@name='vidimoe_pole_teksta']/value
добавив точку в начале запроса (относиться ко всем запросам), вы как бы указываете, что поиск идет не по всему xml документу, а только внутри  текущей ветке (то есть, внутри текущего page)

P.S. если я правильно понял ваш вопрос.

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #8 : 25 Февраля 2016, 12:24:32 »
Сейчас вопрос уже не в текстовом блоке, просто не знаю, просто очень не хочется плодить много тем..

Вопрос в том, как теперь этот запрос/вид привязать к страницам у которых определенный тип данных.
В данном случае страницы с типом данных id 151.
Т.е. созданная структура страниц, если основываться на типе данных выглядит так:
id152
--id151
--id151
--id151
id152
--id151
--id151
id152
--id151
--id151
--id151

К определенной странице я привязала для того, чтобы разобраться выводом блоков, точнее почему не работают, а когда попыталась сделать привязку по типу данных страницы, ничего не заработало Т_Т

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #9 : 25 Февраля 2016, 12:58:52 »
тут все проще

<xsl:template match="result[page/@type-id = '151']">
...шаблон для страниц типа данных 151...
</xsl:template>

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #10 : 25 Февраля 2016, 13:11:07 »
Эмм.. я правильно сделала? А то не работает...
Просто где теперь прописывать обращение к именам полей или путь где поля находятся?

Так:
	<xsl:template match="result[page/@type-id = '151']">
<div class="block-reviews">
<ul id="tabs">
<li><a title="tab1-reviews" href="#">Услуги</a></li>
<li><a title="tab2-reviews" href="#">Статьи</a></li>
</ul>
<div id="content" class="content-select">
<div id="tab1-reviews">
<section class="block-text">
1
<xsl:value-of select=".//property[@name = 'vidimoepole']/value" disable-output-escaping="yes" />
<section class="accordionContent">
2
<xsl:value-of select=".//property[@name = 'skrytoepole']/value" disable-output-escaping="yes" />
</section>
<section class="more accordionButton">читать полностью</section>
</section>
<section class="block-text">
3
<xsl:value-of select=".//property[@name = 'zanayutiya']/value" disable-output-escaping="yes" />
</section>
<section class="block-text">
4
<xsl:value-of select=".//property[@name = 'uslugi']/value" disable-output-escaping="yes" />
</section>
</div>
<div id="tab2-reviews">
<p>Тест</p>
</div>
</div>
</div>
</xsl:template>

Или так:
	<xsl:template match="result[page/@type-id = '151']">
<xsl:apply-templates select="document('usel://main/151/')/udata" mode="line"/>
</xsl:template>
<xsl:template match="udata" mode="line">
<xsl:apply-templates select="page" mode="line"/>
    </xsl:template>
<xsl:template match="page" mode="line">
<div class="block-reviews">
<ul id="tabs">
<li><a title="tab1-reviews" href="#">Услуги</a></li>
<li><a title="tab2-reviews" href="#">Статьи</a></li>
</ul>
<div id="content" class="content-select">
<div id="tab1-reviews">
<section class="block-text">
1
<xsl:value-of select=".//property[@name = 'vidimoepole']/value" disable-output-escaping="yes" />
<section class="accordionContent">
2
<xsl:value-of select=".//property[@name = 'skrytoepole']/value" disable-output-escaping="yes" />
</section>
<section class="more accordionButton">читать полностью</section>
</section>
<section class="block-text">
3
<xsl:value-of select=".//property[@name = 'zanayutiya']/value" disable-output-escaping="yes" />
</section>
<section class="block-text">
4
<xsl:value-of select=".//property[@name = 'uslugi']/value" disable-output-escaping="yes" />
</section>
</div>
<div id="tab2-reviews">
<p>Тест</p>
</div>
</div>
</div>
</xsl:template>

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #11 : 25 Февраля 2016, 13:16:29 »
если ваша задача звучит так: "Для страниц с типом данных 151, вывести результат usel запроса", то подойдет второй вариант.
Но не понятно, почему у вас в usel запросы такие параметры
<xsl:apply-templates select="document('usel://main/151/')/udata" mode="line"/>
ведь первый параметр это id раздела, а у вас там 151, что больше похоже на type-id.

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #12 : 25 Февраля 2016, 13:19:19 »
ой... я перепутала...
151 - это тип раздела
152 - это страницы
id151
--id152
--id152
--id152
id151
--id152
--id152
id151
--id152
--id152
--id152

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #13 : 25 Февраля 2016, 13:25:20 »
Давайте вы еще раз определимся что вы делаете и для какого результата. Так как образовалась путаница где в ваших ответах type-id, а где id страницы. Так же не понятно для чего вы выводите на определенных страницах usel выборки.

Если можно, то с живыми примерами для полного понимания задачи.

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Не выводит блоки с тектом
« Ответ #14 : 25 Февраля 2016, 13:36:52 »
id 151 - это тип данных раздела, где находятся созданные страницы
id 152 - это тип данных страницы, для них нужен определенный шаблон запроса/вида страницы
У типа данных назначение типа стоит страница контента (вдруг важно)

т.е. в страницы с типом данных id152 должен подключатся вот такой шаблон с определенными полями value
(mode или match могут быть изменены, пишу без всех result и usel, чтобы не путаться)

<xsl:template match="page" mode="line">
<div class="block-reviews">
<ul id="tabs">
<li><a title="tab1-reviews" href="#">Услуги</a></li>
<li><a title="tab2-reviews" href="#">Статьи</a></li>
</ul>
<div id="content" class="content-select">
<div id="tab1-reviews">
<section class="block-text">
1
<xsl:value-of select=".//property[@name = 'vidimoepole']/value" disable-output-escaping="yes" />
<section class="accordionContent">
2
<xsl:value-of select=".//property[@name = 'skrytoepole']/value" disable-output-escaping="yes" />
</section>
<section class="more accordionButton">читать полностью</section>
</section>
<section class="block-text">
3
<xsl:value-of select=".//property[@name = 'zanayutiya']/value" disable-output-escaping="yes" />
</section>
<section class="block-text">
4
<xsl:value-of select=".//property[@name = 'uslugi']/value" disable-output-escaping="yes" />
</section>
</div>
<div id="tab2-reviews">
<p>Тест</p>
</div>
</div>
</div>
</xsl:template>

По теме разобралась почему не выводились value, как оказалось надо было прописать в usel нужные поля, а так как я с usel не работала ни разу, первый раз увидела в umi, поэтому долго доходило с полями...
Но проблема оказалась для меня сложнее ((