Техподдержка сайтов
+7 (904) 589-06-04
+7 (904) 589-06-04
s.golikov1
info@sng-it.ru
Сайт программиста 1С Битрикс
Сайт программиста
1C Битрикс
(создание и поддержка сайтов)
О себе
Услуги
  • Перевод сайта на https
  • Создание сайтов
  • Интеграция сайта с 1С
  • Выгрузка товаров в Яндекс.Маркет
  • Композитный сайт
  • Внутренняя оптимизация сайта
  • Доработка сайтов
  • Импорт каталога из файла поставщика
  • Перенос сайта на 1С Битрикс
  • Парсинг контента
  • Установка готового сайта
  • Купить лицензию 1С Битрикс
  • Битрикс 24
  • Настройка служб доставки
  • Интеграция с соцсетями
  • Заказ на Маркете
  • Сопровождение сайтов на 1С Битрикс
  • Поиск и удаление вирусов
  • Настройка платежных систем
  • Выгрузка товаров на Hotline
Портфолио
Готовые сайты
  • Недвижимость
  • Медицина
  • Ресторанный бизнес
  • Автомобили и автозапчасти
  • Бухгалтерские и юридические услуги
  • Государство
  • Детские товары
  • Красота и здоровье
  • Мебель, интерьер, декор
  • Образование
  • Одежда и обувь
  • Подарки и сувениры
  • Продукты питания
  • Спорт, туризм и отдых
  • Строительство, ремонт, инструменты
  • Товары для животных
  • ТСЖ, ЖСК
  • Украшения, аксессуары, подарки
  • Электроника и бытовая техника
  • Универсальные
  • Разное
1С Битрикс
  • Старт (6 200 ₽)
  • Стандарт (17 900 ₽)
  • Малый бизнес (40 900 ₽)
  • Бизнес (83 900 ₽)
  • Интернет-магазин + CRM (99 000 ₽)
  • Продление лицензии
  • Сравнить редакции
CRM
  • Битрикс24
Контакты
Ещё
    Сайт программиста 1С Битрикс
    Сайт программиста
    1C Битрикс
    О себе
    Услуги
    Портфолио
    Готовые сайты
    1С Битрикс
    CRM
    Контакты
    Сайт программиста 1С Битрикс
    Сайт программиста
    1C Битрикс
    • Главная
    • О себе
    • Услуги
      • Назад
      • Услуги
      • Перевод сайта на https
      • Создание сайтов
      • Интеграция сайта с 1С
      • Выгрузка товаров в Яндекс.Маркет
      • Композитный сайт
      • Внутренняя оптимизация сайта
      • Доработка сайтов
      • Импорт каталога из файла поставщика
      • Перенос сайта на 1С Битрикс
      • Парсинг контента
      • Установка готового сайта
      • Купить лицензию 1С Битрикс
      • Битрикс 24
      • Настройка служб доставки
      • Интеграция с соцсетями
      • Заказ на Маркете
      • Сопровождение сайтов на 1С Битрикс
      • Поиск и удаление вирусов
      • Настройка платежных систем
      • Выгрузка товаров на Hotline
    • Портфолио
    • Готовые сайты
      • Назад
      • Готовые сайты
      • Недвижимость
      • Медицина
      • Ресторанный бизнес
      • Автомобили и автозапчасти
      • Бухгалтерские и юридические услуги
      • Государство
      • Детские товары
      • Красота и здоровье
      • Мебель, интерьер, декор
      • Образование
      • Одежда и обувь
      • Подарки и сувениры
      • Продукты питания
      • Спорт, туризм и отдых
      • Строительство, ремонт, инструменты
      • Товары для животных
      • ТСЖ, ЖСК
      • Украшения, аксессуары, подарки
      • Электроника и бытовая техника
      • Универсальные
      • Разное
    • 1С Битрикс
      • Назад
      • 1С Битрикс
      • Старт (6 200 ₽)
      • Стандарт (17 900 ₽)
      • Малый бизнес (40 900 ₽)
      • Бизнес (83 900 ₽)
      • Интернет-магазин + CRM (99 000 ₽)
      • Продление лицензии
      • Сравнить редакции
    • CRM
    • Контакты
    • Личный кабинет
    • +7 (904) 589-06-04
    Будьте на связи
    info@sng-it.ru
    • Вконтакте
    • YouTube

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

    • Главная
    • ❶ Блог
    • ❷ Кастомизируем календарь в битриксе
    calendar.png В оформлении заказа интернет-магазина заполняется свойство "Дата доставки", в нем пользователь выбирает день доставки товара. Клиенты ошибались в выборе дня, могли указать прошедшую дату, поэтому владелец интернет-магазина принял решение ограничить интервал выбора возможных дат доставки, а именно в течении 7 дней начиная с текущего дня.
    Задача:

    В оформлении заказа sale.order.ajax у свойства типа дата добавить ограничение по выбору дня, чтобы можно было выбрать только из ближайших 7 дней начиная с текущего.

      Разделим задачу на две подзадачи:
    • Создадим обработчик выбора даты. Если пользователь выбирает день вне интервала - сбрасывается значение.
    • Визуально выделим возможные для выбора даты, добавив им класс.
    Решение:

    В шаблоне компонента sale.order.ajax находим файл order_ajax.js, в нем метод alterDateProperty. В данном методе реализован показ календаря для свойства заказа типа дата.
    По клику на иконку рядом с input появляется календарь, за показ отвечает метод :

    BX.calendar({
    	node: parentNode.querySelector('.input-group-append'),
    	field: parentNode.querySelector('input[type=text]').name,
    	form: '',
    	bTime: settings.TIME === 'Y',
    	bHideTime: false
    });
    
    У BX.calendar есть параметр callback_after, вызывается после выбора даты, его и будем использовать для ограничения выбора даты.

    В результате BX.calendar выглядит так:

    BX.calendar({
    	node: parentNode.querySelector('.input-group-append'),
    	field: parentNode.querySelector('input[type=text]').name,
    	form: '',
    	bTime: settings.TIME === 'Y',
    	bHideTime: false,
    	callback_after: function(arDay) 
    	{
    		var currentDate = new Date();
    		var d_current =  currentDate.getTime() / 1000; // текущая дата в секундах
    		var d_select =  arRights.getTime() / 1000; // выбранная дата в секундах
    
    		if ((Number(d_select - d_current)/(24*3600)+1)<0 ||  Number(Number(d_select - d_current)/(24*3600))>6)  // определим интервал 7 дней за пределами которого будет появляться ошибка
    		{
    			alert('Доставка в течение 7 дней начиная с сегодняшнего дня');
    			BX.adjust(parentNode.querySelector('input[type=text]'), {
    				props: {
    					value: ''
    				}
    			});
    		}
    		else 
    		{		
             // если дата в заданном интервале, то устанавливаем значение из календаря в input свойства заказа
    			BX.adjust(parentNode.querySelector('input[type=text]'), {
    				rops: {
    					value: BX.date.format("d.m.Y", arRights)
    				}
    			});
    		}                         
    	}					
    });
    



    Чтобы стилизовать календарь, добавим после кода показа календаря:

    var el = $('[id ^= "calendar_popup_"]');
    var links = el.find(".bx-calendar-cell");
    var currentDate = new Date();
    
    for (var i =0; i < links.length; i++)
    {
    	var itemDate = links[i].attributes['data-date'].value;
    	var d = currentDate.valueOf();
    	var g = links[i].innerHTML;
    	if ((itemDate - currentDate+24*60*60*1000) >= 0 && itemDate - currentDate < 6*24*60*60*1000) {
    		$('[data-date="' + itemDate +'"]').addClass("weight700"); 
    	}
    }
    

    14.12.2022

    Семен Голиков.


    Получите консультацию специалиста
    Семен Голиков
    Семен Голиков
    #
    Cертифицированный программист 1С Битрикс

    У меня Вы можете заказать программные работы или проконсультироваться по сайту.

    C 2010 года разрабатываю и поддерживаю сайты на 1С Битрикс. Являюсь Золотым партнером компании 1С Битрикс и имею компетенции: Интеграция с 1С, Композитный сайт, Битрикс24, а также все сертификаты специалиста.

    Золотой партнер компании 1С Битрикс Компетенция партнера - Интеграция с 1С Компетенция партнера - Композитный сайт Компетенция партнера - Битрикс 24 Участник программы качества внедрений


    info@sng-it.ru
    +7 (904) 589-06-04

    Поделиться:
    Назад к списку
    • Услуги
    • Услуги
    • Блог
    • Видеоуроки
    • Скидки на 1C Битрикс
    • Новости интернета
    • Снипеты

    Аудит сайта
    Читайте также
    Показ изображения вместо плагина видео youtube Показ изображения вместо плагина видео youtube Внедряем Турбо-страницы Яндекса для мобильных устройств Внедряем Турбо-страницы Яндекса для мобильных устройств Перевод таблиц базы данных c MyISAM на InnoDB Перевод таблиц базы данных c MyISAM на InnoDB Удобный подбор домена Удобный подбор домена Делаем captcha "Я не робот" Делаем captcha "Я не робот"

    © 2010-2023 Сайт битрикс программиста Семена Голикова.

    Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.
    - карта сайта
    Главное
    Информация
    Помощь
    • О себе
    • Услуги
    • Готовые сайты
    • Портфолио
    • Купить лицензию 1С Битрикс
    • Битрикс24
    • Контакты
    • Акции
    • Видеоуроки
    • Блог
    • Новости интернета
    • Про интеграцию с 1С
    • Внутренняя оптимизация сайта
    • Сниппеты
    • Хостинг для битрикс
    • Партнерам
    • Отзывы
    • Техподдержка
    +7 (904) 589-06-04
    - позвонить в WhatsApp
    Социальные сети:
    - карта сайта © 2010-2023 Сайт битрикс программиста Семена Голикова.
    Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.