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 ' -
- '.($obj->id ? '' : '').' -
'.$this->l('Order messages').' - -
'; - foreach ($this->_languages as $language) - echo ' -
- * -
'; - $this->displayFlags($this->_languages, $this->_defaultFormLanguage, 'name¤message', 'name'); - echo '
-

- -
'; - foreach ($this->_languages as $language) - echo ' -
- * -
'; - $this->displayFlags($this->_languages, $this->_defaultFormLanguage, 'name¤message', 'message'); - echo '
-

-
- -
-
* '.$this->l('Required fields').'
-
-
'; - } -} - - diff --git a/admin-dev/themes/template/form.tpl b/admin-dev/themes/template/form.tpl index 06b299b47..beb1a08b5 100644 --- a/admin-dev/themes/template/form.tpl +++ b/admin-dev/themes/template/form.tpl @@ -28,10 +28,10 @@ @@ -72,13 +74,44 @@
{if $input.type == 'text'} - + {if isset($input.lang) && isset($input.attributeLang)} + {foreach $languages as $language} +
+ +
+ {/foreach} + {if count($languages) > 1} +
+ +
+
+ {l s='Choose language:'}

+ {foreach $languages as $language} + {$language.name} + {/foreach} +
+ {/if} + {else} + + {/if} {elseif $input.type == 'select'} + {if isset($input.lang) && isset($input.attributeLang)} + {foreach $languages as $language} +
+ +
+ {/foreach} + {if count($languages) > 1} +
+ +
+
+ {l s='Choose language:'}

+ {foreach $languages as $language} + {$language.name} + {/foreach} +
+ {/if} + {else} + + {/if} {elseif $input.type == 'checkbox'} {/if} @@ -132,6 +191,7 @@ {if $input.name == 'id_state'}
{/if} +
{/foreach} {elseif $key == 'submit'}
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}
  1. {$error}
  2. {/foreach}
@@ -107,7 +107,7 @@ 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; }