【问题标题】:Prestashop: HelperForm with multilang fieldPrestashop:具有多语言字段的 HelperForm
【发布时间】:2017-04-12 19:00:25
【问题描述】:

我在哪里使用 Helperform。我想让一些字段可翻译。我添加了以下表格:

        $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));

我在后台没有看到“名称”字段。怎么了?如果我删除 'lang' => true 它会出现。 是否需要任何其他设置(例如在构造函数中)?

【问题讨论】:

    标签: prestashop prestashop-1.6


    【解决方案1】:

    这是一个标准的 HelperForm 初始化:

    $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,
    );
    

    我猜你忘记了 tpl_vars 数组和 id_language 中的“语言”。

    也许这个link 应该会有所帮助。

    【讨论】:

    • 感谢@sarcom,这对我帮助很大!抱歉,我完全忘记查看文档(仅使用谷歌),通常它们没有帮助:P
    • @EmanuelSchiendorfer 不客气 ;),我很高兴这有帮助 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 2015-11-12
    相关资源
    最近更新 更多