Before Save
public function onBeforeSaveReview(mixed &$data, JTable $table) : bool
Fires before saving a review.
Description
This hook is triggered before creating or updating a review record. It can be used to bind the data that are going to be saved within the database.
In case the $data argument specifies a id_service
property/attribute, than the review will be published for a service, otherwise it will be published for an employee.
TIP: in case of failure while saving the record, it is possible to throw an exception to abort the saving process and return a readable error message. The same can be accomplished by registering an error to the table and returning false
.
// throw an exception
throw new Exception('Missing required field', 404);
// or register the error
$table->setError('Missing required field');
return false;
Parameters
- &$data
-
(array|object) Either an array or an object specifying the review properties to bind.
- $table
-
(JTable) The table instance that handles the saving process.
Return Value
Boolean. Use false to abort the saving process.
Example
The following example is used to save a new property that is not supported by default. It is assumed that the reviews database table has been altered to support the modifydate column.
/**
* Trigger hook to allow the plugins to bind the object that
* is going to be saved.
*
* @param mixed &$data The array/object to bind.
* @param JTable $table The table instance.
*
* @return boolean $save False to abort the saving process.
*/
public function onBeforeSaveReview($data, $table)
{
$input = JFactory::getApplication()->input;
// retrieve MODIFY DATE from request
$modifydate = $input->get('modifydate', null, 'string');
// make sure the date was set
if (!is_null($modifydate))
{
// bind array with modify date to include it within the UPDATE/INSERT query
$data['modifydate'] = $modifydate;
}
return true;
}
Changelog
Version | Description |
---|---|
1.7 | Added $table arguments. Removed $isNew argument. Accepted a return value to abort the saving process. |
1.6 | Introduced. |