Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Вывод количества объектов в категории. XSLT

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

Ответов: 6
Просмотров: 4696
Последний ответ 18 Октября 2014, 17:39:24
от idu.kuru
Сортировка по алфавиту в xslt

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

Ответов: 2
Просмотров: 4195
Последний ответ 14 Января 2012, 17:25:36
от admin
Не выводятся все теги в xslt

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

Ответов: 2
Просмотров: 3818
Последний ответ 03 Июня 2014, 13:52:04
от goodprofy
webforms & XSLT & модальное окно

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

Ответов: 8
Просмотров: 8533
Последний ответ 13 Июня 2011, 00:41:56
от talanter
Как вывести itemprop="position" content="" в XSLT?

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

Ответов: 0
Просмотров: 1518
Последний ответ 15 Ноября 2018, 09:30:06
от makarov2979

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

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Здравствуйте! А как можно в админ.части в редактировании раздела вызвать содержимое уже существующего раздела из вновь созданного раздела? Т.е., есть раздел "Vendorname" (имеет своё название/
псевдостатический адрес/vendorname и свой id 1671), создаю новый пустой раздел и в поле Дополнительно/Описание хочу вставить %вызов%, чтобы в этом разделе отобразить содержимое/объекты существующего раздела "Vendorname". Может иначе как-то надо вызывать?!

Если это можно сделать, подскажите еще, можно ли таким же или аналогичным вызовом в одном разделе вызывать объекты 2-х разделов?

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

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
в поле, типа html? нельзя использовать xslt макросы, так что вам остается вставлять там tpl макросы. Для вывода контента другой страницы можно использовать макрос  %content insert()%

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Cоздал раздел "ноутбуки Vendorname" и в поле дополнительно/описание в админ.части вставил подобный вызов %content insert('/shop/vendorname/pagename/')%, так и не получил содержимое уже существующего раздела "pagename". Адрес/дерево существующего раздела /shop/vendorname/pagename/ (id 1671). Как его содержимое вызвать из вновь созданного раздела?
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

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

Если у вас вторая проблема, то используйте макрос %data getProperty()%/ Не забывайте, что ему тоже нужен tpl шаблон.

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
admin, никак не получается. Попробуем по другому - эта страница, которую хотим получить, содержит объекты раздела каталога, а там соответственно используется макрос, который отвечает за вызов объектов каталога. По этому пробую вызвать эти объекты так %catalog getObjectsList('default', '/shop/vendorname/pagename/')%, тоже ничего, т.е. объекты не выводятся. А про %data getProperty()% вообще ничего не понял - как здесь %data getProperty(%pid%, 'test_property', 'sample')% прописать свои значения?
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
стоп, стоп, стоп... что именно с другой страницы хочется вывести и почему это выводится не в шаблоне, а именно в админке?

*

sam

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

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
sam, в ваших объяснениях есть несколько мест которые вы не совсем верно видите.Но описывать это все очень долго, поэтому. Если вам надо вывести товары из одного раздела (например, раздел /shop1/ с id = 101) в другом (например, раздел /shop2/ с id = 202), в котором нет своих товаров, то правильнее делать это так:
1. вывести в шаблоне xslt макрос getObjectsList()
2. указать данному макросу id нужного раздела (в нашем примере это 101). Скорее всего, у вас не один такой случай. Поэтому, имеет смысл брать id раздела источника из админки.
2.1. создадим в типе данных "раздел каталога" поле типа "ссылка на дерево" с названием "Раздел источник" (с name = 'parent_cat')
3. вывести его для нужной страницы. Будем выводит для всех разделов у кого заполнено поле parent_cat.

В итоге в шаблоне, который выводит содержимое раздела. вы выводите дополнительный блок getObjectsList в котором указываете id раздела указанного в админке.

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Как же всё сложно?! Я думал можно попроще. Почему нельзя это как-то проще сделать, например, простым вызовом из админки? Я расписал свои попытки, и хочу понять, почему они не работают, Вы конечно же объясняете, но я всё равно не совсем понимаю Ваши объяснения. Давайте так, если всё так сложно, значит закроем эту тему, и забудем всё. Жаль.
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Как же всё сложно?! Я думал можно попроще. Почему нельзя это как-то проще сделать, например, простым вызовом из админки? Я расписал свои попытки, и хочу понять, почему они не работают, Вы конечно же объясняете, но я всё равно не совсем понимаю Ваши объяснения. Давайте так, если всё так сложно, значит закроем эту тему, и забудем всё. Жаль.

в umi нет такого макроса, который  выведет центральную часть какой-то странице.

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

И тут, у вас либо правильный, с точки зрения удобства, вариант предложенный мною, либо вы можете вставить tpl макрос для вывода списка товаров (%catalog getObjectsList()) в контент область. Но, во-первых, вам надо в нем указать необходимые параметры (например id раздела из которого вы выводите товары). Во вторых, вам надо создать tpl шаблон, который будет использоваться этим макросом. А создание вывода одних и тех же товаров в tpl и xslt шаблонах, это уже лишние телодвижения с последующими тонкостями и сложностями.