2016-06-16 8 views
0

Ich habe versucht, ein Formular mit der HelperForm, aber es war unmöglich. Ich folgte der offiziellen Dokumentation, war aber für mich vom FrontControler unmöglich.Wie benutze ich HelperForm von der FrontController in PrestaShop 1.6

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

Kann ich das tun ??

Der Fehler, der mir zeigen, ist:

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

Und meine Klasse ist:

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

Ich werde verrückt ....

Antwort

1

Die Antwort ist einfach: Sie können HelperForm nicht von der FrontEnd verwenden.

Soweit ich weiß, können Sie die helperForm nur im BackOffice verwenden, also glaube ich nicht, dass Sie in der Front können.

0

Ich habe dies bereits gesehen Art von Fehler bei vielen Thread. Ist Ihr admin/themes/your_theme/template/helpers/form/form.tpl auf Ihrem Server und mit den richtigen Zugriffsberechtigungen?

Manchmal fehlt das ganze Verzeichnis helpers aus seltsamen Gründen.


EDIT Helper-Formular ist nur für Back-Office zur Verfügung. Sie können es nicht aus einem FrontController-Kontext verwenden.

+0

Ja, es ist wahr, aber ich lade viele kostenlose Themen und in allen von ihnen ist es das gleiche. Hast du diesen Ordner? Kannst du an mir vorbeigehen? – Slashhh

+0

können Sie es von [Prestashop Website] (https://www.prestashop.com/en/developers-versions#previous-version) bekommen.Laden Sie dieselbe Version herunter, die Sie verwenden, und kopieren Sie das fehlende Verzeichnis aus dem Archiv in Ihre Website. –

+0

Ich habe das schon gemacht, aber ich konnte es nicht im "default-bootstrap" -Thema finden. Hast du eine Ahnung? – Slashhh

0

Eigentlich, ich weiß nicht, ob Sie sollte, aber man kann sicherlich die HelperForm in einem benutzerdefinierten Modul verwenden.

Werfen Sie einen Blick auf die Funktion createTemplate von der Helper Klasse an diesem Stück Code in /classes/helper/Helper.php und insbesondere (die HelperForm erstreckt):

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

Sie können sehen, dass, wenn Sie definieren die Eigenschaft module, die helper verwendet die Vorlage form.tpl im Ordner Ihres Moduls unter /views/templates/admin/_configure/helpers/form/.

Also, was Sie tun müssen, ist:

  1. Kopieren form.tpl von admin/themes/default/template/helpers/form/form.tpl zu dem oben genannten Pfad in Ihrem Modul
  2. Platz $helper->module = $this; vor generateForm()

Hinweis Aufruf: Zusätzlich Vielleicht möchten Sie auch $helper->tpl_vars definieren, um die Eigenschaft name Ihrer Eingaben verwenden zu können.

Verwandte Themen