diff --git a/admin-dev/tabs/AdminOrderMessage.php b/admin-dev/tabs/AdminOrderMessage.php
deleted file mode 100644
index 819d98b87..000000000
--- a/admin-dev/tabs/AdminOrderMessage.php
+++ /dev/null
@@ -1,86 +0,0 @@
-
-* @copyright 2007-2011 PrestaShop SA
-* @version Release: $Revision: 6844 $
-* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
-* International Registered Trademark & Property of PrestaShop SA
-*/
-
-class AdminOrderMessage extends AdminTab
-{
- public function __construct()
- {
- $this->table = 'order_message';
- $this->className = 'OrderMessage';
- $this->lang = true;
- $this->edit = true;
- $this->delete = true;
-
- $this->fieldsDisplay = array(
- 'id_order_message' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25),
- 'name' => array('title' => $this->l('Name'), 'width' => 140),
- 'message' => array('title' => $this->l('Message'), 'width' => 600, 'maxlength' => 300));
-
- parent::__construct();
- }
-
- public function displayForm($isMainTab = true)
- {
- parent::displayForm();
-
- if (!($obj = $this->loadObject(true)))
- return;
-
- echo '
-
diff --git a/admin-dev/themes/template/layout.tpl b/admin-dev/themes/template/layout.tpl
index ca72e3702..82fbd84e7 100644
--- a/admin-dev/themes/template/layout.tpl
+++ b/admin-dev/themes/template/layout.tpl
@@ -53,7 +53,7 @@
{$errors|count} {l s='errors'}
- {foreach from=$errors item=$error}
+ {foreach $errors as $error}
- {$error}
{/foreach}
@@ -107,7 +107,7 @@
{l s='Hide warning'}
- {foreach $warnings item=warning}
+ {foreach $warnings as $warning}
- {$warning}
{/foreach}
diff --git a/classes/AdminController.php b/classes/AdminController.php
index 611f4546f..7d2d95884 100644
--- a/classes/AdminController.php
+++ b/classes/AdminController.php
@@ -34,6 +34,10 @@ class AdminControllerCore extends Controller
public $warnings = array();
public $informations = array();
+ public $_languages = array();
+ public $default_form_language;
+ public $allow_employee_form_lang;
+
public $content_only = false;
public $layout = 'layout.tpl';
@@ -135,7 +139,14 @@ class AdminControllerCore extends Controller
protected $is_dnd_identifier = false;
- protected $identifiersDnd = array('id_product' => 'id_product', 'id_category' => 'id_category_to_move','id_cms_category' => 'id_cms_category_to_move', 'id_cms' => 'id_cms', 'id_attribute' => 'id_attribute');
+ protected $identifiersDnd = array(
+ 'id_product' => 'id_product',
+ 'id_category' => 'id_category_to_move',
+ 'id_cms_category' => 'id_cms_category_to_move',
+ 'id_cms' => 'id_cms',
+ 'id_attribute' => 'id_attribute'
+ );
+
protected $view;
protected $edit;
protected $delete;
@@ -575,7 +586,6 @@ class AdminControllerCore extends Controller
/**
* Display form
- * TODO to be removed
*/
public function displayForm($firstCall = true)
{
@@ -908,6 +918,7 @@ class AdminControllerCore extends Controller
if (isset($this->fields_form))
{
+ $this->getlanguages();
$helper = new HelperForm();
// Check if form template has been overriden
if (file_exists($this->context->smarty->template_dir.'/'.$this->tpl_folder.'form.tpl'))
@@ -916,6 +927,9 @@ class AdminControllerCore extends Controller
$helper->token = $this->token;
$helper->table = $this->table;
$helper->id = $obj->id;
+ $helper->languages = $this->_languages;
+ $helper->default_form_language = $this->default_form_language;
+ $helper->allow_employee_form_lang = $this->allow_employee_form_lang;
$helper->fields_value = $this->getFieldsValue($obj);
$this->content .= $helper->generateForm($this->fields_form);
}
@@ -1328,12 +1342,35 @@ class AdminControllerCore extends Controller
$this->_list = Db::getInstance()->executeS($sql);
$this->_listTotal = Db::getInstance()->getValue('SELECT FOUND_ROWS() AS `'._DB_PREFIX_.$this->table.'`');
}
+
+ public function getlanguages()
+ {
+ $cookie = $this->context->cookie;
+ $this->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0;
+ if ($this->allow_employee_form_lang && !$cookie->employee_form_lang)
+ $cookie->employee_form_lang = (int)Configuration::get('PS_LANG_DEFAULT');
+ $use_lang_from_cookie = false;
+ $this->_languages = Language::getLanguages(false);
+ if ($this->allow_employee_form_lang)
+ foreach ($this->_languages as $lang)
+ if ($cookie->employee_form_lang == $lang['id_lang'])
+ $use_lang_from_cookie = true;
+ if (!$use_lang_from_cookie)
+ $this->default_form_language = (int)Configuration::get('PS_LANG_DEFAULT');
+ else
+ $this->default_form_language = (int)$cookie->employee_form_lang;
+ }
public function getFieldsValue($obj)
{
foreach ($this->fields_form['input'] as $input)
if (empty($this->fields_value[$input['name']]))
- $this->fields_value[$input['name']] = $this->getFieldValue($obj, $input['name']);
+ if (isset($input['lang']) && $input['lang'])
+ foreach ($this->_languages as $language)
+ $this->fields_value[$input['name']][$language['id_lang']] = $this->getFieldValue($obj, $input['name'], $language['id_lang']);
+ else
+ $this->fields_value[$input['name']] = $this->getFieldValue($obj, $input['name']);
+
return $this->fields_value;
}
@@ -1419,7 +1456,7 @@ class AdminControllerCore extends Controller
else if ($className == 'Customer' && !Validate::isPasswd($value))
$this->_errors[] = $this->l('the field').'
'.call_user_func(array($className, 'displayFieldName'), 'passwd', $className).' '.$this->l('is invalid');
}
-
+
/* Checking for multilingual fields validity */
foreach ($rules['validateLang'] as $fieldLang => $function)
foreach ($languages as $language)
diff --git a/classes/HelperForm.php b/classes/HelperForm.php
index 76405339c..1fc21d019 100644
--- a/classes/HelperForm.php
+++ b/classes/HelperForm.php
@@ -45,6 +45,10 @@ class HelperFormCore extends Helper
public $token;
+ public $languages = null;
+ public $default_form_language = null;
+ public $allow_employee_form_lang = null;
+
public static $currentIndex;
public $tpl = 'form.tpl';
@@ -58,29 +62,14 @@ class HelperFormCore extends Helper
public function displayForm()
{
- $cookie = $this->context->cookie;
- $allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0;
- if ($allow_employee_form_lang && !$cookie->employee_form_lang)
- $cookie->employee_form_lang = (int)Configuration::get('PS_LANG_DEFAULT');
- $use_lang_from_cookie = false;
- $languages = Language::getLanguages(false);
- if ($allow_employee_form_lang)
- foreach ($languages as $lang)
- if ($cookie->employee_form_lang == $lang['id_lang'])
- $use_lang_from_cookie = true;
- if (!$use_lang_from_cookie)
- $default_form_language = (int)Configuration::get('PS_LANG_DEFAULT');
- else
- $default_form_language = (int)$cookie->employee_form_lang;
-
$this->context->smarty->assign(array(
'firstCall' => $this->first_call,
'current' => self::$currentIndex,
'token' => $this->token,
'table' => $this->table,
- 'defaultFormLanguage' => $default_form_language,
- 'languages' => $languages,
- 'allowEmployeeFormLang' => $allow_employee_form_lang,
+ 'languages' => $this->languages,
+ 'defaultFormLanguage' => $this->default_form_language,
+ 'allowEmployeeFormLang' => $this->allow_employee_form_lang,
'form_id' => $this->id,
'back' => Tools::getValue('back'),
'fields' => $this->fields_form,
diff --git a/controllers/admin/AdminOrderMessageController.php b/controllers/admin/AdminOrderMessageController.php
new file mode 100644
index 000000000..cc63effd4
--- /dev/null
+++ b/controllers/admin/AdminOrderMessageController.php
@@ -0,0 +1,108 @@
+
+* @copyright 2007-2011 PrestaShop SA
+* @version Release: $Revision: 8971 $
+* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
+* International Registered Trademark & Property of PrestaShop SA
+*/
+
+class AdminOrderMessageController extends AdminController
+{
+ public function __construct()
+ {
+ $this->table = 'order_message';
+ $this->className = 'OrderMessage';
+ $this->lang = true;
+ $this->edit = true;
+ $this->delete = true;
+ $this->requiredDatabase = true;
+
+ $this->context = Context::getContext();
+
+ if (!Tools::getValue('realedit'))
+ $this->deleted = false;
+
+ $this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
+
+ $this->fieldsDisplay = array(
+ 'id_order_message' => array(
+ 'title' => $this->l('ID'),
+ 'align' => 'center',
+ 'width' => 25
+ ),
+ 'name' => array(
+ 'title' => $this->l('Name'),
+ 'width' => 140
+ ),
+ 'message' => array(
+ 'title' => $this->l('Message'),
+ 'width' => 600,
+ 'maxlength' => 300
+ )
+ );
+
+ $this->fields_form = array(
+ 'legend' => array(
+ 'title' => $this->l('Order messages'),
+ 'image' => '../img/admin/email.gif'
+ ),
+ 'input' => array(
+ array(
+ 'type' => 'text',
+ 'lang' => true,
+ 'attributeLang' => 'name¤message',
+ 'label' => $this->l('Name:'),
+ 'name' => 'name',
+ 'size' => 53,
+ 'required' => true
+ ),
+ array(
+ 'type' => 'textarea',
+ 'lang' => true,
+ 'attributeLang' => 'name¤message',
+ 'label' => $this->l('Message:'),
+ 'name' => 'message',
+ 'cols' => 50,
+ 'rows' => 15,
+ 'required' => true
+ )
+ ),
+ 'submit' => array(
+ 'title' => $this->l(' Save '),
+ 'class' => 'button'
+ )
+ );
+
+ parent::__construct();
+ }
+
+ public function initContent()
+ {
+ if ($this->display != 'edit' && $this->display != 'add')
+ $this->display = 'list';
+
+ parent::initContent();
+ }
+
+}
+
+
diff --git a/js/admin.js b/js/admin.js
index f640d6366..6a3a8f622 100644
--- a/js/admin.js
+++ b/js/admin.js
@@ -134,11 +134,11 @@ function changeLanguage(field, fieldsString, id_language_new, iso_code)
var fields = fieldsString.split('¤');
for (var i = 0; i < fields.length; ++i)
{
- getE(fields[i] + '_' + id_language).style.display = 'none';
- getE(fields[i] + '_' + id_language_new).style.display = 'block';
- getE('language_current_' + fields[i]).src = '../img/l/' + id_language_new + '.jpg';
+ $('#'+fields[i]+'_'+id_language).hide();
+ $('#'+fields[i]+'_'+id_language_new).show();
+ $('#'+'language_current_'+fields[i]).attr('src', '../img/l/' + id_language_new + '.jpg');
}
- getE('languages_' + field).style.display = 'none';
+ $('#languages_' + field).hide();
id_language = id_language_new;
}