2017-01-07 3 views
1

Ich möchte eine neue Spalte zu einem Admin-Controller hinzufügen, aber ich möchte, dass diese Spalte eine Verknüpfung zu einer bestimmten Bestellung statt nur der ID ist. Bisher habe ich das:Prestashop - Spalte mit Link zu einer Bestellung im Backoffice hinzufügen

<?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'); 
    } 
} 

Antwort

0

Verwenden Sie Rückrufe für Spalten, wenn Sie das Aussehen ändern möchten.

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

nun ein Verfahren schaffen, die das Aussehen behandelt ...

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

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

Also für jede Zeile auf id_order Spalte, die printOrderLink Methode genannt und ein Link zu dieser Reihenfolge statt angezeigt werden wird, von ID.

$value ist die Bestellnummer der aktuellen Zeile und $row ist ein Array, das alle Spaltenwerte für die aktuelle Zeile enthält (nützlich, wenn Sie die Spaltendarstellung basierend auf einem anderen Spaltenwert ändern müssen).

Verwandte Themen