From c30f30355c112fc9ffbadb80116df5643a254e71 Mon Sep 17 00:00:00 2001 From: mMarinetti Date: Thu, 3 Nov 2011 13:39:41 +0000 Subject: [PATCH] [*] Project : ObjectModel die2PrestashopException --- classes/ObjectModel.php | 42 +++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/classes/ObjectModel.php b/classes/ObjectModel.php index 1e2832c8e..cc4824469 100644 --- a/classes/ObjectModel.php +++ b/classes/ObjectModel.php @@ -203,7 +203,7 @@ abstract class ObjectModelCore public function add($autodate = true, $nullValues = false) { if (!Validate::isTableOrIdentifier($this->table)) - die(Tools::displayError('not table or identifier : ').$this->table); + throw new PrestashopException('not table or identifier : '.$this->table); /* Hook */ Hook::exec('actionObject'.get_class($this).'AddBefore'); @@ -235,7 +235,7 @@ abstract class ObjectModelCore { foreach (array_keys($field) AS $key) if (!Validate::isTableOrIdentifier($key)) - die(Tools::displayError('key is not table or identifier, ').$key); + throw new PrestashopException('key '.$key.' is not table or identifier, '); $field[$this->identifier] = (int)$this->id; if (isset($assos[$this->table.'_lang']) && $assos[$this->table.'_lang']['type'] == 'fk_shop') @@ -276,7 +276,7 @@ abstract class ObjectModelCore public function update($nullValues = false) { if (!Validate::isTableOrIdentifier($this->identifier) OR !Validate::isTableOrIdentifier($this->table)) - die(Tools::displayError()); + throw new PrestashopException('wrong identifier or table:'.$this->identifier.', table: '.$this->table); /* Hook */ Hook::exec('actionObject'.get_class($this).'UpdateBefore'); @@ -304,7 +304,7 @@ abstract class ObjectModelCore { foreach (array_keys($field) as $key) if (!Validate::isTableOrIdentifier($key)) - die(Tools::displayError()); + throw new PrestashopException('key '.$key.' is not a valid table or identifier'); // If this table is linked to multishop system, update / insert for all shops from context if ($this->langMultiShop) @@ -351,7 +351,7 @@ abstract class ObjectModelCore public function delete() { if (!Validate::isTableOrIdentifier($this->identifier) OR !Validate::isTableOrIdentifier($this->table)) - die(Tools::displayError()); + throw new PrestashopException('wrong identifier or table:'.$this->identifier.', table: '.$this->table); /* Hook */ Hook::exec('actionObject'.get_class($this).'DeleteBefore'); @@ -381,7 +381,7 @@ abstract class ObjectModelCore public function deleteSelection($selection) { if (!is_array($selection) OR !Validate::isTableOrIdentifier($this->identifier) OR !Validate::isTableOrIdentifier($this->table)) - die(Tools::displayError()); + throw new PrestashopException('selection is not an array, or identifier or table:'.$this->identifier.', table: '.$this->table); $result = true; foreach ($selection AS $id) { @@ -399,11 +399,11 @@ abstract class ObjectModelCore public function toggleStatus() { if (!Validate::isTableOrIdentifier($this->identifier) OR !Validate::isTableOrIdentifier($this->table)) - die(Tools::displayError()); + throw new PrestashopException('identifier or table:'.$this->identifier.', table: '.$this->table); /* Object must have a variable called 'active' */ elseif (!key_exists('active', $this)) - die(Tools::displayError()); + throw new PrestashopException('property "active is missing in object '.get_class($this)); /* Update active status on object */ $this->active = (int)(!$this->active); @@ -425,7 +425,7 @@ abstract class ObjectModelCore { /* WARNING : Product do not use this function, so do not forget to report any modification if necessary */ if (!Validate::isTableOrIdentifier($this->identifier)) - die(Tools::displayError('identifier is not table or identifier : ').$this->identifier); + throw new PrestashopException('identifier is not table or identifier : '.$this->identifier); $fields = array(); @@ -456,7 +456,7 @@ abstract class ObjectModelCore /* Check fields validity */ if (!Validate::isTableOrIdentifier($fieldName)) - die(Tools::displayError()); + throw new PrestashopException('identifier is not table or identifier : '.$fieldName); /* Copy the field, or the default language field if it's both required and empty */ if ((!$this->id_lang AND isset($this->{$fieldName}[$id_language]) AND !empty($this->{$fieldName}[$id_language])) @@ -478,22 +478,25 @@ abstract class ObjectModelCore foreach ($fieldsRequired as $field) if (Tools::isEmpty($this->{$field}) AND (!is_numeric($this->{$field}))) { - if ($die) die (Tools::displayError().' ('.get_class($this).' -> '.$field.' is empty)'); + if ($die) + throw new PrestashopException('property empty : '.get_class($this).'->'.$field); return $errorReturn ? get_class($this).' -> '.$field.' is empty' : false; } foreach ($this->fieldsSize as $field => $size) if (isset($this->{$field}) AND Tools::strlen($this->{$field}) > $size) { - if ($die) die (Tools::displayError().' ('.get_class($this).' -> '.$field.' Length '.$size.')'); + if ($die) + throw new PrestashopException('fieldsize error : '.get_class($this).'->'.$field.' > '.$size); return $errorReturn ? get_class($this).' -> '.$field.' Length '.$size : false; } $validate = new Validate(); foreach ($this->fieldsValidate as $field => $method) if (!method_exists($validate, $method)) - die (Tools::displayError('Validation function not found.').' '.$method); + throw new PrestashopException('Validation function not found. '.$method); elseif (!empty($this->{$field}) AND !call_user_func(array('Validate', $method), $this->{$field})) { - if ($die) die (Tools::displayError().' ('.get_class($this).' -> '.$field.' = '.$this->{$field}.')'); + if ($die) + throw new PrestashopException('Field not valid : '.get_class($this).'->'.$field.' = '.$this->{$field}); return $errorReturn ? get_class($this).' -> '.$field.' = '.$this->{$field} : false; } return true; @@ -511,7 +514,8 @@ abstract class ObjectModelCore continue ; if (!$this->{$fieldArray} OR !sizeof($this->{$fieldArray}) OR ($this->{$fieldArray}[$defaultLanguage] !== '0' AND empty($this->{$fieldArray}[$defaultLanguage]))) { - if ($die) die (Tools::displayError().' ('.get_class($this).'->'.$fieldArray.' '.Tools::displayError('is empty for default language.').')'); + if ($die) + throw new PrestashopException('empty for default language : '.get_class($this).'->'.$fieldArray); return $errorReturn ? get_class($this).'->'.$fieldArray.' '.Tools::displayError('is empty for default language.') : false; } } @@ -522,7 +526,8 @@ abstract class ObjectModelCore foreach ($this->{$fieldArray} as $k => $value) if (Tools::strlen($value) > $size) { - if ($die) die (Tools::displayError().' ('.get_class($this).'->'.$fieldArray.' '.Tools::displayError('Length').' '.$size.' '.Tools::displayError('for language').')'); + if ($die) + throw new PrestashopException('fieldsize error '.get_class($this).'->'.$fieldArray.' length of '.$size.' for language'); return $errorReturn ? get_class($this).'->'.$fieldArray.' '.Tools::displayError('Length').' '.$size.' '.Tools::displayError('for language') : false; } } @@ -533,10 +538,11 @@ abstract class ObjectModelCore continue ; foreach ($this->{$fieldArray} as $k => $value) if (!method_exists($validate, $method)) - die (Tools::displayError('Validation function not found.').' '.$method); + throw new PrestashopException('Validation function not found for lang: '.$method); elseif (!empty($value) AND !call_user_func(array('Validate', $method), $value)) { - if ($die) die (Tools::displayError('The following field is invalid according to the validate method ').''.$method.':
('.get_class($this).'->'.$fieldArray.' = '.$value.' '.Tools::displayError('for language').' '.$k.')'); + if ($die) + throw new PrestashopException('Field not valid : '.get_class($this).'->'.$field.' = '.$this->{$field}. 'for language '.$k); return $errorReturn ? Tools::displayError('The following field is invalid according to the validate method ').''.$method.':
('. get_class($this).'->'.$fieldArray.' = '.$value.' '.Tools::displayError('for language').' '.$k : false; } }