Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Изменение количества товара в списке товаров и карточке товара

Автор bepluyРаздел JS и AJAX

Ответов: 2
Просмотров: 2795
Последний ответ 14 Ноября 2015, 13:52:43
от bepluy
Импортировать "Опционные свойтва" товаров в UMIDump из CML 2.0. Хэлп!

Автор Alex_nosРаздел Custom макросы

Ответов: 3
Просмотров: 4617
Последний ответ 09 Февраля 2012, 13:08:00
от admin
Добавление тегов для товаров, и вывод блока с тегами в любом месте сайта

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

Ответов: 9
Просмотров: 5476
Последний ответ 26 Июля 2014, 10:58:09
от FelixTheCat
вывод рекомендованных товаров не через выбор из списка (XSLT)

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

Ответов: 22
Просмотров: 13663
Последний ответ 21 Мая 2012, 13:27:35
от shoto
Как сделать вывод товаров в корзине отдельным скриптом на ajax

Автор volchovРаздел JS и AJAX

Ответов: 10
Просмотров: 9785
Последний ответ 16 Октября 2012, 17:15:13
от volchov

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

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
На данный момент поиск отвечая на запросы (поиск товаров) выдает ответ - порядковый номер, ссылку на найденный объект плюс строку, где есть соответствующие поисковому запросу ключевые слова. 

Вопрос: не могли бы подсказать, как можно сохранив вышеописанный вывод для всех разделов сайта кроме каталога, сделать еще один шаблон для раздела "каталог", где поисковый ответ должен будет равняться short-view, т.е. так, как объекты отображаются в категориях, если мы говорим о поиске товаров на сайте? Как бы получается, что добавить шаблон заключенный в xsl:if test="если поисковое слово найдено в объектах/категориях, то выводить этот шаблон", далее шаблон short-view. Или же с xsl:choosе - как логичнее на ваш взгляд. Примерный код шаблона с проверкой можете предложить?

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

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #1 : 07 Ноября 2014, 23:41:21 »
Если вы хотите выводить результаты поиска в виде краткой краточки товара, то стоит организовать поиск таким образом, чтобы он искал только среди товаров. Для этого вам достаточно в форме поиска, добавить поле, указывающее какой базовый тип данных вас интересует.
<input type="hidden" value="6" name="search_types">
В данном примере, 6 - это id базового типа данных "Объект каталога", базовые типы данных можно увидеть в модуле "Шаблоны данных", на странице "настройки модуля"

По поводу вывода. Вы можете просто поменять mode/ В большинстве случаев, этого будет достаточно. То есть
<xsl:apply-templates select="items/item" mode="search-result" />
заменить на
<xsl:apply-templates select="items/item" mode="short-view" />

Стоит помнить, что если при вызове getObjectsList вы используете ?extProps, то такой же ?extProps надо прописать вызову
<xsl:apply-templates select="document('udata://search/search_do')" />



*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #2 : 08 Ноября 2014, 17:08:46 »
Спасибо за подробное объяснение! Попробую сделать.

Только следующее не совсем понял:

Цитировать
Стоит помнить, что если при вызове getObjectsList вы используете ?extProps, то такой же ?extProps надо прописать вызову
Код:
<xsl:apply-templates select="document('udata://search/search_do')" />


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

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #4 : 09 Ноября 2014, 16:42:47 »
admin, один не могу справиться - получается какая-та белиберда непонятная?! В следующий  код вставил предложенный Вами hidden input (search-results.xsl):
		<form class="search" action="/search/search_do/" method="get">
<input type="hidden" value="6" name="search_types">
<input type="text" value="{$search_string}" name="search_string" class="textinputs"  x-webkit-speech="" speech="" />
<input type="submit" class="button" value="Найти" />
</form>

А потом уже нашел следующий код
<xsl:apply-templates select="items/item" mode="search-result" />
и заменил его на
<xsl:apply-templates select="items/item" mode="short-view" />

В результате поиска в ответ получил "ключевые слова", фото, цена, кнопка и всё это построчно и съезжается в разброс по странице, т.е. желаемый результат не получается. И не знаю, используем ли ?extProps?!  

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

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #5 : 25 Ноября 2014, 13:47:45 »
Эта тема еще актуальна - см. предыдущее сообщение.
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #6 : 25 Ноября 2014, 17:17:11 »
Эта тема еще актуальна - см. предыдущее сообщение.
sam, учитесь ставить вопросы. На ваш вопрос "Помогите получить желаемый результат" я бы ответил так.

1. при отправке формы поиска используйте скрытый input с типом данных который вас интересует (скрытый input есть, равен ли 6 нужный вам тип данных... не знаю, это надо проверять вам в вашей системе... вы знаете где посмотреть id типа данных?)

2. в шаблоне, который обрабатывает результаты, вывести результаты как краткие карточки товара. На первый взгляд, вы попытались вывести результаты поиска используя шаблон для краткой карточки товара , добавив mode="short-view" , но решило ли это все вопросы, видимо нет. Вам надо проверить:
- вызывается ли шаблон краткой карточки (добавьте в него 123 и проверьте выводиться ли он или это какой-то другой шаблон)
- достаточно ли данных передает результат макроса search шаблону mode="short-view"
- выводит ли система тот html, который выводиться в разделе каталога.
- применяется ли на этот html css, который применяются в разделе каталога (возможно у вас все ок с html, но стили не применяются из-за отсутствия какого-то родительского класса или т.п.)


Для того, чтобы это проверить, надо просто уметь посмотреть с каким xml вы работает в каком шаблоне (xsl:copy-of, о котором мы говорили в другой теме, как раз для этого подойдет)

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #7 : 25 Ноября 2014, 18:42:15 »
admin, прошу прощения - понимаю, что обращаюсь за помощью, но иногда Вы такие встречные вопросы задаёте, что я недоумеваю.

Вы профи в своей области (в этом Ваше преимущество), а я в Вашей области не профи, потому ставлю вопросы так, как я это понимаю. Так что, извините, если формулировки вопросов не понятны для Вас!

Теперь по сути вопроса:
1. Настройки "Шаблона данных" у нас и в localhost аналогичны по порядку в списке модулей (они в настройках шаблона данных в 7-ой строке), а вот какой там id, и как/где это смотреть я не знаю, к сожалению (Ваше преимущество - Вы знаете, что и где посмотреть). <input type="hidden" value="6" name="search_types" /> - по этому hidden поиск ничего не находит, к сожалению.

2. Получил желаемый результат (dl class="..." заменил на div class="catalog", и в этот же div добавил еще один div class="objects"). Спасибо за подсказку! Но пришлось написать шаблон search-short-view в файле search-result.xsl, так как поиск придирался - название товара в short-view указано как name, а поиск требует @name, иначе выводит title из head.

2.1. Еще несколько вопросов:
а) все же, какой hidden с каким value поставить, чтобы искать в разделах среди объектов/товаров? не знаю я, где и как id посмотреть.
б) как указать лимит на количество найденных товаров, например, 50?
в) почему поиск требует @name, а не может по name (без собачки) вывести название, а в разделах каталога name (без собачки) работает?
« Последнее редактирование: 26 Ноября 2014, 02:07:40 от sam »
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #8 : 26 Ноября 2014, 08:01:00 »
а) все же, какой hidden с каким value поставить, чтобы искать в разделах среди объектов/товаров? не знаю я, где и как id посмотреть.

id нужного вам типа данных, можно посмотреть в настройках модуля "Шаблоны данных". Там найдите тип данных "Объект каталога" и посмотрите, в html, какой id стоит у кнопки галочки напротив него (эта галочка используется для удаления и там есть id)

б) как указать лимит на количество найденных товаров, например, 50?

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

в) почему поиск требует @name, а не может по name (без собачки) вывести название, а в разделах каталога name (без собачки) работает?

Потому как xml возвращается по другому и шаблон для вывода товаров не во всем подходит для вывода результатов поиска. Зная это либо пишите в шаблоне short-view проверочные условия, либо делайте отдельный template (видимо по этому пути вы и пошли)

P.S. по поводу формулировок
Цитировать
admin, прошу прощения - понимаю, что обращаюсь за помощью, но иногда Вы такие встречные вопросы задаёте, что я недоумеваю.

Вы профи в своей области (в этом Ваше преимущество), а я в Вашей области не профи, потому ставлю вопросы так, как я это понимаю. Так что, извините, если формулировки вопросов не понятны для Вас!
Пусть так, но моя главная задача не ответить вам на конкретный вопрос, а помочь разобраться и научиться чему-то новому. А для этого, мне нужно чтобы вы самостоятельно формировали как можно более подробные вопросы. Так как при этом часть вопросов отпадет, а другая отпечатается в памяти.

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #9 : 26 Ноября 2014, 17:38:54 »
а) Спасибо за подсказку! - id 55 (<input type="checkbox" name="dels[]" value="55" class="check">. Поиск вроде среди объектов каталога производится.

б) Спасибо за подсказку! Вопрос: настроил лимит, сделал поиск, нашелся объектов больше установленного лимита, соответственно перелистывать, а блок с numpage не на своём месте, вернее, border-top с border-bottom (css) накладывается на последние 3 объекта, а содержимое numpage (1 2 3 |следующее) на своём месте внизу, после всех найденных объектов. По стилям все совпадает, а что тогда не так? Почему border-top с border-bottom (css) накладывается на последние 3 объекта?

в) Если честно, пробовал в common.xsl менять name на @name в mode=short-view, в разделах каталога всё ок, а вот новинки и лучшее название выводились примерно так "Объект каталога Ноутбук...". Подскажите, как сделать проверку для short-view, а именно для блока внутри ссылки с названием товара? Вот кусочек этого кода (что написать внутри test для проверки? - когда стр. поиск товаров, первое условие, а по умолчанию второе):
		<xsl:choose>
<xsl:when test="выводить, когда используется шаблон из search-results.xsl">
<xsl:value-of select="@name" />
<xsl:if test="not(@name)">
<xsl:apply-templates />
</xsl:if>
</xsl:when>
<xsl:otherwise><!-- по умолчанию -->
<xsl:value-of select="name" />
<xsl:if test="not(name)">
<xsl:apply-templates />
</xsl:if>
</xsl:otherwise>
</xsl:choose>

P.S. Не должно Вас смутить то что я напишу, но как и ранее писал, Вы водите меня почти за руку, и помогаете ориентироваться в недрах xslt/xml (для меня это всё тёмный лес). Пребольшое моё Вам спасибо за всё!
« Последнее редактирование: 27 Ноября 2014, 23:17:35 от sam »
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #10 : 17 Декабря 2014, 14:56:14 »
Из предыдущего письма открытым остался вопрос/пункт "б":

б) Вопрос: настроил лимит, сделал поиск, нашелся объектов больше установленного лимита, соответственно перелистывать, а блок с numpage не на своём месте, вернее, border-top с border-bottom (css) накладывается на последние 3 объекта, а содержимое numpage (1 2 3 |следующее) на своём месте внизу, после всех найденных объектов. По стилям все совпадает, а что тогда не так? Почему border-top с border-bottom (css) накладывается на последние 3 объекта?

Буду признателен за подсказки!

P.S. С пунктом "в" (проверка на "name/@name") я справился самостоятельно.
« Последнее редактирование: 17 Декабря 2014, 14:58:28 от sam »
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #11 : 17 Декабря 2014, 15:33:28 »
Из предыдущего письма открытым остался вопрос/пункт "б":

б) Вопрос: настроил лимит, сделал поиск, нашелся объектов больше установленного лимита, соответственно перелистывать, а блок с numpage не на своём месте, вернее, border-top с border-bottom (css) накладывается на последние 3 объекта, а содержимое numpage (1 2 3 |следующее) на своём месте внизу, после всех найденных объектов. По стилям все совпадает, а что тогда не так? Почему border-top с border-bottom (css) накладывается на последние 3 объекта?

Буду признателен за подсказки!

P.S. С пунктом "в" (проверка на "name/@name") я справился самостоятельно.

вопрос уже к css, возможно у вас результаты выводятся как float:left блоки, а контейнер в котором лежат результаты не имеет свойства clear:both в итоге, некоторые элементы расположенные ниже блока с результатами, как бы на него налазят.

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #12 : 17 Декабря 2014, 22:59:02 »
"Век живи - век учись"! Проблема была именно в этом - добавление clear:both к стилю numpages расставило все по своим местам. Спасибо! Тема закрыта.

P.S. Просьба, admin, по возможности попробуйте помочь в решении других вопросов - открыты еще несколько тем.

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

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #13 : 25 Января 2015, 21:00:21 »
Если вы хотите выводить результаты поиска в виде краткой краточки товара, то стоит организовать поиск таким образом, чтобы он искал только среди товаров. Для этого вам достаточно в форме поиска, добавить поле, указывающее какой базовый тип данных вас интересует.
<input type="hidden" value="6" name="search_types">
В данном примере, 6 - это id базового типа данных "Объект каталога", базовые типы данных можно увидеть в модуле "Шаблоны данных", на странице "настройки модуля"

По поводу вывода. Вы можете просто поменять mode/ В большинстве случаев, этого будет достаточно. То есть
<xsl:apply-templates select="items/item" mode="search-result" />
заменить на
<xsl:apply-templates select="items/item" mode="short-view" />

Стоит помнить, что если при вызове getObjectsList вы используете ?extProps, то такой же ?extProps надо прописать вызову
<xsl:apply-templates select="document('udata://search/search_do')" />


Вот всё сделал, как и написано. Превью объектов вывелись как надо, то есть по шаблону категории товаров, но кроме одного нюанса - в моём случае названия объектов в их превью ссылки на подробные карточки товаров и в этих ссылках экроме названия самого объекта включились символы <p><b> Название объекта </p></b>   .

В полном виде это так выводится:

<a href="/market/ventilyaciya/ventilyatory/kanal_nye_ventilyatory/ventilyator_pervyj_no_ne_poslednij_test_11_panasonic/" class="title" umi:element-id="320" umi:field-name="name" umi:delete="delete" title="Вентилятор первый но не последний с длинным названием в три строки как бы - ТЕСТ 11 - Panasonic"><p>Радиальный <b>вентилятор</b> ТЕСТ 22 - LG Мульти сплит-система для 2-х помещений площадью до 25 м2 каждое на общую площадь до 50 м2 Мульти сплит-система (комплект) </p></a>

то есть в теге <a>...</a> добавилось не нужное форматирование - как его убрать ?

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Поиск по каталогу (поиск товаров/объектов)
« Ответ #14 : 26 Января 2015, 12:07:22 »
то есть в теге <a>...</a> добавилось не нужное форматирование - как его убрать ?

А вот как: <xsl:value-of select="." disable-output-escaping="yes" />  и экранирование символов отключается в файле .../catalog/common.xsl