mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
parent
e53074dab9
commit
d9bf3cf987
2 changed files with 21 additions and 5 deletions
|
@ -318,10 +318,19 @@ class TranslateBehavior extends ModelBehavior {
|
|||
/**
|
||||
* beforeSave callback.
|
||||
*
|
||||
* Copies data into the runtime property when `$options['validate']` is
|
||||
* disabled. Or the runtime data hasn't been set yet.
|
||||
*
|
||||
* @param Model $model Model save was called on.
|
||||
* @return boolean true.
|
||||
*/
|
||||
public function beforeSave(Model $model) {
|
||||
public function beforeSave(Model $model, $options = array()) {
|
||||
if (isset($options['validate']) && $options['validate'] == false) {
|
||||
unset($this->runtime[$model->alias]['beforeSave']);
|
||||
}
|
||||
if (isset($this->runtime[$model->alias]['beforeSave'])) {
|
||||
return true;
|
||||
}
|
||||
$this->_setRuntimeData($model);
|
||||
return true;
|
||||
}
|
||||
|
@ -338,7 +347,7 @@ class TranslateBehavior extends ModelBehavior {
|
|||
*/
|
||||
protected function _setRuntimeData(Model $model) {
|
||||
$locale = $this->_getLocale($model);
|
||||
if (empty($locale) || isset($this->runtime[$model->alias]['beforeSave'])) {
|
||||
if (empty($locale)) {
|
||||
return true;
|
||||
}
|
||||
$fields = array_merge($this->settings[$model->alias], $this->runtime[$model->alias]['fields']);
|
||||
|
@ -370,12 +379,17 @@ class TranslateBehavior extends ModelBehavior {
|
|||
* @return void
|
||||
*/
|
||||
public function afterSave(Model $model, $created) {
|
||||
if (!isset($this->runtime[$model->alias]['beforeSave'])) {
|
||||
if (!isset($this->runtime[$model->alias]['beforeValidate']) && !isset($this->runtime[$model->alias]['beforeSave'])) {
|
||||
return true;
|
||||
}
|
||||
$locale = $this->_getLocale($model);
|
||||
$tempData = $this->runtime[$model->alias]['beforeSave'];
|
||||
unset($this->runtime[$model->alias]['beforeSave']);
|
||||
if (isset($this->runtime[$model->alias]['beforeValidate'])) {
|
||||
$tempData = $this->runtime[$model->alias]['beforeValidate'];
|
||||
} else {
|
||||
$tempData = $this->runtime[$model->alias]['beforeSave'];
|
||||
}
|
||||
|
||||
unset($this->runtime[$model->alias]['beforeValidate'], $this->runtime[$model->alias]['beforeSave']);
|
||||
$conditions = array('model' => $model->alias, 'foreign_key' => $model->id);
|
||||
$RuntimeModel = $this->translateModel($model);
|
||||
|
||||
|
|
|
@ -733,6 +733,8 @@ class TranslateBehaviorTest extends CakeTestCase {
|
|||
'conditions' => array('translated_article_id' => $Model->id)
|
||||
));
|
||||
$this->assertCount(2, $result);
|
||||
$this->assertEquals($data['TranslatedItem'][0]['title'], $result[0]['TranslatedItem']['title']);
|
||||
$this->assertEquals($data['TranslatedItem'][1]['title'], $result[1]['TranslatedItem']['title']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue