UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: sam от 09 Октября 2014, 00:52:05

Название: "Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 09 Октября 2014, 00:52:05
Здравствуйте!

А не могли бы подсказать, каким образом можно сделать "Новинки" аналогично тому, как сделаны "Лучшие предложения"? Т.е., чуть ли не в один в один, разве что, вместо "Лучшие предложения" чтобы было "Новинки". Чтобы и "Новинки" наряду с "Лучшими предложениями" выводить на главной странице (также определенное количество).
Только с одним дополнением + добавление иконки "new.png" в правом верхнем углу картинок товаров, как в категориях, так и в карточках товаров.

Заранее спасибо!
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 09 Октября 2014, 10:42:06
по поводу иконки, это вопрос к версте, поищите примеры (например этот (http://verstalnya.ru/uroki/css-lentochka-novinka/)) когда у вас будет готовый вариант переносите его в xslt шаблон. При выводе товара делайте проверку на то что галочка поставлена и если это так выводите те css и html элементы, котоыре отобразят метку "новинка"

Для создания товаров "новинок", добавьте в типе данных ваших товаров (скорее всего это "объект каталога", про работу с типами данных читайте в руководстве (http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_shablony_dannyh/)), новое поле (тип данных "кнопка-галочка"), после этого данная галочка появится у товаров при редактировании в админке.

Теперь, для вывода товаров, у которых есть такая галочка, сделайте новый usel файл по образу и подобию файла для вывода "лучших предложений" (это файл /templates/xslt/usel/special-offers.xml, почитать подробнее про usel и как с ним работать в документации (http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/))

Затем, нужно сделать вызов этого нового usel файла, на подобие того, который вызывается для "лучших предложений" (сам вызов вы можете найти в файле /templates/xslt/modules/)catalog/special-offers.xsl)
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 09 Октября 2014, 11:24:30
1. Вопрос с иконкой в принципе оставим на самый конец (за ссылку спасибо!, статья полезная). Понятно, что для ее вывода надо будет использовать xsl:if test="checked", если мы говорим о "чекбокс"-е (детали, при возникновении вопроса, обсудим уже по факту реализации).

2. Если я Вас правильно понял, для начало "Новинку" в объектах каталога в опции управления, наряду с лучш.предлож. надо добавить, с идентификатором, например, "new_items" (кнопка-флажок). Правильно?

3. USEL такого рода будет (точная директива: /docs/usels/new-items.xml)?
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="catalog" method="object" />
</target>
<property name="new_items" value="1" />
<sort>rand()</sort>
<limit page="0">{limit}</limit>
</selection>

4. Не совсем понял, т.е. также создать аналогичный файл, только new-items.xsl с похожим содержанием, как и special-offers.xsl, с изменениями для новинок? Или вызов сделать уже в имеющемся special-offers.xsl?

5. А на главной странице выводиться это всё тоже будет после всего, или для этого надо дополнительно еще что-то сделать?

P.S. Я прошу прощения, понимаю, что вопросов много - "Лучшие предложения" - как так сделать, чтобы на главной странице внутри h1 (лучш.предлож.) появилась еще и ссылка "Все", которая будет ссылаться на страницу со всеми лучшими предложениями? Есть один сайт на UMI, на котором подобное реализовано, просто рекламировать его не хочу (могу скинуть ссылку на сайт в "личку", при необходимости).
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 10 Октября 2014, 10:55:43
1) да, только не xsl:if test="checked" , а xsl:if test=".//property[@name='new_items']/value"

2) да

3) да, такого рода. Можно файл с usel расположить и в папке с вашим шаблоном, то есть в /templates/demodizzy/usel

4) как вам удобнее, думаю в вашем случае удобнее сделать вызов в special-offers.xsl, так как там уже есть шаблон, который используется на главной странице и вам остается только добавить свой вызов xsl:apply-templates с вашим usel

5) если вы редактируете файл special-offers.xsl, то вывод новинок будет либо перед, либо после "лучших предложений". В зависимости от того, вставите ли вы свой вызов usel до или после вызова usel для лучших предложений. Хотя вы можете переделать вызов и вывести все совсем по другому если это необходимо по вашему ТЗ

P.S. Для начала создайте страницу на которой будут выводиться все новинки. Создаете любую страницу в админке, пишете для неё отдельный шаблон, типа как шаблон для вывода списка товаров в файле /templates/demodizzy/xslt/modules/catalog/category-view.xsl, только для конкретной страницу (поставте проверку по id страницы например) и в этом шаблоне вместо вызова catalog getobjectslist делаете вызов своего usel/ Затем ссылку на эту страницу вставляете в верстку вашего блока, чтобы она была справа от h1 заголовка вашего блока с новинками. Тоже самое с лучшими предложениями.
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 10 Октября 2014, 12:01:17
1-4. Понятно. Спасибо!

5. Появиться ли h1 "Новинки" на главной стр., если новый usel я вызову в special-offers.xsl? По другому, это как, можете пример привести (как вызов можно переделать)?

P.S. У лучших предложений страница уже есть, id 35, т.е. что-то подобное создать и для новинок? А как сама ссылка будет выглядеть, для обоих случаев - лучшие предложения и новинки (интересует содержимое ссылок (a href="here_will_be_link"))?
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 10 Октября 2014, 16:03:38
5) заголовок для главной странице также формируется в файле special-offers.xsl, там будет выводиться то что вы туда выведите

P.S.да, сделайте страницу на подобие id=35. Если вы имеете в виду как подставить туда ссылку, то либо в ваших шаблонах пишите ссылку копируя её с адресной строки соответствующей страницы  http://your_site.ru/new_item/ или можете формировать link динамически (href="{document(concat('upage://',35))/udata/page/@link}") по id страницы (чтобы не менять ссылку если вы перетащите страницу в админке в другое место и её href смениться)
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 10 Октября 2014, 17:10:48
Сделать новинки с usel, и создать страницу и вывести ее на главной получилось, а вот со вторым h1 (новинки) никак не получается. USEL вызовы сейчас выглядят так:
	<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:apply-templates select="document('usel://new-items/?limit=&news-limit;')" mode="special-offers" />
</xsl:template>

Как сделать, чтобы после блока с лучшими предложениями (полностью после 9 лучш. предложений) вывести еще один h1 (новинки) после чего и должны выводиться новинки? Проблема с заголовком (h1) для новинок.
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 10 Октября 2014, 17:22:30
Цитировать
Как сделать, чтобы после блока с лучшими предложениями (полностью после 9 лучш. предложений) вывести еще один h1 (новинки) после чего и должны выводиться новинки? Проблема с заголовком (h1) для новинок.

<xsl:template match="result[page/@is-default = '1']" priority="1">
<xsl:apply-templates select="document('usel://special-offers/?limit=&specials-limit;')" mode="special-offers" />
                <h1>мой второй h1 заголовок, но это не очень хорошо для seo</h1>
                <xsl:apply-templates select="document('usel://new-items/?limit=&news-limit;')" mode="special-offers" />
</xsl:template>

Цитировать
чтобы ссылаться/перейти на нелимитированную страницу с полным списком предложений

у вас при вызове usel файла есть параметр limit, через него задайте очень большое число, ну например 1000000

Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 12 Октября 2014, 21:18:29
Цитировать
<xsl:template match="result[page/@is-default = '1']" priority="1">
<xsl:apply-templates select="document('usel://special-offers/?limit=&specials-limit;')" mode="special-offers" />
                <h1>мой второй h1 заголовок, но это не очень хорошо для seo</h1>
                <xsl:apply-templates select="document('usel://new-items/?limit=&news-limit;')" mode="special-offers" />
</xsl:template>

Вместо h1 решил использовать h2, чтобы не ухудшать SEO. Здесь разобрался с Вашей помощью. Спасибо!

*************************

Цитировать
у вас при вызове usel файла есть параметр limit, через него задайте очень большое число, ну например 1000000

Я в курсе, только такой вариант не подойдет, потому, что на главной стр. лимит должен быть настраиваемым (например, 6 случайных объектов), а на своей странице уже полный список новинок или лучших предложений. Как быть?

*************************

С шаблоном для "новинок" тоже проблема - ничего не понял (приложил файл - название только менял, содержимое без изменений). Просто не совсем понял, где и как здесь сделать вызов usel, что оставить в коде, а что убрать?! ID новинок 3389. Просто было бы хорошо, если это был шаблоном как для новинок, так и для лучш.предлож. с полным списком предложений.

Подскажите, как можно этот файл (во вложении) под новинки подправить?

*************************

Цитировать
да, только не xsl:if test="checked" , а xsl:if test=".//property[@name='new_items']/value"

Подобная проверка не работает (иконка не видна (без проверки могу выводить, с проверкой никак))! Делаю так:
<xsl:if test=".//property[@name='best_offers']/value">
<img src="/images/icons/best.png" border="0" height="52" width="52" alt="Лучшее" />
</xsl:if>
<xsl:if test=".//property[@name='new_items']/value">
<img src="/images/icons/new.png" border="0" height="52" width="52" alt="Новинка" />
</xsl:if>
Пробовал содержимое test заключить в not() добавив после value !='', и без not() добавить ='1' ничего не помогает. Что посоветуете по этому поводу?
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 14 Октября 2014, 11:55:24
Цитировать
Я в курсе, только такой вариант не подойдет, потому, что на главной стр. лимит должен быть настраиваемым (например, 6 случайных объектов), а на своей странице уже полный список новинок или лучших предложений. Как быть?

У вас есть шаблон для главной страницы (где вы вставляли h2 заголовки), там вы ставили limit у usel вызова как вам надо для главной.

Для вывода списка всех новинок у вас должен быть отдельный шаблон с вызовом usel, там limit ставите 100000.

По поводу вывода всех новинок:
Вы привели файл newitem-view.xsl, судя по всему это копия файла catalog-view.xsl . Это не совсем то, о чем я говорил.
Сейчас для показа всех "лучших предложений" система использует шаблон (файл catalog-view)
<xsl:template match="/result[@method = 'category']">
<xsl:apply-templates select="document(concat('usel://special-category-offers/', $document-page-id, '?limit=&specials-limit;'))" mode="special-offers" />
<xsl:apply-templates select="document('udata://catalog/getCategoryList/void/shop//1/')" mode="left-column" />
</xsl:template>

срабатывает этот шаблон из-за того, что страница для вывода "лучших предложений" лежит на первом уровне вложенности (если посмотреть на шаблоны ниже вышеприведенного в файле catalog-view можно заметить что там стоят проверки на кол-во родителей то есть, вывод товаров происходит если мы находимся на странице раздела 2 и более уровня вложенности).

И вот, у нас появилась необходимость создать шаблон для вывода "новинок". Написать шаблон для страниц первого уровня мы не можем (перекроем шаблон для "лучших предложений") поэтому привяжемся к id страницы. Для этого ниже шаблона (который приведен выше) в файле catalog-view пишем шаблон вида
<xsl:template match="/result[@method = 'category' and @pageId=3389]">
<xsl:apply-templates select="document(concat('usel://news-item/', $document-page-id, '?limit=1000000'))" mode="special-offers" />
</xsl:template>

возможно добавятся еще какие-то вызовы или html элементы внутри данного шаблона или поменяется mode, но принцип думаю понятен.

[quote]Подобная проверка не работает (иконка не видна (без проверки могу выводить, с проверкой никак))! Делаю так:
Код:

<xsl:if test=".//property[@name='best_offers']/value">
<img src="/images/icons/best.png" border="0" height="52" width="52" alt="Лучшее" />
</xsl:if>
<xsl:if test=".//property[@name='new_items']/value">
<img src="/images/icons/new.png" border="0" height="52" width="52" alt="Новинка" />
</xsl:if>

Пробовал содержимое test заключить в not() добавив после value !='', и без not() добавить ='1' ничего не помогает. Что посоветуете по этому поводу?[/quote]

У вас не проходит проверка, так как скорее всего в xml, который обрабатывает данный шаблон, не содержит информацию о поле new_items.
Для того, чтобы она там появилась воспользуйтесь механизмом дополнительных данных общий принцип (http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/makrosy_protokol_udata/#extended) и особенность для usel  (http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/#extended)  или более грубый вариант сделайте проверку так
<xsl:if test="document(concat('upage://',@id,'.new_items'))//value">
<img src="/images/icons/new.png" border="0" height="52" width="52" alt="Новинка" />
</xsl:if>
и такую же проверку для поля best_offers, по аналогии
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 15 Октября 2014, 01:32:39
Цитировать
...или более грубый вариант сделайте проверку так...
<xsl:if test="document(concat('upage://',@id,'.new_items'))//value">
<img src="/images/icons/new.png" border="0" height="52" width="52" alt="Новинка" />
</xsl:if>

Честно говоря я не понял, почему это "грубый" вариант? Просто, я воспользовался этим вариантом, и проверка заработала. Можно ли считать данный вопрос закрытым? Или в чём минус этого "грубого" варианта?

*************

Цитировать
У вас есть шаблон для главной страницы (где вы вставляли h2 заголовки), там вы ставили limit у usel вызова как вам надо для главной.
 
Для вывода списка всех новинок у вас должен быть отдельный шаблон с вызовом usel, там limit ставите 100000.

Теперь понятно - в special-offers.xsl при вызовах "document('usel://special-offers/?limit=&specials-limit;')" и "document('usel://new-items/?limit=&new-items-limit;')" - это лимиты для главной страницы, а в category-view.xsl вызовы "document(concat('usel://special-category-offers/', $document-page-id, '?limit=1000000'))" и "document(concat('usel://news-item/', $document-page-id, '?limit=1000000'))" - это лимиты для разделов каталога. Спасибо за пояснение!

*************

Остался открытый вопрос - это ссылки-переходы "все" для новинок и лучших:

1. Такая ссылка для новинок {document(concat('upage://', 3389))/udata/page/@link} логично переходит на страницу mysite.ru/new_items, но почему-то страница пустая, т.е. ни одного объекта. Понимаю, что где-то, что-то я пропустил (возможно в каком-то шаблоне)?! Что и где я забыл прописать, можете подсказать? Как вывести объекты-новинки на mysite.ru/new_items?

2. Как писал ранее, такая ссылка для лучших предложений {document(concat('upage://', 35))/udata/page/@link} НЕ проходит - страница по умолчанию является главной ("галочка" стоит на "страница по умолчанию" внутри этой страницы), потому ссылка НЕ на mysite.ru/best_offers, а на mysite.ru - как так сделать, чтобы ссылка была НА mysite.ru/best_offers, где будут отображены все лучшие предложения?

Заранее спасибо!

P.S. Подскажете, как решить эти вопросы, думаю, тему уже закроем.
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 15 Октября 2014, 11:12:03
Цитировать
Или в чём минус этого "грубого" варианта?

при запросе вида upage://333.field_name вы тратите больше ресурсов сервера, чем при использовании подгрузки дополнительных данных при вызове (ссылки я прикладывал в своем предыдущем сообщении)

Цитировать
Что и где я забыл прописать, можете подсказать? Как вывести объекты-новинки на mysite.ru/new_items?

Не знаю где  и что вы забыли прописать. Мы уже обсудили все, что вы должны били сделать:
1. наличие usel файла для выборки
2. наличие страницы в админке, на которой будут выводиться все новинки
3. наличие шаблона для вызова usel файла именно на странице, которую мы создали на 2 шаге

P.S. единственное, что могу предположить, пример шаблона (3 шаг), который  я приводил ранее, срабатывает когда страница является разделом каталога и  когда у неё определенный id. Можете еще попробовать данный шаблон перенести ниже всех других шаблонов в файле catalog-view.xsl

Цитировать
как так сделать, чтобы ссылка была НА mysite.ru/best_offers, где будут отображены все лучшие предложения?
Никак, главная страница всегда обрезает название страницы, на то она и главная. Создайте другую страницу, которая не будет главной, для которой будет свой шаблон и ссылку на которую вы сможете сделать в своем блоке с 6 лучшими предложениями
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 15 Октября 2014, 17:53:47
Цитировать
при запросе вида upage://333.field_name вы тратите больше ресурсов сервера, чем при использовании подгрузки дополнительных данных при вызове (ссылки я прикладывал в своем предыдущем сообщении)

Т. е., получается нагрузка на сервер. Это конечно же не хорошо.

Цитировать
У вас не проходит проверка, так как скорее всего в xml, который обрабатывает данный шаблон, не содержит информацию о поле new_items.
Для того, чтобы она там появилась воспользуйтесь механизмом дополнительных данных общий принцип и особенность для usel  

Можете конкретно написать, что в xml файлы добавить для new_items и best_offers (код)?

1. "наличие usel файла для выборки" - для лучш.предлож. уже было, для новинок создал.
2. "наличие страницы в админке, на которой будут выводиться все новинки" - уже созданы страницы - их ID 3389 и 3395
3. "наличие шаблона для вызова usel файла именно на странице, которую мы создали на 2 шаге" - код ниже в файле category-view.xsl после <xsl:template match="/result[@method = 'category']">:
<xsl:template match="/result[@method = 'category' and @pageId=3389]">
<xsl:apply-templates select="document(concat('usel://new-items/', $document-page-id, '?limit=1000000'))" mode="special-offers" />
</xsl:template>

<xsl:template match="/result[@method = 'category' and @pageId=3395]">
<xsl:apply-templates select="document(concat('usel://special-offers/', $document-page-id, '?limit=1000000'))" mode="special-offers" />
</xsl:template>

Что в этих кодах не так - вроде Ваши подсказки реализованы. Может я что-то не так делаю?

Цитировать
P.S. единственное, что могу предположить, пример шаблона (3 шаг), который  я приводил ранее, срабатывает когда страница является разделом каталога и  когда у неё определенный id. Можете еще попробовать данный шаблон перенести ниже всех других шаблонов в файле catalog-view.xsl

Перенести - это как, сам код, или же дописать в эти шаблоны доп.элементы?

Если логически рассуждать, то объекты должны вызываться с помощью "udata://catalog/getObjectsList/", но этого не происходит, и страницы выводяться пустыми.

Просьба, вроде две вещи доделать осталось:
1. В xml (usel) дописать коды для срабатывания проверок
2. И вывод объектов на новых двух страницах (коды с ID выше)
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 16 Октября 2014, 00:12:15
Все можно проверить. Любой вызов через любой протокол (usel, upage, uobject и т.п.) можно проверить (что именно он возвращает и возвращает ли) вызвав его из адресной строки. Для usel читайте тут (http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/#sel=36:1,39:25)

Узнайте что у вас подставляется в шаблоне
<xsl:template match="/result[@method = 'category' and @pageId=3389]">
<xsl:apply-templates select="document(concat('usel://new-items/', $document-page-id, '?limit=1000000'))" mode="special-offers" />
</xsl:template>
заместо переменной $document-page-id скорее всего это 3389 и сделайте вызов из адресной строки http://ваш_сайт/usel/new-items/3389. Если ваш usel написан верно и параметр ему передан верно (я не знаю для чего именно вы передаете параметр 3389, может в нем какая причина), то вы увидите xml со списком новинок.

Это для того, чтобы понять где у вас ошибка, в получении xml списка новинок или в обработке его и выводе на сайте.

А насчет экономичных вызовов, видимо надо пояснить на примере.

Вот у вас есть xml, который получился благодаря какому-то вызову из шаблона (мой пример не из umi, а просто для понимания)
<result>
   <value>333</value>
</result>

если в шаблоне, который обрабатывает данный xml, вы поставите условие
<xsl:if test="title='222'">...</xsl:if>
то это правило никогда не вернет true , так как в данном xml изначально нет узла <title>, который можно было бы проверить

А вот если бы у вас был вывод узла <title>, то результат проверки зависил бы от того, что внутри этого узла содержится. То есть, если обрабатывать шаблоном, с if проверкой, такой xml
<result>
   <title>111</title>
   <value>333</value>
</result>
, то if проверка вернет false, но не из-за того что узла нет, а из-за того, что в нем неверное значение. А если шаблон будет обрабатывать xml вида
<result>
   <title>222</title>
   <value>333</value>
</result>
, то у вас сработает условие.

Ваша ситуация с property, который вы пытаетесь найти в результатах вызова usel://new-items точно такая же. У вас в этом результате (xml данных) не выводится property[@name='new_items'] вообще, даже если он у товара есть. Потому как usel возвращает только общую информацию о объекте, который попал в результат usel выборки. А для того, чтобы в этот результат(xml данные) вывести еще какую-то информацию, например о каком-то поле, есть возможность указать это в usel файле (как это делается я уже приводил ссылку, еще раз повторю (http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/#sel=140:1,140:40)).

Вывод usel, вместе с доп. данными тоже можно проверить через адресную строчку http://ваш_сайт/usel/new-items/3389, если в самом usel будет инструкция о выводе расширенных данных (ссылка выше).
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 16 Октября 2014, 01:48:04
Цитировать
Ваша ситуация с property, который вы пытаетесь найти в результатах вызова usel://new-items точно такая же. У вас в этом результате (xml данных) не выводится property[@name='new_items'] вообще, даже если он у товара есть. Потому как usel возвращает только общую информацию о объекте, который попал в результат usel выборки. А для того, чтобы в этот результат(xml данные) вывести еще какую-то информацию, например о каком-то поле, есть возможность указать это в usel файле (как это делается я уже приводил ссылку, еще раз повторю).

Правильно ли понял, что в usel внутри selection мне надо добавить следующий код:
<extended>
    <properties>new_items</properties>
</extended>



Цитировать
заместо переменной $document-page-id скорее всего это 3389 и сделайте вызов из адресной строки http://ваш_сайт/usel/new-items/3389. Если ваш usel написан верно и параметр ему передан верно (я не знаю для чего именно вы передаете параметр 3389, может в нем какая причина), то вы увидите xml со списком новинок.

Это для того, чтобы понять где у вас ошибка, в получении xml списка новинок или в обработке его и выводе на сайте.

Вызовы usel по id 3389 и 3395 как Вы в цитате описали сделал, и объекты там есть (xml), в т.ч. и без добавления id к этим вызовам xml отображает объекты. $document-page-id заменил на 3389 и 3395 - сами страницы всё равно пустые. Если я Вас правильно понял, получается, что ошибка в обработке и выводе объектов на сайте. Может ли проблема быть в том, что страницы с id 3389 и 3395 созданы как страница контента (хотя страница с id 35 (лучш.предлож.) также является страницей контента)?

Посмотрите содержимое одного из usel (xml по нему формируется без проблем):
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="catalog" method="object" />
</target>
<property name="new_items" value="1" />
<sort>rand()</sort>
<limit page="0">{limit}</limit>
</selection>

XML-файл:
С этим XML-файлом не связана ни одна таблица стилей. Ниже показано дерево элементов.
<udata module="usel" method="new-items" generation-time="0.975321"><page id="3374" parentId="92" link="/shop/notebooks/hp/g6v95ea/" is-active="1" object-id="31534" type-id="115" update-time="1412854655" alt-name="g6v95ea" xlink:href="upage://3374"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP ProBook 455 G2 (G6V95EA)</name></page><page id="3361" parentId="92" link="/shop/notebooks/hp/g7w29ea/" is-active="1" object-id="31518" type-id="115" update-time="1412968412" alt-name="g7w29ea" xlink:href="upage://3361"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP Pavilion x360 11-n050sr (G7W29EA)</name></page><page id="3372" parentId="92" link="/shop/notebooks/hp/g6v98ea/" is-active="1" object-id="31532" type-id="115" update-time="1412853207" alt-name="g6v98ea" xlink:href="upage://3372"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP ProBook 455 G2 (G6V98EA)</name></page><page id="3371" parentId="92" link="/shop/notebooks/hp/g6w45ea/" is-active="1" object-id="31531" type-id="115" update-time="1412852709" alt-name="g6w45ea" xlink:href="upage://3371"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP ProBook 455 G2 (G6W45EA)</name></page><page id="3271" parentId="244" link="/shop/monoblocks/hp/k2b39ea/" is-active="1" object-id="31396" type-id="131" update-time="1412968636" alt-name="k2b39ea" xlink:href="upage://3271"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP Envy Recline 23-k301nr TouchSmart (K2B39EA)</name></page><page id="3270" parentId="244" link="/shop/monoblocks/hp/k2b38ea/" is-active="1" object-id="31395" type-id="131" update-time="1412968622" alt-name="k2b38ea" xlink:href="upage://3270"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP Envy Recline 23-k300nr TouchSmart (K2B38EA)</name></page><page id="3362" parentId="92" link="/shop/notebooks/hp/g7w30ea/" is-active="1" object-id="31519" type-id="115" update-time="1412968425" alt-name="g7w30ea" xlink:href="upage://3362"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP Pavilion x360 11-n051sr (G7W30EA)</name></page><page id="3272" parentId="244" link="/shop/monoblocks/hp/k2b44ea/" is-active="1" object-id="31397" type-id="131" update-time="1412968650" alt-name="k2b44ea" xlink:href="upage://3272"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP Envy Recline 27-k300nr TouchSmart (K2B44EA)</name></page><page id="3373" parentId="92" link="/shop/notebooks/hp/g6w42ea/" is-active="1" object-id="31533" type-id="115" update-time="1412854377" alt-name="g6w42ea" xlink:href="upage://3373"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP ProBook 455 G2 (G6W42EA)</name></page><page id="3273" parentId="244" link="/shop/monoblocks/hp/k2b45ea/" is-active="1" object-id="31398" type-id="131" update-time="1412968663" alt-name="k2b45ea" xlink:href="upage://3273"><basetype id="55" module="catalog" method="object">Объекты каталога</basetype><name>HP Envy Recline 27-k301nr TouchSmart (K2B45EA)</name></page><total>10</total></udata>
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 16 Октября 2014, 03:03:09
Цитировать
Может ли проблема быть в том, что страницы с id 3389 и 3395 созданы как страница контента

Да, может, так как ваш шаблон
<xsl:template match="/result[@method = 'category' and @pageId=3389]">
<xsl:apply-templates select="document(concat('usel://news-item/', $document-page-id, '?limit=1000000'))" mode="special-offers" />
</xsl:template>

ищет страницу с id = 3389 относящуюся к методу category (такой метод выводится у страниц типа "раздел каталога"). Либо меняйте проверку @method  в шаблоне, либо создавайте новую страницу соответствующего типа данных... и меняйте id в шаблоне
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 16 Октября 2014, 17:16:21
Либо меняйте проверку @method  в шаблоне, либо создавайте новую страницу соответствующего типа данных... и меняйте id в шаблоне

Помог первый вариант (поменял @method = 'category' на @method = 'content') - объекты появились! Второй вариант с новыми страницами тоже вывел пустые страницы, не смотря на то, что я создал их как разделы каталога (не в модуле "структура", а в "каталог" как разделы) и в шаблоне изменил только их id, без изменения @method. Делал так (3405 id новый страницы):
<xsl:template match="/result[@method = 'category' and @pageId=3405]">
<xsl:apply-templates select="document(concat('usel://special-offers/', $document-page-id, '?limit=1000000'))" mode="special-offers" />
</xsl:template>

Правильно ли понял, что в usel внутри selection для проверки/выборки мне надо добавить следующий код?:
<extended>
    <properties>new_items</properties>
</extended>
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 16 Октября 2014, 22:38:16
Цитировать
Второй вариант с новыми страницами тоже вывел пустые страницы, не смотря на то, что я создал их как разделы каталога (не в модуле "структура", а в "каталог" как разделы) и в шаблоне изменил только их id, без изменения @method. Делал так (3405 id новый страницы):

ниже этого есть еще шаблоны для страниц типа "раздел каталога" они могут перекрывать ваш шаблон, чисто для себя, попробуйте перенести его ниже всех <xsl:template ... > в этом файле

Цитировать
Правильно ли понял, что в usel внутри selection для проверки/выборки мне надо добавить следующий код?:
да ,все верно. Если при этом у вас не появился результат удостоверитесь, что тип данных, который вы указали в usel файле, содержит в себе такое поле.
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 16 Октября 2014, 23:57:36
Добавил extended - вот результат xml:
<page id="3374" parentId="92" link="/shop/notebooks/hp/g6v95ea/" is-active="1" object-id="31534" type-id="115" update-time="1412854655" alt-name="g6v95ea" xlink:href="upage://3374">
<basetype id="55" module="catalog" method="object">Объекты каталога</basetype>
<name>HP ProBook 455 G2 (G6V95EA)</name>
<extended>
<properties>
<property id="642" name="new_items" type="boolean">
<title>Новые предложения</title>
<value>1</value>
</property>
</properties>
</extended>
</page>

Минус в том, что на главной-то стр. отображаются иконки, а вот в разделах каталога со списком объектов иконки исчезли (проверку сделал через .//property)?! А внутри самих объектов (карточки) вовсе обе иконки отображаются?! (:
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 17 Октября 2014, 00:05:32
ну что я могу тут вам посоветовать, вы пишите про то? что в ваших шаблонах где-то так, где-то сяк. Принцип? по которому эти данные выводятся в xml вы знаете, как проверить попали ли они в xml вы знаете, если шаблон не выводит пробуйте по другому. Экспериментируйте, особенно если в одном месте работает в другом нет.
А иначе мне надо влезть в вашу работу ,разобраться что вы хотите вывести в итоге и посмотреть что у вас не так, а это уже не знаниями поделиться, а вас проверить))

Так что, будут конкретные вопросы, после поисков сравнений и проб, пишите.
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: sam от 17 Октября 2014, 00:13:05
Понятно. Спасибо! Вы и так меня за руку, как младенца вели. Оставлю "грубый", но в то же время рабочий вариант (просто, боюсь на производительность сайта данный вариант будет влиять, особенно когда количество объектов в них будет больше, чем сейчас):
<xsl:if test="document(concat('upage://', page/@id, '.best_offers'))//value">
        <img src="/images/icons/best.png" border="0" height="52" width="52" />
</xsl:if>
<xsl:if test="document(concat('upage://', page/@id, '.new_items'))//value">
        <img src="/images/icons/new.png" border="0" height="52" width="52" />
</xsl:if>
Название: Re:"Новинка" - аналогично тому, как сделаны "Лучшие предложения"
Отправлено: admin от 17 Октября 2014, 03:32:36
Цитировать
боюсь на производительность сайта данный вариант будет влиять, особенно когда количество объектов в них будет больше, чем сейчас

криминально не будет, но как говориться по крупицам можно насобирать.