\M17nBehavior

M17nBehavior

登録するコンテンツデータに対して、対応している言語分登録します。

コンテンツデータのテーブルに以下のフィールドを保持してください。

  • language_id 言語コードに対応するidが登録されます。
  • is_origin オリジナルデータとします。
  • is_translation 翻訳したかどうか。

サンプルコード

public $actsAs = array(
    'M17n.M17n' => array(
        'keyField' => 'key', //デフォルト"key"
    'commonFields' => array('category_id'), //このフィールドが更新された場合、全言語のデータを更新する
    'associations' => array(
        '(Model名)' => array(
            'class' => (クラス名: Plugin.Model形式),
            'foreignKey' => (外部キー),
            'fieldForIdentifyPlugin' => array( //プラグインを特定するフィールド (例)'AuthorizationKey'
                'field' => (フィールド名),
                'value' => (値)
            ),
            'isM17n' => 多言語ありかどうか,
        )
    ),
    'afterCallback' => afterSaveを実行するかどうか,
    'isWorkflow' => ワークフローかどうか。省略もしくはNULLの場合、
    'callbacks' => beforeSave、afterSave事態を実行するかどうか,
    ),

Summary

Methods
Properties
Constants
setup()
getM17nSettings()
isM17nGeneralPlugin()
beforeSave()
afterSave()
updateTranslationField()
saveM17nData()
No public properties found
No constants found
_hasM17nFields()
_hasWorkflowFields()
_getSaveConditions()
_saveM17nData()
_updateWorkflowFields()
_updateWorkflowAssociations()
_saveWorkflowAssociations()
No protected properties found
N/A
__hasFields()
No private properties found
N/A

Methods

setup()

setup(\Model  $model, array  $config = array()) : void

Setup this behavior with the specified configuration settings.

Parameters

\Model $model

Model using this behavior

array $config

Configuration settings for $model

getM17nSettings()

getM17nSettings(\Model  $model, string  $keyPath, mixed  $default = null) : void

behaviorの設定値を取得する

Parameters

\Model $model

Model using this behavior

string $keyPath

Hash::getのpath

mixed $default

デフォルト値

isM17nGeneralPlugin()

isM17nGeneralPlugin(\Model  $model) : boolean

ルームに関するプラグインかどうか

Parameters

\Model $model

呼び出し元Model

Returns

boolean

beforeSave()

beforeSave(\Model  $model, array  $options = array()) : mixed

beforeSave is called before a model is saved. Returning false from a beforeSave callback will abort the save operation.

Parameters

\Model $model

呼び出し元Model

array $options

Options passed from Model::save().

Returns

mixed —

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

afterSave()

afterSave(\Model  $model, boolean  $created, array  $options = array()) : boolean

afterSave is called after a model is saved.

Parameters

\Model $model

Model using this behavior

boolean $created

True if this save created a new record

array $options

Options passed from Model::save().

Throws

\InternalErrorException

Returns

boolean

updateTranslationField()

updateTranslationField(\Model  $model) : boolean

is_translationの更新

Parameters

\Model $model

呼び出し元Model

Throws

\InternalErrorException

Returns

boolean

saveM17nData()

saveM17nData(\Model  $model, array|null  $commonFields = null, array|null  $associations = null) : boolean

全言語をコピーする処理

Parameters

\Model $model

呼び出し元Model

array|null $commonFields

共通フィールド

array|null $associations

関連情報

Returns

boolean

_hasM17nFields()

_hasM17nFields(\Model  $model) : boolean

M17nフィールドのチェック

Parameters

\Model $model

呼び出し元Model

Returns

boolean

_hasWorkflowFields()

_hasWorkflowFields(\Model  $model) : boolean

Workflowフィールドのチェック

Parameters

\Model $model

呼び出し元Model

Returns

boolean

_getSaveConditions()

_getSaveConditions(\Model  $model) : array

saveの条件を取得する

Parameters

\Model $model

Model using this behavior

Throws

\InternalErrorException

Returns

array

_saveM17nData()

_saveM17nData(\Model  $model, array  $targetDatas, array  $options) : boolean

多言語データの登録処理

$options

array( 'baseData' => 基準となるデータ, 'commonFields' => 共通フィールド, 'commonUpdate' => 共通フィールドの更新データ, 'associations' => 関連情報, );

Parameters

\Model $model

呼び出し元Model

array $targetDatas

対象データ

array $options

オプション

Throws

\InternalErrorException

Returns

boolean

_updateWorkflowFields()

_updateWorkflowFields(\Model  $model, array  $data) : boolean

ワークフローのデータであれば、is_activeとis_latestのフラグを更新する

Parameters

\Model $model

呼び出し元Model

array $data

更新データ

Returns

boolean

_updateWorkflowAssociations()

_updateWorkflowAssociations(\Model  $model, array  $options, array|null  $associations = null) : boolean

ワークフローのデータでコピーする場合で、関連テーブルを更新する

$options

array( 'baseData' => 基準となるデータ, 'targetData' => 対象データ, 'newData' => 登録したデータ, 'isWorkflow' => ワークフローかどうか );

Parameters

\Model $model

呼び出し元Model

array $options

オプション

array|null $associations

関連情報

Returns

boolean

_saveWorkflowAssociations()

_saveWorkflowAssociations(\Model  $targetModel, array  $targetDatas, array  $options) : boolean

ワークフローのデータでコピーする場合で、関連テーブルを更新する

$options

array( 'foreignKey' => 外部キーのフィールド, 'associationId' => 関連データのID, 'commonFields' => 共通フィールド, 'associations' => 関連情報, 'isWorkflow' => ワークフローかどうか );

Parameters

\Model $targetModel

呼び出し元Model※_updateWorkflowAssociations()の$tagetModel

array $targetDatas

対象データ

array $options

オプション

Returns

boolean

__hasFields()

__hasFields(\Model  $model, \arrau  $fields) : boolean

フィールドのチェック

Parameters

\Model $model

呼び出し元Model

\arrau $fields

フィールド

Returns

boolean