1
对不起。我在opencart模板中很新,包括model-view-controller-language。在我的项目中是想使用opencart 2.3.0.2创建多用户卖家。但是,opencart只提供给一个卖家。因此我使用可用的扩展名为dream multiuser。Opencart 2.3.0.2:使用多用户分机的产品列表中的附加列
安装后,我可以看到添加新列名user_id的数据库用户的更改。
在管理目录 - >产品仪表板中,有一些额外的列是user_id。
- 是否有可能使用卖家名称重命名user_id列并显示firstname属性?如果user_id = 1,例如显示firstname alvin。使用户更友好。易于阅读的卖家名称而不是id。
- 如何在过滤器框中添加用户标识/卖方名称过滤器列?
在此先感谢您。希望你明白我写的内容。对不起英语不好。
管理员/视图/模板/目录/ product_list.tpl
<td class="text-left"><?php if ($sort == 'p.user_id') { ?>
<a href="<?php echo $sort_user_id; ?>" class="<?php echo strtolower($order); ?>"><?php echo "User_ID"; ?></a>
<?php } else { ?>
<a href="<?php echo $sort_user_id; ?>"><?php echo "User_ID"; ?></a>
<?php } ?></td>
管理员/模型/用户/ user.php的
public function getUsers($data = array()) {
$sql = "SELECT * FROM `" . DB_PREFIX . "user`";
$sort_data = array(
'username',
'status',
'date_added'
);
if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
$sql .= " ORDER BY " . $data['sort'];
} else {
$sql .= " ORDER BY username";
}
if (isset($data['order']) && ($data['order'] == 'DESC')) {
$sql .= " DESC";
} else {
$sql .= " ASC";
}
if (isset($data['start']) || isset($data['limit'])) {
if ($data['start'] < 0) {
$data['start'] = 0;
}
if ($data['limit'] < 1) {
$data['limit'] = 20;
}
$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
}
$query = $this->db->query($sql);
return $query->rows;
}
管理员/模型/目录/ product.php
public function getProduct($product_id) {
$query = $this->db->query("SELECT DISTINCT *, (SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE query = 'product_id=" . (int)$product_id . "') AS keyword FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
return $query->row;
}
public function getProducts($data = array()) {
$sql = "SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "'";
if (!empty($data['filter_name'])) {
$sql .= " AND pd.name LIKE '" . $this->db->escape($data['filter_name']) . "%'";
}
if (!empty($data['filter_model'])) {
$sql .= " AND p.model LIKE '" . $this->db->escape($data['filter_model']) . "%'";
}
if (isset($data['filter_price']) && !is_null($data['filter_price'])) {
$sql .= " AND p.price LIKE '" . $this->db->escape($data['filter_price']) . "%'";
}
if (isset($data['filter_quantity']) && !is_null($data['filter_quantity'])) {
$sql .= " AND p.quantity = '" . (int)$data['filter_quantity'] . "'";
}
if (isset($data['filter_status']) && !is_null($data['filter_status'])) {
$sql .= " AND p.status = '" . (int)$data['filter_status'] . "'";
}
if (isset($data['filter_image']) && !is_null($data['filter_image'])) {
if ($data['filter_image'] == 1) {
$sql .= " AND (p.image IS NOT NULL AND p.image <> '' AND p.image <> 'no_image.png')";
} else {
$sql .= " AND (p.image IS NULL OR p.image = '' OR p.image = 'no_image.png')";
}
}
if(!$this->user->hasPermission('access', 'extension/module/separate_products') and !$this->user->hasPermission('modify', 'localisation/order_status')){
$sql .= " AND p.user_id = '" . $this->session->data['user_id'] . "'";
}
$sql .= " GROUP BY p.product_id";
$sort_data = array(
'pd.name',
'p.model',
'p.price',
'p.quantity',
'p.user_id',
'p.status',
'p.sort_order'
);
if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
$sql .= " ORDER BY " . $data['sort'];
} else {
$sql .= " ORDER BY pd.name";
}
if (isset($data['order']) && ($data['order'] == 'DESC')) {
$sql .= " DESC";
} else {
$sql .= " ASC";
}
if (isset($data['start']) || isset($data['limit'])) {
if ($data['start'] < 0) {
$data['start'] = 0;
}
if ($data['limit'] < 1) {
$data['limit'] = 20;
}
$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
}
$query = $this->db->query($sql);
return $query->rows;
}
admin/controller/catalog/product.php
class ControllerCatalogProduct extends Controller {
private $error = array();
public function index() {
$this->load->language('catalog/product');
$this->document->setTitle($this->language->get('heading_title'));
$this->load->model('catalog/product');
$this->getList();
}