// Retrocompatibility in ObjectModel
This commit is contained in:
+60
-14
@@ -113,14 +113,6 @@ abstract class ObjectModelCore
|
|||||||
'validateLang' => $object->fieldsValidateLang);
|
'validateLang' => $object->fieldsValidateLang);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Prepare fields for ObjectModel class (add, update)
|
|
||||||
* All fields are verified (pSQL, intval...)
|
|
||||||
*
|
|
||||||
* @return array All object fields
|
|
||||||
*/
|
|
||||||
public function getFields() { return array(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build object
|
* Build object
|
||||||
*
|
*
|
||||||
@@ -129,13 +121,8 @@ abstract class ObjectModelCore
|
|||||||
*/
|
*/
|
||||||
public function __construct($id = null, $id_lang = null, $id_shop = null)
|
public function __construct($id = null, $id_lang = null, $id_shop = null)
|
||||||
{
|
{
|
||||||
// For retrocompatibility, we continue to use $this->table and $this->identifier property.
|
|
||||||
// When all objects will implement $definition static in 1.6, we will remove it.
|
|
||||||
$this->def = self::getDefinition($this);
|
$this->def = self::getDefinition($this);
|
||||||
if (isset($this->def['table']))
|
$this->setDefinitionRetrocompatibility();
|
||||||
$this->table = $this->def['table'];
|
|
||||||
if (isset($this->def['primary']))
|
|
||||||
$this->identifier = $this->def['primary'];
|
|
||||||
|
|
||||||
if (!is_null($id_lang))
|
if (!is_null($id_lang))
|
||||||
$this->id_lang = (Language::getLanguage($id_lang) !== false) ? $id_lang : Configuration::get('PS_LANG_DEFAULT');
|
$this->id_lang = (Language::getLanguage($id_lang) !== false) ? $id_lang : Configuration::get('PS_LANG_DEFAULT');
|
||||||
@@ -208,6 +195,17 @@ abstract class ObjectModelCore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepare fields for ObjectModel class (add, update)
|
||||||
|
* All fields are verified (pSQL, intval...)
|
||||||
|
*
|
||||||
|
* @return array All object fields
|
||||||
|
*/
|
||||||
|
public function getFields()
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save current object to database (add or update)
|
* Save current object to database (add or update)
|
||||||
*
|
*
|
||||||
@@ -1073,4 +1071,52 @@ abstract class ObjectModelCore
|
|||||||
return isset($definition[$field]) ? $definition[$field] : null;
|
return isset($definition[$field]) ? $definition[$field] : null;
|
||||||
return $definition;
|
return $definition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrocompatibility for classes without $definition static
|
||||||
|
* Remove this in 1.6 !
|
||||||
|
*
|
||||||
|
* @since 1.5.0
|
||||||
|
*/
|
||||||
|
protected function setDefinitionRetrocompatibility()
|
||||||
|
{
|
||||||
|
// Retrocompatibility with $table property ($definition['table'])
|
||||||
|
if (isset($this->def['table']))
|
||||||
|
$this->table = $this->def['table'];
|
||||||
|
else
|
||||||
|
$this->def['table'] = $this->table;
|
||||||
|
|
||||||
|
// Retrocompatibility with $identifier property ($definition['primary'])
|
||||||
|
if (isset($this->def['primary']))
|
||||||
|
$this->identifier = $this->def['primary'];
|
||||||
|
else
|
||||||
|
$this->def['primary'] = $this->identifier;
|
||||||
|
|
||||||
|
// Retrocompatibility with $fieldsValidate, $fieldsRequired and $fieldsSize properties ($definition['fields'] && $definition['fields_lang'])
|
||||||
|
foreach (array('fields' => '', 'fields_lang' => 'Lang') as $type => $suffix)
|
||||||
|
if (isset($this->def[$type]))
|
||||||
|
{
|
||||||
|
foreach ($this->def[$type] as $field => $data)
|
||||||
|
{
|
||||||
|
if (isset($data['validate']))
|
||||||
|
$this->{'fieldsValidate'.$suffix}[$field] = $data['validate'];
|
||||||
|
if (isset($data['required']) && $data['required'])
|
||||||
|
$this->{'fieldsRequired'.$suffix}[] = $field;
|
||||||
|
if (isset($data['size']))
|
||||||
|
$this->{'fieldsSize'.$suffix}[$field] = $data['size'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($type == 'fields')
|
||||||
|
$this->def['fields'] = array();
|
||||||
|
|
||||||
|
foreach ($this->{'fieldsValidate'.$suffix} as $field => $validate)
|
||||||
|
$this->def[$type][$field]['validate'] = $validate;
|
||||||
|
foreach ($this->{'fieldsRequired'.$suffix} as $field)
|
||||||
|
$this->def[$type][$field]['required'] = true;
|
||||||
|
foreach ($this->{'fieldsSize'.$suffix} as $field => $size)
|
||||||
|
$this->def[$type][$field]['size'] = $size;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user