Jump to content

Recommended Posts

Столкнулся с задачей в которой надо работать с датой рождения клиента.

В Simple создано дополнительное поле Дата рождения, тип поля Дата. В базе полный бардак... куча записей не являющихся датой.

Решил настроить Simple, но оказалось дополнительное поле с типом Дата не позволяет задать маску.
3 часа убил на решение пустяковой задачи ) Конечно можно было добавить метод для проверки даты в API, но мне захотелось сделать без кодинга.

Может кому-то пригодится.


Сначала изменил тип поля на Текст и прописал маску (всё равно все дополнительные поля Simple хранятся в базе как текст)

99.99.9999

Но маска позволяет ввести любые цифры и в базу улетит нечто не являющееся корректной датой.

Включил проверку регулярным выражением на соответствие формату ДД.ММ.ГГГГ и корректности даты с учетом високосных годов

^(((((0[1-9])|(1\d)|(2[0-8]))\.((0[1-9])|(1[0-2])))|((31\.((0[13578])|(1[02])))|((29|30)\.((0[1,3-9])|(1[0-2])))))\.((20[0-9][0-9])|(19[0-9][0-9])))|((29\.02\.(19|20)(([02468][048])|([13579][26]))))$

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

Вот такая регулярка проверяет введённое значение на соответствие формату ДД.ММ.ГГГГ и позволяет пустое значение.

(^$)|(^(((((0[1-9])|(1\d)|(2[0-8]))\.((0[1-9])|(1[0-2])))|((31\.((0[13578])|(1[02])))|((29|30)\.((0[1,3-9])|(1[0-2])))))\.((20[0-9][0-9])|(19[0-9][0-9])))|((29\.02\.(19|20)(([02468][048])|([13579][26]))))$)

В итоге получилось как надо.

  • +1 3

Share this post


Link to post
Share on other sites

скрин бы тож полученного?)

может попросить  @deeman чтоб прикрутил туды даты?
или к примеру три селекта, год, мес дата

Share this post


Link to post
Share on other sites

В скрине нет ничего необычного, и прикручивать ничего не надо... всё что я написал реализовано на стандартном функционале Simple.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By mstkalenko
      600.00 руб
      Скачать/Купить дополнение


      OC 2: Новая Почта c калькулятором + отделения
      Модуль новой почты с калькулятором стоимости доставки + отделения для Opencart 2.x
      Калькулятор новой почты настраиваются исходя из потребностей магазина.
      Переменные для подсчета (при необходимости переменную можно оставить незаполненной и она учитываться не будет):
      Стоимость оформления посылки Тариф доставки Стоимость страховки Комиссия за наложенный платеж База областей, городов и отделений Новой Почты
      Импортируется автоматически в Opencart при настройке модуля.
      Установка:
      Перейдите в раздел "Дополнения->Установка дополнений" и установите zip-архив нужной вам версии модуля и файл novaposhta_translate_rus из скачанного архива; Не забудьте обновить кеш модификаций в "Дополнения->Модификации"; В разделе "Дополнения->Доставка->Отправка Новой Почтой", заполните необходимые поля; Перейтиде в раздел "Система->Пользователи->Группы пользователей" и дайте права своей группе на просмотр и изменение localisation/city и localisation/city_update; Перейдите в раздел "Система->Локализация->Отделения Новой почты" и нажмите кнопку "Обновить список отделений". Возможно понадобится очистить системный кеш в папке ../system/cache
      Обновление базы отделений:
      Скопируйте содержимое папки upload в корень вашего сайта; Перейдите в раздел "Система->Локализация->Отделения Новой почты" и нажмите кнопку "Обновить список отделений".
      Модуль Simple 4.x.x:
      Настройки для модуля Simple 4.x.x можно увидеть тут.
       
      Демо для всей линейки Opencart
      Демо для всей линейки OcStore
      DEMO (Ocstore 2.3.0.2 / Simple 4.7.7)
      ADMIN (demo / demo)
      DEMO (Opencart 2.0.3.1 / стандартная корзина)
      ADMIN (demo / demo)

       
      Внимание! Модуль перезапишет таблицы country и zone удалив все страны в магазине и заменив их на области и города Украины!
      Внимание! Перед импортом рекомендуется сделать бэкап данных.
       
       
      Распространяется как есть по лицензии GNU GPL при условии соблюдения правил форума.
      Добавил mstkalenko Добавлено 13.04.2015 Категория Доставки Системные требования Сайт разработчика https://webmakers.com.ua/shop/ Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет Старая цена  
    • By mstkalenko
      600.00 руб
      Скачать/Купить дополнение


      Новая Почта c калькулятором + отделения
      Модуль новой почты с калькулятором стоимости доставки + отделения
       
      Калькулятор новой почты настраиваются исходя из потребностей магазина.
       
      Переменные для подсчета (при необходимости переменную можно оставить незаполненной и она учитываться не будет):
      Стоимость оформления посылки Тариф доставки Стоимость страховки Комиссия за наложенный платеж
      База областей, городов и отделений Новой Почты
      Импортируется автоматически в Opencart при настройке модуля.
       
      Установка:
      1.Скопируйте содержимое папки upload в корень вашего сайта;
      2.Перейдите в раздел "Дополнения->Доставка->Отправка Новой Почтой", заполните необходимые поля;
      3.Перейдите в раздел "Система->Локализация->Отделения Новой почты", нажмите на кнопку "Обновить список отделений".
       
      .
       
       
      Модуль Simple 3.x.x:
      Если вы используете Модуль Simple - упрощенная регистрация и заказ, во вкладке "Настройки полей покупателя" выберите в поле main_city тип отображения select_from_api.
      Модуль Simple 4.x.x:
      Если вы используете Модуль Simple 4.x.x - смотрим скриншот ниже или
      .
       
      DEMO (Ocstore 1.5.5.1.2 / Simple 4.7.7)
      ADMIN (demo / demo)
      DEMO (Opencart 1.5.6.4 / стандартная корзина)
      ADMIN (demo / demo)
       
      Внимание! Модуль перезапишет таблицы country и zone удалив все страны в магазине и заменив их на области и города Украины!
       
      Внимание! Перед импортом рекомендуется сделать бэкап данных.
       

      Распространяется как есть по лицензии GNU GPL при условии соблюдения правил форума.
      Добавил mstkalenko Добавлено 05.07.2014 Категория Доставки Системные требования Сайт разработчика https://webmakers.com.ua/shop/ Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1 OpenCart.Pro, ocShop OcShop 1.5.6.4.х Обращение к серверу разработчика Старая цена  
    • By Dontworrybehappy
      1) не обновляет область, хотя в настройках стоит перезагружать http://prntscr.com/q0238k
      2) Не срабатывает  увеличение/уменьшение товаров
      Все глюки в этом видео  https://www.dropbox.com/s/a9pc1do0nn1oopc/не работает симпла .webm?dl=0
       
      Сайт https://super-dupers.com/
    • By Oipunk
      Добрый день! Ищем специалиста, кто зa оплату сможет довести сайт до ума. 
      Оболочка - Grandstore.

      Что есть - сами собрали сайт, все наполнили, в целом все готово к работе.
      Но мы не спецы, в коде не разбираемся, на любительском уровне.

      Что надо сделать - 
      Разобраться с корзиной. На данный момент в оригинальной корзине не получается сделать нормально заказ, через раз выдаёт ошибку.
      Установили модуль Simple - админка нормально не загружается, только левая часть экрана. Выдаёт какую-то красную ошибку, что в коде что-то не так.

      Ну и ещё пару мелочей

      В общем нужен человек, знающий код и готовый за это взяться)
    • By rubezhnoe95
      Как вывести дату окончания акции установленной на товаре ?
      Не нужен таймер.
      Нужно просто вывести дату по типу 2019-11-11 в категорию и на страницу товара.
      Если дата не указана, то просто выводить текст Акция.
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.