diff --git a/cake/libs/cache/model.php b/cake/libs/cache/model.php index 46576b9f4..c7e9da459 100644 --- a/cake/libs/cache/model.php +++ b/cake/libs/cache/model.php @@ -94,7 +94,7 @@ class ModelEngine extends CacheEngine { return false; } - $cache = array($this->__Model->currentModel => array( + $cache = array($this->__Model->alias => array( $this->__fields[0] => $data, $this->__fields[1] => time() + $duration)); diff --git a/cake/libs/controller/components/acl.php b/cake/libs/controller/components/acl.php index 1401c8e78..37110fec3 100644 --- a/cake/libs/controller/components/acl.php +++ b/cake/libs/controller/components/acl.php @@ -297,14 +297,14 @@ class DB_ACL extends AclBase { $inherited = array(); for ($i = 0 ; $i < count($aroPath); $i++) { $perms = $this->Aro->Permission->findAll(array( - $this->Aro->Permission->currentModel . '.aro_id' => $aroPath[$i][$this->Aro->currentModel]['id'], - $this->Aro->Permission->currentModel . '.aco_id' => $acoPath->extract('{n}.' . $this->Aco->currentModel . '.id')), - null, array($this->Aco->currentModel . '.lft' => 'desc'), null, null, 0); + $this->Aro->Permission->alias . '.aro_id' => $aroPath[$i][$this->Aro->alias]['id'], + $this->Aro->Permission->alias . '.aco_id' => $acoPath->extract('{n}.' . $this->Aco->alias . '.id')), + null, array($this->Aco->alias . '.lft' => 'desc'), null, null, 0); if (empty($perms)) { continue; } else { - foreach (Set::extract($perms, '{n}.' . $this->Aro->Permission->currentModel) as $perm) { + foreach (Set::extract($perms, '{n}.' . $this->Aro->Permission->alias) as $perm) { if ($action == '*') { foreach ($permKeys as $key) { @@ -358,7 +358,7 @@ class DB_ACL extends AclBase { } if (isset($perms[0])) { - $save = $perms[0][$this->Aro->Permission->currentModel]; + $save = $perms[0][$this->Aro->Permission->alias]; } if ($actions == "*") { @@ -387,7 +387,7 @@ class DB_ACL extends AclBase { $save['aco_id'] = $perms['aco']; if ($perms['link'] != null && count($perms['link']) > 0) { - $save['id'] = $perms['link'][0][$this->Aro->Permission->currentModel]['id']; + $save['id'] = $perms['link'][0][$this->Aro->Permission->alias]['id']; } $this->Aro->Permission->create($save); return $this->Aro->Permission->save(); @@ -460,11 +460,11 @@ class DB_ACL extends AclBase { } return array( - 'aro' => Set::extract($obj, 'Aro.0.'.$this->Aro->currentModel.'.id'), - 'aco' => Set::extract($obj, 'Aco.0.'.$this->Aco->currentModel.'.id'), + 'aro' => Set::extract($obj, 'Aro.0.'.$this->Aro->alias.'.id'), + 'aco' => Set::extract($obj, 'Aco.0.'.$this->Aco->alias.'.id'), 'link' => $this->Aro->Permission->findAll(array( - $this->Aro->Permission->currentModel . '.aro_id' => Set::extract($obj, 'Aro.0.'.$this->Aro->currentModel.'.id'), - $this->Aro->Permission->currentModel . '.aco_id' => Set::extract($obj, 'Aco.0.'.$this->Aco->currentModel.'.id') + $this->Aro->Permission->alias . '.aro_id' => Set::extract($obj, 'Aro.0.'.$this->Aro->alias.'.id'), + $this->Aro->Permission->alias . '.aco_id' => Set::extract($obj, 'Aco.0.'.$this->Aco->alias.'.id') )) ); } diff --git a/cake/libs/controller/controller.php b/cake/libs/controller/controller.php index 3fe3e88a2..1a7f393cb 100644 --- a/cake/libs/controller/controller.php +++ b/cake/libs/controller/controller.php @@ -595,8 +595,8 @@ class Controller extends Object { $errors = array(); foreach ($objects as $object) { - $this->{$object->currentModel}->set($object->data); - $errors = array_merge($errors, $this->{$object->currentModel}->invalidFields()); + $this->{$object->alias}->set($object->data); + $errors = array_merge($errors, $this->{$object->alias}->invalidFields()); } return $this->validationErrors = (count($errors) ? $errors : false); } @@ -925,8 +925,8 @@ class Controller extends Object { return array(); } $options = am($this->params, $this->params['url'], $this->passedArgs); - if (isset($this->paginate[$object->currentModel])) { - $defaults = $this->paginate[$object->currentModel]; + if (isset($this->paginate[$object->alias])) { + $defaults = $this->paginate[$object->alias]; } else { $defaults = $this->paginate; } @@ -944,7 +944,7 @@ class Controller extends Object { if (!empty($options['order']) && is_array($options['order'])) { $key = key($options['order']); if (strpos($key, '.') === false && $object->hasField($key)) { - $options['order'][$object->currentModel . '.' . $key] = $options['order'][$key]; + $options['order'][$object->alias . '.' . $key] = $options['order'][$key]; unset($options['order'][$key]); } } @@ -1004,7 +1004,7 @@ class Controller extends Object { 'options' => $options ); - $this->params['paging'][$object->currentModel] = $paging; + $this->params['paging'][$object->alias] = $paging; if (!in_array('Paginator', $this->helpers) && !array_key_exists('Paginator', $this->helpers)) { $this->helpers[] = 'Paginator'; diff --git a/cake/libs/model/behaviors/acl.php b/cake/libs/model/behaviors/acl.php index 8874c52f8..1627a7f7f 100644 --- a/cake/libs/model/behaviors/acl.php +++ b/cake/libs/model/behaviors/acl.php @@ -52,8 +52,8 @@ class AclBehavior extends ModelBehavior { if (is_string($config)) { $config = array('type' => $config); } - $this->settings[$model->currentModel] = am(array('type' => 'requester'), $config); - $type = $this->__typeMaps[$this->settings[$model->currentModel]['type']]; + $this->settings[$model->alias] = am(array('type' => 'requester'), $config); + $type = $this->__typeMaps[$this->settings[$model->alias]['type']]; if (!ClassRegistry::isKeySet($type)) { uses('model' . DS . 'db_acl'); @@ -63,7 +63,7 @@ class AclBehavior extends ModelBehavior { } $model->{$type} =& $object; if (!method_exists($model, 'parentNode')) { - trigger_error("Callback parentNode() not defined in {$model->currentModel}", E_USER_WARNING); + trigger_error("Callback parentNode() not defined in {$model->alias}", E_USER_WARNING); } } /** @@ -73,9 +73,9 @@ class AclBehavior extends ModelBehavior { * @return array */ function node(&$model, $ref = null) { - $type = $this->__typeMaps[low($this->settings[$model->currentModel]['type'])]; + $type = $this->__typeMaps[low($this->settings[$model->alias]['type'])]; if (empty($ref)) { - $ref = array('model' => $model->currentModel, 'foreign_key' => $model->id); + $ref = array('model' => $model->alias, 'foreign_key' => $model->id); } return $model->{$type}->node($ref); } @@ -86,7 +86,7 @@ class AclBehavior extends ModelBehavior { */ function afterSave(&$model, $created) { if ($created) { - $type = $this->__typeMaps[low($this->settings[$model->currentModel]['type'])]; + $type = $this->__typeMaps[low($this->settings[$model->alias]['type'])]; $parent = $model->parentNode(); if (!empty($parent)) { $parent = $this->node($model, $parent); @@ -97,7 +97,7 @@ class AclBehavior extends ModelBehavior { $model->{$type}->create(); $model->{$type}->save(array( 'parent_id' => Set::extract($parent, "0.{$type}.id"), - 'model' => $model->currentModel, + 'model' => $model->alias, 'foreign_key' => $model->id )); } @@ -107,7 +107,7 @@ class AclBehavior extends ModelBehavior { * */ function afterDelete(&$model) { - $type = $this->__typeMaps[low($this->settings[$model->currentModel]['type'])]; + $type = $this->__typeMaps[low($this->settings[$model->alias]['type'])]; $node = Set::extract($this->node($model), "0.{$type}.id"); if (!empty($node)) { $model->{$type}->delete($node); diff --git a/cake/libs/model/behaviors/translate.php b/cake/libs/model/behaviors/translate.php index c65bd7a1a..f19638882 100644 --- a/cake/libs/model/behaviors/translate.php +++ b/cake/libs/model/behaviors/translate.php @@ -55,12 +55,12 @@ class TranslateBehavior extends ModelBehavior { function setup(&$model, $config = array()) { $db =& ConnectionManager::getDataSource($model->useDbConfig); if (!$db->connected) { - trigger_error('Datasource '.$model->useDbConfig.' for TranslateBehavior of model '.$model->currentModel.' is not connected', E_USER_ERROR); + trigger_error('Datasource '.$model->useDbConfig.' for TranslateBehavior of model '.$model->alias.' is not connected', E_USER_ERROR); return false; } - $this->settings[$model->currentModel] = array(); - $this->runtime[$model->currentModel] = array('fields' => array()); + $this->settings[$model->alias] = array(); + $this->runtime[$model->alias] = array('fields' => array()); $this->translateModel($model); return $this->bindTranslation($model, null, false); } @@ -74,20 +74,20 @@ class TranslateBehavior extends ModelBehavior { $RuntimeModel =& $this->translateModel($model); if (is_string($query['fields']) && 'COUNT(*) AS '.$db->name('count') == $query['fields']) { - $this->runtime[$model->currentModel]['count'] = true; + $this->runtime[$model->alias]['count'] = true; if (empty($locale)) { return $query; } - $query['fields'] = 'COUNT(DISTINCT('.$db->name($model->currentModel).'.'.$db->name($model->primaryKey).')) ' . $db->alias . 'count'; + $query['fields'] = 'COUNT(DISTINCT('.$db->name($model->alias).'.'.$db->name($model->primaryKey).')) ' . $db->alias . 'count'; $query['joins'][] = array( 'type' => 'INNER', - 'alias' => $RuntimeModel->currentModel, + 'alias' => $RuntimeModel->alias, 'table' => $db->name($tablePrefix . 'i18n'), 'conditions' => array( - $model->currentModel.'.id' => '{$__cakeIdentifier['.$RuntimeModel->currentModel.'.foreign_key]__$}', - $RuntimeModel->currentModel.'.model' => $model->currentModel, - $RuntimeModel->currentModel.'.locale' => $locale)); + $model->alias.'.id' => '{$__cakeIdentifier['.$RuntimeModel->alias.'.foreign_key]__$}', + $RuntimeModel->alias.'.model' => $model->alias, + $RuntimeModel->alias.'.locale' => $locale)); return $query; } @@ -97,7 +97,7 @@ class TranslateBehavior extends ModelBehavior { $autoFields = false; if (empty($query['fields'])) { - $query['fields'] = array($model->currentModel.'.*'); + $query['fields'] = array($model->alias.'.*'); foreach (array('hasOne', 'belongsTo') as $type) { foreach ($model->{$type} as $key => $value) { @@ -113,13 +113,13 @@ class TranslateBehavior extends ModelBehavior { } $autoFields = true; } - $fields = am($this->settings[$model->currentModel], $this->runtime[$model->currentModel]['fields']); + $fields = am($this->settings[$model->alias], $this->runtime[$model->alias]['fields']); $addFields = array(); if (is_array($query['fields'])) { foreach ($fields as $key => $value) { $field = ife(is_numeric($key), $value, $key); - if (in_array($model->currentModel.'.*', $query['fields']) || $autoFields || in_array($model->currentModel.'.'.$field, $query['fields']) || in_array($field, $query['fields'])) { + if (in_array($model->alias.'.*', $query['fields']) || $autoFields || in_array($model->alias.'.'.$field, $query['fields']) || in_array($field, $query['fields'])) { $addFields[] = $field; } } @@ -127,7 +127,7 @@ class TranslateBehavior extends ModelBehavior { if ($addFields) { foreach ($addFields as $field) { - foreach (array($field, $model->currentModel.'.'.$field) as $_field) { + foreach (array($field, $model->alias.'.'.$field) as $_field) { $key = array_search($_field, $query['fields']); if ($key !== false) { @@ -143,8 +143,8 @@ class TranslateBehavior extends ModelBehavior { 'alias' => 'I18n__'.$field.'__'.$_locale, 'table' => $db->name($tablePrefix . 'i18n'), 'conditions' => array( - $model->currentModel.'.id' => '{$__cakeIdentifier[I18n__'.$field.'__'.$_locale.'.foreign_key]__$}', - 'I18n__'.$field.'__'.$_locale.'.model' => $model->currentModel, + $model->alias.'.id' => '{$__cakeIdentifier[I18n__'.$field.'__'.$_locale.'.foreign_key]__$}', + 'I18n__'.$field.'__'.$_locale.'.model' => $model->alias, 'I18n__'.$field.'__'.$_locale.'.'.$RuntimeModel->displayField => $field, 'I18n__'.$field.'__'.$_locale.'.locale' => $_locale)); } @@ -155,47 +155,47 @@ class TranslateBehavior extends ModelBehavior { 'alias' => 'I18n__'.$field, 'table' => $db->name($tablePrefix . 'i18n'), 'conditions' => array( - $model->currentModel.'.id' => '{$__cakeIdentifier[I18n__'.$field.'.foreign_key]__$}', - 'I18n__'.$field.'.model' => $model->currentModel, + $model->alias.'.id' => '{$__cakeIdentifier[I18n__'.$field.'.foreign_key]__$}', + 'I18n__'.$field.'.model' => $model->alias, 'I18n__'.$field.'.'.$RuntimeModel->displayField => $field)); $query['conditions'][$db->name('I18n__'.$field.'.locale')] = $locale; } } } $query['fields'] = am($query['fields']); - $this->runtime[$model->currentModel]['beforeFind'] = $addFields; + $this->runtime[$model->alias]['beforeFind'] = $addFields; return $query; } /** * Callback */ function afterFind(&$model, $results, $primary) { - $this->runtime[$model->currentModel]['fields'] = array(); + $this->runtime[$model->alias]['fields'] = array(); $locale = $this->_getLocale($model); - if (empty($locale) || empty($results) || empty($this->runtime[$model->currentModel]['beforeFind'])) { + if (empty($locale) || empty($results) || empty($this->runtime[$model->alias]['beforeFind'])) { return $results; } - $beforeFind = $this->runtime[$model->currentModel]['beforeFind']; + $beforeFind = $this->runtime[$model->alias]['beforeFind']; foreach ($results as $key => $row) { - $results[$key][$model->currentModel]['locale'] = ife(is_array($locale), @$locale[0], $locale); + $results[$key][$model->alias]['locale'] = ife(is_array($locale), @$locale[0], $locale); foreach ($beforeFind as $field) { if (is_array($locale)) { foreach ($locale as $_locale) { - if (!isset($results[$key][$model->currentModel][$field]) && !empty($results[$key]['I18n__'.$field.'__'.$_locale]['content'])) { - $results[$key][$model->currentModel][$field] = $results[$key]['I18n__'.$field.'__'.$_locale]['content']; + if (!isset($results[$key][$model->alias][$field]) && !empty($results[$key]['I18n__'.$field.'__'.$_locale]['content'])) { + $results[$key][$model->alias][$field] = $results[$key]['I18n__'.$field.'__'.$_locale]['content']; } unset($results[$key]['I18n__'.$field.'__'.$_locale]); } - if (!isset($results[$key][$model->currentModel][$field])) { - $results[$key][$model->currentModel][$field] = ''; + if (!isset($results[$key][$model->alias][$field])) { + $results[$key][$model->alias][$field] = ''; } } else { $value = ife(empty($results[$key]['I18n__'.$field]['content']), '', $results[$key]['I18n__'.$field]['content']); - $results[$key][$model->currentModel][$field] = $value; + $results[$key][$model->alias][$field] = $value; unset($results[$key]['I18n__'.$field]); } } @@ -211,31 +211,31 @@ class TranslateBehavior extends ModelBehavior { if (empty($locale) || is_array($locale)) { return true; } - $fields = am($this->settings[$model->currentModel], $this->runtime[$model->currentModel]['fields']); + $fields = am($this->settings[$model->alias], $this->runtime[$model->alias]['fields']); $tempData = array(); foreach ($fields as $key => $value) { $field = ife(is_numeric($key), $value, $key); - if (isset($model->data[$model->currentModel][$field])) { - $tempData[$field] = $model->data[$model->currentModel][$field]; - unset($model->data[$model->currentModel][$field]); + if (isset($model->data[$model->alias][$field])) { + $tempData[$field] = $model->data[$model->alias][$field]; + unset($model->data[$model->alias][$field]); } } - $this->runtime[$model->currentModel]['beforeSave'] = $tempData; + $this->runtime[$model->alias]['beforeSave'] = $tempData; return true; } /** * Callback */ function afterSave(&$model, $created) { - if (!isset($this->runtime[$model->currentModel]['beforeSave'])) { + if (!isset($this->runtime[$model->alias]['beforeSave'])) { return true; } $locale = $this->_getLocale($model); - $tempData = $this->runtime[$model->currentModel]['beforeSave']; - unset($this->runtime[$model->currentModel]['beforeSave']); - $conditions = array('locale' => $locale, 'model' => $model->currentModel, 'foreign_key' => $model->id); + $tempData = $this->runtime[$model->alias]['beforeSave']; + unset($this->runtime[$model->alias]['beforeSave']); + $conditions = array('locale' => $locale, 'model' => $model->alias, 'foreign_key' => $model->id); $RuntimeModel =& $this->translateModel($model); if (empty($created)) { @@ -244,7 +244,7 @@ class TranslateBehavior extends ModelBehavior { if ($translations) { foreach ($translations as $id => $field) { $RuntimeModel->create(); - $RuntimeModel->save(array($RuntimeModel->currentModel => array('id' => $id, 'content' => $tempData[$field]))); + $RuntimeModel->save(array($RuntimeModel->alias => array('id' => $id, 'content' => $tempData[$field]))); unset($tempData[$field]); } } @@ -262,7 +262,7 @@ class TranslateBehavior extends ModelBehavior { */ function afterDelete(&$model) { $RuntimeModel =& $this->translateModel($model); - $conditions = array('model' => $model->currentModel, 'foreign_key' => $model->id); + $conditions = array('model' => $model->alias, 'foreign_key' => $model->id); $RuntimeModel->deleteAll($conditions); } /** @@ -286,7 +286,7 @@ class TranslateBehavior extends ModelBehavior { * @return object */ function &translateModel(&$model) { - if (!isset($this->runtime[$model->currentModel]['model'])) { + if (!isset($this->runtime[$model->alias]['model'])) { if (!isset($model->translateModel) || empty($model->translateModel)) { $className = 'I18nModel'; } else { @@ -298,21 +298,21 @@ class TranslateBehavior extends ModelBehavior { if (ClassRegistry::isKeySet($className)) { if (PHP5) { - $this->runtime[$model->currentModel]['model'] = ClassRegistry::getObject($className); + $this->runtime[$model->alias]['model'] = ClassRegistry::getObject($className); } else { - $this->runtime[$model->currentModel]['model'] =& ClassRegistry::getObject($className); + $this->runtime[$model->alias]['model'] =& ClassRegistry::getObject($className); } } else { if (PHP5) { - $this->runtime[$model->currentModel]['model'] = new $className(); + $this->runtime[$model->alias]['model'] = new $className(); } else { - $this->runtime[$model->currentModel]['model'] =& new $className(); + $this->runtime[$model->alias]['model'] =& new $className(); } - ClassRegistry::addObject($className, $this->runtime[$model->currentModel]['model']); + ClassRegistry::addObject($className, $this->runtime[$model->alias]['model']); ClassRegistry::map($className, $className); } } - return $this->runtime[$model->currentModel]['model']; + return $this->runtime[$model->alias]['model']; } /** * Bind translation for fields, optionally with hasMany association for @@ -333,7 +333,7 @@ class TranslateBehavior extends ModelBehavior { } $associations = array(); $RuntimeModel =& $this->translateModel($model); - $default = array('className' => $RuntimeModel->currentModel, 'foreignKey' => 'foreign_key'); + $default = array('className' => $RuntimeModel->alias, 'foreignKey' => 'foreign_key'); foreach ($fields as $key => $value) { if (is_numeric($key)) { @@ -344,42 +344,42 @@ class TranslateBehavior extends ModelBehavior { $association = $value; } - if (array_key_exists($field, $this->settings[$model->currentModel])) { - unset($this->settings[$model->currentModel][$field]); + if (array_key_exists($field, $this->settings[$model->alias])) { + unset($this->settings[$model->alias][$field]); - } elseif (in_array($field, $this->settings[$model->currentModel])) { - $this->settings[$model->currentModel] = am(array_diff_assoc($this->settings[$model->currentModel], array($field))); + } elseif (in_array($field, $this->settings[$model->alias])) { + $this->settings[$model->alias] = am(array_diff_assoc($this->settings[$model->alias], array($field))); } - if (array_key_exists($field, $this->runtime[$model->currentModel]['fields'])) { - unset($this->runtime[$model->currentModel]['fields'][$field]); + if (array_key_exists($field, $this->runtime[$model->alias]['fields'])) { + unset($this->runtime[$model->alias]['fields'][$field]); - } elseif (in_array($field, $this->runtime[$model->currentModel]['fields'])) { - $this->runtime[$model->currentModel]['fields'] = am(array_diff_assoc($this->runtime[$model->currentModel]['fields'], array($field))); + } elseif (in_array($field, $this->runtime[$model->alias]['fields'])) { + $this->runtime[$model->alias]['fields'] = am(array_diff_assoc($this->runtime[$model->alias]['fields'], array($field))); } if (is_null($association)) { if ($reset) { - $this->runtime[$model->currentModel]['fields'][] = $field; + $this->runtime[$model->alias]['fields'][] = $field; } else { - $this->settings[$model->currentModel][] = $field; + $this->settings[$model->alias][] = $field; } } else { if ($reset) { - $this->runtime[$model->currentModel]['fields'][$field] = $association; + $this->runtime[$model->alias]['fields'][$field] = $association; } else { - $this->settings[$model->currentModel][$field] = $association; + $this->settings[$model->alias][$field] = $association; } foreach (array('hasOne', 'hasMany', 'belongsTo', 'hasAndBelongsToMany') as $type) { if (isset($model->{$type}[$association]) || isset($model->__backAssociation[$type][$association])) { - trigger_error('Association '.$association.' is already binded to model '.$model->currentModel, E_USER_ERROR); + trigger_error('Association '.$association.' is already binded to model '.$model->alias, E_USER_ERROR); return false; } } $associations[$association] = am($default, array('conditions' => array( - 'model' => $model->currentModel, + 'model' => $model->alias, $RuntimeModel->displayField => $field))); } } @@ -406,7 +406,7 @@ class TranslateBehavior extends ModelBehavior { $fields = array($fields); } $RuntimeModel =& $this->translateModel($model); - $default = array('className' => $RuntimeModel->currentModel, 'foreignKey' => 'foreign_key'); + $default = array('className' => $RuntimeModel->alias, 'foreignKey' => 'foreign_key'); $associations = array(); foreach ($fields as $key => $value) { @@ -418,18 +418,18 @@ class TranslateBehavior extends ModelBehavior { $association = $value; } - if (array_key_exists($field, $this->settings[$model->currentModel])) { - unset($this->settings[$model->currentModel][$field]); + if (array_key_exists($field, $this->settings[$model->alias])) { + unset($this->settings[$model->alias][$field]); - } elseif (in_array($field, $this->settings[$model->currentModel])) { - $this->settings[$model->currentModel] = am(array_diff_assoc($this->settings[$model->currentModel], array($field))); + } elseif (in_array($field, $this->settings[$model->alias])) { + $this->settings[$model->alias] = am(array_diff_assoc($this->settings[$model->alias], array($field))); } - if (array_key_exists($field, $this->runtime[$model->currentModel]['fields'])) { - unset($this->runtime[$model->currentModel]['fields'][$field]); + if (array_key_exists($field, $this->runtime[$model->alias]['fields'])) { + unset($this->runtime[$model->alias]['fields'][$field]); - } elseif (in_array($field, $this->runtime[$model->currentModel]['fields'])) { - $this->runtime[$model->currentModel]['fields'] = am(array_diff_assoc($this->runtime[$model->currentModel]['fields'], array($field))); + } elseif (in_array($field, $this->runtime[$model->alias]['fields'])) { + $this->runtime[$model->alias]['fields'] = am(array_diff_assoc($this->runtime[$model->alias]['fields'], array($field))); } if (!is_null($association) && (isset($model->hasMany[$association]) || isset($model->__backAssociation['hasMany'][$association]))) { diff --git a/cake/libs/model/behaviors/tree.php b/cake/libs/model/behaviors/tree.php index 2d905362b..2e418263c 100644 --- a/cake/libs/model/behaviors/tree.php +++ b/cake/libs/model/behaviors/tree.php @@ -52,7 +52,7 @@ class TreeBehavior extends ModelBehavior { $parent =& $model->{$data['className']}; $settings['scope'] = $model->escapeField($data['foreignKey']) . ' = ' . $parent->escapeField($parent->primaryKey, $settings['scope']); }*/ - $this->settings[$model->currentModel] = $settings; + $this->settings[$model->alias] = $settings; } /** * After save method. Called after all saves @@ -65,17 +65,17 @@ class TreeBehavior extends ModelBehavior { * @return boolean true on success, false on failure */ function afterSave(&$model, $created) { - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); if (!$enabled) { return true; } if ($created) { - if ((isset($model->data[$model->currentModel][$parent])) && $model->data[$model->currentModel][$parent]) { - return $this->_setParent($model, $model->data[$model->currentModel][$parent]); + if ((isset($model->data[$model->alias][$parent])) && $model->data[$model->alias][$parent]) { + return $this->_setParent($model, $model->data[$model->alias][$parent]); } } elseif ($__parentChange) { - $this->settings[$model->currentModel]['__parentChange'] = false; - return $this->_setParent($model, $model->data[$model->currentModel][$parent]); + $this->settings[$model->alias]['__parentChange'] = false; + return $this->_setParent($model, $model->data[$model->alias][$parent]); } } /** @@ -87,13 +87,13 @@ class TreeBehavior extends ModelBehavior { * @return boolean true to continue, false to abort the delete */ function beforeDelete(&$model) { - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); if (!$enabled) { return true; } list($name, $data)= array( - $model->currentModel, + $model->alias, $model->read()); $data= $data[$name]; @@ -121,44 +121,44 @@ class TreeBehavior extends ModelBehavior { * @return boolean true to continue, false to abort the save */ function beforeSave(&$model) { - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); if (!$enabled) { return true; } - if (isset($model->data[$model->currentModel][$model->primaryKey])) { - if ($model->data[$model->currentModel][$model->primaryKey]) { + if (isset($model->data[$model->alias][$model->primaryKey])) { + if ($model->data[$model->alias][$model->primaryKey]) { if (!$model->id) { - $model->id = $model->data[$model->currentModel][$model->primaryKey]; + $model->id = $model->data[$model->alias][$model->primaryKey]; } } - unset ($model->data[$model->currentModel][$model->primaryKey]); + unset ($model->data[$model->alias][$model->primaryKey]); } if (!$model->id) { - if ((!isset($model->data[$model->currentModel][$parent])) || (!$model->data[$model->currentModel][$parent])) { + if ((!isset($model->data[$model->alias][$parent])) || (!$model->data[$model->alias][$parent])) { $edge = $this->__getMax($model, $scope, $right); - $model->data[$model->currentModel][$left]= $edge +1; - $model->data[$model->currentModel][$right]= $edge +2; + $model->data[$model->alias][$left]= $edge +1; + $model->data[$model->alias][$right]= $edge +2; } else { - $parentNode = $model->find(array($scope, $model->escapeField() => $model->data[$model->currentModel][$parent]), + $parentNode = $model->find(array($scope, $model->escapeField() => $model->data[$model->alias][$parent]), array($model->primaryKey), null, -1); if (!$parentNode) { return false; } } - } elseif (isset($model->data[$model->currentModel][$parent])) { - if ($model->data[$model->currentModel][$parent] != $model->field($parent)) { - $this->settings[$model->currentModel]['__parentChange'] = true; + } elseif (isset($model->data[$model->alias][$parent])) { + if ($model->data[$model->alias][$parent] != $model->field($parent)) { + $this->settings[$model->alias]['__parentChange'] = true; } - if (!$model->data[$model->currentModel][$parent]) { - $model->data[$model->currentModel][$parent]= null; + if (!$model->data[$model->alias][$parent]) { + $model->data[$model->alias][$parent]= null; } else { list($node) = array_values($model->find(array($scope,$model->escapeField() => $model->id), array($model->primaryKey, $parent, $left, $right ), null, -1)); - $parentNode = $model->find(array($scope, $model->escapeField() => $model->data[$model->currentModel][$parent]), + $parentNode = $model->find(array($scope, $model->escapeField() => $model->data[$model->alias][$parent]), array($model->primaryKey, $left, $right), null, -1); if (!$parentNode) { return false; @@ -192,7 +192,7 @@ class TreeBehavior extends ModelBehavior { } elseif (!$id) { $id = null; } - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); if ($direct) { return $model->findCount(array($scope, $model->escapeField($parent) => $id)); @@ -201,7 +201,7 @@ class TreeBehavior extends ModelBehavior { return $model->findCount($scope); } elseif (!empty ($model->data)) { - $data = $model->data[$model->currentModel]; + $data = $model->data[$model->alias]; } else { list($data)= array_values($model->find(array($scope, $model->escapeField() => $id), null, null, -1)); } @@ -231,11 +231,11 @@ class TreeBehavior extends ModelBehavior { } elseif (!$id) { $id = null; } - $name = $model->currentModel; + $name = $model->alias; extract($this->settings[$name]); if (!$order) { - $order = $model->currentModel . '.' . $left . ' asc'; + $order = $model->alias . '.' . $left . ' asc'; } if ($direct) { return $model->findAll(array($scope, $model->escapeField($parent) => $id), $fields, $order, $limit, $page, $recursive); @@ -262,7 +262,7 @@ class TreeBehavior extends ModelBehavior { * @access public */ function generatetreelist(&$model, $conditions = null, $keyPath = null, $valuePath = null, $spacer = '_', $recursive = -1) { - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); if ($keyPath == null && $valuePath == null && $model->hasField($model->displayField)) { $fields = array($model->primaryKey, $model->displayField, $left, $right); @@ -271,11 +271,11 @@ class TreeBehavior extends ModelBehavior { } if ($keyPath == null) { - $keyPath = '{n}.' . $model->currentModel . '.' . $model->primaryKey; + $keyPath = '{n}.' . $model->alias . '.' . $model->primaryKey; } if ($valuePath == null) { - $valuePath = array('{0}{1}', '{n}.tree_prefix', '{n}.' . $model->currentModel . '.' . $model->displayField); + $valuePath = array('{0}{1}', '{n}.tree_prefix', '{n}.' . $model->alias . '.' . $model->displayField); } elseif (is_string($valuePath)) { $valuePath = array('{0}{1}', '{n}.tree_prefix', $valuePath); @@ -288,11 +288,11 @@ class TreeBehavior extends ModelBehavior { $stack = array(); foreach ($results as $i => $result) { - while ($stack && ($stack[count($stack)-1] < $result[$model->currentModel][$right])) { + while ($stack && ($stack[count($stack)-1] < $result[$model->alias][$right])) { array_pop($stack); } $results[$i]['tree_prefix'] = str_repeat($spacer,count($stack)); - $stack[] = $result[$model->currentModel][$right]; + $stack[] = $result[$model->alias][$right]; } return Set::combine($results, $keyPath, $valuePath); } @@ -311,11 +311,11 @@ class TreeBehavior extends ModelBehavior { if (empty ($id)) { $id = $model->id; } - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); $parentId = $model->read($parent, $id); if ($parentId) { - $parentId = $parentId[$model->currentModel][$parent]; + $parentId = $parentId[$model->alias][$parent]; $parent = $model->find(array($model->escapeField() => $parentId), $fields, null, $recursive); return $parent; @@ -337,7 +337,7 @@ class TreeBehavior extends ModelBehavior { if (empty ($id)) { $id = $model->id; } - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); @list($item) = array_values($model->find(array($model->escapeField() => $id), array($left, $right), null, -1)); if (empty ($item)) { @@ -366,7 +366,7 @@ class TreeBehavior extends ModelBehavior { if (empty ($id)) { $id = $model->id; } - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); list($node) = array_values($model->find(array($scope, $model->escapeField() => $id), array($model->primaryKey, $left, $right, $parent), null, -1)); if ($node[$parent]) { @@ -410,7 +410,7 @@ class TreeBehavior extends ModelBehavior { if (empty ($id)) { $id = $model->id; } - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); list($node) = array_values($model->find(array($scope, $model->escapeField() => $id), array($model->primaryKey, $left, $right, $parent ), null, -1)); if ($node[$parent]) { @@ -453,30 +453,30 @@ class TreeBehavior extends ModelBehavior { * @access public */ function recover(&$model, $mode = 'parent') { - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); $model->recursive = -1; if ($mode == 'parent') { $count = 1; foreach ($model->findAll($scope, array($model->primaryKey), $left) as $array) { - $model->{$model->primaryKey} = $array[$model->currentModel][$model->primaryKey]; + $model->{$model->primaryKey} = $array[$model->alias][$model->primaryKey]; $lft = $count++; $rght = $count++; $model->save(array($left => $lft,$right => $rght)); } foreach ($model->findAll($scope, array($model->primaryKey,$parent), $left) as $array) { $model->create(); - $model->id = $array[$model->currentModel][$model->primaryKey]; - $this->_setParent($model, $array[$model->currentModel][$parent], true); + $model->id = $array[$model->alias][$model->primaryKey]; + $this->_setParent($model, $array[$model->alias][$parent], true); } } else { foreach ($model->findAll($scope, array($model->primaryKey, $parent), $left) as $array) { - $path = $this->getpath($model, $array[$model->currentModel][$model->primaryKey]); + $path = $this->getpath($model, $array[$model->alias][$model->primaryKey]); if ($path == null || count($path) < 2) { $parentId = null; } else { - $parentId = $path[count($path) - 2][$model->currentModel][$model->primaryKey]; + $parentId = $path[count($path) - 2][$model->alias][$model->primaryKey]; } - $model->updateAll(array($parent => $parentId), array($model->primaryKey => $array[$model->currentModel][$model->primaryKey])); + $model->updateAll(array($parent => $parentId), array($model->primaryKey => $array[$model->alias][$model->primaryKey])); } } } @@ -496,7 +496,7 @@ class TreeBehavior extends ModelBehavior { if (empty ($id)) { $id = $model->id; } - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); list($node) = array_values($model->find( array($scope, $model->escapeField() => $id), array($model->primaryKey, $left, $right, $parent), null, -1) @@ -543,7 +543,7 @@ class TreeBehavior extends ModelBehavior { * @access public */ function setparent(&$model, $parentId = null , $created = null) { - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); if ($created === false && $parentId == $model->field($parent)) { return true; } @@ -560,7 +560,7 @@ class TreeBehavior extends ModelBehavior { * @access public */ function verify(&$model) { - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); if (!$model->findCount($scope)) { return true; } @@ -586,24 +586,24 @@ class TreeBehavior extends ModelBehavior { $model->bindModel(array('belongsTo' => array('VerifyParent' => array( - 'className' => $model->currentModel, + 'className' => $model->alias, 'foreignKey' => $parent, 'fields' => array($model->primaryKey, $left, $right, $parent) )))); foreach ($model->findAll($scope, null, null, null, null, 1) as $instance) { - if ($instance[$model->currentModel][$parent]) { + if ($instance[$model->alias][$parent]) { if (!$instance['VerifyParent'][$model->primaryKey]) { - $errors[] = array('node', $instance[$model->currentModel][$model->primaryKey], - 'The parent node ' . $instance[$model->currentModel][$parent] . ' doesn\'t exist'); - } elseif ($instance[$model->currentModel][$left] < $instance['VerifyParent'][$left]) { - $errors[] = array('node', $instance[$model->currentModel][$model->primaryKey], + $errors[] = array('node', $instance[$model->alias][$model->primaryKey], + 'The parent node ' . $instance[$model->alias][$parent] . ' doesn\'t exist'); + } elseif ($instance[$model->alias][$left] < $instance['VerifyParent'][$left]) { + $errors[] = array('node', $instance[$model->alias][$model->primaryKey], 'left less than parent (node ' . $instance['VerifyParent'][$model->primaryKey] . ').'); - } elseif ($instance[$model->currentModel][$right] > $instance['VerifyParent'][$right]) { - $errors[] = array('node', $instance[$model->currentModel][$model->primaryKey], + } elseif ($instance[$model->alias][$right] > $instance['VerifyParent'][$right]) { + $errors[] = array('node', $instance[$model->alias][$model->primaryKey], 'right greater than parent (node ' . $instance['VerifyParent'][$model->primaryKey] . ').'); } - } elseif ($model->findCount(array($scope, $left . '< ' . $instance[$model->currentModel][$left], $right . '> ' . $instance[$model->currentModel][$right]))) { - $errors[] = array('node', $instance[$model->currentModel][$model->primaryKey], 'The parent field is blank, but has a parent'); + } elseif ($model->findCount(array($scope, $left . '< ' . $instance[$model->alias][$left], $right . '> ' . $instance[$model->alias][$right]))) { + $errors[] = array('node', $instance[$model->alias][$model->primaryKey], 'The parent field is blank, but has a parent'); } } @@ -626,7 +626,7 @@ class TreeBehavior extends ModelBehavior { * @access protected */ function _setParent(&$model, $parentId = null) { - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); list($node) = array_values($model->find(array($scope, $model->escapeField() => $model->id), array($model->primaryKey, $parent, $left, $right), null, -1)); $edge = $this->__getMax($model, $scope, $right); @@ -710,7 +710,7 @@ class TreeBehavior extends ModelBehavior { * @access private */ function __sync(&$model, $shift, $dir = '+', $conditions = array(), $field = 'both') { - extract($this->settings[$model->currentModel]); + extract($this->settings[$model->alias]); if ($field == 'both') { $this->__sync($model, $shift, $dir, $conditions, $left); $field = $right; diff --git a/cake/libs/model/datasources/datasource.php b/cake/libs/model/datasources/datasource.php index 6d7ebd89b..a3125bebb 100644 --- a/cake/libs/model/datasources/datasource.php +++ b/cake/libs/model/datasources/datasource.php @@ -408,9 +408,9 @@ class DataSource extends Object { if (strpos($query, $key) !== false) { switch($key) { case '{$__cakeID__$}': - if (isset($data[$model->currentModel]) || isset($data[$association])) { - if (isset($data[$model->currentModel][$model->primaryKey])) { - $val = $data[$model->currentModel][$model->primaryKey]; + if (isset($data[$model->alias]) || isset($data[$association])) { + if (isset($data[$model->alias][$model->primaryKey])) { + $val = $data[$model->alias][$model->primaryKey]; } elseif (isset($data[$association][$model->primaryKey])) { $val = $data[$association][$model->primaryKey]; } @@ -435,8 +435,8 @@ class DataSource extends Object { if (isset($assoc['foreignKey'])) { $foreignKey = $assoc['foreignKey']; - if (isset($data[$model->currentModel][$foreignKey])) { - $val = $data[$model->currentModel][$foreignKey]; + if (isset($data[$model->alias][$foreignKey])) { + $val = $data[$model->alias][$foreignKey]; } elseif (isset($data[$association][$foreignKey])) { $val = $data[$association][$foreignKey]; } else { @@ -475,7 +475,7 @@ class DataSource extends Object { * @return unknown */ function resolveKey($model, $key) { - return $model->currentModel . $key; + return $model->alias . $key; } /** * Closes the current datasource. diff --git a/cake/libs/model/datasources/dbo/dbo_adodb.php b/cake/libs/model/datasources/dbo/dbo_adodb.php index 456e43492..716b978b5 100644 --- a/cake/libs/model/datasources/dbo/dbo_adodb.php +++ b/cake/libs/model/datasources/dbo/dbo_adodb.php @@ -334,7 +334,7 @@ class DboAdodb extends DboSource { */ function fields(&$model, $alias = null, $fields = null, $quote = true) { if (empty($alias)) { - $alias = $model->currentModel; + $alias = $model->alias; } if (!is_array($fields)) { diff --git a/cake/libs/model/datasources/dbo/dbo_firebird.php b/cake/libs/model/datasources/dbo/dbo_firebird.php index 272101d0d..de7d26440 100644 --- a/cake/libs/model/datasources/dbo/dbo_firebird.php +++ b/cake/libs/model/datasources/dbo/dbo_firebird.php @@ -189,7 +189,7 @@ class DboFirebird extends DboSource { * @return array Fields in table. Keys are name and type */ function describe(&$model) { - $this->modeltmp[$model->table] = $model->currentModel; + $this->modeltmp[$model->table] = $model->alias; $cache = parent::describe($model); if ($cache != null) { diff --git a/cake/libs/model/datasources/dbo/dbo_mssql.php b/cake/libs/model/datasources/dbo/dbo_mssql.php index 304864209..6d2dce3ef 100644 --- a/cake/libs/model/datasources/dbo/dbo_mssql.php +++ b/cake/libs/model/datasources/dbo/dbo_mssql.php @@ -265,7 +265,7 @@ class DboMssql extends DboSource { */ function fields(&$model, $alias = null, $fields = array(), $quote = true) { if (empty($alias)) { - $alias = $model->currentModel; + $alias = $model->alias; } $fields = parent::fields($model, $alias, $fields, false); $count = count($fields); diff --git a/cake/libs/model/datasources/dbo/dbo_postgres.php b/cake/libs/model/datasources/dbo/dbo_postgres.php index da95edb19..aec7b7c1f 100644 --- a/cake/libs/model/datasources/dbo/dbo_postgres.php +++ b/cake/libs/model/datasources/dbo/dbo_postgres.php @@ -374,7 +374,7 @@ class DboPostgres extends DboSource { */ function fields(&$model, $alias = null, $fields = array(), $quote = true) { if (empty($alias)) { - $alias = $model->currentModel; + $alias = $model->alias; } $fields = parent::fields($model, $alias, $fields, false); diff --git a/cake/libs/model/datasources/dbo_source.php b/cake/libs/model/datasources/dbo_source.php index 945386bcd..26962f4d7 100644 --- a/cake/libs/model/datasources/dbo_source.php +++ b/cake/libs/model/datasources/dbo_source.php @@ -220,9 +220,9 @@ class DboSource extends DataSource { $query = array(); foreach ($field as $f) { if (!is_array($params[$c]) && !empty($params[$c]) && $params[$c] !== true && $params[$c] !== false) { - $query[$args[2]->currentModel . '.' . $f] = '= ' . $params[$c]; + $query[$args[2]->alias . '.' . $f] = '= ' . $params[$c]; } else { - $query[$args[2]->currentModel . '.' . $f] = $params[$c]; + $query[$args[2]->alias . '.' . $f] = $params[$c]; } $c++; } @@ -552,7 +552,7 @@ class DboSource extends DataSource { $linkModel =& $model->{$assoc}; $external = isset($assocData['external']); - if ($model->currentModel == $linkModel->currentModel && $type != 'hasAndBelongsToMany' && $type != 'hasMany') { + if ($model->alias == $linkModel->alias && $type != 'hasAndBelongsToMany' && $type != 'hasMany') { if (true === $this->generateSelfAssociationQuery($model, $linkModel, $type, $assoc, $assocData, $queryData, $external, $null)) { $linkedModels[] = $type . '/' . $assoc; } @@ -568,7 +568,7 @@ class DboSource extends DataSource { } // Build final query SQL $query = $this->generateAssociationQuery($model, $null, null, null, null, $queryData, false, $null); - $resultSet = $this->fetchAll($query, $model->cacheQueries, $model->currentModel); + $resultSet = $this->fetchAll($query, $model->cacheQueries, $model->alias); if ($resultSet === false) { $model->onError(); @@ -633,7 +633,7 @@ class DboSource extends DataSource { for ($j = 0; $j < $count2; $j++) { $className = $key = $keys[$j]; - if ($model->currentModel != $className && !in_array($key, $filtered)) { + if ($model->alias != $className && !in_array($key, $filtered)) { if (!in_array($key, $filtering)) { $filtering[] = $key; } @@ -669,7 +669,7 @@ class DboSource extends DataSource { if ($query = $this->generateAssociationQuery($model, $linkModel, $type, $association, $assocData, $queryData, $external, $resultSet)) { if (!isset($resultSet) || !is_array($resultSet)) { if (Configure::read() > 0) { - e('
' . sprintf(__('SQL Error in model %s:', true), $model->currentModel) . ' '); + e('
' . sprintf(__('SQL Error in model %s:', true), $model->alias) . ' '); if (isset($this->error) && $this->error != null) { e($this->error); } @@ -689,7 +689,7 @@ class DboSource extends DataSource { if (!empty($ins)) { $query = r('{$__cakeID__$}', join(', ', $ins), $query); - $fetch = $this->fetchAll($query, $model->cacheQueries, $model->currentModel); + $fetch = $this->fetchAll($query, $model->cacheQueries, $model->alias); } if (!empty($fetch) && is_array($fetch)) { @@ -697,18 +697,16 @@ class DboSource extends DataSource { foreach ($linkModel->__associations as $type1) { foreach ($linkModel->{$type1} as $assoc1 => $assocData1) { - $deepModel =& $linkModel->{$assoc1}; - if ($deepModel->alias != $model->currentModel) { - $tmpStack = $stack; - $tmpStack[] = $assoc1; - if ($linkModel->useDbConfig == $deepModel->useDbConfig) { - $db =& $this; - } else { - $db =& ConnectionManager::getDataSource($deepModel->useDbConfig); - } - $db->queryAssociation($linkModel, $deepModel, $type1, $assoc1, $assocData1, $queryData, true, $fetch, $recursive - 1, $tmpStack); + $tmpStack = $stack; + $tmpStack[] = $assoc1; + + if ($linkModel->useDbConfig === $deepModel->useDbConfig) { + $db =& $this; + } else { + $db =& ConnectionManager::getDataSource($deepModel->useDbConfig); } + $db->queryAssociation($linkModel, $deepModel, $type1, $assoc1, $assocData1, $queryData, true, $fetch, $recursive - 1, $tmpStack); } } } @@ -735,7 +733,7 @@ class DboSource extends DataSource { $q = $this->insertQueryData($query, null, $association, $assocData, $model, $linkModel, $stack); if ($q != false) { - $fetch = $this->fetchAll($q, $model->cacheQueries, $model->currentModel); + $fetch = $this->fetchAll($q, $model->cacheQueries, $model->alias); } else { $fetch = null; } @@ -747,7 +745,7 @@ class DboSource extends DataSource { if ($type !== 'hasAndBelongsToMany') { $q = $this->insertQueryData($query, $resultSet[$i], $association, $assocData, $model, $linkModel, $stack); if ($q != false) { - $fetch = $this->fetchAll($q, $model->cacheQueries, $model->currentModel); + $fetch = $this->fetchAll($q, $model->cacheQueries, $model->alias); } else { $fetch = null; } @@ -760,7 +758,7 @@ class DboSource extends DataSource { foreach ($linkModel->{$type1} as $assoc1 => $assocData1) { $deepModel =& $linkModel->{$assoc1}; - if (($type1 === 'belongsTo') || ($deepModel->currentModel === $model->currentModel && $type === 'belongsTo') || ($deepModel->currentModel != $model->currentModel)) { + if (($type1 === 'belongsTo') || ($deepModel->alias === $model->alias && $type === 'belongsTo') || ($deepModel->alias != $model->alias)) { $tmpStack = $stack; $tmpStack[] = $assoc1; if ($linkModel->useDbConfig == $deepModel->useDbConfig) { @@ -776,7 +774,7 @@ class DboSource extends DataSource { if ($type == 'hasAndBelongsToMany') { $merge = array(); foreach($fetch as $j => $data) { - if(isset($data[$with]) && $data[$with][$foreignKey] === $row[$model->currentModel][$model->primaryKey]) { + if(isset($data[$with]) && $data[$with][$foreignKey] === $row[$model->alias][$model->primaryKey]) { if ($habtmFieldsCount > 2) { $merge[] = $data; } else { @@ -807,7 +805,7 @@ class DboSource extends DataSource { $count = 0; $merged[$association] = array(); foreach ($merge as $j => $data) { - if (isset($value[$model->currentModel]) && $value[$model->currentModel][$model->primaryKey] === $data[$association][$model->hasMany[$association]['foreignKey']]) { + if (isset($value[$model->alias]) && $value[$model->alias][$model->primaryKey] === $data[$association][$model->hasMany[$association]['foreignKey']]) { if (count($data) > 1) { $data = am($data[$association], $data); unset($data[$association]); @@ -824,7 +822,7 @@ class DboSource extends DataSource { } $count++; } - if (isset($value[$model->currentModel])) { + if (isset($value[$model->alias])) { $resultSet[$i] = Set::pushDiff($resultSet[$i], $merged); unset($merged); } @@ -918,7 +916,7 @@ class DboSource extends DataSource { function generateSelfAssociationQuery(&$model, &$linkModel, $type, $association = null, $assocData = array(), &$queryData, $external = false, &$resultSet) { $alias = $association; if (empty($alias) && !empty($linkModel)) { - $alias = $linkModel->currentModel; + $alias = $linkModel->alias; } if (!isset($queryData['selfJoin'])) { @@ -934,7 +932,7 @@ class DboSource extends DataSource { $model->escapeField($assocData['foreignKey']) => '{$__cakeIdentifier[' . "{$alias}.{$linkModel->primaryKey}" . ']__$}')) ), 'table' => $this->fullTableName($model), - 'alias' => $model->currentModel, + 'alias' => $model->alias, 'limit' => $queryData['limit'], 'offset' => $queryData['offset'], 'conditions'=> $queryData['conditions'], @@ -1001,10 +999,10 @@ class DboSource extends DataSource { $joinedOnSelf = false; if (empty($queryData['fields'])) { - $queryData['fields'] = $this->fields($model, $model->currentModel); + $queryData['fields'] = $this->fields($model, $model->alias); } elseif (!empty($model->hasMany) && $model->recursive > -1) { - $assocFields = $this->fields($model, $model->currentModel, array("{$model->currentModel}.{$model->primaryKey}")); - $passedFields = $this->fields($model, $model->currentModel, $queryData['fields']); + $assocFields = $this->fields($model, $model->alias, array("{$model->alias}.{$model->primaryKey}")); + $passedFields = $this->fields($model, $model->alias, $queryData['fields']); if (count($passedFields) === 1) { $match = strpos($passedFields[0], $assocFields[0]); @@ -1027,7 +1025,7 @@ class DboSource extends DataSource { return $this->buildStatement(array( 'fields' => array_unique($queryData['fields']), 'table' => $this->fullTableName($model), - 'alias' => $model->currentModel, + 'alias' => $model->alias, 'limit' => $queryData['limit'], 'offset' => $queryData['offset'], 'joins' => $queryData['joins'], @@ -1038,7 +1036,7 @@ class DboSource extends DataSource { } $alias = $association; - if ($model->currentModel == $linkModel->currentModel) { + if ($model->alias == $linkModel->alias) { $joinedOnSelf = true; } @@ -1087,9 +1085,9 @@ class DboSource extends DataSource { } } else { if ($type == 'hasOne') { - $conditions = $this->__mergeConditions($assocData['conditions'], array("{$alias}.{$assocData['foreignKey']}" => '{$__cakeIdentifier[' . "{$model->currentModel}.{$model->primaryKey}" . ']__$}')); + $conditions = $this->__mergeConditions($assocData['conditions'], array("{$alias}.{$assocData['foreignKey']}" => '{$__cakeIdentifier[' . "{$model->alias}.{$model->primaryKey}" . ']__$}')); } elseif ($type == 'belongsTo') { - $conditions = $this->__mergeConditions($assocData['conditions'], array("{$model->currentModel}.{$assocData['foreignKey']}" => '{$__cakeIdentifier[' . "{$alias}.{$linkModel->primaryKey}" . ']__$}')); + $conditions = $this->__mergeConditions($assocData['conditions'], array("{$model->alias}.{$assocData['foreignKey']}" => '{$__cakeIdentifier[' . "{$alias}.{$linkModel->primaryKey}" . ']__$}')); } $join = array( @@ -1136,8 +1134,8 @@ class DboSource extends DataSource { $joinFields = $joinFields->extract('{n}.name'); if (is_array($joinFields) && !empty($joinFields)) { - $joinFields = $this->fields($model->{$assocData['with']}, $model->{$assocData['with']}->currentModel, $joinFields); - $joinAssoc = $joinAlias = $model->{$assocData['with']}->currentModel; + $joinFields = $this->fields($model->{$assocData['with']}, $model->{$assocData['with']}->alias, $joinFields); + $joinAssoc = $joinAlias = $model->{$assocData['with']}->alias; } else { $joinFields = array(); @@ -1334,10 +1332,10 @@ class DboSource extends DataSource { */ function resolveKey($model, $key, $assoc = null) { if (empty($assoc)) { - $assoc = $model->currentModel; + $assoc = $model->alias; } if (!strpos('.', $key)) { - return $this->name($model->currentModel) . '.' . $this->name($key); + return $this->name($model->alias) . '.' . $this->name($key); } return $key; } @@ -1373,7 +1371,7 @@ class DboSource extends DataSource { */ function fields(&$model, $alias = null, $fields = array(), $quote = true) { if (empty($alias)) { - $alias = $model->currentModel; + $alias = $model->alias; } if (!is_array($fields)) { diff --git a/cake/libs/model/db_acl.php b/cake/libs/model/db_acl.php index a171dd967..6dab10a87 100644 --- a/cake/libs/model/db_acl.php +++ b/cake/libs/model/db_acl.php @@ -74,7 +74,7 @@ class AclNode extends AppModel { */ function node($ref = null) { $db =& ConnectionManager::getDataSource($this->useDbConfig); - $type = $this->currentModel; + $type = $this->alias; $prefix = $this->tablePrefix; $result = null; @@ -119,13 +119,13 @@ class AclNode extends AppModel { $result = $db->read($this, $queryData, -1); } elseif (is_object($ref) && is_a($ref, 'Model')) { - $ref = array('model' => $ref->currentModel, 'foreign_key' => $ref->id); + $ref = array('model' => $ref->alias, 'foreign_key' => $ref->id); } elseif (is_array($ref) && !(isset($ref['model']) && isset($ref['foreign_key']))) { $name = key($ref); if (!ClassRegistry::isKeySet($name)) { if (!loadModel($name)) { - trigger_error("Model class '$name' not found in AclNode::node() when trying to bind {$this->currentModel} object", E_USER_WARNING); + trigger_error("Model class '$name' not found in AclNode::node() when trying to bind {$this->alias} object", E_USER_WARNING); return null; } $model =& new $name(); diff --git a/cake/libs/model/model.php b/cake/libs/model/model.php index f3931fd0b..3ceb26b0a 100644 --- a/cake/libs/model/model.php +++ b/cake/libs/model/model.php @@ -53,14 +53,6 @@ class Model extends Overloadable { * @access public */ var $useDbConfig = 'default'; -/** - * Enter description here... Still used? - * - * @var unknown_type - * @access public - * @todo Is this still used? -OJ 22 nov 2006 - */ - var $parent = false; /** * Custom database table name. * @@ -143,11 +135,12 @@ class Model extends Overloadable { */ var $name = null; /** - * Name of the current model. + * Alias name for model. * - * @var string + * @var array + * @access public */ - var $currentModel = null; + var $alias = null; /** * List of table names included in the Model description. Used for associations. * @@ -169,13 +162,6 @@ class Model extends Overloadable { * @access public */ var $keyToTable = array(); -/** - * Alias table names for model, for use in SQL JOIN statements. - * - * @var array - * @access public - */ - var $alias = array(); /** * Whether or not transactions for this model should be logged * @@ -355,14 +341,14 @@ class Model extends Overloadable { } if (isset($options['alias']) || !empty($options['alias'])) { - $this->currentModel = $options['alias']; + $this->alias = $options['alias']; unset($options); } else { - $this->currentModel = $this->name; + $this->alias = $this->name; } - ClassRegistry::addObject($this->currentModel, $this); - ClassRegistry::map($this->currentModel, $this->currentModel); + ClassRegistry::addObject($this->alias, $this); + ClassRegistry::map($this->alias, $this->alias); $this->id = $id; unset($id); @@ -695,8 +681,6 @@ class Model extends Overloadable { $this->{$assoc} = new $className($model); } } - - $this->alias[$assoc] = $this->{$assoc}->table; $this->tableToModel[$this->{$assoc}->table] = $assoc; $this->modelToTable[$assoc] = $this->{$assoc}->table; } @@ -795,7 +779,7 @@ class Model extends Overloadable { $sources = $db->listSources(); if (is_array($sources) && !in_array(low($this->tablePrefix . $tableName), array_map('low', $sources))) { return $this->cakeError('missingTable', array(array( - 'className' => $this->currentModel, + 'className' => $this->alias, 'table' => $this->tablePrefix . $tableName))); } @@ -825,24 +809,24 @@ class Model extends Overloadable { if (is_array($one)) { if (Set::countDim($one) == 1) { - $data = array($this->currentModel => $one); + $data = array($this->alias => $one); } else { $data = $one; } } else { - $data = array($this->currentModel => array($one => $two)); + $data = array($this->alias => array($one => $two)); } foreach ($data as $n => $v) { if (is_array($v)) { foreach ($v as $x => $y) { - if (empty($this->whitelist) || (in_array($x, $this->whitelist) || $n !== $this->currentModel)) { + if (empty($this->whitelist) || (in_array($x, $this->whitelist) || $n !== $this->alias)) { if (isset($this->validationErrors[$x])) { unset ($this->validationErrors[$x]); } - if ($n === $this->currentModel) { + if ($n === $this->alias) { if ($x === $this->primaryKey) { $this->id = $y; } @@ -991,7 +975,7 @@ class Model extends Overloadable { } if ($this->id !== null && $this->id !== false) { - $this->data = $this->find(array($this->currentModel . '.' . $this->primaryKey => $id), $fields); + $this->data = $this->find(array($this->alias . '.' . $this->primaryKey => $id), $fields); return $this->data; } else { return false; @@ -1007,7 +991,7 @@ class Model extends Overloadable { */ function field($name, $conditions = null, $order = null) { if ($conditions === null && $this->id !== false) { - $conditions = array($this->currentModel . '.' . $this->primaryKey => $this->id); + $conditions = array($this->alias . '.' . $this->primaryKey => $this->id); } if ($this->recursive >= 1) { $recursive = -1; @@ -1017,8 +1001,8 @@ class Model extends Overloadable { if ($data = $this->find($conditions, $name, $order, $recursive)) { if (strpos($name, '.') === false) { - if (isset($data[$this->currentModel][$name])) { - return $data[$this->currentModel][$name]; + if (isset($data[$this->alias][$name])) { + return $data[$this->alias][$name]; } } else { $name = explode('.', $name); @@ -1043,7 +1027,7 @@ class Model extends Overloadable { * @return boolean True on success save */ function saveField($name, $value, $validate = false) { - return $this->save(array($this->currentModel => array($name => $value)), $validate, array($name)); + return $this->save(array($this->alias => array($name => $value)), $validate, array($name)); } /** * Saves model data to the database. @@ -1071,13 +1055,13 @@ class Model extends Overloadable { } foreach (array('created', 'updated', 'modified') as $field) { - if (array_key_exists($field, $this->data[$this->currentModel]) && $this->data[$this->currentModel][$field] === null) { - unset($this->data[$this->currentModel][$field]); + if (array_key_exists($field, $this->data[$this->alias]) && $this->data[$this->alias][$field] === null) { + unset($this->data[$this->alias][$field]); } } $exists = $this->exists(); - $fields = array_keys($this->data[$this->currentModel]); + $fields = array_keys($this->data[$this->alias]); if (!$exists && $this->hasField('created') && !in_array('created', $fields)) { $colType = am(array('formatter' => 'date'), $db->columns[$this->getColumnType('created')]); @@ -1118,7 +1102,7 @@ class Model extends Overloadable { if (isset($v[$n]) && $habtm > 0) { $joined[] = $v; } else { - if ($n === $this->currentModel) { + if ($n === $this->alias) { foreach (array('created', 'updated', 'modified') as $field) { if (array_key_exists($field, $v) && empty($v[$field])) { unset($v[$field]); @@ -1150,7 +1134,7 @@ class Model extends Overloadable { } else { foreach ($this->_tableInfo->value as $key => $value) { if (in_array($this->primaryKey, $value)) { - if (empty($this->data[$this->currentModel][$this->primaryKey]) && $this->_tableInfo->value[$key]['type'] === 'string' && $this->_tableInfo->value[$key]['length'] === 36) { + if (empty($this->data[$this->alias][$this->primaryKey]) && $this->_tableInfo->value[$key]['type'] === 'string' && $this->_tableInfo->value[$key]['length'] === 36) { $fields[] = $this->primaryKey; $values[] = String::uuid(); } @@ -1343,7 +1327,7 @@ class Model extends Overloadable { if (!empty($records)) { foreach ($records as $record) { - $model->delete($record[$model->currentModel][$model->primaryKey]); + $model->delete($record[$model->alias][$model->primaryKey]); } } } @@ -1368,7 +1352,7 @@ class Model extends Overloadable { if (!empty($records)) { foreach ($records as $record) { - $model->delete($record[$model->currentModel][$model->primaryKey]); + $model->delete($record[$model->alias][$model->primaryKey]); } } } else { @@ -1393,7 +1377,7 @@ class Model extends Overloadable { if (empty($records)) { return false; } - $ids = Set::extract($records, "{n}.{$this->currentModel}.{$this->primaryKey}"); + $ids = Set::extract($records, "{n}.{$this->alias}.{$this->primaryKey}"); foreach ($ids as $id) { $this->_deleteLinks($id); @@ -1416,7 +1400,7 @@ class Model extends Overloadable { if ($this->__exists !== null && $reset !== true) { return $this->__exists; } - return $this->__exists = ($this->findCount(array($this->currentModel . '.' . $this->primaryKey => $this->getID()), -1) > 0); + return $this->__exists = ($this->findCount(array($this->alias . '.' . $this->primaryKey => $this->getID()), -1) > 0); } /** * Returns true if a record that meets given conditions exists @@ -1519,8 +1503,8 @@ class Model extends Overloadable { case 'count': if (isset($results[0][0]['count'])) { return intval($results[0][0]['count']); - } elseif (isset($results[0][$this->currentModel]['count'])) { - return intval($results[0][$this->currentModel]['count']); + } elseif (isset($results[0][$this->alias]['count'])) { + return intval($results[0][$this->alias]['count']); } return false; break; @@ -1646,8 +1630,8 @@ class Model extends Overloadable { unset($fields[$field]); $field = $value; - if (isset($this->data[$this->currentModel][$field])) { - $value = $this->data[$this->currentModel][$field]; + if (isset($this->data[$this->alias][$field])) { + $value = $this->data[$this->alias][$field]; } else { $value = null; } @@ -1655,7 +1639,7 @@ class Model extends Overloadable { if (strpos($field, '.') === false) { unset($fields[$field]); - $fields[$this->currentModel . '.' . $field] = $value; + $fields[$this->alias . '.' . $field] = $value; } } if ($or) { @@ -1690,11 +1674,11 @@ class Model extends Overloadable { $sizeOf = sizeof($data); for ($ii = 0; $ii < $sizeOf; $ii++) { - if (($data[$ii][$this->currentModel]['parent_id'] == $root) || (($root === null) && ($data[$ii][$this->currentModel]['parent_id'] == '0'))) { + if (($data[$ii][$this->alias]['parent_id'] == $root) || (($root === null) && ($data[$ii][$this->alias]['parent_id'] == '0'))) { $tmp = $data[$ii]; - if (isset($data[$ii][$this->currentModel][$this->primaryKey])) { - $tmp['children'] = $this->__doThread($data, $data[$ii][$this->currentModel][$this->primaryKey]); + if (isset($data[$ii][$this->alias][$this->primaryKey])) { + $tmp['children'] = $this->__doThread($data, $data[$ii][$this->alias][$this->primaryKey]); } else { $tmp['children'] = null; } @@ -1790,8 +1774,8 @@ class Model extends Overloadable { return $this->validationErrors; } - if (isset($data[$this->currentModel])) { - $data = $data[$this->currentModel]; + if (isset($data[$this->alias])) { + $data = $data[$this->alias]; } $Validation = new Validation(); @@ -1939,11 +1923,11 @@ class Model extends Overloadable { } if ($keyPath == null) { - $keyPath = '{n}.' . $this->currentModel . '.' . $this->primaryKey; + $keyPath = '{n}.' . $this->alias . '.' . $this->primaryKey; } if ($valuePath == null) { - $valuePath = '{n}.' . $this->currentModel . '.' . $this->displayField; + $valuePath = '{n}.' . $this->alias . '.' . $this->displayField; } return Set::combine($result, $keyPath, $valuePath, $groupPath); @@ -1956,7 +1940,7 @@ class Model extends Overloadable { */ function escapeField($field = null, $alias = null) { if (empty($alias)) { - $alias = $this->currentModel; + $alias = $this->alias; } if (empty($field)) { $field = $this->primaryKey; @@ -2054,7 +2038,7 @@ class Model extends Overloadable { } if (empty($db) || $db == null || !is_object($db)) { - return $this->cakeError('missingConnection', array(array('className' => $this->currentModel))); + return $this->cakeError('missingConnection', array(array('className' => $this->alias))); } } /** @@ -2176,7 +2160,7 @@ class Model extends Overloadable { function _clearCache($type = null) { if ($type === null) { if (Configure::read('Cache.check') === true) { - $assoc[] = strtolower(Inflector::pluralize($this->currentModel)); + $assoc[] = strtolower(Inflector::pluralize($this->alias)); foreach ($this->__associations as $key => $association) { foreach ($this->$association as $key => $className) { $check = strtolower(Inflector::pluralize($className['className'])); diff --git a/cake/tests/cases/libs/model/datasources/dbo_source.test.php b/cake/tests/cases/libs/model/datasources/dbo_source.test.php index 8941b0a9f..6e66f1eec 100644 --- a/cake/tests/cases/libs/model/datasources/dbo_source.test.php +++ b/cake/tests/cases/libs/model/datasources/dbo_source.test.php @@ -631,7 +631,7 @@ class DboSourceTest extends UnitTestCase { $linkModel =& $this->model->Category2->{$assoc}; $external = isset($assocData['external']); - if ($this->model->Category2->currentModel == $linkModel->currentModel && $type != 'hasAndBelongsToMany' && $type != 'hasMany') { + if ($this->model->Category2->alias == $linkModel->alias && $type != 'hasAndBelongsToMany' && $type != 'hasMany') { $result = $this->db->generateSelfAssociationQuery($this->model->Category2, $linkModel, $type, $assoc, $assocData, $queryData, $external, $null); $this->assertTrue($result); } else { diff --git a/cake/tests/cases/libs/model/model.test.php b/cake/tests/cases/libs/model/model.test.php index e937192eb..13d3a89f9 100644 --- a/cake/tests/cases/libs/model/model.test.php +++ b/cake/tests/cases/libs/model/model.test.php @@ -570,7 +570,7 @@ class ModelTest extends CakeTestCase { function testIdentity() { $this->model =& new Test(); - $result = $this->model->currentModel; + $result = $this->model->alias; $expected = 'Test'; $this->assertEqual($result, $expected); } diff --git a/cake/tests/lib/cake_test_case.php b/cake/tests/lib/cake_test_case.php index 2800343e2..bba7a7f3e 100644 --- a/cake/tests/lib/cake_test_case.php +++ b/cake/tests/lib/cake_test_case.php @@ -127,10 +127,10 @@ class CakeTestCase extends UnitTestCase { foreach ($classRegistry->__map as $key => $name) { $object =& $classRegistry->getObject(Inflector::camelize($key)); - if (is_subclass_of($object, 'Model') && ((is_array($params['fixturize']) && in_array($object->currentModel, $params['fixturize'])) || $params['fixturize'] === true)) { - $models[$object->currentModel] = array ( + if (is_subclass_of($object, 'Model') && ((is_array($params['fixturize']) && in_array($object->alias, $params['fixturize'])) || $params['fixturize'] === true)) { + $models[$object->alias] = array ( 'table' => $object->table, - 'model' => $object->currentModel, + 'model' => $object->alias, 'key' => Inflector::camelize($key) ); } diff --git a/cake/tests/lib/cake_test_fixture.php b/cake/tests/lib/cake_test_fixture.php index 7bb11566a..70ec5c926 100644 --- a/cake/tests/lib/cake_test_fixture.php +++ b/cake/tests/lib/cake_test_fixture.php @@ -91,7 +91,7 @@ class CakeTestFixture extends Object { $query = array( 'fields' => array_keys($this->fields), 'table' => $db->name($model->table), - 'alias' => $model->currentModel, + 'alias' => $model->alias, 'conditions' => array(), 'order' => null, 'limit' => null @@ -101,10 +101,10 @@ class CakeTestFixture extends Object { $query['fields'][$index] = $db->name($query['alias']) . '.' . $db->name($field); } - $records = $db->fetchAll($db->buildStatement($query, $model), false, $model->currentModel); + $records = $db->fetchAll($db->buildStatement($query, $model), false, $model->alias); if ($records !== false && !empty($records)) { - $this->records = Set::extract($records, '{n}.' . $model->currentModel); + $this->records = Set::extract($records, '{n}.' . $model->alias); } } }