2016-10-11 53 views
1

对不起。我在opencart模板中很新,包括model-view-controller-language。在我的项目中是想使用opencart 2.3.0.2创建多用户卖家。但是,opencart只提供给一个卖家。因此我使用可用的扩展名为dream multiuserOpencart 2.3.0.2:使用多用户分机的产品列表中的附加列

安装后,我可以看到添加新列名user_id的数据库用户的更改。 table user

在管理目录 - >产品仪表板中,有一些额外的列是user_id。 enter image description here

  1. 是否有可能使用卖家名称重命名user_id列并显示firstname属性?如果user_id = 1,例如显示firstname alvin。使用户更友好。易于阅读的卖家名称而不是id。
  2. 如何在过滤器框中添加用户标识/卖方名称过滤器列?

在此先感谢您。希望你明白我写的内容。对不起英语不好。

管理员/视图/模板/目录/ 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(); 
} 

回答

0

其中user_ID来自哪里? 你可以提供产品控制器(保护功能getList(){)? 所以我可以给你完整的代码。

其实您可以使用此代码来获取用户详细信息(名字和姓氏)。

$this->load->model('user/user'); 
$user_info = $this->model_user_user->getUser(user_ID); 
$data['firstname'] = $user_info['firstname']; 
$data['lastname'] = $user_info['lastname']; 

用真实的user_ID数据更改user_ID。