Вход • Регистрация

Как поле типа date в модуля оставить пустым?

  • 02 апреля 2016 г.
  • Всем привет! Подскажите как поле типа date в модуля оставить пустым?
    В модуле добавил поле типа date, всё работает, сохраняет и т.д. НО нужно иногда это поле оставлять пустым. Просто когда добавляем элемент в модуле или редактируем его, то поле типа date автоматически ставит текущую дату, а нужно чтобы оно было по умолчанию ПУСТЫМ, т.е. заполнять его только по необходимости.

    Пытался в БД для данного поля установить по умолчанию значению 0, либо НЕТ и т.д,, но тоже не помогло.
    • 03 апреля 2016 г.
    • /adm/includes/edit.php
      Там ищите вывод поля с типом дата, замените тернарный оператор (?:;), который вставляет date('Y.m.d')
      Затем нужно в /adm/includes/validate.php отключить валидацию для date, у которых значение пусто

      Начать можно с этого. Возможно в js, при инициализации с пустым значением ставиться текущая дата в календаре.
      • 03 апреля 2016 г.
      • я так понимаю этими действиями я задену все поля типа date в админке? Если да, то это не вариант, нужно именно конкретное поле в конкретном модуле. Вот например, в модуле Новости в у новости можно ставить период показа - там же поля типа date, но они пустые, и не заполняются, пока сам админ не заполнит.
        • 03 апреля 2016 г. , редакция: 03 апреля 2016 г.
        • Потому, что параметр value пустой (хотя правильнее говорить атрибут value).
          Успехов.
          • 03 апреля 2016 г. , редакция: 03 апреля 2016 г.
          • Виталий, вы имеете ввиду, что в БД он пустой? Если да, то в нужном мне поле тоже самое, просто когда в админке в модуле добавляю элемент, то в нужном мне поле автоматом ставится сегодняшняя дата (т.е. не даёт поле пустым по умолчанию оставить, либо указать дату, либо текущую сам ставит)... я ее вручную удаляю с поля и сохраняю. Всё ок, но при следующем за редактировании элемента снова туда вставляется текущая дата - а это не удобно, каждый раз ее оттуда удалять если дата не нужна.
            • 03 апреля 2016 г.
            • HTML
              Код
              <input value="">
              • 03 апреля 2016 г. , редакция: 03 апреля 2016 г.
              • краткость сестра таланта конечно, но сначала ваш ответ мне показался ну очень кратким и не понятным, где это применить.
                В общем нашел в документации, что можно значение для поля в модуле по умолчанию задать
                Код
                'default' => 'значение',

                Но результата не дало.

                В итоге решил посмотреть совет Павла, и в файле /adm/includes/edit.php в функции public function show_table_tr_date нашел то что нужно... атрибут value - Вы тут имели ввиду смотреть?

                В общем заменил это
                Код
                value="'.( $value ? date("d.m.Y", $value) : date("d.m.Y") ).'"

                на это
                Код
                value="'.( $value ? date("d.m.Y", $value) : '').'"


                И вроде заработало! Спасибо ребята за подсказки.

                НО остаётся вопрос... как это применить только для одного поля в определенном модуле, а не для всех полей типа date во всех модулях?
        • 03 апреля 2016 г.
        • value можно передавать в описании административной части модуля, но все равно даже при передаче пустого значения не пройдет проверки и условия которые стоят по умолчанию. Немножко ковырнуть придется. Придумать условия для определенного value, например если === "empty" и тд

          Период отрисовывается и проверяется другими функциями, там таких ограничений нет

Новости

  • 24 апреля, среда
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 
  • 15 декабря 2023 г.
  • Подводим итоги 2023 года. Выпустили новую сборку DIAFAN.CMS 7.1.1, вводим новые тарифы на аренду сайта и коммерческую поддержку и автообновления с января 2024 г., строим планы на будущий год.