EVOLUTION-NINJA
Edit File: view_model.php
<?php namespace App\Models; use CodeIgniter\Model; class view_model extends Model { public function get_all_courses() { $builder = $this->db->table('domains A'); $builder->select('*'); $builder->where('A.delete_status', 'ACTIVE'); $query = $builder->get(); $categories = $query->getResult(); $array = array(); foreach ($categories as $val) { $data['domain_name'] = $val->domain_name; $data['domain_id'] = $val->domain_id; $builder = $this->db->table('courses B'); $builder->select('*'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('B.domain_id', $val->domain_id); $builder->orderBy('B.created_at', 'DESC'); $builder->where('B.user_type_id', '1'); $builder->limit(4); $query = $builder->get(); $result = $query->getResult(); $builder = $this->db->table('courses B'); $builder->select('*'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('B.domain_id', $val->domain_id); $builder->orderBy('B.created_at', 'DESC'); $builder->where('B.user_type_id', '1'); $query = $builder->get(); $course_count = $query->getResult(); $new_array = array(); foreach ($result as $value) { $new_data['course_id'] = $value->course_id; $new_data['course_title'] = $value->course_title; $new_data['course_image'] = $value->course_image; $new_data['course_price'] = $value->course_price; $sub_domains = json_decode($value->sub_domain_id); $sub_domains = implode(',', $sub_domains); $sql = "SELECT sub_domain FROM sub_domains WHERE sub_domain_id IN ($sub_domains) AND delete_status='ACTIVE'"; $domain_result = $this->db->query($sql); $domain_result = $domain_result->getResult(); $domain_array = array(); foreach ($domain_result as $value1) { array_push($domain_array, $value1->sub_domain); } $new_data['sub_domains'] = implode(',', $domain_array); $builder = $this->db->table('user_course_mapping C'); $builder->select('*'); $builder->where('C.delete_status', 'ACTIVE'); $builder->where('C.course_id', $value->course_id); $query = $builder->get(); $new_data['total_enrollment'] = count($query->getResult()); array_push($new_array, $new_data); } $data['course_count'] = $course_count; $data['course'] = $new_array; array_push($array, $data); } return $array; } public function get_where_result_orderby_asc($table, $where, $order_by) { $builder = $this->db->table($table); $builder->select('*')->where($where)->orderBy($order_by, 'ASC'); $query = $builder->get(); return $query->getResult(); } public function get_category_courses($domain_id) { $builder = $this->db->table('domains A'); $builder->select('*'); $builder->join('courses B', 'A.domain_id = B.domain_id'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('A.domain_id', $domain_id); $query = $builder->get(); $result = $query->getResult(); $new_array = array(); foreach ($result as $value) { $new_data['course_id'] = $value->course_id; $new_data['course_title'] = $value->course_title; $new_data['course_image'] = $value->course_image; $new_data['course_price'] = $value->course_price; $new_data['domain_name'] = $value->domain_name; $sub_domains = json_decode($value->sub_domain_id); $sub_domains = implode(',', $sub_domains); $sql = "SELECT sub_domain FROM sub_domains WHERE sub_domain_id IN ($sub_domains) AND delete_status='ACTIVE'"; $domain_result = $this->db->query($sql)->getResult(); $domain_array = array(); foreach ($domain_result as $value1) { array_push($domain_array, $value1->sub_domain); } $new_data['sub_domains'] = implode(',', $domain_array); $builder = $this->db->table('user_course_mapping C'); $builder->select('*'); $builder->where('C.delete_status', 'ACTIVE'); $builder->where('C.course_id', $value->course_id); $query = $builder->get(); $new_data['total_enrollment'] = count($query->getResult()); array_push($new_array, $new_data); } return $new_array; } public function get_subdomain_wise_courses($sub_domain_id) { $builder = $this->db->table('domains A'); $builder->select('*'); $builder->where('A.delete_status', 'ACTIVE'); $query = $builder->get(); $categories = $query->getResult(); $array = array(); $i = 0; foreach ($categories as $val) { $data['domain_name'] = $val->domain_name; $data['domain_id'] = $val->domain_id; $builder = $this->db->table('courses B'); $builder->select('*'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('B.domain_id', $val->domain_id); $builder->orderBy('B.created_at', 'DESC'); $query = $builder->get(); $result = $query->getResult(); $new_array = array(); foreach ($result as $value) { $sub_domains = json_decode($value->sub_domain_id); foreach ($sub_domains as $val) { if ($val == $sub_domain_id) { $data['course_count'] = $result; $i = $i + 1; $new_data['course_id'] = $value->course_id; $new_data['course_title'] = $value->course_title; $new_data['course_image'] = $value->course_image; $new_data['course_price'] = $value->course_price; $sub_domains = implode(',', $sub_domains); $sql = "SELECT sub_domain FROM sub_domains WHERE sub_domain_id IN ($sub_domains) AND delete_status='ACTIVE'"; $domain_result = $this->db->query($sql)->getResult(); $domain_array = array(); foreach ($domain_result as $value1) { array_push($domain_array, $value1->sub_domain); } $new_data['sub_domains'] = implode(',', $domain_array); $builder = $this->db->table('user_course_mapping C'); $builder->select('*'); $builder->where('C.delete_status', 'ACTIVE'); $builder->where('C.course_id', $value->course_id); $query = $builder->get(); $new_data['total_enrollment'] = count($query->getResult()); array_push($new_array, $new_data); } } } $data['course'] = $new_array; array_push($array, $data); } $result_data = array(); $result_data['i'] = $i; $result_data['result'] = $array; return $result_data; } public function get_domain_courses() { $query = $this->db->table('courses A') ->select('*') ->join('domains B', 'B.domain_id = A.domain_id') ->where('A.delete_status', 'ACTIVE') ->where('B.delete_status', 'ACTIVE') ->where('A.user_type_id', '1') ->where('B.user_type_id', '1') ->groupBy('A.domain_id') ->get(); $result = $query->getResult(); $res_array = []; foreach ($result as $values) { $sub_domain_array = []; $sub_domain_ids = []; $query = $this->db->table('courses A') ->select('*') ->where('A.domain_id', $values->domain_id) ->where('A.delete_status', 'ACTIVE') ->where('A.user_type_id', '1') ->get(); $courses_result = $query->getResult(); foreach ($courses_result as $val) { $sub_domain_ids = array_merge($sub_domain_ids, json_decode($val->sub_domain_id)); } $sub_domain_ids = array_unique($sub_domain_ids); $query = $this->db->table('sub_domains A') ->select('A.sub_domain_id') ->whereIn('A.sub_domain_id', $sub_domain_ids) ->where('A.delete_status', 'ACTIVE') ->where('A.user_type_id', '1'); $query = $query->distinct()->get(); $sub_domains_result = $query->getResult(); foreach ($sub_domains_result as $sub_domain) { $sub_domain_array[] = $sub_domain; } $data = [ 'sub_domains' => $sub_domain_array, 'domains' => $values ]; $res_array[] = $data; } return $res_array; } }