Prestashop 1.7 - Ошибка FormBuilder на странице категории Cms - PullRequest
0 голосов
/ 02 апреля 2020

Я написал модуль Prestashop для добавления двух полей в категорию CMS, но рендеринг неверный.

Мой исходный код:

<?php
class NewsSlider extends Module {
    public function hookActionCmsPageCategoryFormBuilderModifier(array $params) {
        $formBuilder = $params['form_builder'];
        $locales = $this->get('prestashop.adapter.legacy.context')->getLanguages();

        $formBuilder->add($this->name.'_cover_lang',
            \PrestaShopBundle\Form\Admin\Type\TranslatableType::class,
            [
                'type' => \Symfony\Component\Form\Extension\Core\Type\FileType::class,
                'label' => $this->l('Image de couverture'),
                'options' => [
                    'required' => false,
                    'constraints' => [
                        'mimeTypes' => [
                            'image/png',
                            'image/jpeg'
                        ],
                        'mimeTypesMessage' => 'JPEG/PNG',
                    ]
                ],
                'required' => false,
            ]
        );

        $formBuilder->add($this->name.'_header_lang',
            \PrestaShopBundle\Form\Admin\Type\TranslateType::class,
            [
                'type' => \PrestaShopBundle\Form\Admin\Type\FormattedTextareaType::class,
                'label' => $this->l('Entête de la page'),
                'locales' => $locales,
                'hideTabs' => false,
                'required' => false
            ]
        );

        $languages = Language::getLanguages(true);
        foreach($languages as $lang){
            $content = $this->getCMSHeader($params['id'], $lang['id_lang'], $isCategory);
            if(is_string($content) && strlen($content)) {
                $params['data'][$this->name.'_header_lang'][$lang['id_lang']] = $content;
            }
        }

        $formBuilder->setData($params['data']);
    }
}
?>

Вы можете увидеть рендер здесь .

enter image description here И я написал точно такой же код для страницы CMS (hookActionCmsPageFormBuilderModifier), и он работает. Почему это отличается?

...