Здравствуйте!
Задача: Необходимо реализовать функционал "избранных" элементов инфоблоков, для всех групп пользователей.
Думаю сделать следующим образом:
В шаблоне списка элементов перед массивом пишу:
В массиве:
Вывожу список избранных элементов:
Где необходимо отобразить общее кол-во добавленных элементов:
Вопросы:
- Не смотря на то, что решение работает, хочу убедиться, оптимальным ли я способом решаю задачу?
- Какие минусы данного решения?
Спасибо!
Задача: Необходимо реализовать функционал "избранных" элементов инфоблоков, для всех групп пользователей.
Думаю сделать следующим образом:
В шаблоне списка элементов перед массивом пишу:
| Код |
|---|
<?
if(isset($_GET['add'])){
$_SESSION['answer'][] = $_GET['add'];
}
?> |
В массиве:
| Код |
|---|
<a href="?add=<?=$arElement["ID"]?>">Добавить в избранное</a> |
Вывожу список избранных элементов:
| Код |
|---|
<?// удаление отдельного элемента
if(isset($_GET['idel'])){
for($i=0; $i < count($_SESSION['answer']); $i++)
{unset($_SESSION['answer'][$_GET['idel']]);}
}
?>
<?// удаление всех элементов
if(isset($_GET['del'])){
unset($_SESSION['answer']);
}
?>
<?CModule::IncludeModule("iblock"); // инициализируем модуль инфоблоков
// выводим список
foreach ($_SESSION['answer'] as $key=>$value){
$obElement = CIBlockElement::GetByID($value);
if($arEl = $obElement->GetNext())?>
<?=$arEl["NAME"];?> <a href="?idel=<?=$key?>">Удалить</a><br/>
<?}?>
<br/><br/><a href="?del=del">Удалить все</a> |
Где необходимо отобразить общее кол-во добавленных элементов:
| Код |
|---|
<?=count($_SESSION['answer']);?> |
Вопросы:
- Не смотря на то, что решение работает, хочу убедиться, оптимальным ли я способом решаю задачу?
- Какие минусы данного решения?
Спасибо!