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

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

Ответов: 2
Просмотров: 278
Последний ответ 24 Апреля 2016, 13:02:38
от atach
Вывод данных страниц разного типа данны в порядке создания

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

Ответов: 5
Просмотров: 250
Последний ответ 09 Декабря 2016, 12:55:59
от Sumrakrnd
Варианты подгрузки разных типов страниц в одном шаблоне

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

Ответов: 4
Просмотров: 1589
Последний ответ 08 Июля 2013, 14:52:35
от admin
Вопрос по выводу дочерних страниц модуля структура

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

Ответов: 5
Просмотров: 1937
Последний ответ 07 Марта 2014, 17:34:18
от e.ioffe
Сбор информации об обновлении страниц сайта

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

Ответов: 15
Просмотров: 5625
Последний ответ 28 Сентября 2011, 17:02:34
от AllaVK

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

*

Aksuk

  • *
  • 44
  • +0/-0
    • Просмотр профиля
Очередной вопрос. Не нашел описания в документации, возможно это слишком очевидные вещи.

Есть задача: выводить страницы по категориям. Страницы сайта имеют две кастомные характеристики - "заказчик" и "тип продукции". Первое поле может принимать одно значение, второе - любое количество (список со множественным выбором). Когда начинал делать сайт, полагал, что, как в друпале, вывести страницы можно без проблем. Но макрос %content pagesByAccountTags()%, как понимаю, работает только с содержимым поля tags. Есть ли способ вывести страницы по моим кастомным полям, используя штатные макросы? Если нет - что посоветуете использовать?

Есть конечно запасной вариант - 6 лент новостей (по типам продукции), а вывод по заказчикам сделать списком (там не требуется делать отдельные страницы для заказчиков) через %system getFilteredPages()%. Но там свой подводный камень - не знаю, как выключить при выводе на главной странице (используя %news lastlist()%) дублирующие новости из разных лент в случае, если страница проходит по 2-3 категориям.

Каталог использовать не хочется, там слишком много лишнего функционала. Но если альтернатива - срочно и досконально изучить php или использовать каталог - выберу 2 конечно :)

*

Aksuk

  • *
  • 44
  • +0/-0
    • Просмотр профиля
Разобрался. Спасибо albion-у
Решение здесь - http://umihelp.ru/forum/index.php/topic,139.0.html

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
как правильно писал albion лучше пользовать %data doselection()%, по поводу кастомной фильтрации я писал статью, посмотри, %data doSelection()% и как передать ему параметр из адресной строки

*

Aksuk

  • *
  • 44
  • +0/-0
    • Просмотр профиля
Спасибо за статью и совет! Получилось. И выключалку сделать и сортировать по кастомным полям. Замечательный макрос действительно.

Но аппетит приходит во время еды. Скажи, а есть ли возможность ссылаться из этой выборки не на конкретные страницы, а на результаты выборок же (условия которых заданы внутри шаблона этой)? Скажем - на все работы данного "заказчика", относящиеся к данному "типу продукции". И может ли юми на лету генерировать страницы по заданному пути?

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
подробнее опиши задачу, не очень понятно что ты хочешь сделать

*

Aksuk

  • *
  • 44
  • +0/-0
    • Просмотр профиля
Есть список заказчиков (заполняется кастомное поле тегов при создании материала). Есть список типов работ (5-6 типов, выпадающий список с множественным выбором). Если я хочу получить выборку "работы заказчика Х типа A" - я знаю, как это сделать при помощи %data doselection()%, но для этого мне нужно создать страницу с постоянным адресом. Можно ли  сделать так, чтобы эта страница генерировалась по ссылке из списка? Сам список выглядел бы так:
Тип работ А (просто заголовок)
Заказчик X (ссылка на все работы типа А заказчика X)
Заказчик Y (ссылка на все работы типа А заказчика Y)
...

Тип работ Б... (но здесь уже можно сделать второй вызов, типов немного)

Можно ли такой список сгенерировать %data doselection()%? И можно ли указать в ссылке - по какому пути должна находиться сгенерированная страница (это для navibar)?

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
я не до конца понял что из себя представляют заказчики (это поле со значением или это страница в структуре), но в любом варианте ответ на ваш вопрос, "да".
Выводите список Заказчиков.
В шаблоне для оформления каждого заказчика делаете data doselection вывод элементов справочника "Тип работ"
выводите список типов работ (как выводить справочник смотрите в статьях на umihelp.ru, там есть и для xslt и для tpl)
в шаблоне для оформления каждого элемента списка делаете data doselection вывод всех заказчиков
В шаблоне для вывода каждого конкретного заказчика выводите ссылку на страницу (пусть /res/), на которой будут выводиться все работы типа А, заказчика X.

Делаться это будет так, ссылка на страницу /res/ будет передавать параметры id заказчика и id типа работ, а на странице /res/ будет выводиться макрос выводящие работы результаты макроса data doselection, который выводит все работы типа А, заказчика X беря параметры из адресной строки как в статье описанной выше

*

Aksuk

  • *
  • 44
  • +0/-0
    • Просмотр профиля
Здорово! Попробую сегодня же. Правильно ли понимаю, что страница /res/ - статическая и единая для всех выборок, но можно за счет шаблона подставлять разные значения в Title и таким образом выводить каждый раз новый "путь"?
Заказчики - поле с данными. Все материалы, которые требуется сортировать - "новости", а ленты новостей точно соответствуют типам продукции.

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
/res/ статическая страница и единая для всех выборок (только за счет передаваемых параметров получается разные результаты)

title мною не учитывался, но вы все правильно поняли, его тоже можно модифицировать с учетом переданных через адресную строку параметров

*

Aksuk

  • *
  • 44
  • +0/-0
    • Просмотр профиля
А по той статье про doSelection - можно пояснений? Где именно вызывается кастомный макрос getGuideList? Боюсь, я упускаю что-то важное и само собой разумеющееся ((

Сейчас пытаюсь сделать простой вариант с одним параметром, как описано в статье. Тип материала - новости, параметр - заказчик (выпадающий список, как в статье). На странице "выборка" запускается макрос doSelection с параметрами - %data doSelection(klient_list(tpl-шаблон), klient_filter(usel-шаблон), %custom custom_getRequest(p)%, %custom custom_getRequest(zakazchik)%)%, custom.php отредактировал, guidelist.tpl - на месте. Создана страница /data1/, на которую ссылается guidelist. Но вызов содержимого справочника через getGuideList - он где происходит? И какие параметры я задаю этому макросу - только ID справочника (в моем случае - 126)? Правильно ли понимаю, что в моем случае этот вызов должен выглядеть так - %getGuideList(126)% ?

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
%getGuideList(126)%  это полюбому не правильно, так как это всяко не может соответсвовать ни одной функции (методу), так ка у них в начале идем указание модуля а потом метода (например %news lastlist()%). так вот все должно работать примерно так...

на какой-то странице (не важно на какой) есть ссылка вида /res/?zakazchik=126.
на странице /res/ в шаблоне ли этой страницы или в админке в поле контент этой страницы (только нужно чтобы в шаблоне выводилось это поле контент) выводиться макрос %data doSelection(klient_list, klient_filter, %custom custom_getRequest(p)%, %custom custom_getRequest(zakazchik)%)% так как на эту страницу мы переходим передовая параметр ?zakazchik=126. , он подхватиться через %custom custom_getRequest(zakazchik)% и выборка вернет нужный результат

как-то так