Prestashop - 显示供应商名称而不是ID

时间:2015-02-07 10:49:29

标签: php module admin render prestashop

在列表视图中,我想显示供应商名称而不是ID。视图自动生成。我怎样才能改变它?

我在renderList选项中的代码是:

public function renderList()
{
    $this->addRowAction('view');
    // Adds an Edit button for each result
    $this->addRowAction('edit');

    // Adds a Delete button for each result
    $this->addRowAction('delete');

    $this->simple_header = false;

    return parent::renderList();
}

,字段列表是下一个:

$this->fields_list = array(
        ...
        'id_product_supplier' => array('title' => $this->l('ID Supplier'), 'align' => 'center', 'class' => 'fixed-width-xs'),
        ...
        );

如果我想显示供应商的名称而不是Id,并且可以选择过滤列表中的供应商......

我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以通过两种方式更改它,具体取决于它的控制器(默认为您的控制器):

如果您构建了自己的管理员控制器:

public function getList($id_lang, $order_by = null, $order_way = null, $start = 0, $limit = null, $id_lang_shop = false)
{
    parent::getList($id_lang, $order_by, $order_way, $start, $limit, $id_lang_shop);

    foreach($this->_list as &row)
    {
        $row['new_field'] = 'Hello';
        $row['existing_field'] = 'Changed';
    }
}

如果您使用模块修改现有表单:

public function hookActionAdminProductsListingResultsModifier($args)
{
    $args['list_total'] += 1;

    foreach($args['list'] as &row)
        {
        $row['new_field'] = 'Hello';
            $row['existing_field'] = 'Changed';
    }
}

如果你是goona使用钩子,你必须先注册。另外,在钩子名称中插入{AdminProducts}部分。

有关详细信息,请参阅classes/controller/AdminController.php @ Line 2952

Hook::exec('action'.$this->controller_name.'ListingResultsModifier', array(
    'list' => &$this->_list,
    'list_total' => &$this->_listTotal,
));