KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /var/www/parasoffline.edukrypt.in/application/modules/admin/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/parasoffline.edukrypt.in/application/modules/admin/controllers/Lecture.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Lecture extends Admin_Controller
{

    public function __construct()
    {
        parent::__construct();
        $this->load->library('form_builder');
        $this->load->model(['lecture_model']);
        if (empty($this->session->userdata('user_id'))) {
            redirect('admin/panel/logout');
        }
    }

	public function read_duration_csv()
	{
		$rows = array();
		$file = $_FILES['file']['tmp_name'];
		if (($handle = fopen($file, 'r')) !== FALSE) {
			$i = 1;
			while (($lineArray = fgetcsv($handle, 4000)) !== FALSE) {
				if ($i != 1) {
					array_push($rows, $lineArray);
				}
				$i++;
			}
			fclose($handle);
		}
		$updateArray = array();
		foreach ($rows as $row) {
			$updateArray[] = array(
				'name' => trim($row[0]),
				'duration' => trim($row[1])
			);
		}

		$this->db->update_batch('lectures', $updateArray, 'name');

		if ($this->db->affected_rows() > 0) {
			$this->session->set_flashdata('message', '<div class="alert alert-success">CSV Updated In Lectures successfully!</div>');
		} else {
			$this->session->set_flashdata('message', '<div class="alert alert-danger">CSV updation failed!</div>');
		}
		redirect('admin/lecture/durationcsv');
	}

	public function durationcsv()
	{
		$this->mViewData['message'] = $this->session->flashdata('upload_success');
		$this->mTitle	.= ' | Upload Lectures List';

		$this->render('lecture/durationcsv');
	}
	
    public function index()
    {
        $this->mViewData['p_type']  = "list";
        $this->mViewData['message'] = $this->session->flashdata('upload_success');

        $admin_id = $this->session->userdata('user_id');
        $query_c  = $this->db->where('admin_id', $admin_id)->get('courses');

        $courses = [];

        if ($query_c->num_rows() > 0) {
            $courses  = $query_c->result();
        }

        $this->mViewData['courses'] = $courses;
        $this->mTitle              .= ' | Upload Lectures List';

        $this->render('lecture/list');
    }

    public function index2()
    {
        $crud = $this->generate_crud('lectures');
        if ($this->session->userdata('user_id') == 1) {
            //$crud->where('admin_id',$this->session->userdata('user_id'));
        } else {
            $crud->where('lectures.admin_id', $this->session->userdata('user_id'));
        }

        $crud->columns('file_name', 'name', 'admin_id', 'pos', 'chapter_id', 'uploaded_at', 'last_update');
        $crud->display_as('admin_id', 'Admin');
        $crud->display_as('chapter_id', 'Chapter');
        $crud->display_as('name', 'Orignal Name');
        $crud->set_relation('chapter_id', 'chapters', 'chapter');
        $crud->set_relation('admin_id', 'admin_users', 'username');
        $crud->field_type('name', 'readonly');
        $crud->field_type('chapter_id', 'readonly');
        $crud->field_type('admin_id', 'readonly');
        $crud->field_type('uploaded_at', 'readonly');


        $crud->unset_add();

        $crud->callback_edit_field('last_update', function () {
            return '<input name="last_update" type="text" value="' . uniqid() . '" readonly />';
        });
        $crud->callback_before_insert(array($this, 'chapter_callback'));
        $this->mTitle = 'Lectures';
        $this->render_crud();
    }

    function chapter_callback($post_array)
    {


        $post_array['last_update'] = $post_array['last_update'];
        return $post_array;
    }

    public function get_chapter()
    {
        if ($this->input->post('subject_id') != '') {
            $sid = $this->input->post('subject_id');
            $this->db->where('subject_id', $sid);
            $this->db->where('admin_id', $this->session->userdata('user_id'));
            $query = $this->db->get('chapters');

            foreach ($query->result() as $result) {
                echo '<option value="' . $result->id . '">' . $result->chapter . '</option>';
            }
        }
    }

    public function get_subject()
    {

        if ($this->input->post('course_id') != '') {
            $cid = $this->input->post('course_id');
            $this->db->where('course_id', $cid);
            $this->db->where('admin_id', $this->session->userdata('user_id'));
            $query = $this->db->get('subjects');

            foreach ($query->result() as $result) {
                echo '<option value="' . $result->id . '">' . $result->subject . '</option>';
            }
        }
    }

    function delete_selection()
    {
        $id_array = array();
        $selection = $this->input->post("selection", TRUE);
        $id_array = explode("|", $selection);

        foreach ($id_array as $item) :
            if ($item != '') :
                //DELETE ROW
                $this->db->where('id', $item);
                $this->db->delete('lectures');
            endif;
        endforeach;
    }

    public function upload1()
    {

        $arr = $this->input->post('upload_file');
        $chapter = $this->input->post('chapter');
        $e_type = $this->input->post('e_type');
        $storage_type = $this->input->post('storage_type');

        $this->db->order_by("id", "desc");
        $query = $this->db->get('lectures', 1);

        if (isset($query->result_array()[0])) {
            $pos = $query->result_array()[0]['pos'] + 0;
        } else {
            $pos = 0;
        }

        foreach ($arr as $r) {
            $name = $this->get_file_name_storage($r, $storage_type);
            // print_r($name);
            // exit;
            $pos = $pos + 1;
            $data = array(
                'file_name' => $this->input->post('file_name') . '_' . $pos,
                'name' => $name,
                'chapter_id' => $chapter,
                'pos' => $pos,
                'last_update' => uniqid(),
                'admin_id' => $this->session->userdata('user_id'),
                'e_type' => $e_type,
                'drobbox_video_id' => $r,
                'dropbox_file_name' => $name,
                'storage' => $storage_type
            );

            $result = $this->db->insert('lectures', $data);
        }
        if ($this->db->affected_rows()) {
            $this->session->set_flashdata('e_message', '<div class="alert alert-success">Files Added Successfully!</div>');
            redirect('admin/lecture/upload');
            // echo true;
        }
    }


    public function get_dropbox_filename($id)
    {
        $this->db->select('name,id');
        $this->db->where('id=BINARY', $id);
        $query = $this->db->get('dropbox_album');
        if ($query->num_rows() > 0) {
            $result = $query->row();
            $name = $result->name;
            // print_r($name);exit;
            return $name;
        }
        return false;
    }

    public function get_file_name_storage($id, $storage_type)
    {
        if ($storage_type == 'bb') {
            $this->db->select('name,id');
            $this->db->where('id=BINARY', $id);
            $query = $this->db->get('dropbox_album');
            if ($query->num_rows() > 0) {
                $result = $query->row();
                $name = $result->name;
                return $name;
            }
            return false;
        } else {
            $this->db->select('s3bucket.filename as name, s3bucket.path as id');
            $this->db->where('s3bucket.path', $id);
            $query = $this->db->get('s3bucket');
            if ($query->num_rows() > 0) {
                $result = $query->row();
                $name = $result->name;
                return $name;
            }
            return false;
        }
        return false;
    }

    public function get_storage_files()
    {
        $storage = $_POST['storage'];
        if (!empty($storage)) {
            if ($storage == 'do') {
                $query = $this->db->select('s3bucket.filename as name,s3bucket.path as id')->where('type', 'video')->where('size>0')->get('s3bucket');
                if ($query->num_rows() > 0) {
                    echo json_encode($query->result());
                    exit;
                }
                echo 0;
                exit;
            } else {
                $query = $this->db->select('dropbox_album.name as name,dropbox_album.id as id')->where('type', 'video')->get('dropbox_album');
                if ($query->num_rows() > 0) {
                    echo json_encode($query->result());
                    exit;
                }
                echo 0;
                exit;
            }
        }
        echo 0;
        exit;
    }

    public function get_storage_pdf_files()
    {
        $storage = $_POST['storage'];
        if (!empty($storage)) {
            if ($storage == 'do') {
                $query = $this->db->select('s3bucket.filename as name,s3bucket.path as id')->where('type', 'pdf')->where('size>0')->get('s3bucket');
                if ($query->num_rows() > 0) {
                    echo json_encode($query->result());
                    exit;
                }
                echo 0;
                exit;
            } else {
                $query = $this->db->select('dropbox_album.name as name,dropbox_album.id as id')->where('type', 'pdf')->get('dropbox_album');
                if ($query->num_rows() > 0) {
                    echo json_encode($query->result());
                    exit;
                }
                echo 0;
                exit;
            }
        }
        echo 0;
        exit;
    }

    // Dropbox
    public function upload()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $total_file = count($_FILES['upload_file']['name']);
            $chapter = $this->input->post('chapter');

            $this->db->order_by("id", "desc");
            $query = $this->db->get('lectures', 1);

            if (isset($query->result_array()[0])) {
                $pos = $query->result_array()[0]['pos'] + 0;
            } else {
                $pos = 0;
            }
            for ($i = 0; $i < $total_file; $i++) {
                $name = preg_replace('/\s+/', '', $_FILES['upload_file']['name'][$i]);
                $pos = $pos + 1;
                $data = array(
                    'file_name' => $this->input->post('file_name') . '_' . $pos,
                    'name' => $name,
                    'chapter_id' => $chapter,
                    'pos' => $pos,
                    'last_update' => uniqid(),
                    'e_type' => 'video',
                    'admin_id' => $this->session->userdata('user_id')
                );

                $result = $this->db->insert('lectures', $data);
            }
            if ($result) {

                $this->session->set_flashdata('upload_success', 'Well done! You successfully Uploaded Files.');

                redirect('admin/lecture/upload');
            }
        } else {
            $this->mViewData['message'] = $this->session->flashdata('upload_success');
            $courses = $this->db->where('admin_id', $this->session->userdata('user_id'))->get('courses');
            $this->mViewData['course'] = $courses->result();
            $drobbox_album = $this->db->where('type', 'video')->get('dropbox_album');
            $this->mViewData['dropbox_album'] = $drobbox_album->result();

            $this->mTitle .= 'Upload Lectures';
            $this->render('lecture/upload');
        }
    }

    // Dropbox
    public function pdf_upload_box()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $total_file = count($_FILES['upload_file']['name']);
            $chapter = $this->input->post('chapter');

            $this->db->order_by("id", "desc");
            $query = $this->db->get('lectures', 1);

            if (isset($query->result_array()[0])) {
                $pos = $query->result_array()[0]['pos'] + 0;
            } else {
                $pos = 0;
            }
            for ($i = 0; $i < $total_file; $i++) {
                $name = preg_replace('/\s+/', '', $_FILES['upload_file']['name'][$i]);
                $pos = $pos + 1;
                $data = array(
                    'file_name' => $this->input->post('file_name') . '_' . $pos,
                    'name' => $name,
                    'chapter_id' => $chapter,
                    'pos' => $pos,
                    'last_update' => uniqid(),
                    'e_type' => 'pdf',
                    'admin_id' => $this->session->userdata('user_id')
                );

                $result = $this->db->insert('lectures', $data);
            }
            if ($result) {

                $this->session->set_flashdata('upload_success', 'Well done! You successfully Uploaded Files.');

                redirect('admin/lecture/pdf_upload_box');
            }
        } else {
            $this->mViewData['message'] = $this->session->flashdata('upload_success');
            $courses = $this->db->where('admin_id', $this->session->userdata('user_id'))->get('courses');
            $this->mViewData['course'] = $courses->result();
            $drobbox_album = $this->db->where('type', 'pdf')->get('dropbox_album');
            $this->mViewData['dropbox_album'] = $drobbox_album->result();

            $this->mTitle .= 'Upload PDF';
            $this->render('lecture/pdf_upload_box');
        }
    }


    	public function lecture_posts()
	{
		$columns = array(
			0 => 'id',
			1 => 'pos',
			2 => 'file_name',
			3 => 'name',
			4 => 'type',
			5 => 'duration',
			6 => 'course',
			7 => 'subject',
			8 => 'chapter',
			9 => 'uploaded_at',
			10 => 'action',
		);

		if ($this->session->userdata('user_id') == 1) {
			$admin_id = null;
		} else {
			$admin_id = $this->session->userdata('user_id');
		}

		$course_id  = $this->input->post('course_id');
		$subject_id = $this->input->post('subject_id');
		$chapter_id = $this->input->post('chapter_id');

		$limit = $this->input->post('length');
		$start = $this->input->post('start');
		$order = $columns[$this->input->post('order')[0]['column']];
		$dir   = $this->input->post('order')[0]['dir'];

		$totalData     = $this->lecture_model->lecture_posts_count($course_id, $subject_id, $chapter_id, $admin_id);
		$totalFiltered = $totalData;

		if (empty($this->input->post('search')['value'])) {
			$posts = $this->lecture_model->lecture_posts($limit, $start, $order, $dir, $course_id, $subject_id, $chapter_id, $admin_id);
		} else {
			$search = $this->input->post('search')['value'];
			$posts =  $this->lecture_model->lecture_posts_search($limit, $start, $search, $order, $dir, $course_id, $subject_id, $chapter_id, $admin_id);
			$totalFiltered = $this->lecture_model->lecture_posts_search_count($search, $course_id, $subject_id, $chapter_id, $admin_id);
		}

		$data = array();

		if (!empty($posts)) {
			$i = 1;

			foreach ($posts as $post) {
				$nestedData['id'] = '<input type="checkbox" class="_check_in" value="' . $post->id . '">';
				$i++;

				if ($post->e_type == 'video') {
					$nestedData['file_name'] = '<span style="font-size: 12px;">' . $post->file_name . '</span>';
				} else {
					$nestedData['file_name'] =  ($post->file_name) ? '<span style="font-size: 12px;">' . $post->file_name . '</span>' : '<span style="font-size: 12px;">' . $post->name . '</span>';
				}

				$nestedData['name'] = '<span style="font-size: 12px;">' . $post->name . '</span>';
				// $nestedData['admin']         = '<span style="font-size: 12px;">' . $post->admin . '</span>';
				$nestedData['pos']           = '<span style="font-size: 12px;">' . $post->pos . '</span>';
				$nestedData['course']        = '<span style="font-size: 12px;">' . $post->course . '</span>';
				$nestedData['subject']       = '<span style="font-size: 12px;">' . $post->subject . '</span>';
				$nestedData['chapter']       = '<span style="font-size: 12px;">' . $post->chapter . '</span>';
				$nestedData['type']       = '<span style="font-size: 12px;">' . $post->e_type . '</span>';
				$nestedData['duration']       = '<span style="font-size: 12px;">' . $post->duration . '</span>';

				$nestedData['uploaded']    = '<span style="font-size: 12px;">' . date('m F Y', strtotime($post->uploaded_at)) . '</span>';
				// $nestedData['last_update'] = '<span style="font-size: 12px;">' . $post->last_update . '</span>';

				$nestedData['Actions'] = "<a class='btn btn-primary btn-sm' href='" . base_url('admin/lecture/edit_lecture/' . $post->id) . "' title='Delete'>Edit</a>&nbsp;&nbsp;&nbsp;";

				$nestedData['Actions'] .= "<a class='btn btn-danger btn-sm' href='" . base_url('admin/lecture/delete_lecture/' . $post->id) . "' title='Delete'>Trash</a>";

				$data[] = $nestedData;
			}
		}

		$json_data = array(
			"draw"            => intval($this->input->post('draw')),
			"recordsTotal"    => intval($totalData),
			"recordsFiltered" => intval($totalFiltered),
			"data"            => $data
		);

		echo json_encode($json_data);
	}

    public function delete_lecture($lec_id = null)
    {
        if (empty($lec_id)) {
            redirect('admin/lecture/index', 'refresh');
        }

        if ($this->session->userdata('user_id') == 1) {
            $admin_id = null;
        } else {
            $admin_id = $this->session->userdata('user_id');
        }

        $this->db->where('lectures.id', $lec_id);

        if (!empty($admin_id)) {
            $this->db->where('lectures.admin_id', $admin_id);
        }

        $query = $this->db->get('lectures', 1);

        if ($query->num_rows() > 0) {
            $this->db->where('lectures.id', $lec_id);

            if (!empty($admin_id)) {
                $this->db->where('lectures.admin_id', $admin_id);
            }

            $this->db->delete('lectures');

            if ($this->db->affected_rows() > 0) {
                $this->session->set_flashdata('message', '<div class="alert alert-success" role="alert">Record deleted!</div>');
                redirect('admin/lecture/index', 'refresh');
            }
        }

        $this->session->set_flashdata('message', '<div class="alert alert-danger" role="alert">Record did not found!</div>');
        redirect('admin/lecture/index', 'refresh');
    }

    public function delete_lecture_all()
    {
        $arr = [];

        if (empty($this->session->userdata('user_id'))) {
            $arr['status']      = 0;
            $arr['message']     = '<div class="alert alert-danger" role="alert">You session has expired!,/div>';
            $arr['redirect_to'] = base_url('admin/login');

            goto D_L_A;
        }

        if ($this->session->userdata('user_id') == 1) {
            $admin_id = null;
        } else {
            $admin_id = $this->session->userdata('user_id');
        }

        $lectures = $this->input->post('lectures');

        if ($lectures) {
            $affected_rows = 0;

            foreach ($lectures as $lecture) {
                $this->db->where('lectures.id', $lecture);

                if (!empty($admin_id)) {
                    $this->db->where('lectures.admin_id', $admin_id);
                }

                $this->db->delete('lectures');

                $affected_rows += $this->db->affected_rows();
            }

            if ($affected_rows > 0) {
                $arr['status']      = 1;
                $arr['message']     = '';

                $this->session->set_flashdata('message', '<div class="alert alert-success" role="alert">' . $affected_rows . ' record successfully deleted!</div>');

                goto D_L_A;
            }

            $arr['status']      = 0;
            $arr['message']     = '<div class="alert alert-danger" role="alert">Something went wrong!/div>';
        }

        D_L_A:
        echo json_encode($arr);
    }

	public function edit_lecture($lec_id)
	{
		if (empty($lec_id)) {
			redirect('admin/lecture/index', 'refresh');
		}

		$admin_id = $this->session->userdata('user_id');

		if (isset($_POST) && !empty($_POST)) {

			$file_name = $this->input->post('file_name');
			$duration = $this->input->post('duration');
			$u_data['file_name']   = $file_name;
			$u_data['duration']   = $duration;
			$u_data['last_update'] = uniqid();

			$this->db->where('lectures.id', $lec_id);

			if (!empty($admin_id)) {
				$this->db->where('lectures.admin_id', $admin_id);
			}

			$this->db->set($u_data);
			$this->db->update('lectures');

			if ($this->db->affected_rows() > 0) {
				$this->session->set_flashdata('message', '<div class="alert alert-success" role="alert">Record updated successfully!</div>');
				redirect('admin/lecture/edit_lecture/' . $lec_id, 'refresh');
			} else {
				$this->session->set_flashdata('message', '<div class="alert alert-info" role="alert">You have made no changes!</div>');
				redirect('admin/lecture/edit_lecture/' . $lec_id, 'refresh');
			}
		} else {


			$this->db->select('lectures.*, chapters.chapter, subjects.subject, courses.course');
			$this->db->where('lectures.id', $lec_id);
			$this->db->join('chapters', 'chapters.id = lectures.chapter_id');
			$this->db->join('subjects', 'subjects.id = chapters.subject_id');
			$this->db->join('courses', 'courses.id = subjects.course_id');

			if (!empty($admin_id)) {
				$this->db->where('lectures.admin_id', $admin_id);
			}

			$query = $this->db->get('lectures', 1);

			if ($query->num_rows() > 0) {
				$this->mViewData['p_type']   = "edit";
				$this->mViewData['lecture']  = $query->row();
				$this->mTitle               .= 'Edit Lecture';

				$this->render('lecture/edit');
			} else {
				$this->session->set_flashdata('message', '<div class="alert alert-danger" role="alert">Record did not found!</div>');
				redirect('admin/lecture/edit_lecture/' . $lec_id, 'refresh');
			}
		}
	}

    public function get_subject_by_id()
    {
        $arr = [];

        if (empty($this->session->userdata('user_id'))) {
            $arr['status']      = 0;
            $arr['message']     = '<span class="text-danger">You session has expired!,</span>';
            $arr['redirect_to'] = base_url('admin/login');

            goto GSBI;
        }

        if ($this->session->userdata('user_id') == 1) {
            $admin_id = null;
        } else {
            $admin_id = $this->session->userdata('user_id');
        }

        $course_id = $this->input->post('course_id');

        if ($course_id) {
            $this->db->select('subjects.id, subjects.subject');
            $this->db->where('subjects.course_id', $course_id);

            if (!empty($admin_id)) {
                $this->db->where('subjects.admin_id', $admin_id);
            }

            $query_c = $this->db->get('subjects');

            if ($query_c->num_rows() > 0) {
                $results = $query_c->result();

                $arr['status']      = 1;
                $arr['return_data'] = $results;
                $arr['message']     = '<span class="text-success">Subjects feched successfully!</span>';

                goto GSBI;
            }

            $arr['status']      = 1;
            $arr['message']     = '<span class="text-danger">Records did not found!</span>';
            $arr['return_data'] = [];
        }

        GSBI:
        echo json_encode($arr);
    }

    public function get_chapter_by_id()
    {
        $arr = [];

        if (empty($this->session->userdata('user_id'))) {
            $arr['status']      = 0;
            $arr['message']     = '<span class="text-danger">You session has expired!,</span>';
            $arr['redirect_to'] = base_url('admin/login');

            goto GCBI;
        }

        if ($this->session->userdata('user_id') == 1) {
            $admin_id = null;
        } else {
            $admin_id = $this->session->userdata('user_id');
        }

        $subject_id = $this->input->post('subject_id');

        if ($subject_id) {
            $this->db->select('chapters.id, chapters.chapter');
            $this->db->where('chapters.subject_id', $subject_id);

            if (!empty($admin_id)) {
                $this->db->where('chapters.admin_id', $admin_id);
            }

            $query_c = $this->db->get('chapters');

            if ($query_c->num_rows() > 0) {
                $results = $query_c->result();

                $arr['status']      = 1;
                $arr['return_data'] = $results;
                $arr['message']     = '<span class="text-success">Chapters feched successfully!</span>';

                goto GCBI;
            }

            $arr['status']      = 0;
            $arr['message']     = '<span class="text-danger">Records did not found!</span>';
            $arr['return_data'] = [];
        }

        GCBI:
        echo json_encode($arr);
    }

    public function csv_upload()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_FILES['csv']['error'] == 0) {
            $chapter = $this->input->post('chapter');
            $csv = array();

            $name = $_FILES['csv']['name'];
            $type = $_FILES['csv']['type'];
            $tmpName = $_FILES['csv']['tmp_name'];

            // check the file is a csv
            if (($handle = fopen($tmpName, 'r')) !== FALSE) {
                // necessary if a large csv file
                set_time_limit(0);
                $row = 0;

                while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
                    // get the values from the csv
                    if (!empty($data[0]) && !empty($data[1])) {
                        // number of fields in the csv
                        $col_count = count($data);

                        $csv[$row]['col1'] = $data[0];
                        $csv[$row]['col2'] = $data[1];
                    }

                    // inc the row
                    $row++;
                }
                fclose($handle);
            }

            if (count($csv) >= 2) {
                $datas = array();
                $i = 1;

                $this->db->order_by("id", "desc");
                $query = $this->db->get('lectures', 1);

                if (isset($query->result_array()[0])) {
                    $pos = $query->result_array()[0]['pos'] + 0;
                } else {
                    $pos = 0;
                }


                foreach ($csv as $cv) {
                    $pos++;
                    if ($i > 1 && !empty($cv['col1']) && !empty($cv['col2'])) {
                        $data = array(
                            "file_name" => $cv['col1'],
                            "name" => $cv['col2'],
                            'chapter_id'  => $chapter,
                            'pos'         => $pos,
                            'last_update' => uniqid(),
                            'admin_id'    => $this->session->userdata('user_id'),
                            'e_type'      => 'doc'
                        );
                        array_push($datas, $data);
                    }
                    $i++;
                }
                $this->db->insert_batch('lectures', $datas);
                if ($this->db->affected_rows()) {
                    $this->session->set_flashdata('e_message', '<div class="alert alert-success">Total ' . (count($csv) - 1) . ' PDF Records successfully Inserted</div>');
                    redirect('admin/lecture/csv_upload');
                }
            } else {
                $this->session->set_flashdata('e_message', '<div class="alert alert-danger">Blank CSV found!</div>');
                redirect('admin/lecture/csv_upload');
            }
        } else {
            $this->mViewData['message'] = $this->session->flashdata('upload_success');

            $courses = $this->db->where('admin_id', $this->session->userdata('user_id'))->get('courses');
            $this->mViewData['course'] = $courses->result();

            $quiz = $this->db->select('id, title')->where('admin_id', $this->session->userdata('user_id'))->get('mcq');
            $this->mViewData['quiz'] = $quiz->result();

            $this->mTitle .= 'Upload CSV';
            $this->render('lecture/csv_upload');
        }
    }

    public function pdf_upload()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $chapter = $this->input->post('chapter');
            $doc_id  = $_FILES['doc_id'];

            $total_file = count($_FILES['doc_id']['name']);
            // echo '<pre>';
            // print_r($mcq_id);exit;
            if (!$chapter || !$_FILES['doc_id'] || $total_file == 0) {
                $this->session->set_flashdata('e_message', '<div class="alert alert-danger">Chapter & MCQ both are required!</div>');

                redirect('admin/lecture/pdf_upload');
            }

            $this->db->order_by("id", "desc");
            $query = $this->db->get('lectures', 1);

            if (isset($query->result_array()[0])) {
                $pos = $query->result_array()[0]['pos'] + 0;
            } else {
                $pos = 0;
            }

            $aff_r = 0;
            $upload_error = NULL;

            for ($i = 0; $i < $total_file; $i++) {
                $name = NULL;

                $_FILES['userfile']['name'] = $doc_id['name'][$i];
                $_FILES['userfile']['type'] = $doc_id['type'][$i];
                $_FILES['userfile']['tmp_name'] = $doc_id['tmp_name'][$i];
                $_FILES['userfile']['error'] = $doc_id['error'][$i];
                $_FILES['userfile']['size'] = $doc_id['size'][$i];

                $config['upload_path']   = './assets/uploads/document/';
                $config['allowed_types'] = 'pdf';

                $this->load->library('upload', $config);

                if (!$this->upload->do_upload('userfile')) {
                    $upload_error = $this->upload->display_errors();

                    goto R_Error;
                } else {
                    $upload_success = $this->upload->data();

                    $file_name = $upload_success['raw_name'];
                    $name      = $upload_success['file_name'];
                }

                $pos = $pos + 1;

                $data = array(
                    'file_name'   => $file_name,
                    'name'        => $name,
                    'chapter_id'  => $chapter,
                    'pos'         => $pos,
                    'last_update' => uniqid(),
                    'admin_id'    => $this->session->userdata('user_id'),
                    'e_type'      => 'doc'
                );

                $result = $this->db->insert('lectures', $data);
                $aff_r += $this->db->affected_rows();
            }

            if ($result) {
                $this->session->set_flashdata('e_message', '<div class="alert alert-success">Total ' . $aff_r . ' PDF file successfully Uploaded</div>');

                redirect('admin/lecture/pdf_upload');
            }

            R_Error:
            if ($upload_error) {
                $this->session->set_flashdata('e_message', '<div class="alert alert-danger">Total ' . $aff_r . ' <br/>Error: ' . $upload_error . '</div>');

                redirect('admin/lecture/pdf_upload');
            }
        } else {
            $this->mViewData['message'] = $this->session->flashdata('upload_success');

            $courses = $this->db->where('admin_id', $this->session->userdata('user_id'))->get('courses');
            $this->mViewData['course'] = $courses->result();

            $quiz = $this->db->select('id, title')->where('admin_id', $this->session->userdata('user_id'))->get('mcq');
            $this->mViewData['quiz'] = $quiz->result();

            $this->mTitle .= 'Upload Pdf';
            $this->render('lecture/pdf_upload');
        }
    }

    public function quiz_upload()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            // $total_file = count($_FILES['upload_file']['name']);
            $chapter = $this->input->post('chapter');
            $mcq_id  = $this->input->post('mcq_id');

            if (!$chapter && !$mcq_id) {
                $this->session->set_flashdata('upload_success', 'Chapter & MCQ both are required!');

                redirect('admin/lecture/quiz_upload');
            }

            $this->db->order_by("id", "desc");
            $query = $this->db->get('lectures', 1);

            if (isset($query->result_array()[0])) {
                $pos = $query->result_array()[0]['pos'] + 0;
            } else {
                $pos = 0;
            }
            // echo '<pre>';
            // print_r($mcq_id);exit;
            for ($i = 0; $i < count($mcq_id); $i++) {
                // $name = preg_replace('/\s+/', '', $_FILES['upload_file']['name'][$i]);
                $__exp = explode('|', $mcq_id[$i]);

                $quiz_id  = $__exp[0];
                $name     = $__exp[1];

                $pos = $pos + 1;

                $data = array(
                    'quiz_id'       => $quiz_id,
                    'file_name'     => $name,
                    'name'          => $name,
                    'chapter_id'    => $chapter,
                    'pos'           => $pos,
                    'last_update'   => uniqid(),
                    'admin_id'      => $this->session->userdata('user_id'),
                    'e_type'        => 'mcq'
                );
                // print_r($data);
                // exit;
                $result = $this->db->insert('lectures', $data);
            }

            if ($result) {
                $this->session->set_flashdata('upload_success', 'Well done! You successfully Uploaded Files.');

                redirect('admin/lecture/quiz_upload');
            }
        } else {
            $this->mViewData['message'] = $this->session->flashdata('upload_success');

            $courses = $this->db->where('admin_id', $this->session->userdata('user_id'))->get('courses');
            $this->mViewData['course'] = $courses->result();

            $quiz = $this->db->select('id, title')->where('admin_id', $this->session->userdata('user_id'))->get('mcq');
            $this->mViewData['quiz'] = $quiz->result();

            $this->mTitle .= 'Upload Quiz';
            $this->render('lecture/quiz_upload');
        }
    }
}

Anon7 - 2021