// Set $definition in ObjectModel classes for modules

This commit is contained in:
rMalie
2011-12-30 15:37:57 +00:00
parent 15b123aed1
commit 84f08cb76b
8 changed files with 157 additions and 249 deletions
+23 -56
View File
@@ -25,68 +25,43 @@
* International Registered Trademark & Property of PrestaShop SA
*/
class EditorialClass extends ObjectModel
class EditorialClass extends ObjectModel
{
/** @var integer editorial id*/
public $id = 1;
public $id = 1;
/** @var string body_title*/
public $body_home_logo_link;
public $body_home_logo_link;
/** @var string body_title*/
public $body_title;
public $body_title;
/** @var string body_title*/
public $body_subheading;
public $body_subheading;
/** @var string body_title*/
public $body_paragraph;
public $body_paragraph;
/** @var string body_title*/
public $body_logo_subheading;
protected $table = 'editorial';
protected $identifier = 'id_editorial';
protected $fieldsValidate = array('body_home_logo_link' => 'isUrl');
protected $fieldsValidateLang = array(
'body_title' => 'isGenericName',
'body_subheading' => 'isGenericName',
'body_paragraph' => 'isCleanHtml',
'body_logo_subheading' => 'isGenericName');
public $body_logo_subheading;
/**
* Check then return multilingual fields for database interaction
*
* @return array Multilingual fields
*/
public function getTranslationsFieldsChild()
{
$this->validateFieldsLang();
* @see ObjectModel::$definition
*/
public static $definition = array(
'table' => 'editorial',
'primary' => 'id_editorial',
'fields' => array(
'body_home_logo_link' => array('type' => self::TYPE_STRING, 'validate' => 'isUrl'),
// Lang fields
'body_title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName'),
'body_subheading' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName'),
'body_paragraph' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml'),
'body_logo_subheading' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName'),
)
);
$fieldsArray = array('body_title', 'body_subheading', 'body_paragraph', 'body_logo_subheading');
$fields = array();
$languages = Language::getLanguages(false);
$defaultLanguage = (int)(Configuration::get('PS_LANG_DEFAULT'));
foreach ($languages as $language)
{
$fields[$language['id_lang']]['id_lang'] = (int)($language['id_lang']);
$fields[$language['id_lang']][$this->identifier] = (int)($this->id);
foreach ($fieldsArray as $field)
{
if (!Validate::isTableOrIdentifier($field))
die(Tools::displayError());
if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']]))
$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']], true);
elseif (in_array($field, $this->fieldsRequiredLang))
$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage], true);
else
$fields[$language['id_lang']][$field] = '';
}
}
return $fields;
}
public function copyFromPost()
{
/* Classical fields */
@@ -104,12 +79,4 @@ class EditorialClass extends ObjectModel
$this->{$field}[(int)($language['id_lang'])] = $_POST[$field.'_'.(int)($language['id_lang'])];
}
}
public function getFields()
{
$this->validateFields();
$fields['id_editorial'] = (int)($this->id);
$fields['body_home_logo_link'] = pSQL($this->body_home_logo_link);
return $fields;
}
}