2017-04-12 4 views
0

wo ich Helperform benutze. Ich möchte einige Felder übersetzbar machen. Ich fügte das folgende Formular hinzu:Prestashop: HelperForm mit multilang Feld

 $fields_form = array(
     'form' => array(
      'legend' => array(
       'title' => $this->l('Diplom hinzufügen'), 
       'icon' => 'icon-question' 
      ), 
      'input' => array(
       array(
        'type' => 'text', 
        'label' => $this->l('Name'), 
        'name' => 'name', 
        'lang' => true, 
       ), 
      ), 
      'submit' => array('title' => $this->l('Save')) 
     ) 
    ); 
    $helper = new HelperForm(); 
    $helper->submit_action = 'saveDiplom'; 
    $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name; 
    $helper->token = Tools::getAdminTokenLite('AdminModules'); 


    $helper->tpl_vars = array(
     'fields_value' => array(
      'name' => '', 
     ), 
    ); 


    return $helper->generateForm(array($fields_form)); 

Ich sehe das Feld "Name" nicht im Backoffice. Was ist falsch? Wenn ich 'lang' => true lösche, erscheint es. Wird eine andere Einstellung benötigt (wie im Konstruktor)?

Antwort

0

Dies ist ein Standard HelperForm Initialisierung:

$helper = new HelperForm(); 
$helper->show_toolbar    = false; 
$helper->table     = $this->table; 
$helper->module     = $this; 
$helper->default_form_language = $this->context->language->id; 
$helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG', 0); 

$helper->identifier = $this->identifier; 
$helper->submit_action = 'submitNameOfModuleModule'; 
$helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false) 
         . '&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name; 
$helper->token   = Tools::getAdminTokenLite('AdminModules'); 

$helper->tpl_vars = array(
    'fields_value' => $this->getConfigFormValues(), /* Add values for your inputs, in your case you have passed the array directly */ 
    'languages' => $this->context->controller->getLanguages(), 
    'id_language' => $this->context->language->id, 
); 

Ich denke, Sie haben vergessen, die 'Sprachen' in der tpl_vars Array und die id_language auch.

Vielleicht sollte diese link hilfreich sein.

+0

Dank @sarcom das hat mir sehr geholfen! Sorry, ich habe total vergessen, die docs zu überprüfen (nur gebrauchte google), normalerweise helfen sie nicht: P –

+0

@EmanuelSchendorfer Gern geschehen;), freut mich das war hilfreich :) – sarcom