Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Ну если не трудно напишите конечно, многим может пригодится

*

rauschen

  • *
  • 22
  • +1/-0
    • Просмотр профиля
Делаем копию метода doSelection в custom.php модуля data и называем его как угодно, например, doSelectionCustom. Находим в этом методе такую строку:

if($element instanceof iUmiHierarchyElement) {

меняем ее на:

if($element instanceof iUmiHierarchyElement && $this->is_virtual($element->id) != 1) {

в этот же файл добавляем следующий метод:

public function is_virtual($id) {
$page_id = (int) $id;
$h = umiHierarchy::getInstance();
//экземпляр страницы
$element = $h->getElement($page_id);
if($element){
// object_id - id источника данных
$object_id = $element->getObjectId();
// список всех страниц, которые используют данный объект
$arr_id = $h->getObjectInstances($object_id);
// первая страница, это страница с наименьшим page_id, т.е. исходная страница
if($arr_id[0] != $page_id) return 1;
return 0;
}else  return 0;
}

вот и весь фокус

*

basurman1346

  • *
  • 1
  • +0/-0
    • Просмотр профиля
Re:Вывод товаров на главной с галочкой Акция
« Ответ #17 : 26 Сентября 2012, 10:50:16 »
возможно ли данный вариант использовать в xslt шаблонизаторе? вроде бы doSelection предназначен для использования с tpl?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Вывод товаров на главной с галочкой Акция
« Ответ #18 : 26 Сентября 2012, 12:13:38 »
не пробовал doSelection в xslt так как она действительно только для tpl, но кто знает как костыль может и прикрутится, но вернее будет написать свой кастом с выборкой товаров и проверкой уже в данной функции является ли товар виртуальной копией

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Делаю так:

<?xml version="1.0" encoding="utf-8"?>
<selection>
  <target expected-result="pages">
    <type module="catalog" method="object" />   
      <property name="bestseller" value="1" />     
    </target>   
    <sort>ord</sort>
     <limit page="0">6</limit>

</selection>

Раньше работало, сейчас выводит все товары.

Подскажите в чем ошибка и каким должен быть xml что бы вывести товары у которых отмечен чекбокс - bestseller

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Делаю так:

<?xml version="1.0" encoding="utf-8"?>
<selection>
  <target expected-result="pages">
    <type module="catalog" method="object" />   
      <property name="bestseller" value="1" />     
    </target>   
    <sort>ord</sort>
     <limit page="0">6</limit>

</selection>

Раньше работало, сейчас выводит все товары.

Подскажите в чем ошибка и каким должен быть xml что бы вывести товары у которых отмечен чекбокс - bestseller

Насколько помню, property нужно вынести за пределы target  - http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Разобрался.
xml получился таким:

<?xml version="1.0" encoding="utf-8"?>
<selection>
  <target expected-result="pages">
    <type module="catalog" method="object" />
    <type id="120" />
    </target>     
      <property name="bestseller" value="1" />      
    <sort>ord</sort>
     <limit page="0">6</limit>

</selection>