// HTML flag can be used in ObjectModel->getTranslationsFieldsChild() to keep html on language fields

This commit is contained in:
rMalie
2011-08-11 13:39:30 +00:00
parent b082b9b695
commit e92657bba2
5 changed files with 52 additions and 119 deletions
+7 -23
View File
@@ -59,29 +59,13 @@ class CMSCore extends ObjectModel
public function getTranslationsFieldsChild()
{
parent::validateFieldsLang();
$fieldsArray = array('meta_title', 'meta_description', 'meta_keywords', 'link_rewrite');
$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);
$fields[$language['id_lang']]['content'] = (isset($this->content[$language['id_lang']])) ? pSQL($this->content[$language['id_lang']], true) : '';
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']]);
elseif (in_array($field, $this->fieldsRequiredLang))
$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
else
$fields[$language['id_lang']][$field] = '';
}
}
return $fields;
return parent::getTranslationsFields(array(
'meta_description',
'meta_keywords',
'meta_title',
'link_rewrite',
'content' => array('html' => true),
));
}
public function add($autodate = true, $nullValues = false)
+9 -30
View File
@@ -150,36 +150,15 @@ class CategoryCore extends ObjectModel
*/
public function getTranslationsFieldsChild()
{
self::validateFieldsLang();
$fieldsArray = array('name', 'link_rewrite', 'meta_title', 'meta_keywords', 'meta_description');
$fields = array();
$languages = Language::getLanguages(false);
$defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
foreach ($languages as $language)
{
$fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
$fields[$language['id_lang']][$this->identifier] = (int)($this->id);
$fields[$language['id_lang']]['id_shop'] = (int)$this->id_shop; // @todo ID shop in product ???
$fields[$language['id_lang']]['description'] = (isset($this->description[$language['id_lang']])) ? addslashes($this->description[$language['id_lang']]) : '';
foreach ($fieldsArray as $field)
{
if (!Validate::isTableOrIdentifier($field))
die(Tools::displayError());
/* Check fields validity */
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']]);
elseif (in_array($field, $this->fieldsRequiredLang))
{
if ($this->{$field} != '')
$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
}
else
$fields[$language['id_lang']][$field] = '';
}
}
return $fields;
parent::validateFieldsLang();
return parent::getTranslationsFields(array(
'name',
'description' => array('html' => true),
'link_rewrite',
'meta_title',
'meta_keywords',
'meta_description',
));
}
public function add($autodate = true, $nullValues = false)
+8 -27
View File
@@ -111,33 +111,14 @@ class ManufacturerCore extends ObjectModel
public function getTranslationsFieldsChild()
{
$fieldsArray = array('description', 'short_description', 'meta_title', 'meta_keywords', 'meta_description');
$fields = array();
$languages = Language::getLanguages(false);
$defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
foreach ($languages as $language)
{
$fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
$fields[$language['id_lang']][$this->identifier] = (int)($this->id);
$fields[$language['id_lang']]['description'] = (isset($this->description[$language['id_lang']])) ? pSQL($this->description[$language['id_lang']], true) : '';
$fields[$language['id_lang']]['short_description'] = (isset($this->short_description[$language['id_lang']])) ? pSQL($this->short_description[$language['id_lang']], true) : '';
foreach ($fieldsArray as $field)
{
if (!Validate::isTableOrIdentifier($field))
die(Tools::displayError());
/* Check fields validity */
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]);
else
$fields[$language['id_lang']][$field] = '';
}
}
return $fields;
parent::validateFieldsLang();
return parent::getTranslationsFields(array(
'meta_description',
'meta_keywords',
'meta_title',
'description' => array('html' => true),
'short_description' => array('html' => true),
));
}
public function delete()
+16 -8
View File
@@ -424,20 +424,28 @@ abstract class ObjectModelCore
$fields[$id_language][$this->identifier] = (int)($this->id);
if ($this->id_shop AND $this->langMultiShop)
$fields[$id_language]['id_shop'] = (int)$this->id_shop;
foreach ($fieldsArray as $field)
foreach ($fieldsArray as $k => $field)
{
$html = false;
$fieldName = $field;
if (is_array($field))
{
$fieldName = $k;
$html = (isset($field['html'])) ? $field['html'] : false;
}
/* Check fields validity */
if (!Validate::isTableOrIdentifier($field))
if (!Validate::isTableOrIdentifier($fieldName))
die(Tools::displayError());
/* Copy the field, or the default language field if it's both required and empty */
if ((!$this->id_lang AND isset($this->{$field}[$id_language]) AND !empty($this->{$field}[$id_language]))
OR ($this->id_lang AND isset($this->$field) AND !empty($this->$field)))
$fields[$id_language][$field] = $this->id_lang ? pSQL($this->$field) : pSQL($this->{$field}[$id_language]);
elseif (in_array($field, $this->fieldsRequiredLang))
$fields[$id_language][$field] = $this->id_lang ? pSQL($this->$field) : pSQL($this->{$field}[Configuration::get('PS_LANG_DEFAULT')]);
if ((!$this->id_lang AND isset($this->{$fieldName}[$id_language]) AND !empty($this->{$fieldName}[$id_language]))
OR ($this->id_lang AND isset($this->$fieldName) AND !empty($this->$fieldName)))
$fields[$id_language][$fieldName] = $this->id_lang ? pSQL($this->$fieldName, $html) : pSQL($this->{$fieldName}[$id_language], $html);
elseif (in_array($fieldName, $this->fieldsRequiredLang))
$fields[$id_language][$fieldName] = $this->id_lang ? pSQL($this->$fieldName, $html) : pSQL($this->{$fieldName}[Configuration::get('PS_LANG_DEFAULT')], $html);
else
$fields[$id_language][$field] = '';
$fields[$id_language][$fieldName] = '';
}
}
+12 -31
View File
@@ -391,37 +391,18 @@ class ProductCore extends ObjectModel
*/
public function getTranslationsFieldsChild()
{
self::validateFieldsLang();
$fieldsArray = array('meta_description', 'meta_keywords', 'meta_title', 'link_rewrite', 'name', 'available_now', 'available_later');
$fields = array();
$languages = Language::getLanguages(false);
$defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
foreach ($languages as $language)
{
$fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
$fields[$language['id_lang']][$this->identifier] = (int)($this->id);
$fields[$language['id_lang']]['id_shop'] = (int)$this->id_shop; // @todo ID shop in product ???
$fields[$language['id_lang']]['description'] = (isset($this->description[$language['id_lang']])) ? pSQL($this->description[$language['id_lang']], true) : '';
$fields[$language['id_lang']]['description_short'] = (isset($this->description_short[$language['id_lang']])) ? pSQL($this->description_short[$language['id_lang']], true) : '';
foreach ($fieldsArray as $field)
{
if (!Validate::isTableOrIdentifier($field))
die(Tools::displayError());
/* Check fields validity */
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']]);
elseif (in_array($field, $this->fieldsRequiredLang))
{
if ($this->{$field} != '')
$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
}
else
$fields[$language['id_lang']][$field] = '';
}
}
return $fields;
parent::validateFieldsLang();
return parent::getTranslationsFields(array(
'meta_description',
'meta_keywords',
'meta_title',
'link_rewrite',
'name',
'available_now',
'available_later',
'description' => array('html' => true),
'description_short' => array('html' => true),
));
}
public static function initPricesComputation($customer = NULL)