MAXYSS-IT - Рабочие материалы - все сообщения

Фильтрация по наличию на складах

Умный фильтр Битрикса не поддерживает фильтрацию по складам (потому как работает только со свойствами элементов). Следовательно, чтобы добавить в возможность фильтровать товар по наличию на складах, нужно добавить соответствующие свойства в карточку элемента. Для этого напишем обработчик в init.php, который при изменении количества товара на складе будет проставлять нужные свойства в карточку элемента.

Читать подробнее...

Умный фильтр с иерархией вложенности

Не единожды поступала задача вывести фильтр с многоуровневой структурой. Здесь будет показана одна реализация на основе свойств инфоблока. Вторая реализация выглядит как фильтр, на самом деле является выводом catalog.section.list, закомуфлированным под фильтр и подающим в ajax данные для фильтрации catalog.section либо по свойствам, либо по разделам. Эта реализация основана на интуитивно понятной структуре разделов инфоблока и является ее отображенинм. Она накладывает определенные ограничения на структуру разделов и выводит только два уровня. На момент написания реализацию можно посмотреть здесь: http://locationhunters.ru/catalog/

Умный фильтр обладает бОльшими возможностями и выглядит для заказчика более предпочтительным, чем выше описанный пример. Естественно, что все зависит от конкретной задачи в рамках которой разработчик делает свой выбор. Для описаной здесь реализации использован следующий подход: многоуровневость заложена в  

Читать подробнее...

Кастомный вызов компонента регистрации при использовании NEED_AUTH

1. Скопировать стандартный шаблон компонента bitrix.system.auth.registration в папку шаблона сайта
2. В этом шаблоне разместить примерно следующий код:  

Читать подробнее...

Форматирование даты

Обратный слэш - экранирует скобочки. Берем текущую дату сервера и добавляем нужное кол-во дней (часов, минут).
FormatDate("j M. \(D.\)", $_SERVER['REQUEST_TIME']+$_POST['date']*60*60*24)
 

Обновляем корзину Битрикса без перезагрузки страницы

Вызвать событие обновления корзины в любом месте кода
<script> 
   BX.onCustomEvent('OnBasketChange'); // Обновляем корзину   
</script>

Корзина + заказ

Недавно была задачка: собрать со станицы несколько товаров, забросить их в корзину и создать заказ.

Читать подробнее...

Очистка свойств типа справочник в элементе

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

Читать подробнее...

PopUp на Fancybox при загрузке страницы

Если не нужен клик:

<script type="text/javascript">
$.fancybox.open({type: 'inline', href: "#zakaz_ok"})
</script>
  
Для fancybox 3


$.fancybox.open({
   src  : '#hidden-content',
   type : 'inline',
   opts : {
      afterShow : function( instance, current ) {
         console.info( 'done!' );
      }
   }
});

Получить ID торгового предложения, которое выбрал пользователь

В catalog.element открываем script.js и находим функцию window.JCCatalogElement.prototype.ChangeInfo = function() . Добавляем после строки this.offerNum = index; простенький js - например, document.getElementById('quick_or').value=this.offerNum; а в код страницы добавляем скрытый input c id="quick_or". Получаем номер торгового предложения в массиве $arResult[OFFERS].
А эта строчка eventData.newId = this.offers[this.offerNum].ID; даст нам реальный ID торгового предложения

Оформление заказа в один клик(API)

Этот вариант подойдет для готовой корзины Битрикса - вместо переадресации на оформление заказа мы будем собирать данные и создавать заказ средствами API (а не компонентов).

Читать подробнее...

Страницы: Пред. | 1 | 2 | 3 | 4 | 5 | 6 | След.