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

This commit is contained in:
rMalie committed 2011-08-11 13:39:30 +00:00
1 parent b082b9b695
commit e92657bba2
5 files changed
+52 -119

No files matched your search

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