Foops 0 Жалоба Опубликовано: November 6, 2022 Каким образом можно разграничить проверку на незаполненность полей? Поясню подробнее, если категории объявления: продажа, аренда, покупка. При продаже поле "цена" является обязательным. При аренде поле "цена" не обязательное нужно сделать. Каким это образом можно реализовать? В админке если выставлять поле обязательным, то оно на все становится обязательным. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: November 7, 2022 В редакторе форм есть поле Активно в категории, там можно отметить, в каких категориях будет отображаться поле и если мы отметим его обязательным, то только при выборе нужной категории оно проверяется. Если не выбрали категорию, то оно и не отображается и не проверяется обязательность заполнения при сохранении. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Foops 0 Жалоба Опубликовано: November 7, 2022 Здесь категория как тип объекта больше получается http://joxi.ru/1A5JGNPH4o3qvr А мне нужно по типу объявления, http://joxi.ru/52aeBq7cl65L12 в зависимости от этих продам/куплю и прочее делать какие обязательные, какие-то нет. Можно и не скрывать их вообще. Или подскажите в коде, какие файлы (всевозможные) отвечают за вывод ошибок. Пытался по тексту Не заполнено поле найти в файлах , не нашел ничего. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: November 8, 2022 Проверкой данных формы занимается этот метод apps/system/lib/admin/object_manager.php /** * Check data * @param array $form_data * @return boolean */ function check_data($form_data/* , &$error_fields=array() */) { $this->clearError(); require_once(SITEBILL_DOCUMENT_ROOT . '/apps/system/lib/model/model.php'); $data_model = new Data_Model(); if (!$data_model->check_data($form_data/* , $error_fields */)) { $this->riseError($data_model->GetErrorMessage()); return false; } return true; } Вся механика проверки тут apps/system/lib/model/model.php function check_data($model_array, &$error_fields = array()) Вы можете в наследуемом классе переопределить логику В этом классе, который отвечает за обработку объявлений в админке apps/system/lib/admin/data/data_manager.php Сделайте свой check_data function check_data($form_data) { // Тут добавьте свою логику return parent::check_data($form_data); } 1 Foops reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Foops 0 Жалоба Опубликовано: November 8, 2022 Понял, спасибо. Буду пробовать Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах