public function get_userlist_by_filter()
 {
     if (!empty($this->postData['filter_set'])) {
         $filter_set = \Filters::getInstance();
         $filter_set->setResellerID(array_key_exists('reseller', $this->postData) ? $this->postData['reseller'] : 0);
         $filter_set->initData('users', 'id');
         $curr_filter_set = \Mysql::getInstance()->from('filter_set')->where(array('id' => $this->postData['filter_set']))->get()->first();
         if (!empty($curr_filter_set) && ($unserialize_data = @unserialize($curr_filter_set['filter_set']))) {
             $filter_data = array();
             foreach ($unserialize_data as $row) {
                 $filter_data[$row[0]] = $row;
             }
             $filters_with_cond = array_filter(array_map(function ($row) use($filter_data) {
                 if (array_key_exists($row['text_id'], $filter_data)) {
                     $value = $row['text_id'] == 'status' || $row['text_id'] == 'state' ? (int) ($filter_data[$row['text_id']][2] - 1 > 0) : $filter_data[$row['text_id']][2];
                     return array($row['method'], $filter_data[$row['text_id']][1], $value);
                 }
             }, $filter_set->getFilters()));
             $filter_set->setFilters($filters_with_cond);
             $this->user_list = $filter_set->getData();
         }
     }
     return $this;
 }
 public function users_filter_list_json()
 {
     if ($this->isAjax) {
         if ($no_auth = $this->checkAuth()) {
             return $no_auth;
         }
     }
     $response = array('data' => array(), 'recordsTotal' => 0, 'recordsFiltered' => 0);
     $error = $this->setLocalization("Error");
     $param = !empty($this->data) ? $this->data : array();
     $query_param = $this->prepareDataTableParams($param, array('operations', '_'));
     if (!isset($query_param['where'])) {
         $query_param['where'] = array();
     }
     $filds_for_select = $this->getFilterSetFields();
     $this->cleanQueryParams($query_param, array_keys($filds_for_select), $filds_for_select);
     if (!empty($this->data['filters']['admin_id'])) {
         $query_param['where'] = array('A.id' => $this->data['filters']['admin_id']);
     }
     $response['recordsTotal'] = $this->db->getTotalRowsUsersFilters();
     $response["recordsFiltered"] = $this->db->getTotalRowsUsersFilters($query_param['where'], $query_param['like']);
     if (empty($query_param['limit']['limit'])) {
         $query_param['limit']['limit'] = 50;
     }
     $filter_set = \Filters::getInstance();
     $filter_set->setResellerID($this->app['reseller']);
     $filter_set->initData('users', 'id');
     $self = $this;
     $response['data'] = array_map(function ($row) use($filter_set, $self) {
         if (($filter_set_data = @unserialize($row['filter_set'])) !== FALSE) {
             $row['filter_set'] = '';
             foreach ($filter_set_data as $data_row) {
                 $filter_set_filter = $filter_set->getFilters(array($data_row[0]));
                 $row_filter_set = $self->setLocalization($filter_set_filter[0]['title']) . ': ';
                 if (!empty($filter_set_filter[0]['values_set']) && is_array($filter_set_filter[0]['values_set'])) {
                     foreach ($filter_set_filter[0]['values_set'] as $filter_row) {
                         if ($data_row[2] == $filter_row['value']) {
                             $row_filter_set .= $self->setLocalization($filter_row['title']) . '; ';
                         }
                     }
                 } else {
                     $row_filter_set .= $data_row[2] . '; ';
                 }
                 $row['filter_set'] .= $row_filter_set;
             }
         }
         settype($row['favorites'], 'int');
         settype($row['for_all'], 'int');
         return $row;
     }, $this->db->getUsersFiltersList($query_param));
     $response["draw"] = !empty($this->data['draw']) ? $this->data['draw'] : 1;
     $error = '';
     if ($this->isAjax) {
         $response = $this->generateAjaxResponse($response);
         return new Response(json_encode($response), empty($error) ? 200 : 500);
     } else {
         return $response;
     }
 }
 private function getAllFilters()
 {
     $filter_set = \Filters::getInstance();
     $filter_set->setResellerID($this->app['reseller']);
     $filter_set->initData('users', 'id');
     $self = $this;
     return array_map(function ($row) use($filter_set, $self) {
         if (($filter_set_data = @unserialize($row['filter_set'])) !== FALSE) {
             $row['filter_set'] = '';
             foreach ($filter_set_data as $data_row) {
                 $filter_set_filter = $filter_set->getFilters(array($data_row[0]));
                 $row_filter_set = $self->setLocalization($filter_set_filter[0]['title']) . ': ';
                 if (!empty($filter_set_filter[0]['values_set']) && is_array($filter_set_filter[0]['values_set'])) {
                     foreach ($filter_set_filter[0]['values_set'] as $filter_row) {
                         if ($data_row[2] == $filter_row['value']) {
                             $row_filter_set .= $self->setLocalization($filter_row['title']) . '; ';
                         }
                     }
                 } else {
                     $row_filter_set .= $data_row[2] . '; ';
                 }
                 $row['filter_set'] .= $row_filter_set;
             }
         }
         settype($row['favorites'], 'int');
         settype($row['for_all'], 'int');
         return $row;
     }, $this->db->getAllFromTable('filter_set', 'title'));
 }