Evgenius

"Избранное" для 1С-Битрикс

Избранное для 1С-Битрикс маркетплейс
Решение позволяет организовать избранное пользователя из элементов инфоблоков (товары, новости и др.).
1000.00

Скриншоты

Установка


  1. в нужном месте разместите ссылку для добавления в избранное:


    a. Упрощенный вариант
    <a class="addFav" data-id="<?=$arElement['ID'];?>" href="#">В избранное</a>
    
    b. Для отображения ссылки с оформлением

    <a class="WSMFavoritesLink addFav" data-id="<?=$arElement['ID'];?>" href="#">В избранное</a>
    

    В аттрибуте ссылки data-id указывается ID элемента иноблока, который необходимо добавлять в избранное.



  2. Вызываем скрипт

    вызов для модуля старше или равной 3.0.0 версии

    if(\Bitrix\Main\Loader::includeModule('wsm.favorites'))
    {
        \Wsm\Favorites::addScript();
        \Wsm\Favorites::addStyle();  # подключение стилей (для варианта b - с оформлением)
    }
    

    вызов для младших версии модуля (до 3.0.0)

    if(CModule::IncludeModule('wsm.favorites'))
    {
    	CWSMFavorites::ScriptInc();
    	CWSMFavorites::StyleInc(); # подключение стилей (для варианта b - с оформлением)
    }
    

    Важно: не вызывайте код в кэшируемой части компонента!


    вызываем BX.WSMFavorites

    BX.ready(function(){
    
      if (window.BX.WSMFavorites){
    
        var CFav = new BX.WSMFavorites({
    		link: 'addFav',     	      //класс ссылок
    		fav_text:   'В избранном',    //текст ссылки при наличии в избранном
    		fav_class : 'favorites',      //класс ссылки при наличии в избранном
    		onInit: function(links){},
    		onClick: function(id, checked, link){},			// callback при клике на ссылку добавления в избранное
    		onStatusChange: function(id, chacked, link){},	// callback при изменения статуса
    		onError: function(){},
    		onGetTotal: function(total){}		// callback при получении общего количества
          });
        }
    
      });
    

    вызвать приведенный код можно в footer.php шаблона сайта

Параметры

Параметры функции BX.WSMFavorites:

link String селектор ссылок с нужным классом для обработки
fav_text String текст ссылки при наличии элемента в избранном
fav_class String добавляемый класс при наличии элемента в избранном
check_status Boolean Проверять наличие в избранном при загрузке страницы. По умолчанию true
onInit callback function
Пример:
onInit: function(links){
	//здесь можно задать дополнительные
//действия над ссылками
}
Передает параметры: 
links - массив ссылкок на DOM элементы
onReady callback function вызывается после иницциализации скрипта
Пример:
onReady: function(links, elements){

	}			
Передает параметры: 
links - массив ссылкок на DOM элементы
elements - массив данных о статусах элементов в избранном (при check_status = false передается пустой массив)
onClickCallback functionвызывается при клике на ссылку, перед отправкой запроса
Пример:
'onClick': function(id, checked, link){
	//здесь можно задать дополнительные
	//действия над link, например завершающие анимацию
	}			
Передает параметры: 
id - элемента, checked - true, если элемент в избранном, link - ссылка на DOM элемент
onStatusChange Callback function вызывается после добавления/удаления в избранное
Пример:
'onStatusChange': function(id, chacked, link){

	}			
Передает параметры: 
id - элемента, checked - true, если элемент в избранном
onGetTotal Callback function вызывается после каждого запроса в избранное (добавления/удаления)
Пример:
'onGetTotal': function(total){

	}			
Передает параметры: 
total - общее количество элементов в избранном
onError Callback function вызывается при возникновении ошибки
Пример:
'onError': function(){

	}
		

Примеры

Подключение:

if(\Bitrix\Main\Loader::includeModule('wsm.favorites'))
{
    \Wsm\Favorites::addScript();
    \Wsm\Favorites::addStyle();  # подключение стилей (для варианта b - с оформлением)
}

Вызов javascrip:

BX.ready(function(){

  if (window.BX.WSMFavorites){

    var CFav = new BX.WSMFavorites({
		link: 'addFav',     	      //класс ссылок
		fav_text:   'В избранном',    //текст ссылки при наличии в избранном
		fav_class : 'favorites',      //класс ссылки при наличии в избранном
		onInit: function(links){},
        onReady: function(links, elements){},           // callback после иницциализации скрипта
		onClick: function(id, checked, link){},			// callback при клике на ссылку добавления в избранное
		onStatusChange: function(id, chacked, link){},	// callback при изменения статуса
		onError: function(){},
		onGetTotal: function(total){}		// callback при получении общего количества
      });
    }

  });

Код можно разместить в footer.php шаблона сайта


Обновление общего счетчика в избранном:

Для реализации обновления счетчика избаранного после добавления/удаления элементов из избранного можно воспользоваться callback функцией onGetTotal:

counter_favorites = -1; // начальное значение

BX.WSMFavorites({
    link: 'addFav',
    fav_text:   'В избранном',
    fav_class : 'favorites',
    onInit: function(links){},
    onClick: function(id, checked, link){},
    onStatusChange: function(id, chacked, link){},
    onError: function(){},

    onGetTotal: function(count){ // callback при получении общего количества

        if(counter_favorites >= 0 && count > counter_favorites){
            //ваша функция вывода анимации при добавлении в избранное
        }

        counter_favorites = count;

        $('ваш селектор').html(count); // - обновление информации о количестве в избранном.

    }
  });

Ссылки

Техническая поддержка

Техническая поддержка модулей для 1С-Битрикс
осуществляется при обращении на Email: support@zent.tech

Вы можете заказать разработку модуля для 1С-Битрикс под ваши требования

Все модули