Exemplo n.º 1
0
 public function main()
 {
     //init controller data
     $this->extensions->hk_InitData($this, __FUNCTION__);
     $this->loadLanguage('user/user');
     $this->loadModel('user/user');
     $this->loadModel('user/user_group');
     $user_groups = array('' => $this->language->get('text_select_group'));
     $results = $this->model_user_user_group->getUserGroups();
     foreach ($results as $r) {
         $user_groups[$r['user_group_id']] = $r['name'];
     }
     //Prepare filter config
     $filter_params = array('status', 'user_group_id');
     $grid_filter_params = array('username');
     //Build query string based on GET params first
     $filter_form = new AFilter(array('method' => 'get', 'filter_params' => $filter_params));
     //Build final filter
     $filter_grid = new AFilter(array('method' => 'post', 'grid_filter_params' => $grid_filter_params, 'additional_filter_string' => $filter_form->getFilterString()));
     $total = $this->model_user_user->getTotalUsers($filter_grid->getFilterData());
     $response = new stdClass();
     $response->page = $filter_grid->getParam('page');
     $response->total = $filter_grid->calcTotalPages($total);
     $response->records = $total;
     $results = $this->model_user_user->getUsers($filter_grid->getFilterData());
     $i = 0;
     foreach ($results as $result) {
         $response->rows[$i]['id'] = $result['user_id'];
         $response->rows[$i]['cell'] = array($result['username'], $user_groups[$result['user_group_id']], $this->html->buildCheckbox(array('name' => 'status[' . $result['user_id'] . ']', 'value' => $result['status'], 'style' => 'btn_switch')), dateISO2Display($result['date_added'], $this->language->get('date_format_short')));
         $i++;
     }
     //update controller data
     $this->extensions->hk_UpdateData($this, __FUNCTION__);
     $this->load->library('json');
     $this->response->setOutput(AJson::encode($response));
 }
Exemplo n.º 2
0
 /**
  * @param array $data
  * @param int $language_id
  * @param null|int $attribute_parent_id
  * @param string $mode
  * @return array
  */
 public function getAttributes($data = array(), $language_id = 0, $attribute_parent_id = null, $mode = 'default')
 {
     if (!$language_id) {
         $language_id = $this->session->data['content_language_id'];
     }
     //Prepare filter config
     $filter_params = array('attribute_parent_id', 'status');
     if (!has_value($data['attribute_type_id'])) {
         $filter_params[] = 'attribute_type_id';
         // to prevent ambigious fields in sql query
     }
     //Build query string based on GET params first
     $filter_form = new AFilter(array('method' => 'get', 'filter_params' => $filter_params));
     //Build final filter
     $grid_filter_params = array('name' => 'gad.name', 'type_name' => 'gatd.type_name');
     $filter_grid = new AFilter(array('method' => 'post', 'grid_filter_params' => $grid_filter_params, 'additional_filter_string' => $filter_form->getFilterString()));
     $filter_data = $filter_grid->getFilterData();
     $data = array_merge($filter_data, $data);
     if ($mode == 'total_only') {
         $total_sql = 'count(*) as total';
     } else {
         $total_sql = "ga.*, gad.name, gad.error_text, gatd.type_name ";
     }
     $sql = "SELECT " . $total_sql . "\n            \tFROM `" . DB_PREFIX . "global_attributes` ga\n                LEFT JOIN `" . DB_PREFIX . "global_attributes_descriptions` gad\n                \tON ( ga.attribute_id = gad.attribute_id AND gad.language_id = '" . (int) $language_id . "' )\n\t\t\t\tLEFT JOIN `" . DB_PREFIX . "global_attributes_type_descriptions` gatd\n\t\t\t\t\tON ( gatd.attribute_type_id = ga.attribute_type_id AND gatd.language_id = '" . (int) $language_id . "' )\n\t\t\t\tWHERE 1=1 ";
     if (!empty($data['search'])) {
         $sql .= " AND " . $data['search'];
     }
     if (!empty($data['subsql_filter'])) {
         $sql .= " AND " . $data['subsql_filter'];
     }
     if (empty($data['search']) && !is_null($attribute_parent_id)) {
         $sql .= " AND ga.attribute_parent_id = '" . (int) $attribute_parent_id . "' ";
     }
     if (!empty($data['attribute_type_id'])) {
         $sql .= " AND ga.attribute_type_id = " . (int) $data['attribute_type_id'];
     }
     //If for total, we done bulding the query
     if ($mode == 'total_only') {
         $query = $this->db->query($sql);
         return $query->row['total'];
     }
     $sort_data = array('name' => 'gad.name', 'sort_order' => 'ga.sort_order', 'status' => 'ga.status', 'type_name' => 'gatd.type_name');
     if (isset($data['sort']) && array_key_exists($data['sort'], $sort_data)) {
         $sql .= " ORDER BY " . $sort_data[$data['sort']];
     } else {
         $sql .= " ORDER BY ga.sort_order, gad.name ";
     }
     if (isset($data['order']) && strtoupper($data['order']) == 'DESC') {
         $sql .= " DESC";
     } else {
         $sql .= " ASC";
     }
     if (has_value($data['start']) || has_value($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;
 }
Exemplo n.º 3
0
 /**
  * @param array $data
  * @param string $mode
  * @return array|int
  */
 public function getCoupons($data = array(), $mode = 'default')
 {
     if (!empty($data['content_language_id'])) {
         $language_id = (int) $data['content_language_id'];
     } else {
         $language_id = (int) $this->config->get('storefront_language_id');
     }
     //Prepare filter config
     $filter_params = array('status' => 'c.status');
     //Build query string based on GET params first
     $filter_form = new AFilter(array('method' => 'get', 'filter_params' => $filter_params));
     //Build final filter
     $grid_filter_params = array('name' => 'cd.name', 'code' => 'c.code');
     $filter_grid = new AFilter(array('method' => 'post', 'grid_filter_params' => $grid_filter_params, 'additional_filter_string' => $filter_form->getFilterString()));
     $data = array_merge($filter_grid->getFilterData(), $data);
     if ($mode == 'total_only') {
         $total_sql = 'count(*) as total';
     } else {
         $total_sql = "c.coupon_id, cd.name, c.code, c.discount, c.date_start, c.date_end, c.status ";
     }
     $sql = "SELECT " . $total_sql . " \n\t\t\t\tFROM " . $this->db->table("coupons") . " c\n\t\t\t\tJOIN " . $this->db->table("coupon_descriptions") . " cd\n\t\t\t\t\tON (c.coupon_id = cd.coupon_id AND cd.language_id = '" . $language_id . "')";
     if (!empty($data['search'])) {
         $sql .= " AND " . $data['search'];
     }
     if (!empty($data['subsql_filter'])) {
         $sql .= " AND " . $data['subsql_filter'];
     }
     //If for total, we done bulding the query
     if ($mode == 'total_only') {
         $query = $this->db->query($sql);
         return $query->row['total'];
     }
     $sort_data = array('name' => 'cd.name', 'code' => 'c.code', 'discount' => 'c.discount', 'date_start' => 'c.date_start', 'date_end' => 'c.date_end', 'status' => 'c.status');
     if (isset($data['sort']) && array_key_exists($data['sort'], $sort_data)) {
         $sql .= " ORDER BY " . $sort_data[$data['sort']];
     } else {
         $sql .= " ORDER BY cd.name";
     }
     if (isset($data['order']) && strtoupper($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;
 }