由于ps文档相当简单,所以想知道是否有人解决了subj的问题。
有最后一个稳定的ps。 1.6.1.7做了很多模块......
需要帮助(自定义表[创建]:好的,自定义列表[排序,过滤]:OK):当我点击一行时(subq:添加" addRowAction()"生成同样......),想看到另一个控制器编辑/更新页面 - 特别是:controller = adminproduct& updateproduct ...给出了id_product,但也不知道如何传递:。
特别地:订购产品(自己的模块,自己的列表)的列表想要隐藏它自动提供的链接。我确信这很简单,但还没有找到解决方案......
最大的问题是:如何覆盖(必须复制到我的模块结构中?)列表助手,任何其他助手......或者需要编写一个完整的.tpl来获得上面的函数... < / p>
答案 0 :(得分:0)
好吧,为我的q实施了丑陋的解决方案。 (带代码:)):
_construct()的一部分......:
$this->fields_list = array();
$this->fields_list['id_order'] = array(
'title' => $this->l('Order ID'),
'align' => 'center',
'class' => 'fixed-width-xs',
'type' => 'int'
);
$this->fields_list['product_reference'] = array(
'title' => $this->l('Product reference'),
'filter_key' => 'product_reference',
);
$this->fields_list['product_name'] = array(
'title' => $this->l('Name'),
'filter_key' => 'product_name'
);
$this->fields_list['product_quantity'] = array(
'title' => $this->l('Pices'),
'filter_key' => 'product_quantity'
);
$this->fields_list['total_price_tax_incl'] = array(
'title' => $this->l('Full price incl. tax.'),
'filter_key' => 'total_price_tax_incl',
'type' => 'int'
);
$this->_join .= ' LEFT JOIN `' . _DB_PREFIX_ . 'orders` b ON ( a.`id_order` = b.`id_order` )';
$this->_select .= ' b.`date_add`,';
$this->fields_list['date_add'] = array(
'title' => $this->l('Added'),
'filter_key' => 'b!date_add',
);
$this->_join .= ' LEFT JOIN `' . _DB_PREFIX_ . 'vatera_kl_order` c ON (c.`id_order` = b.`id_order` )';
$this->_select .= ' c.`status` AS vstatus, ';
$this->fields_list['vstatus'] = array(
'title' => $this->l('Vatera status'),
'filter_key' => 'c!status'
);
$this->_group .= 'GROUP BY `id_order`';
$this->_orderBy = 'id_order';
$this->_orderWay = 'DESC';
parent::__construct();//ddd($this);
一个私有函数,获取id_product(order_details中的product_id),以及重写的initContent()来执行丑陋的重定向......:
private function getPidFromODID($odid) {
$q = 'SELECT `product_id` FROM `' . _DB_PREFIX_ . 'order_detail` WHERE `id_order_detail` = ' . $odid;
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(
$q
);
return $result[0]['product_id'];
}
public function initContent()
{
if ($this->display == 'edit') {
$admin = explode(DIRECTORY_SEPARATOR,_PS_ADMIN_DIR_);
$admin_folder = array_pop((array_slice($admin, -1)));
Tools::redirect(
_PS_BASE_URL_ . '/' . $admin_folder . '/' . $this->context->link->getAdminLink('AdminProducts') . '&id_product=' . (int)$this->getPidFromODID(Tools::getValue('id_order_detail')) . '&updateproduct');
}
else
parent::initContent();
}
所以,最初的问题是问题......一个很好的方法,来覆盖列表行为......