Astra.CMS

 

 

Форум » Приемы конструирования и интеграции дизайна

Одинаковые значения в section

Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.

Автор Текст сообщения

Maksim
Сообщений: 277

Подскажите пожалуйста, возможно ли в массиве определить одинаковые значения (дубликаты) и соответственно выводить только одно значение из дубликата? На php нашел array_unique(). Может что-то подобное есть для Smarty?

Т.е. допустим в section есть поле:
$basket[i].data.tags
по умолчанию оно дублируется столько раз, сколько товара лежит в корзине. Возможно ли определить дубли по полю и выводить только разные значения в section?
 
aristoc

admin
Сообщений: 1159

Используйте {php}...{/php} вставки для использования всех возможностей.
 

Maksim
Сообщений: 277

Прошу прощения, Вы могли бы написать небольшой пример. Или логику. Не могу понять, как можно передать переменную php в smarty и обратно.

{section name=i loop=$basket}
{php}
$input = array($basket[i].data.tags);
$result = array_unique($input);
{/php}
{block id=tagcart tags=$result}
{/section}

Я так понимаю, что нужно сначала передать в php потом обратно передать в smarty (чтобы в ее в section вывести).
 
aristoc

admin
Сообщений: 1159

Если правильно понял то как-то так
{php}
$input = explode(', ',$this->_tpl_vars['basket'][$this->_sections['i']['index']]['data']['tags']);
$result = isset($result)?array_merge($result, $input):$input;
$result = array_unique($result);
$this->assign('result',implode(', ',$result));
{/php}
 

Maksim
Сообщений: 277

Да, очень благодарен!!! То что нужно

 

Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.