2017-08-22 3 views
0

こんにちは皆私は、製品とカスタムテーブルに読み込まれたいくつかの他の機能の間の関連を探すPrestashop 1.6の高度な検索モジュールを書いています。Prestshop 1.6モジュールカスタム検索ビュー

私はModuleFrontControllerを書いています。フォーム提出後に結果ページを返さなければならないが、ビューには基本レイアウトがありません。

... Official documentation

$this->setTemplate('advanced-search.tpl'); 

に書かれたように私は、この関数を呼び出すしかし、それは唯一の製品リストと他には何も、ヘッダーなし、ノーフッター、ノーサイドバーを示しinitContent()メソッド内

これは私のコードです:

class MyModuleSearchModuleFrontController extends ModuleFrontController 
{ 

    protected static $config_post_submit_values = ['action']; 

    public function initContent() 
    { 

     parent::initContent(); 

     switch (Tools::getValue($this->getPostSubmitValue())) { 
      // Filter action 
      case 'filter_1': 
      /* 
      * DO STUFF TO RETRIEVE PRODUCTS 
      */ 
      case 'filter_2': 
      /* 
      * DO STUFF TO RETRIEVE PRODUCTS 
      */ 
      default: 
       $products = []; 
     } 

     $this->smarty->assign(['products' => $products]); 

     $this->setTemplate('advanced-search.tpl'); 
    } 

    /** 
    * Get the action submited from the configuration page 
    * @return string 
    */ 
    protected function getPostSubmitValue() 
    { 
     foreach (self::$config_post_submit_values as $value) { 
      if (Tools::isSubmit($value)) { 
       return $value; 
      } 
     } 

     return false; 
    } 

} 

ご協力いただきありがとうございます!

答えて

0

私はこのオブジェクトがcontextオブジェクトの中にあるので、smartyにアクセスできないという問題があると思います。

ので

$this->smarty->assign(['products' => $products]); 

/config/defines.inc.phpに移動し、ラインに

define('_PS_MODE_DEV_', false); 
を変更すると、エラーログの

$this->context->smarty->assign(['products' => $products]); 

サイドノート

電源を入れなければなりません

define('_PS_MODE_DEV_', true); 

から

は、生産/ライブ環境で_PS_MODE_DEVオンにしないでください。

関連する問題