Class TranslateBehavior

Translate behavior

Object
Extended by ModelBehavior
Extended by TranslateBehavior

Method Detail

_addJoinsource protected

_addJoin( Model $Model , array $query , string $field , string $aliasField , string|array $locale )

Appends a join for translated fields.

Parameters

Model $Model
The model being worked on.
array $query
The query array to append a join to.
string $field
The field name being joined.
string $aliasField
The aliased field name being joined.
string|array $locale
The locale(s) having joins added.

Returns

array
The modified query

_checkConditionssource protected

_checkConditions( Model $Model , array $query )

Check a query's conditions for translated fields. Return an array of translated fields found in the conditions.

Parameters

Model $Model
The model being read.
array $query
The query array.

Returns

array
The list of translated fields that are in the conditions.

_getLocalesource protected

_getLocale( Model $Model )

Get selected locale for model

Parameters

Model $Model
Model the locale needs to be set/get on.

Returns

mixed
string or false

_prepareTranslationssource protected

_prepareTranslations( Model $Model , array $data )

Prepares the data to be saved for translated records. Add blank fields, and populates data for multi-locale saves.

Parameters

Model $Model
Model using this behavior
array $data
The sparse data that was provided.

Returns

array
The fully populated data to save.

_removeFieldsource protected

_removeField( Model $Model , string $field )

Update runtime setting for a given field.

Parameters

Model $Model
Model using this behavior
string $field
The field to update.

_setRuntimeDatasource protected

_setRuntimeData( Model $Model )

Sets the runtime data.

Used from beforeValidate() and beforeSave() for compatibility issues, and to allow translations to be persisted even when validation is disabled.

Parameters

Model $Model
Model using this behavior.

afterDeletesource public

afterDelete( Model $Model )

afterDelete Callback

Parameters

Model $Model
Model the callback was run on.

Overrides

ModelBehavior::afterDelete()

afterFindsource public

afterFind( Model $Model , array $results , boolean $primary false )

afterFind Callback

Parameters

Model $Model
Model find was run on
array $results
Array of model results.
boolean $primary optional false
Did the find originate on $model.

Returns

array
Modified results

Overrides

ModelBehavior::afterFind()

afterSavesource public

afterSave( Model $Model , boolean $created , array $options array() )

afterSave Callback

Parameters

Model $Model
Model the callback is called on
boolean $created
Whether or not the save created a record.
array $options optional array()
Options passed from Model::save().

Overrides

ModelBehavior::afterSave()

afterValidatesource public

afterValidate( Model $Model )

Restores model data to the original data. This solves issues with saveAssociated and validate = first.

Parameters

Model $Model
Model using this behavior.

Overrides

ModelBehavior::afterValidate()

beforeFindsource public

beforeFind( Model $Model , array $query )

beforeFind Callback

Parameters

Model $Model
Model find is being run on.
array $query
Array of Query parameters.

Returns

array
Modified query

Overrides

ModelBehavior::beforeFind()

beforeSavesource public

beforeSave( Model $Model , array $options array() )

beforeSave callback.

Copies data into the runtime property when $options['validate'] is disabled. Or the runtime data hasn't been set yet.

Parameters

Model $Model
Model save was called on.
array $options optional array()
Options passed from Model::save().

Returns

boolean
true.

See

Model::save()

Overrides

ModelBehavior::beforeSave()

beforeValidatesource public

beforeValidate( Model $Model , array $options array() )

beforeValidate Callback

Parameters

Model $Model
Model invalidFields was called on.
array $options optional array()
Options passed from Model::save().

Returns

boolean
bool

See

Model::save()

Overrides

ModelBehavior::beforeValidate()

bindTranslationsource public

bindTranslation( Model $Model , string|array $fields , boolean $reset true )

Bind translation for fields, optionally with hasMany association for fake field.

Note You should avoid binding translations that overlap existing model properties. This can cause un-expected and un-desirable behavior.

Parameters

Model $Model
using this behavior of model
string|array $fields
string with field or array(field1, field2=>AssocName, field3)
boolean $reset optional true
Leave true to have the fields only modified for the next operation. if false the field will be added for all future queries.

Returns

boolean
bool

Throws

CakeException
when attempting to bind a translating called name. This is not allowed as it shadows Model::$name.

cleanupsource public

cleanup( Model $Model )

Cleanup Callback unbinds bound translations and deletes setting information.

Parameters

Model $Model
Model being detached.

Overrides

ModelBehavior::cleanup()

setupsource public

setup( Model $Model , array $config array() )

Callback

$config for TranslateBehavior should be array('fields' => array('field_one', 'field_two' => 'FieldAssoc', 'field_three'))

With above example only one permanent hasMany will be joined (for field_two as FieldAssoc)

$config could be empty - and translations configured dynamically by bindTranslation() method

Parameters

Model $Model
Model the behavior is being attached to.
array $config optional array()
Array of configuration information.

Returns

mixed
mixed

Overrides

ModelBehavior::setup()

translateModelsource public

translateModel( Model $Model )

Get instance of model for translations.

If the model has a translateModel property set, this will be used as the class name to find/use. If no translateModel property is found 'I18nModel' will be used.

Parameters

Model $Model
Model to get a translatemodel for.

Returns

Model
Model

unbindTranslationsource public

unbindTranslation( Model $Model , string|array $fields null )

Unbind translation for fields, optionally unbinds hasMany association for fake field

Parameters

Model $Model
using this behavior of model
string|array $fields optional null
string with field, or array(field1, field2=>AssocName, field3), or null for unbind all original translations

Returns

boolean
bool

Methods inherited from ModelBehavior

_addToWhitelistsource protected

_addToWhitelist( Model $model , string $field )

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.

Parameters

Model $model
Model using this behavior
string $field
Field to be added to $model's whitelist

beforeDeletesource public

beforeDelete( Model $model , boolean $cascade true )

Before delete is called before any delete occurs on the attached model, but after the model's beforeDelete is called. Returning false from a beforeDelete will abort the delete.

Parameters

Model $model
Model using this behavior
boolean $cascade optional true
If true records that depend on this record will also be deleted

Returns

mixed
False if the operation should abort. Any other result will continue.

onErrorsource public

onError( Model $model , string $error )

DataSource error callback

Parameters

Model $model
Model using this behavior
string $error
Error generated in DataSource

Methods inherited from Object

__constructsource public

__construct( )

Constructor, no-op

_mergeVarssource protected

_mergeVars( array $properties , string $class , boolean $normalize true )

Merges this objects $property with the property in $class' definition. This classes value for the property will be merged on top of $class'

This provides some of the DRY magic CakePHP provides. If you want to shut it off, redefine this method as an empty function.

Parameters

array $properties
The name of the properties to merge.
string $class
The class to merge the property with.
boolean $normalize optional true
Set to true to run the properties through Hash::normalize() before merging.

_setsource protected

_set( array $properties array() )

Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.

Parameters

array $properties optional array()
An associative array containing properties and corresponding values.

_stopsource protected

_stop( integer|string $status 0 )

Stop execution of the current script. Wraps exit() making testing easier.

Parameters

integer|string $status optional 0
see http://php.net/exit for values

dispatchMethodsource public

dispatchMethod( string $method , array $params array() )

Calls a method on this object with the given parameters. Provides an OO wrapper for call_user_func_array

Parameters

string $method
Name of the method to call
array $params optional array()
Parameter list to use when calling $method

Returns

mixed
Returns the result of the method call

logsource public

log( string $msg , integer $type LOG_ERR , null|string|array $scope null )

Convenience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.

Parameters

string $msg
Log message
integer $type optional LOG_ERR
Error type constant. Defined in app/Config/core.php.
null|string|array $scope optional null
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.

Returns

boolean
Success of log write

requestActionsource public

requestAction( string|array $url , array $extra array() )

Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.

Under the hood this method uses Router::reverse() to convert the $url parameter into a string URL. You should use URL formats that are compatible with Router::reverse()

Passing POST and GET data

POST and GET data can be simulated in requestAction. Use $extra['url'] for GET data. The $extra['data'] parameter allows POST data simulation.

Parameters

string|array $url
String or array-based URL. Unlike other URL arrays in CakePHP, this URL will not automatically handle passed and named arguments in the $url parameter.
array $extra optional array()
if array includes the key "return" it sets the AutoRender to true. Can also be used to submit GET/POST data, and named/passed arguments.

Returns

mixed
Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.

toStringsource public

toString( )

Object-to-string conversion. Each class can override this method as necessary.

Returns

string
The name of this class

Properties summary

$_joinTablesource

protected object

Stores the joinTable object for generating joins.

$_runtimeModelsource

protected Model

Stores the runtime model for generating joins.

$runtimesource

public array

Used for runtime configuration of model

array()

Properties inherited from ModelBehavior

$mapMethodssource

public array

Allows the mapping of preg-compatible regular expressions to public or private methods in this class, where the array key is a /-delimited regular expression, and the value is a class method. Similar to the functionality of the findBy* / findAllBy* magic methods.

array()

$settingssource

public array

Contains configuration settings for use with individual model objects. This is used because if multiple models use this Behavior, each will use the same object instance. Individual model settings should be stored as an associative array, keyed off of the model name.

See

Model::$alias
array()

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.7/class-TranslateBehavior.html