Электронной форме ввода не отображается при использовании HelperForm

Электронной форме ввода не отображается при использовании HelperForm

30.07.2019 12:05:12 Просмотров 3 Источник

Я разрабатываю модуль prestashop, и это только начало. Проблема находится на странице конфигурации моего модуля.

Я добавляю некоторые текстовые поля, и надпись и описание видны, но текстовое поле не видно.

Я посмотрел много других примеров, но пока не нашел никаких различий и того, что неправильно.

Тайна заключается в том , что если я изменю тип на dateили file, он будет виден.

// This function called in getContent() of main module php file.
public function displayForm()
{
    $fields_form = array(
        'form' => array(
            'legend' => array(
                'title' => $this->trans('*'),
            ),
            // Here is the textbox.
            'input' => array(
                array(
                    'type' => 'text',
                    'label' => $this->trans('Link:'),
                    'name' => 'LINK_PRODUCT',
                    'desc' => $this->trans('Please input the link...'),
                    'lang' => true,
                    'required' => true
                )
            ),
            'submit' => array(
                'title' => $this->trans('Save'),
                'class' => 'btn btn-default pull-right'
            )
        )
    );

    $helper = new HelperForm();
    $helper->module = $this;
    $helper->name_controller = $this->name;
    $helper->token = Tools::getAdminTokenLite('AdminModules');
    $helper->currentIndex = AdminController::$currentIndex . '&configure=' . $this->name;

    $helper->title = $this->displayName;
    $helper->show_toolbar = false;
    $helper->submit_action = 'submit';
    $helper->fields_value['LINK_PRODUCT'] = Configuration::get('LINK_PRODUCT');

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

Я хотел бы сделать текстовое поле видимым, как я должен это сделать?

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/57261391/prestashop-form-input-not-visible-when-using-helperform#comment101023643_57261391
Вы должны отредактировать свой заголовок, он не очень много говорит о вашей проблеме здесь.
https://stackoverflow.com/questions/57261391/prestashop-form-input-not-visible-when-using-helperform#comment101024844_57261391
Я отформатировал ваш заголовок / вопрос, чтобы его было легче читать, и добавил тег prestashop.

Ответы - Электронной форме ввода не отображается при использовании HelperForm / Prestashop form input not visible when using HelperForm

Является ответом!
Alexander Grosul

01.08.2019 10:04:30

Вы хотите иметь многоязычный язык, поэтому вам нужно определить, какой язык используется по умолчанию. Добавьте этот код в определение помощника

$helper->default_form_language = $this->context->language->id;

и заменить

$helper->fields_value['LINK_PRODUCT'] = Configuration::get('LINK_PRODUCT');

с

$helper->tpl_vars = array(
    'fields_value' => array('LINK_PRODUCT' => Configuration::get('LINK_PRODUCT')),
    'languages' => $this->context->controller->getLanguages(),
    'id_language' => $this->context->language->id,
);

определить все доступные языки и значения переменной LINK_PRODUCT. Кроме того, не забывайте, что вы работаете с многоязычным полем и вам нужен массив со значениями для вашей переменной. Поэтому во время извлечения и сохранения вы должны рассматривать их как значения для всех языков. Например, если у вас есть три доступных языка, вам нужно получить три значения. Лучший способ получить их-это

$values = [];
foreach ($this->context->controller->getLanguages() as $language) {
    $values[$language['id_lang']] = Configuration::get('LINK_PRODUCT', $language['id_lang']);
}
$helper->tpl_vars = array(
    'fields_value' => array('LINK_PRODUCT' => $values),
    'languages' => $this->context->controller->getLanguages(),
    'id_language' => $this->context->language->id,
);

а когда вы его сохраните используйте аналогичную комбинацию но с updateValue

https://stackoverflow.com/questions/57261391/prestashop-form-input-not-visible-when-using-helperform/57303482#comment104985061_57303482
Правильный ответ. Я сам нашел ответ, но этот ответ правильный.
Закрыть X