В принципе, вы должны отделить презентацию (HTML) от приложения / обработки (PHP).Я бы предложил сделать это вычисление на уровне PHP и передать результат в Smarty.Я совершенно незнаком с PrestaShop, поэтому я делаю предположения о том, что содержит $cart
, но этот общий код PHP должен работать:
<?php
const DESIRED_CATEGORY = 37;
$cart = [
// list some products falling into two categories, 1 and 37
'products' => [
'apples' => [ 'id_category_default' => 1 ],
'oranges' => [ 'id_category_default' => 1 ],
'bananas' => [ 'id_category_default' => 1 ],
'cheese' => [ 'id_category_default' => 37 ],
'yoghurt' => [ 'id_category_default' => 37 ],
'butter' => [ 'id_category_default' => 37 ],
],
];
// this returns [ 1, 1, 1, 37, 37, 37 ];
$categories = array_column($cart['products'], 'id_category_default');
// this will be true if and only if at least one product is category 37
$hasCategory = in_array(DESIRED_CATEGORY, $categories);
$smarty->assign('hasCategory37', $hasCategory);