2017-01-07 60 views
1

我想向管理控制器添加新列,但我希望此列成爲特定訂單的鏈接而不僅僅是ID。到目前爲止,我有這個:Prestashop - 添加包含後臺訂單鏈接的列

<?php 

class AdminDnDPaymentsController extends ModuleAdminController { 

    public function __construct() { 
     $this->table = 'dnd_payments'; 
     $this->className = 'DnDPayment'; 
     $this->fields_list = array(
      'id_dnd_payments' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25), 
      'id_order' => array('title' => $this->l('Order'), 'align' => 'center', 'width' => 80), 
      'bank' => array('title' => $this->l('Bank'), 'width' => 120), 
      'payer' => array('title' => $this->l('Payer name'), 'width' => 140), 
      'amount' => array('title' => $this->l('Amount'), 'width' => 80), 
      'reference' => array('title' => $this->l('Reference'), 'width' => 120), 
      'date_add' => array('title' => $this->l('Date add'), 'type' => 'date'), 
     ); 
     $this->bootstrap = true; 

     parent::__construct(); 

     //$this->addRowAction('view'); 
     //$this->addRowAction('edit'); 
     $this->addRowAction('delete'); 
    } 
} 

回答

0

當您希望改變其外觀時使用回調列。

$this->fields_list = array(
    'id_order' => array(
     'title' => $this->l('Order'), 
     'align' => 'center', 
     'width' => 80, 
     'callback' => 'printOrderLink' 
    ), 
    // rest of the fields 
); 

現在創建將處理外觀的方法...

public function printOrderLink($value, $row) 
{ 
    $link = $this->context->link->getAdminLink('AdminOrders').'&id_order='.(int)$value.'&vieworder'; 

    return '<a href="'.$link.'">View order</a>'; 
} 

所以對id_order列的每一行,該printOrderLink方法將被調用,並以該順序一個鏈接,將顯示第的ID。

$value將是當前行的訂單ID,並且$row是一個數組,它保存當前行的所有列值(如果您需要根據另一列值修改列外觀,則很有用)。

相關問題