2016-06-16 5 views
0

Я пытался сделать форму с помощью helperForm, но это было невозможно. Я следил за официальной документацией, но для меня это было невозможно с FrontControler.Как использовать HelperForm от FrontController в PrestaShop 1.6

http://doc.prestashop.com/display/PS16/Using+the+HelperForm+class

Могу ли я сделать это ??

Ошибка, показать мне:

Uncaught --> Smarty: Unable to load template file 'helpers/form/form.tpl' 

И мой класс:

public function renderForm() 
    { 
    $fields_form = array('form' => array(
     'legend' => array(  
     'title' => $this->module->l('Edit carrier'),  
     'image' => '../img/admin/icon_to_display.gif' 
    ), 
     'input' => array(  
     array(   
      'type' => 'text', 
      'name' => 'shipping_method', 
     ), 
    ), 
     'submit' => array(
     'title' => $this->module->l('Save'),  
     'class' => 'btn btn-default pull-right' 
    ) 
    )); 

    $helper = new HelperForm(); 
    $helper->show_toolbar = false; 
    $helper->table = $this->table; 
    $this->fields_form = array(); 

    $helper->identifier = $this->identifier; 
    $helper->submit_action = 'submitBlockCart'; 

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

Я схожу с ума ....

ответ

1

Ответ прост: вы НЕ МОЖЕТЕ использовать HelperForm с FrontEnd.

Насколько я знаю, вы можете использовать helperForm только в BackOffice, поэтому я не думаю, что вы можете в передней части.

0

Я уже видел это вид ошибки на многих потоках. Ваш admin/themes/your_theme/template/helpers/form/form.tpl присутствует на вашем сервере и имеет права доступа?

Иногда по незнакомым причинам отсутствует каталог helpers.


EDIT Helper форма доступна только для бэк-офиса. Вы не можете использовать его из контекста FrontController.

+0

Да, это правда, но я загружаю много бесплатных тем, и во всех них это одно и то же. У вас есть эта папка? Не могли бы вы меня передать? – Slashhh

+0

вы можете получить его с [сайта Prestashop] (https://www.prestashop.com/en/developers-versions#previous-version).Загрузите ту же самую версию, которую вы используете, и скопируйте недостающий каталог из архива на свой веб-сайт. –

+0

Я сделал это уже, но не смог найти его в теме «default-bootstrap». У вас есть какая-то подсказка? – Slashhh

0

На самом деле, я не знаю, если вы должны, но вы, конечно, может использовать HelperForm в пользовательском модуле.

Посмотрите на функцию createTemplate из Helper класса (который HelperForm распространяется) в /classes/helper/Helper.php и, в частности, в этой части кода:

elseif ($this->module) { 
    $override_tpl_path = _PS_MODULE_DIR_.$this->module->name.'/views/templates/admin/_configure/'.$this->base_folder.$tpl_name; 
} 

Вы можете видеть, что если определить свойство module, в helper будет использовать шаблон form.tpl внутри папки вашего модуля, под /views/templates/admin/_configure/helpers/form/.

Так что вам нужно сделать, это:

  1. Копия form.tpl от admin/themes/default/template/helpers/form/form.tpl к вышеупомянутому пути в модуле
  2. Место $helper->module = $this; перед вызовом generateForm()

Примечание: Кроме того , вы также можете определить $helper->tpl_vars, чтобы иметь возможность использовать свойство name ваших входов.