Здравствуйте!
Задача: Необходимо реализовать функционал "избранных" элементов инфоблоков, для всех групп пользователей.
Думаю сделать следующим образом:
В шаблоне списка элементов перед массивом пишу:
В массиве:
Вывожу список избранных элементов:
Где необходимо отобразить общее кол-во добавленных элементов:
Вопросы:
- Не смотря на то, что решение работает, хочу убедиться, оптимальным ли я способом решаю задачу?
- Какие минусы данного решения?
Спасибо!
Задача: Необходимо реализовать функционал "избранных" элементов инфоблоков, для всех групп пользователей.
Думаю сделать следующим образом:
В шаблоне списка элементов перед массивом пишу:
Код |
---|
<? 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']);?> |
Вопросы:
- Не смотря на то, что решение работает, хочу убедиться, оптимальным ли я способом решаю задачу?
- Какие минусы данного решения?
Спасибо!