2015-01-09 93 views
0

我正在使用Prestashop 1.6.0.9。編輯Prestashop當前訂單視圖

我想編輯這部分的原始HTML。

enter image description here

原圖鏈接:http://i.stack.imgur.com/hazQp.png

我想額外科拉姆添加到過濾器,但我不能真正找到它的代碼...

我已搜查通過adminXXXX/themes/default/template/目錄。特別是訂單文件,但它們似乎只與您實際點擊下列訂單之一時獲得的視圖相關。 (下面的意思是你看不到的過濾器下面的訂單)

有沒有人知道這個的實際位置?

回答

1

BO訂單的過濾器由controllers\admin\AdminOrdersController.php創建。

爲了保存prestashop核心代碼,它表明你爲這個控制器創建一個覆蓋,你需要加入你需要的表(如果還沒有加入的話),指定你的表的位置是你想要的字段用於過濾器以及該領域本身。仔細查看AdminOrdersController的構造函數,以更好地理解如何執行此操作。

例如,如果你想向承運人名稱添加爲一個過濾器,創建override\controllers\admin\AdminOrdersController.php文件,並添加以下代碼:

<?php 

class AdminOrdersController extends AdminOrdersControllerCore { 
    public function __construct() { 
     parent::__construct(); 
     $this->_join .= 'LEFT JOIN `'._DB_PREFIX_.'carrier` cr ON (cr.`id_carrier` = a.`id_carrier`)'; 
     $this->_select .= ', cr.name as carrier'; 
     $this->fields_list['carrier'] = array(
      'title' => $this->l('Carrier'), 
      'align' => 'text-center' 
     ); 
    } 
} 
+0

我明白了!現在在原始控制器中,它使用'_orders'表。我想要根據他們用於訂購的承運商有一個過濾器......承運人在不同的表格內。我怎麼能這樣做? – ProEvilz

+1

我已更新示例以過濾運營商名稱。 – gabdara

+0

這很棒,但會引發錯誤。 錯誤的SQL查詢 'where子句'中的未知列'carrier' – ProEvilz

0

如果你想和載體列 添加這個(背後:「$這 - > _加入=「「):

LEFT JOIN '._DB_PREFIX_.'carrier ca ON (ca.id_carrier = a.id_carrier) 

和字段列表(後面的 」$這個 - > fields_list =陣列(「)補充一點:

'carrier' => array(
      'title' => $this->l('Carrier'), 
      'align' => 'text-center',    
      'filter_key' => 'ca!name' 
    ),