Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!
Условия использования
Продлить
Продолжить покупки

Избранное

Модуль Избранное позволяет пользователю позволяет отметить товары для дальнейшего просмотра.Для неавторизованного пользователя список товаров хранится в куках, после авторизации список хранится в специальном свойстве пользователя, которое добавляется при установке модуля.Модуль содержит настройки прав пользователей.Для взаимодействия с внешним кодом предусмотрены события:1. При добавлении товара в избранное, 2. При удалении3. При переносе списка из кук в свойствоДоступны публичные методы:1. Добавлен ли товар в избранное (С учетом прав доступа или нет)2. Количество товаров в избранном  (С учетом прав доступа или нет)3. Полный список добавленных товаров  (С учетом прав доступа или нет)Модуль содержит компонент, который выводит краткий список товаров. Также при установке модуля автоматически создается раздел, где выводится список товаров с подробным описанием, ссылку на который пользователь может получить из краткого списка.Компонент поддерживает технологию аякс. Содержит событие на изменения счетчика товара при добавлении или удалении товара из избранного. Данный счетчик можно расположить в любом месте сайта, в зависимости от дизайна.

Скриншоты
Описание

Технические данные

Опубликовано:
27.01.2019
Версия:
1.0.0
Установлено:
Менее 50 раз
Подходящие редакции:
«Малый бизнес», «Бизнес»
Адаптивность:
Нет
Поддержка Композита:
Да
Совместимо с Сайты24
Нет

Описание

Модуль Избранное позволяет пользователю позволяет отметить товары для дальнейшего просмотра.

Для неавторизованного пользователя список товаров хранится в куках, после авторизации список хранится в специальном свойстве пользователя, которое добавляется при установке модуля.

Модуль содержит настройки прав пользователей.

Для взаимодействия с внешним кодом предусмотрены события:

1. При добавлении товара в избранное,
2. При удалении
3. При переносе списка из кук в свойство

Доступны публичные методы:

1. Добавлен ли товар в избранное (С учетом прав доступа или нет)
2. Количество товаров в избранном  (С учетом прав доступа или нет)
3. Полный список добавленных товаров  (С учетом прав доступа или нет)

Модуль содержит компонент, который выводит краткий список товаров.

Также при установке модуля автоматически создается раздел, где выводится список товаров с подробным описанием, ссылку на который пользователь может получить из краткого списка.

Компонент поддерживает технологию аякс. Содержит событие на изменения счетчика товара при добавлении или удалении товара из избранного. Данный счетчик можно расположить в любом месте сайта, в зависимости от дизайна.
Отзывы (0)
Обсуждения (2)
Установка

Принцип работы – если пользователь не авторизован, создается кука и избранные товары в ней хранятся, после авторизации пользователя товары перебрасываются в заранее созданное свойство пользователя и хранятся там, кука уничтожается

ИНСТРУКЦИЯ ПО УСТАНОВКЕ И НАСТРОЙКЕ МОДУЛЯ 1С-БИТРИКС

1.       Установка модуля

Зайти в административную панель 1С-Битрикс и перейти в раздел «Marketplace» -> «Установленные решения».

Выбрать модуль «Модуль избранное  (itserw.wishlist)» и нажать кнопку УСТАНОВИТЬ.

http://prntscr.com/lsm8fs

Далее мы попадаем на страницу настроек установки модуля

http://prntscr.com/lsm8kc

При отмеченной опции скопировать публичные файлы в публичную часть сайта будет добавлен раздел избранных товаров. Далее следует указать название папки с разделом избранных товаров. По умолчанию эта папка wishlist. И если такая папка уже существует на сайте, то отмеченная опция “Переписывать существующие файлы”  - перезатрет все файлы из этой папки.

После установки модуля появится сообщение о его успешной установке.

Далее необходимо перейти к настройкам модуля

2.       Настройка модуля

Настройки модуля расположены по пути

Настройки ->Настройки продукта->Настройки модулей->Модуль избранное

Основные настройки

Пользовательское свойство -  задается идентификатор пользовательского свойства, в котором хранятся id товаров избранного

Идентификатор куки – в котором хранятся id товаров избранного

Вкладка доступ – устанавливается права доступа к модулю избранного. По умолчанию доступ закрыт – установим полный досуп

http://prntscr.com/lsmcbq

И нажимаем сохранить

Далее выведем вывести компонент, где необходимо отображать список избранного

3.       Вывод компонента в произвольном месте сайта и настройка компонента

Добавим вызов компонента на все страницы сайта, в файл footer.php шаблона.

Для начала в публичной части сайта создадим тестовый раздел

http://prntscr.com/lsmeis

И из визуальной части редактора вызовем компонент и добавим необходимые настройки

http://prntscr.com/lsmeql

http://prntscr.com/lsmeu9

Далее перейдем к настройка

Все настройки можно оставить по умолчанию, кроме настроек тип информационного блока и код информационного блока, а так же настройки аякс

По умолчанию пока только один шаблон для списка избранного, в след версии мы добавим несколько шаблонов. Но функционал модуля позволяет создать свой шаблон – индивидуальный под дизайн вашего сайта. Список можно расположить во всплывающем попап окне, в выезжающий плашках сайта или в любом произвольном месте сайта.

Копируем код компонента и добавляем в произвольное место сайта

Пример

<?$APPLICATION->IncludeComponent(

       "itserw:wishlist.list",

       "",

       Array(

                      "AJAX_MODE" => "Y",

                      "AJAX_OPTION_ADDITIONAL" => "",

                      "AJAX_OPTION_HISTORY" => "Y",

                      "AJAX_OPTION_JUMP" => "N",

                      "AJAX_OPTION_STYLE" => "Y",

                      "CACHE_GROUPS" => "Y",

                      "CACHE_TIME" => "36000000",

                      "CACHE_TYPE" => "A",

                      "IBLOCKS" => "2",

                      "IBLOCK_TYPE" => "catalog",

                      "ITSERW_ACTION" => "action",

                      "ITSERW_BTN_CLASS" => "itserw_wishlist",

                      "ITSERW_BTN_CLASS_DELETE" => "itserw_wishlist_delete",

                      "ITSERW_ID" => "id_w",

                      "ITSERW_LINK" => "/wishlist/"

       )

);?>

После необходимо также настроить раздел избранное. Фильтр товаров там уже добавлен. Следует только вывести по этому фильтру элементы. Можно с помощью компонента catalog.section, добавив параметр "FILTER_NAME" => "arFilterWishlist".

Далее раздел тест можно удалить

4.       Добавление кнопки на сайт

Пример кода добавления кнопки для компонентов catalog.element, catalog.top и др.

В начале файла где будет располагаться кнопка добавляем псевдоним имени класса с помощью оператора use

       use \Itserw\Wishlist\Wishlist;

http://prntscr.com/lsmkin

В том месте шаблона куда необходимо добавить кнопку, добавляем код

<? if (CModule::IncludeModule("itserw.wishlist")): ?>

   <button class="button button--favorites itserw_wishlist js-add-to-wishlist-btn <? if (Wishlist::isIdFromFavorites($USER, $item['ID'])): ?>itserw_wishlist_added<? endif; ?>"

           data-id="<?= $item['ID'] ?>" data-action="add" data-product-id="<?= $item['ID'] ?>"

           data-toggle="tooltip" title=""

           data-original-title="<? if (Wishlist::isIdFromFavorites($USER, $item['ID'])): ?><?= GetMessage('CATALOG_IN_WISHLIST') ?><? else: ?> <?= GetMessage('CATALOG_WISHLIST') ?><? endif; ?>">

       <i

               class="fa fa-heart"></i><span

               class="button__text"><? if (Wishlist::isIdFromFavorites($USER, $item['ID'])): ?><?= GetMessage('CATALOG_IN_WISHLIST') ?><? else: ?> <?= GetMessage('CATALOG_WISHLIST') ?><? endif; ?></span>

   </button>

<? endif ?>

Внимание! Идентификатор товара в кнопке должен быть реально существующего. Так как при добавлении товара модуль проверяет наличие товара в базе. И ели не найдет, то добавления не произойдет.

Используемые методы модуля описаны далее в документации пункта 6

5.       Добавление счетчика избранных товаров в произвольное место сайта

Количество товаров в избранном хранится в переменной сессии

$_SESSION['COMPATE_COUNT_ITEMS']

Данные можно вывести в любом месте сайта, например в подвале сайта

<span class="rsec_color rsec_cnt js-compare-prod-count" id="js-compare-prod-count">

   <? Bitrix\Main\Page\Frame::getInstance()->startDynamicWithID("compare-count");?>

   <?if(isset($_SESSION['COMPATE_COUNT_ITEMS'])){

       echo $_SESSION['COMPATE_COUNT_ITEMS'];

   }

   ?>

   <? Bitrix\Main\Page\Frame::getInstance()->finishDynamicWithID("compare-count", "");?>

</span>

Данный код представлен с поддержкой композита.

Компонент избранное при удалении и добавлении  товара создает js событие

OnCompareChange
onCatalogDeleteCompare

что позволяет изменять счетчик на лету

Пример добавления обработчиков js события:

<script>

   BX.ready(function(){

       BX.addCustomEvent("OnCompareChange", BX.delegate(function(){

           var containerCount = $('#js-compare-prod-count');

           var count = containerCount.text();

           containerCount.text(++count);

       }, this));

       BX.addCustomEvent("onCatalogDeleteCompare", BX.delegate(function(id){

           var containerCount = $('#js-compare-prod-count');

           var count = containerCount.text();

           containerCount.text(count-1);

       }, this));

   });

</script>

Методы модуля

/**

* Метод добавляет свойство пользователя,

* заданное в настройках модуля

* @return mixed

*/

public static function addCustomPropertyForUserGroup()

/**

* Метод удаляет свойство пользователя,

* заданное в параметрах компонента

* @param $id

* @return bool

*/

public static function deleteCustomPropertyForUserGroup($id)

/**

* Метод проверяет,

* существует ли свойство пользователя,

* заданное в настройках модуля для хранения избранных товаров.

* @return array

*/

public static function isCustomPropertyForUserGroup()

/**

* Метод добавляет значение в установленное свойство пользователя

* @param $id

* @return bool

*/

public static function addCustomPropertyValue($id, $user)

/**

* Метод удаляет значение из установленного свойства пользователя

* @param $id

* @return bool

*/

public static function deleteCustomPropertyValue($id, $user)

/**

* Метод получает значения из установленного свойства пользователя

* @param $property

* @param $user

* @return array

*/

public static function getCustomPropertyValues( $user)

/**Метод устанавливает куку и значение

* @param $id

* @return bool

*/

public static function setCookieForFavorites($str)

/**

* Метод удаляет куку

* @return bool

*/

public static function deleteCookieForFavorites()

/**

* Метод получает куку

* @return bool

*/

public static function getCookieForFavorites()

/**

* Метод проверяет установлена ли кука

* @return bool || string

*/

public static function isCookieForFavorites()

/**

* Метод добавляет значение в куку

* @param $arCookie

* @return bool

*/

public static function addCookieForFavoritesValue($id)

/**

* Метод получает значение из куки

* @return bool

*/

public static function getCookieForFavoritesValue()

/**

* Метод удаляет значение из куки

* @param $id

* @return bool

*/

public static function deleteCookieForFavoritesValue($id)
/**

* Метод получает значения из избранного, с учетом прав доступа

* @param $user

* @return bool|mixed

*/

public static function getValuesFromFavorites($user)

/**Метод позволяет получить количество товаров в избранном, проверка с учетом прав доступа

* @param $user

* @return bool|mixed

*/

public static function getCountValuesFromFavorites($user)

/**

* Метод проверяет существует ли id товара в избранном, с учетом прав доступа

* @param $user

* @param $id

* @return bool

*/

public static function isIdFromFavorites($user, $id)

События модуля

События добавления значений в свойство пользователя

OnBeforeCustomPropertyFavoritesValueAdd
OnAfterCustomPropertyFavoritesValueAdd

               

События удаления значений из свойств пользователя

OnBeforeCustomPropertyFavoritesValueDelete
OnAfterCustomPropertyFavoritesValueDelete

События добавления значений в куку пользователя

OnBeforeCookieFavoritesValueAdd
OnAfterCookieFavoritesValueAdd

События удаления значений из куки пользователя

OnBeforeCookieFavoritesValueDelete
OnAfterCookieFavoritesValueDelete

События переброса значений из куки пользователя в свойство пользователя при его авторизации

OnBeforeValueCookieToPropertyMove

                                                                                                                                                                                                                                                                           

OnAfterValueCookieToPropertyMove

Другие решения разработчика

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки