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

VersionDescription
1.7 Added $table arguments.
Removed $isNew argument.
Accepted a return value to abort the saving process.
1.6 Introduced.
Last Update: 2021-10-08 15:29
Helpful?
See Also: