settings[$model->alias])) { unset($this->settings[$model->alias]); } } /** * Before find callback * * @param object $model Model using this behavior * @param array $queryData Data used to execute this query, i.e. conditions, order, etc. * @return mixed False if the operation should abort. An array will replace the value of $query. * @access public */ public function beforeFind(&$model, $query) { } /** * After find callback. Can be used to modify any results returned by find and findAll. * * @param object $model Model using this behavior * @param mixed $results The results of the find operation * @param boolean $primary Whether this model is being queried directly (vs. being queried as an association) * @return mixed An array value will replace the value of $results - any other value will be ignored. * @access public */ public function afterFind(&$model, $results, $primary) { } /** * Before validate callback * * @param object $model Model using this behavior * @return mixed False if the operation should abort. Any other result will continue. * @access public */ public function beforeValidate(&$model) { } /** * Before save callback * * @param object $model Model using this behavior * @return mixed False if the operation should abort. Any other result will continue. * @access public */ public function beforeSave(&$model) { } /** * After save callback * * @param object $model Model using this behavior * @param boolean $created True if this save created a new record */ public function afterSave(&$model, $created) { } /** * Before delete callback * * @param object $model Model using this behavior * @param boolean $cascade If true records that depend on this record will also be deleted * @return mixed False if the operation should abort. Any other result will continue. * @access public */ public function beforeDelete(&$model, $cascade = true) { } /** * After delete callback * * @param object $model Model using this behavior */ public function afterDelete(&$model) { } /** * DataSource error callback * * @param object $model Model using this behavior * @param string $error Error generated in DataSource */ public function onError(&$model, $error) { } /** * Overrides Object::dispatchMethod to account for PHP4's broken reference support * * @see Object::dispatchMethod * @access public * @return mixed */ function dispatchMethod(&$model, $method, $params = array()) { if (empty($params)) { return $this->{$method}($model); } $params = array_values($params); switch (count($params)) { case 1: return $this->{$method}($model, $params[0]); case 2: return $this->{$method}($model, $params[0], $params[1]); case 3: return $this->{$method}($model, $params[0], $params[1], $params[2]); case 4: return $this->{$method}($model, $params[0], $params[1], $params[2], $params[3]); case 5: return $this->{$method}($model, $params[0], $params[1], $params[2], $params[3], $params[4]); default: $params = array_merge(array(&$model), $params); return call_user_func_array(array(&$this, $method), $params); break; } } /** * If $model's whitelist property is non-empty, $field will be added to it. * Note: this method should *only* be used in beforeValidate or beforeSave to ensure * that it only modifies the whitelist for the current save operation. Also make sure * you explicitly set the value of the field which you are allowing. * * @param object $model Model using this behavior * @param string $field Field to be added to $model's whitelist * @access protected * @return void */ function _addToWhitelist(&$model, $field) { if (is_array($field)) { foreach ($field as $f) { $this->_addToWhitelist($model, $f); } return; } if (!empty($model->whitelist) && !in_array($field, $model->whitelist)) { $model->whitelist[] = $field; } } }