2016-06-16 6 views
0

私はhelperFormでフォームを作成しようとしていましたが、それは不可能でした。 私は公式の文書に従っていましたが、FrontControlerから私にとって不可解でした。PrestaShop 1.6のFrontControllerのHelperFormの使い方

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

答えは簡単です:FrontEndからHelperFormを使用することはできません。

私が知っている限り、あなたはBackOfficeでのみhelperFormを使うことができるので、私はあなたが正面にいるとは思えません。あなたべきが、あなたは確かにカスタムモジュールでHelperFormを使用できるかどう

0

を私はすでにこれを見てきました多くのスレッドでエラーの種類。ご使用のサーバーにadmin/themes/your_theme/template/helpers/form/form.tplが存在し、適切なアクセス権を持っていますか?

場合によっては、helpersディレクトリ全体が奇妙な理由で欠落していることがあります。


EDITヘルパーフォームは、バックオフィスでのみ使用可能です。 FrontControllerコンテキストからは使用できません。

+0

申し訳ありませんが、それは本当ですが、私は多くの無料テーマをダウンロードし、それらのすべてが同じです。そのフォルダはありますか?あなたは私を渡すことができますか? – Slashhh

+0

[Prestashop website](https://www.prestashop.com/en/developers-versions#previous-version)から入手できます。使用しているバージョンと同じバージョンをダウンロードし、不足しているディレクトリをアーカイブからWebサイトにコピーします。 –

+0

私はすでにそれをしましたが、 "default-bootstrap"テーマでは見つかりませんでした。何か手掛かりはありますか? – Slashhh

0

実は、私は知りません。

は、コードのこの部分で/classes/helper/Helper.phpで、特に(HelperFormが伸びる)Helperクラスから関数createTemplateを見てください:

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

あなたはプロパティmoduleを定義した場合ことを確認することができ、ヘルパーはの下にあるモジュールのフォルダ内にテンプレートform.tplを使用します。

だから、あなたが何をする必要があるかです:

  1. コピーform.tpladmin/themes/default/template/helpers/form/form.tplから、上記のパスにあなたのモジュールで
  2. 場所$helper->module = $this;generateForm()

注呼び出す前に:また を入力のnameプロパティを使用できるようにするには、$helper->tpl_varsを定義することもできます。

関連する問題