Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

alex

  • **
  • 59
  • +0/-0
    • Просмотр профиля
    • Сергеев Александр Сергеевич
Установил Юми, при установке выбрал интернет-магазин (но сам магазин мне вообще не нужен!), просто модули все установлены.
Вобщем сейчас пытался с час вывести контент, но не получилось.

В предыдущем шаблоне все было просто
<xsl:apply-templates select="result" />
Однако тут СТООЛЬКО всего в одном default.xsl ,что как я и ожидал, пустой результ ничего не выдал.
Единственное чего добился -
<xsl:apply-templates select="result" mode="page"/>
ито выводит ТУПО ВСЁ, не воспринимает html коды, шпарит все подряд....лажа.

Итак...
1. Как мне напрямую обращаться к модулю content? Чтобы на каждой странице выводился ее контент, а не всякие каталоги и тп.
2. Как вывести последние несколько постов из модуль blog20, файл postlist.xml ?
Хочу разобраться в @method,@mode и тп, но как к ним обращаться ,а не прописывать их в шаблоне, я не знаю.

Мне кажется надо для result както указать, что мне нужен именно модуль контент, т.к. он явно пытается с каталогом работать...короче я запутался уже. Помогите!

--------------------------------------
пришлось перелопатить весь layots/default.xsl чтобы добиться нужного результата.

Остался вопрос с блогом.
« Последнее редактирование: 19 Апреля 2011, 22:15:17 от alex »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
для вывода последних постов из всех блогов используем макрос %blogs20 postsList()% описание тут http://help-dev.umi-cms.ru/blogs20.postsList.html#xsltDesc

lzk xslt шаблоны будем вызывать его такой строчкой
<xsl:apply-templates select="document('udata://blogs20/postslist/')/udata" mode="last_posts"/>

а также пропишем шаблон для этого списка постов

<xsl:template match="udata[module='blogs20' and method='postslist']" mode="last_posts">
Вывод последних постов <br/>
<xsl:apply-templates select="items/item" mode="last_posts"/>
</xsl:template
>

<xsl:template match="udata[module='blogs20' and method='postslist']/items/item" mode="last_posts">
    <xsl:param name="post_link" select="post_link" />
    <xsl:param name="guide-list-name" select="@name" />
    <xsl:variable name="date" select="document(concat('udata://system/convertDate/', publish_time, '/(Y-m-d%20H:i:s)'))/udata" />   

    <a href="{$post_link}"><xsl:value-of select="$guide-list-id" /></a>
    <xsl:text> (</xsl:text>
<span umi:element-id="{@id}" umi:field-name="publish_time" umi:format="Y-m-d H:i">
<xsl:value-of select="$date" />
</span>
    <xsl:text>)</xsl:text><br/>
    <xsl:value-of select="cut" disable-output-escaping="no" /><br/>
   
</xsl:template>

писал сходу, код не проверял так что не факт, что опечатку не сделал где-нибудь)

*

alex

  • **
  • 59
  • +0/-0
    • Просмотр профиля
    • Сергеев Александр Сергеевич
спасибо большое. жду ответа еще на две темы...вскоре мои вопросы закончатся...и первый сайт на юми будет поднят! 8)

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Проблема с интернет магазином.

Правлю шаблон /xslttpls/layout/default.xsl
Необходимо в разделе каталога /shop/ вывести собственный контент.
Этот код ничего не выводи <xsl:apply-templates select="result" />

Перепробовал кучу кодов, например:
<xsl:apply-templates select="result" mode="page"/>
выводит все  и html код в том числе.

Зайдя в раздел  катаога например DVD техника выводит товар.
Этим же шаблоном.

Почему нет контента?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
пользуешься demodizzy?

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
http://help.umi-cms.ru/install.site_choice.gif второй который
Полнофункциональный демо интернет магазин  -   DVD Техника -  Аудиотехника - Телевизоры - Мобильная связь

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
скорее всего, тебе поможет последнее сообщение в этой ветке    
Re:Не могу разобраться с xslt шаблоном

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Не выводит.

1. в шаблоне /xslttpls/layout/default.xsl вызываю кодом <xsl:apply-templates select="result" />

2. в шаблоне /xsltTpls/modules/catalog/special-offers.xsl код:

   <xsl:template match="result[@pageId][@request-uri = '/']" mode="header">
      <h1 class="best" umi:element-id="{@pageId}" umi:field-name="h1" umi:empty="&empty-page-name;">
         <xsl:value-of select="@header" />
      </h1>
   </xsl:template>


   <xsl:template match="result[page/@is-default = '1']" priority="1">
      <xsl:apply-templates select="document('usel://special-offers/?limit=&specials-limit;')" mode="special-offers" />
   </xsl:template>


   <xsl:template match="udata" mode="special-offers">
      <div class="catalog">
         <div class="objects" umi:element-id="{page[@parentId &gt; 0]/@parentId}" umi:module="catalog" umi:method="getObjectsList" umi:region="list" umi:add-method="none">
            <xsl:apply-templates select="page" mode="short-view">
               <xsl:with-param name="cart_items" select="document('udata://emarket/cart/')/udata/items" />
            </xsl:apply-templates>
         </div>
      </div>
   </xsl:template>

вставляю код сюда:
<xsl:template match="result[@module = 'content'][@method = 'content']">
  <div id="text">
    <xsl:value-of select=".//property[@name = 'content']/value" disable-output-escaping="yes" />
  </div>
</xsl:template>

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
ты привет много разных кусков кода что и где выводит, а что не выводит не понятно, я правильно понимаю что тебе на главной (которая является каталогом) надо вывести текстовое содержимое ? если да то ты в шаблон

 <xsl:template match="result[page/@is-default = '1']" priority="1">
      <xsl:apply-templates select="document('usel://special-offers/?limit=&specials-limit;')" mode="special-offers" />
   </xsl:template>

вписываешь

 <xsl:template match="result[page/@is-default = '1']" priority="1">
      <xsl:value-of select=".//property[@name = 'descr']/value" disable-output-escaping="yes" />
      <xsl:apply-templates select="document('usel://special-offers/?limit=&specials-limit;')" mode="special-offers" />
   </xsl:template>

и не забывай что поле с текстом в разделе каталога называется не content, а descr

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
На главное все выводится - http://ns.competentit.com.swteh.ru
Мне надо на другой странице раздела каталога:  http://ns.competentit.com.swteh.ru/produkciya/ тут не выводится вобще ничего



*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
в любом случае вопрос в шаблона, отключи все шаблоны каталога, оставь один какой-нибудь, если какой-то из существующих перекрывает, то тебе надо найти какой, впиши в конце концов разные цифры в каждый шаблоне, вот и посмотришь какой из них выводиться, а так я не могу тебе ничего подсказать.
Попробуй поправить шаблон category-view.xsl в нем происходит подгрузка основного шаблона для каталога и он пытается подгрузить товары (без описания) может тебе его править надо

<xsl:template match="/result[@method = 'category']">
<xsl:apply-templates select="document('udata://catalog/getObjectsList')" />
</xsl:template>

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Подскажите как вывести контент указанной страницы?

Использовал этот скрипт <xsl:apply-templates select="document('udata://content/(tekst_sleva)')"  mode="page"/>
спасибо

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
для вывода какого-нибудь поля можно использовать

<xsl:value-of select=".//property[@name = 'h1']/value" disable-output-escaping="yes" />

но для этого мы должны вызывать этот код находясь на этой странице, если нам необходимо вывести поле не с текущей страницы (например со страницы с id = 30), то делаем так

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

не забывай про то что у выпадающего списка например вывод значение будет не /value, a /value/item/@name

Ну и еще некоторые базовые тонкости не плохо было бы знать, почитай книгу Данила Кострова (http://www.umi-cms.ru/support/docs/xslt-umi-devbook/) там весь необходимый базис

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Спасибо)
Скачал книгу, будем изучать))

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Как вывести на главной странице объекты каталога, у которых стоит галочка "Лучшее предложение"?

Сейчас в шаблоне выводится строчкой: <xsl:apply-templates select="result" />

А я хочу вывести и привязать к своему шаблону mode="luchwee predlojenie"
<xsl:apply-templates select="document('udata://catalog/getCategoryList/(shop)/')" mode="luchwee predlojenie"/>