Вам понадобятся 2 вещи
- Отредактируйте файл editviewdefs.php в модуле, в который вы хотите добавить логику.Это поле будет сгенерировано автоматически при добавлении первого настраиваемого поля в представление редактирования.
- Создайте пользовательскую логику JS, чтобы определить, когда поле является действительным.
Эта логика добавитобратный вызов проверки для вашего
addToValidateCallback(
'EditView', // Form Name
'end_date_c', // field name
'datetime', // Field type
false, // Is required
"End date cannot be earlier than start date", // Message
function() {
//WRITE YOUR JS VALIDATION HERE, return true when is valid
});
В файле editviewdefs.php найдите определение поля и используйте displayParams, чтобы сделать suite / sugar добавившим JS для вас.
array (
'name' => 'end_date_c',
'displayParams' =>
array (
'updateCallback' => 'FUNCTIONNAME',
),
),
Последний шагне требуется, если у вас уже есть глобальный пользовательский JS (например, файл style.js для пользовательской темы).
РЕДАКТИРОВАТЬ: javascript DisplaParams не будет работать, поэтому добавлен параметр updateCallback.
Теперь эта проверка работает двумя способами.
- UpdateCallback будет запущен onChange
- addtoValidateCallback будет запущен при сохранении.
Это даст вам достаточно гибкости для проверки формы.