EVOLUTION-NINJA
Edit File: Content_Model.php
<?php namespace App\Models\Admin; use CodeIgniter\Model; class Content_Model extends Model { protected $table = 'sub_domains'; protected $allowedFields = [ 'domain_name', 'delete_status', 'created_by', 'user_type_id', 'created_at', 'created_by' ]; public function getWhereResultOrderByAsc($table, $where, $orderBy) { $builder = $this->db->table($table); $builder->select('*'); $builder->where($where); $builder->orderBy($orderBy, 'ASC'); $query = $builder->get(); return $query->getResult(); } // public function getMaterialDetails($loginId) // { // $builder = $this->db->table('subject_materials AS A'); // Specify the table alias 'A' // $builder->select('A.*, B.login_id, B.username, C.sub_domain_id, C.sub_domain, D.chapter_id, D.chapter_name, E.domain_id, E.domain_name, F.topic_name'); // $builder->join('login B', 'B.login_id = A.created_by'); // $builder->join('sub_domains C', 'C.sub_domain_id = A.sub_domain_id'); // $builder->join('domains E', 'E.domain_id = A.domain_id'); // $builder->join('syllabus_chapter D', 'D.chapter_id = A.chapter_id'); // $builder->join('topics F', 'F.topic_id = A.topic_id'); // $builder->where('A.delete_status', 'ACTIVE'); // $builder->groupBy('A.chapter_id'); // Specify the column to group by using the table alias 'A' // $builder->where('B.delete_status', 'ACTIVE'); // $builder->where('C.delete_status', 'ACTIVE'); // $builder->where('E.delete_status', 'ACTIVE'); // $builder->where('F.delete_status', 'ACTIVE'); // $builder->where('A.created_by', $loginId); // $query = $builder->get(); // Get the query result // return $query->getResultArray(); // Return the result as an array // } // public function get_material_details($login_id) // { // return $this->select('A.*, B.login_id, B.username, C.sub_domain_id, C.sub_domain, D.chapter_id, D.chapter_name, E.domain_id, E.domain_name, F.topic_name') // ->from('subject_materials A') // ->join('login B', 'B.login_id = A.created_by') // ->join('sub_domains C', 'C.sub_domain_id = A.sub_domain_id') // ->join('domains E', 'E.domain_id = A.domain_id') // ->join('syllabus_chapter D', 'D.chapter_id = A.chapter_id') // ->join('topics F', 'F.topic_id = A.topic_id') // ->where('A.delete_status', 'ACTIVE') // ->groupBy('A.chapter_id') // ->where('B.delete_status', 'ACTIVE') // ->where('C.delete_status', 'ACTIVE') // ->where('E.delete_status', 'ACTIVE') // ->where('F.delete_status', 'ACTIVE') // ->where('A.created_by', $login_id) // ->findAll(); // } public function get_material_details($login_id) { $builder = $this->db->table('subject_materials A'); $builder->select('A.*, B.login_id, B.username, C.sub_domain_id, C.sub_domain, D.chapter_id, D.chapter_name, E.domain_id, E.domain_name, F.topic_name'); $builder->join('login B', 'B.login_id = A.created_by'); $builder->join('sub_domains C', 'C.sub_domain_id = A.sub_domain_id'); $builder->join('domains E', 'E.domain_id = A.domain_id'); $builder->join('syllabus_chapter D', 'D.chapter_id = A.chapter_id'); $builder->join('topics F', 'F.topic_id = A.topic_id'); $builder->where('A.delete_status', 'ACTIVE'); $builder->groupBy('A.chapter_id'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('C.delete_status', 'ACTIVE'); $builder->where('E.delete_status', 'ACTIVE'); $builder->where('F.delete_status', 'ACTIVE'); $builder->where('A.created_by', $login_id); $query = $builder->get(); $result = $query->getResultArray(); $array = []; foreach ($result as $val) { $data['material_id'] = $val['material_id']; $data['sub_domain_id'] = $val['sub_domain_id']; $data['chapter_id'] = $val['chapter_id']; $data['created_by'] = $val['created_by']; $data['domain_name'] = $val['domain_name']; $data['sub_domain'] = $val['sub_domain']; $data['chapter_name'] = $val['chapter_name']; $data['username'] = $val['username']; $array[] = $data; } return $array; } public function getWhereResultOrderBy($table, $where, $orderBy) { return $this->db->table($table) ->select('*') ->where($where) ->orderBy($orderBy, 'DESC') ->get() ->getResult(); } public function getDomains($login_id) { $builder = $this->db->table('domains'); $builder->select('*'); $builder->where(['delete_status' => 'ACTIVE', 'created_by' => $login_id]); $builder->orderBy('domain_name', 'ASC'); return $builder->get()->getResultArray(); } public function getwhereRow($table, $where) { $builder = $this->db->table($table); $builder->select('*'); $builder->where($where); $query = $builder->get(); return $query->getRow(); // Use getRow() to retrieve a single row } public function insertContent($data) { // Perform data validation and insertion return $this->insert($data); } public function insertData($table, $data, $returnID = false) { $builder = $this->db->table($table); $builder->insertBatch($data); if ($returnID) { return $this->db->insertID(); } return true; // Successfully inserted } public function getCategories($where = []) { return $this->where($where)->orderBy('domain_name')->findAll(); } public function get_where_result($table, $where) { $builder = $this->db->table($table); $builder->select('*'); $builder->where($where); $query = $builder->get(); return $query->getResult(); } public function get_where_orderby_row($table, $where, $order_by) { $db = \Config\Database::connect(); // Get the database connection $builder = $db->table($table); $builder->select('*'); $builder->where($where); $builder->orderBy($order_by, 'DESC'); $query = $builder->get(); return $query->getRow(); } public function get_where_row($domain_table, $where_domain) { $db = \Config\Database::connect(); // Get the database connection $builder = $db->table($domain_table); $builder->select('*'); $builder->where($where_domain); $query = $builder->get(); return $query->getRow(); } public function get_whererow($login_table, $where_id) { $db = \Config\Database::connect(); // Get the database connection $builder = $db->table($login_table); $builder->select('*'); $builder->where($where_id); $query = $builder->get(); return $query->getRow(); } public function updateRecord($where, $table, $data) { $db = \Config\Database::connect(); // Get the database instance $builder = $db->table($table); $builder->where($where); $builder->set($data); return $builder->update(); } public function update_record($where_chapter, $table, $update_data) { $db = \Config\Database::connect(); // Get the database instance $builder = $db->table($table); $builder->where($where_chapter); $builder->set($update_data); return $builder->update(); } // protected $table = 'topics'; // protected $table = 'topics'; public function getChapterTopics($chapter_id, $login_id) { $builder = $this->select('*') ->from('topics') ->where('chapter_id', $chapter_id) ->where('created_by', $login_id) ->where('delete_status', 'ACTIVE') ->get(); $result = $builder->getResult(); $array = []; foreach ($result as $res) { $data['topic_id'] = $res->topic_id; $data['topic_name'] = htmlspecialchars($res->topic_name); array_push($array, $data); } return $array; } public function updateData($where, $table, $data) { $builder = $this->db->table($table); $builder->where($where); return $builder->update($data); } public function update_Data($whereQ, $table1, $data1) { $builder = $this->db->table($table1); $builder->where($whereQ); return $builder->update($data1); } public function get_where_result_orderby_asc($domain_table, $where_domain, $order_by) { $db = db_connect(); // Get a database connection $builder = $db->table($domain_table); $builder->select('*'); $builder->where($where_domain); $builder->orderBy($order_by, 'ASC'); $query = $builder->get(); return $query->getResult(); } public function get_material_list_admin($loginId) { $resArray = []; $builder = $this->db->table('faculty_registration A') ->join('login C', 'A.login_id = C.login_id') ->join('faculty_subject_mapping D', 'A.login_id = D.login_id') ->where('A.delete_status', 'ACTIVE') ->where('A.institution_id', '0') ->where('C.delete_status', 'ACTIVE') ->where('D.delete_status', 'ACTIVE') ->where('C.approval_status', 'APPROVED') ->groupBy('D.domain_id') ->groupBy('D.login_id'); $query = $builder->get(); $result = $query->getResult(); foreach ($result as $res) { $domainId = $res->domain_id; $loginId = $res->login_id; $builder = $this->db->table('faculty_subject_mapping A') ->where('A.delete_status', 'ACTIVE') ->where('A.domain_id', $domainId) ->where('A.login_id', $loginId) ->where('A.approval_status', 'APPROVED'); $query = $builder->get(); $mappingResult = $query->getResult(); $subIdArray = []; foreach ($mappingResult as $mapRes) { $subDomainIds = json_decode($mapRes->sub_domain_id); $subIdArray = array_merge($subIdArray, $subDomainIds); } $subIdArray = array_unique($subIdArray); foreach ($subIdArray as $val) { $builder = $this->db->table('training_plans A') ->where('A.delete_status', 'ACTIVE') ->where('A.sub_domain_id', $val) ->where('A.created_by', $loginId); $queries = $builder->get(); $results = $queries->getResult(); $builder = $this->db->table('subject_materials A') ->where('A.delete_status', 'ACTIVE') ->where('A.sub_domain_id', $val) ->where('A.created_by', $loginId); $queries = $builder->get(); $materials = $queries->getResult(); $totalDuration = '00:00'; if ($results) { foreach ($results as $vals) { $duration = explode(':', $totalDuration); $dur = explode(':', $vals->session_time); $totalTimeHr = number_format($duration[0]) + number_format($dur[0]); $totalTimeMin = number_format($duration[1]) + number_format($dur[1]); if ($totalTimeMin >= 60) { $totalTimeHr = $totalTimeHr + 1; $totalTimeMin = ($totalTimeMin - 60); } $totalDuration = $totalTimeHr . ':' . $totalTimeMin; } $totalDur = explode(':', $totalDuration); if (strlen((string) $totalDur[1]) == 1) { $totalTimeMin = '0' . $totalTimeMin; $totalDuration = $totalTimeHr . ':' . $totalTimeMin; } $builder = $this->db->table('sub_domains A') ->join('domains B', 'B.domain_id = A.domain_id') ->where('A.delete_status', 'ACTIVE') ->where('B.delete_status', 'ACTIVE') ->where('A.sub_domain_id', $val); $queries = $builder->get(); $subDomain = $queries->getRow(); $data = [ 'login_id' => $loginId, 'sub_domain_id' => $val, 'sub_domain' => null, 'domain_name' => null, 'total_duration' => $totalDuration, 'username' => $res->username ]; if ($subDomain) { $data['sub_domain'] = $subDomain->sub_domain; $data['domain_name'] = $subDomain->domain_name; } array_push($resArray, $data); } elseif ($materials) { $totalDuration = '00:00'; $builder = $this->db->table('sub_domains A') ->join('domains B', 'B.domain_id = A.domain_id') ->where('A.delete_status', 'ACTIVE') ->where('B.delete_status', 'ACTIVE') ->where('A.sub_domain_id', $val); $queries = $builder->get(); $subDomain = $queries->getRow(); $data = [ 'login_id' => $loginId, 'sub_domain_id' => $val, 'sub_domain' => $subDomain->sub_domain, 'domain_name' => $subDomain->domain_name, 'total_duration' => $totalDuration, 'username' => $res->username ]; array_push($resArray, $data); } } } return $resArray; } }