Расширение операций

Помимо создания дополнительных операций, несложно изменить поведение любой из стандартных.

Функция Аргументы Возврат Описание
opAdd row_data [array] - данные для записи array - доп. данные в ответ клиенту Стандартный add.
opEdit id [integer] - primary key
row_data [array] - данные для записи
array - доп. данные в ответ клиенту Стандартный edit.
opDel id [mixed] array - доп. данные в ответ клиенту Стандартный del. При удалении нескольких записей принимает строку с id через запятую
operData row_data [array] - данные для записи array - измененные данные для записи Позволяет изменить сохраняемые данные для операций add и edit. Часто используется для проверки данных и обработки значений Null.
operAfterAddEdit id [integer] - primary_key Вызывается после операций add и edit. Принимает id только что добавленного или измененного ряда.
operComplete response [array] - ответ от сервера
oper [string] - выполненная операция
array - ответ от сервера Вызывается после выполнения любой стандартной или дополнительной операции. Часто используется для заключительных действий, вроде сброса кешей, а также для финального изменения ответа от сервера.

Пример добавления своего кода перед и после стандартного редактирования:

protected function opEdit($id, $data)
{
    $data['name'] = ucfirst($data['name']); // before oper
    $response = parent::opEdit($id, $data); // exec orginial oper
    cache::drop($id);                       // after oper
    $response['cache_dropped'] = 1;         // modify original response
    return $response;
}

Пример модификации и проверки данных при add и edit:

protected function operData($data)
{
    $data['name'] = $data['name'] ? $data['name'] : null; //set null if empty
    $data['price'] = max(0, $data['price']);              //sanitize data
 
    //Server side error checking
    if($data['discount'] > 0.2)
    {
        throw new jqGridException('Discount is too high'); //This message goes directly to server response
    }
 
    return $data;
}

На других языках