Foops

Разное отображение ошибок

Recommended Posts

Каким образом можно разграничить проверку на незаполненность полей?

Поясню подробнее, если категории объявления: продажа, аренда, покупка.

При продаже поле "цена" является обязательным. При аренде поле "цена" не обязательное нужно сделать.

Каким это образом можно реализовать? В админке если выставлять поле обязательным, то оно на все становится обязательным.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Если не выбрали категорию, то оно и не отображается и не проверяется обязательность заполнения при сохранении.

 

Screenshot_1.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здесь категория как тип объекта больше получается http://joxi.ru/1A5JGNPH4o3qvr 

А мне нужно по типу объявления, http://joxi.ru/52aeBq7cl65L12 в  зависимости от этих продам/куплю и прочее делать какие обязательные, какие-то нет. Можно и не скрывать их вообще.

Или подскажите в коде, какие файлы (всевозможные) отвечают за вывод ошибок. Пытался по тексту Не заполнено поле найти в файлах  , не нашел ничего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проверкой данных формы занимается этот метод

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);
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас