2017-02-13 10 views
1

Prestashopで請求書PDFプロセスを生成するにはどうしたらいいですか?私は別のtplファイルを使用したいが、残りは同じままでなければならない。 HTMLTemplateMahnungとしてHTMLTemplateInvoice Prestashop:新しいtplで請求書PDFを複製

  1. とクラス名を変更:

    は、私はすでに何をしたか、私に説明してみましょう。

  2. 追加:const TEMPLATE_MAHNUNG = 'Mahnung';ファイルクラス/ PDFへ/ PDF.php
  3. がAdminPdfController.phpに追加ルート/ PDFフォルダに

  4. 作成されたファイルのmahnung.tpl:

    public function processGenerateMahnungPdf() { 
    if (Tools::isSubmit('id_order')) { 
        $this->generateMahnungPDFByIdOrder(Tools::getValue('id_order')); 
    } elseif (Tools::isSubmit('id_order_invoice')) { 
        $this->generateInvoicePDFByIdOrderInvoice(Tools::getValue('id_order_invoice')); 
    } else { 
        die(Tools::displayError('The order ID -- or the invoice order ID -- is missing.')); 
    }} 
    

public function generateMahnungPDFByIdOrder($id_order) 
{ 
    $order = new Order((int)$id_order); 
    if (!Validate::isLoadedObject($order)) { 
     die(Tools::displayError('The order cannot be found within your database.')); 
    } 

    $order_invoice_list = $order->getInvoicesCollection(); 
    Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => $order_invoice_list)); 
    $this->generatePDF($order_invoice_list, PDF::TEMPLATE_MAHNUNG); 
} 

しかし、それは動作していません。それは単にPDFを生成しません。

助けが必要ですか?なrequire_once _PS_ROOT_DIR_:私はクラスを含める必要がありました

UPDATE

。 '/classes/pdf/HTMLTemplateMahnung.php';

現在は動作しています。なぜ私はこれにしなければならなかったのですか?私はコアファイルを含んでいません。S

答えて

0

Pretashopはファイルキャッシュ/ class_index.phpを使用して、必要なクラスを追跡します。

新しいオーバーライド、またはクラスまたはコントローラを追加するたびに、このファイルを削除(または名前変更)する必要があります。見つからない場合、Prestashopは、設定されたフォルダ(クラス、コントローラ、上書きなど)のすべてのファイルのインデックスを作成し直します。

+0

ありがとうございます!それは問題だった... –

関連する問題