Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Торговые предложения (SKU) в UMI.CMS

Автор webtrendРаздел Шаблоны XSLT

Ответов: 8
Просмотров: 697
Последний ответ 10 Февраль 2016, 13:19:17
от webtrend
Источники значений & в интернет-магазине "

Автор diii3Раздел Шаблоны XSLT

Ответов: 2
Просмотров: 1515
Последний ответ 10 Ноябрь 2012, 22:04:18
от diii3
Проблема с модулем "Обратная связь-->Шабло&

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

Ответов: 2
Просмотров: 1681
Последний ответ 14 Ноябрь 2011, 20:13:47
от don_basilio
Warning: DOMDocument::load(): Entity 'settings-page-id' not def "

Автор BabajkaРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 1762
Последний ответ 31 Август 2012, 09:22:05
от Babajka
Вывод картинки "Нет фото"

Автор diii3Раздел Шаблоны XSLT

Ответов: 12
Просмотров: 12598
Последний ответ 11 Февраль 2012, 22:24:03
от diii3

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

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Здравствуйте!

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

Заранее спасибо!
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
по поводу иконки, это вопрос к версте, поищите примеры (например этот) когда у вас будет готовый вариант переносите его в xslt шаблон. При выводе товара делайте проверку на то что галочка поставлена и если это так выводите те css и html элементы, котоыре отобразят метку "новинка"

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

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

Затем, нужно сделать вызов этого нового usel файла, на подобие того, который вызывается для "лучших предложений" (сам вызов вы можете найти в файле /templates/xslt/modules/)catalog/special-offers.xsl)

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
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, на котором подобное реализовано, просто рекламировать его не хочу (могу скинуть ссылку на сайт в "личку", при необходимости).
« Последнее редактирование: 09 Октябрь 2014, 14:56:02 от sam »
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
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 заголовка вашего блока с новинками. Тоже самое с лучшими предложениями.

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
1-4. Понятно. Спасибо!

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

P.S. У лучших предложений страница уже есть, id 35, т.е. что-то подобное создать и для новинок? А как сама ссылка будет выглядеть, для обоих случаев - лучшие предложения и новинки (интересует содержимое ссылок (a href="here_will_be_link"))?
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
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 смениться)

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Сделать новинки с 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) для новинок.
« Последнее редактирование: 12 Октябрь 2014, 22:20:21 от sam »
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Цитировать
Как сделать, чтобы после блока с лучшими предложениями (полностью после 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


*

sam

  • ***
  • 216
  • +3/-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" />
                <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' ничего не помогает. Что посоветуете по этому поводу?
« Последнее редактирование: 12 Октябрь 2014, 22:26:18 от sam »
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Цитировать
Я в курсе, только такой вариант не подойдет, потому, что на главной стр. лимит должен быть настраиваемым (например, 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.
Для того, чтобы она там появилась воспользуйтесь механизмом дополнительных данных общий принцип и особенность для usel   или более грубый вариант сделайте проверку так
<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, по аналогии

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Цитировать
...или более грубый вариант сделайте проверку так...
<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. Подскажете, как решить эти вопросы, думаю, тему уже закроем.
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Цитировать
Или в чём минус этого "грубого" варианта?

при запросе вида 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 лучшими предложениями

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Цитировать
при запросе вида 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 выше)
« Последнее редактирование: 15 Октябрь 2014, 18:25:03 от sam »
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Все можно проверить. Любой вызов через любой протокол (usel, upage, uobject и т.п.) можно проверить (что именно он возвращает и возвращает ли) вызвав его из адресной строки. Для usel читайте тут

Узнайте что у вас подставляется в шаблоне
<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 файле (как это делается я уже приводил ссылку, еще раз повторю).

Вывод usel, вместе с доп. данными тоже можно проверить через адресную строчку http://ваш_сайт/usel/new-items/3389, если в самом usel будет инструкция о выводе расширенных данных (ссылка выше).

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Цитировать
Ваша ситуация с 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>
« Последнее редактирование: 16 Октябрь 2014, 02:10:59 от sam »
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.