отображать продукты в личном кабинете в Amber Pro

Я хочу показывать товары только одной определенной категории в личном кабинете пользователя.

Я хочу добавить код из файла site.php.

Кто-нибудь может знать, как я могу отобразить продукты в блоке в личном кабинете?

Как я могу обрабатывать операции, связанные с запросом из site.php в Amber?

Я добавил блок, используя следующий код. Теперь я хочу отобразить продукты в этом блоке.

    Am_Di::getInstance()->blocks->add(new Am_Block('member/main/right',    'blockname', 'block_id', null, function (Am_View $v) {
$html = <<<CUT
<p>
want to display products here
</p>
CUT;
return $html;
});

0

Решение

Я предполагаю, что вы хотите показать только те продукты, к которым у пользователя есть доступ.
Вот код, который вы можете использовать для достижения этой цели. Вы можете поместить его в файл site.php. В этом примере я показываю продукты из категории с id = 1, смело меняйте их на нужное значение.

$cat_id = 1;
$cat_product = Am_Di::getInstance()->productCategoryTable->getCategoryProducts();

if (($u = Am_Di::getInstance()->auth->getUser())
&& array_intersect($u->getActiveProductIds(), $cat_product[$cat_id])) {

Am_Di::getInstance()->blocks->add(
new Am_Block('member/main/right', 'My Products', 'product-cat-1', null,
function(Am_View $v) use ($u, $cat_product, $cat_id) {
$out = '';
foreach ($u->getActiveProducts() as $p) {
if (!in_array($p->pk(), $cat_product[$cat_id])) continue;
$out .= sprintf("<li>%s</li>\n", Am_Html::escape($p->title));
}
return sprintf('<ul class="am-widget-list">%s</ul>', $out);
}));
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]