2017-01-07 5 views
1

Я хочу добавить новый столбец в контроллер администратора, но я хочу, чтобы этот столбец был ссылкой на конкретный заказ, а не только на идентификатор. До сих пор у меня есть следующее:Prestashop - добавить столбец со ссылкой на заказ в backoffice

<?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 будет идентификатором заказа текущей строки, а $row - это массив, который содержит все значения столбцов для текущей строки (полезно, если вам нужно изменить внешний вид столбца на основе другого значения столбца).

Смежные вопросы