Здравствуйте!
[B]Задача:[/B] Необходимо реализовать функционал "избранных" элементов инфоблоков, для всех групп пользователей.
Думаю сделать следующим образом:
[B]В шаблоне списка элементов[/B] перед массивом пишу:
[CODE]<?
if(isset($_GET['add'])){
$_SESSION['answer'][] = $_GET['add'];
}
?>[/CODE]
В массиве:
[CODE] <a href="?add=<?=$arElement["ID"]?>">Добавить в избранное</a>[/CODE]
[B]Вывожу список избранных элементов:[/B]
[CODE] <?// удаление отдельного элемента
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>[/CODE]
[B]Где необходимо отобразить общее кол-во добавленных элементов:[/B]
[CODE]<?=count($_SESSION['answer']);?>
[/CODE]
[B][COLOR=#ff0000]Вопросы:[/COLOR][/B]
- Не смотря на то, что решение работает, хочу убедиться, оптимальным ли я способом решаю задачу?
[COLOR=#ff0000]- Какие минусы данного решения?[/COLOR]
Спасибо!
[B]Задача:[/B] Необходимо реализовать функционал "избранных" элементов инфоблоков, для всех групп пользователей.
Думаю сделать следующим образом:
[B]В шаблоне списка элементов[/B] перед массивом пишу:
[CODE]<?
if(isset($_GET['add'])){
$_SESSION['answer'][] = $_GET['add'];
}
?>[/CODE]
В массиве:
[CODE] <a href="?add=<?=$arElement["ID"]?>">Добавить в избранное</a>[/CODE]
[B]Вывожу список избранных элементов:[/B]
[CODE] <?// удаление отдельного элемента
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>[/CODE]
[B]Где необходимо отобразить общее кол-во добавленных элементов:[/B]
[CODE]<?=count($_SESSION['answer']);?>
[/CODE]
[B][COLOR=#ff0000]Вопросы:[/COLOR][/B]
- Не смотря на то, что решение работает, хочу убедиться, оптимальным ли я способом решаю задачу?
[COLOR=#ff0000]- Какие минусы данного решения?[/COLOR]
Спасибо!