Skip to content

Instantly share code, notes, and snippets.

@TrywaR
Last active January 4, 2021 20:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save TrywaR/a2f8937202fec30338db914141d27617 to your computer and use it in GitHub Desktop.
Save TrywaR/a2f8937202fec30338db914141d27617 to your computer and use it in GitHub Desktop.
MODX Revo | MiniShop2 > Вывод активных опций категории

MODX Revo | MiniShop2 > Вывод активных опций категории

Всё просто, сниппет выводит всё что нужно, имеет параметры

Параметр Описание Значение по умолчанию
$categoryId id категории Вывод из всех
$tpl шаблон для вывода tpl.msCategoryOptions.row
$active Выводить только активные Да(1)

Туповой вызов

[[msCategoryOptions? &categoryId=`[[+id]]`]]

Параметры которые можно получить в чанк

[id]  
[key]  
[caption]  
[description]  
[measure_unit]  
[category]  
[type]  
[properties]    
<?php
// Параметры
// $categoryId
$tpl = $tpl ? $tpl : 'tpl.msCategoryOptions.row';
$active = $active ? $active : 1 ;
// Получаем активные опции [ категории | категорий ]
$sQuery = "SELECT * FROM `" .$modx->getOption('table_prefix'). "ms2_category_options`";
if ( isset($categoryId) )
if ( $active )
$sQuery .= " WHERE `active` = 1 AND `category_id` = " . $categoryId;
else
$sQuery .= " WHERE `category_id` = " . $categoryId;
foreach ($modx->query($sQuery) as $row) $msOptionsIds .= ', ' . $row['option_id'];
$msOptionsIds = substr($msOptionsIds, 2);
// Записываем опции в чанк $tpl
$sQuery = "SELECT * FROM ". $modx->getOption('table_prefix') ."ms2_options WHERE `id` IN (" . $msOptionsIds . ")";
$result = $modx->query($sQuery);
$output = '';
if ( !empty($result) ) {
$resOptions = $result->fetchAll(PDO::FETCH_ASSOC);
foreach($resOptions as $resOption) $output .= $modx->getChunk($tpl, $resOption);
}
return $output;
<div>
[[+caption]]
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment