Использование selector в режиме or-mode для выборки по опционному свойству.
Материал из Umicms
Актуально для версии 2.9.5
Задача
Предположим, в Каталоге имеются товары, у которых задано опционное некое свойство, например "упаковка". При этом, у двух товаров есть два различных варианта упаковки с модификаторами цены 30 и 40, у третьего только 40, а у четвертого, также, один вариант упаковки с модификатором 60. Необходимо задать выборку, которая выведет в итоге все товары, у которых упаковка может стоить 30 или 40 у.е.
Решение
Код выборки будет следующий:
$pages = new selector('pages');
$pages->types('hierarchy-type')->name('catalog', 'object');
$pages->option('or-mode')->field('upakovka');
$pages->where('upakovka')->equals(array('float' => 30));
$pages->where('upakovka')->equals(array('float' => 40));
Результаты можно вывести например так:
foreach($pages as $page){
echo "<a href=\"{$page->link}\">{$page->name}</a>\n";
}
echo "Pages found: {$pages->length}";