Uname:Linux EDL-STRETCH 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64

403WebShell
403Webshell
Server IP : 188.114.97.2  /  Your IP : 104.23.197.231
Web Server : Apache/2.4.59 (Debian)
System : Linux EDL-STRETCH 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64
User : edlftp ( 1002)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/git/sms.edl.codes.solutions/application/controllers/BO/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/git/sms.edl.codes.solutions/application/controllers/BO/Admin.php
<?php

if (!defined('BASEPATH'))

    exit('No direct script access allowed');

/*

 *  @author     : Creativeitem

 *  date        : 14 september, 2017

 *  Ekattor School Management System Pro

 *  http://codecanyon.net/user/Creativeitem

 *  http://support.creativeitem.com

 */

class Admin extends NS_Controller

{

	function __construct()

	{

		parent::__construct();

		$this->load->database();

        $this->load->library('session');

        $this->load->model('Barcode_model');



       /*cache control*/

		$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');

		$this->output->set_header('Pragma: no-cache');

    }



    /***default functin, redirects to login page if no admin logged in yet***/

    public function index()

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url() . 'index.php?login', 'refresh');

        if ($this->session->userdata('admin_login') == 1)

            redirect(base_url() . 'index.php?admin/dashboard', 'refresh');

    }



    /***ADMIN DASHBOARD***/

    function dashboard()

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        $page_data['page_name']  = 'dashboard';

        $page_data['page_title'] = get_phrase('admin_dashboard');

        $this->load->view('backend/index', $page_data);

    }



    /****MANAGE STUDENTS CLASSWISE*****/

	function student_add()

	{

		if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



		$page_data['page_name']  = 'student_add';

		$page_data['page_title'] = get_phrase('add_student');

		$this->load->view('backend/index', $page_data);

	}



	function student_bulk_add()

	{

		if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

		$page_data['page_name']  = 'student_bulk_add';

		$page_data['page_title'] = get_phrase('add_bulk_student');

		$this->load->view('backend/index', $page_data);

	}



  function student_profile($student_id)

  {

    if ($this->session->userdata('admin_login') != 1) {

      redirect(base_url(), 'refresh');

    }

    $page_data['page_name']  = 'student_profile';

		$page_data['page_title'] = get_phrase('student_profile');

    $page_data['student_id']  = $student_id;

		$this->load->view('backend/index', $page_data);

  }



    function get_sections($course_id)

    {

        $page_data['course_id'] = $course_id;

        $this->load->view('backend/admin/student_bulk_add_sections' , $page_data);

    }



	function student_information($course_id = '')

	{

		if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');



		$page_data['page_name']  	= 'student_information';

		$page_data['page_title'] 	= get_phrase('student_information'). " - ".get_phrase('course')." : ".

											$this->crud_model->get_course_name($course_id);

		$page_data['course_id'] 	= $course_id;

		$this->load->view('backend/index', $page_data);

	}



    function student_marksheet($student_id = '') {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        $course_id     = $this->db->get_where('enroll' , array(

            'student_id' => $student_id , 'year' => $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description

        ))->row()->course_id;

        $student_name = $this->db->get_where('student' , array('student_id' => $student_id))->row()->name;

        $course_name   = $this->db->get_where('course' , array('course_id' => $course_id))->row()->name;

        $page_data['page_name']  =   'student_marksheet';

        $page_data['page_title'] =   get_phrase('marksheet_for') . ' ' . $student_name . ' (' . get_phrase('course') . ' ' . $course_name . ')';

        $page_data['student_id'] =   $student_id;

        $page_data['course_id']   =   $course_id;

        $this->load->view('backend/index', $page_data);

    }



    function student_marksheet_print_view($student_id , $exam_id) {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        $course_id     = $this->db->get_where('enroll' , array(

            'student_id' => $student_id , 'year' => $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description

        ))->row()->course_id;

        $course_name   = $this->db->get_where('course' , array('course_id' => $course_id))->row()->name;



        $page_data['student_id'] =   $student_id;

        $page_data['course_id']   =   $course_id;

        $page_data['exam_id']    =   $exam_id;

        $this->load->view('backend/admin/student_marksheet_print_view', $page_data);

    }



    function student($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        $running_year = $this->db->get_where('settings' , array(

            'type' => 'running_year'

        ))->row()->description;

        if ($param1 == 'create') {

            $data['name']         = $this->input->post('name');

            if($this->input->post('birthday') != null){

              $data['birthday']     = $this->input->post('birthday');

            }

            if($this->input->post('sex') != null){

              $data['sex']          = $this->input->post('sex');

            }



            if($this->input->post('address') != null){

              $data['address']      = $this->input->post('address');

            }

            if($this->input->post('phone') != null){

              $data['phone']        = $this->input->post('phone');

            }

            if($this->input->post('student_code') != null){

                $data['student_code'] = $this->input->post('student_code');

                $code_validation = code_validation_insert($data['student_code']);

                if(!$code_validation){

                    $this->session->set_flashdata('error_message' , get_phrase('this_id_no_is_not_available'));

                    redirect(base_url() . 'index.php?admin/student_add/', 'refresh');

                }

            }



            $data['email']        = $this->input->post('email');

            $data['password']     = sha1($this->input->post('password'));





            if($this->input->post('parent_id') != null){

                $data['parent_id']    = $this->input->post('parent_id');

            }

            if($this->input->post('dormitory_id') != null){

                $data['dormitory_id'] = $this->input->post('dormitory_id');

            }



            if($this->input->post('transport_id') != null){

                $data['transport_id'] = $this->input->post('transport_id');

            }

            $validation = email_validation($data['email']);

            if($validation == 1){

                $this->db->insert('student', $data);

                $student_id = $this->db->insert_id();



                $data2['student_id']     = $student_id;

                $data2['enroll_code']    = substr(md5(rand(0, 1000000)), 0, 7);

                if($this->input->post('course_id') != null){

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

                }

                if ($this->input->post('section_id') != '') {

                    $data2['section_id'] = $this->input->post('section_id');

                }

                if ($this->input->post('roll') != '') {

                    $data2['roll']           = $this->input->post('roll');

                }

                $data2['date_added']     = strtotime(date("Y-m-d H:i:s"));

                $data2['year']           = $running_year;

                $this->db->insert('enroll', $data2);

                move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/student_image/' . $student_id . '.jpg');



                $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

                $this->email_model->account_opening_email('student', $data['email']); //SEND EMAIL ACCOUNT OPENING EMAIL

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

            }

            redirect(base_url() . 'index.php?admin/student_add/', 'refresh');

        }

        if ($param1 == 'do_update') {

            $data['name']           = $this->input->post('name');

            $data['email']          = $this->input->post('email');

            $data['parent_id']      = $this->input->post('parent_id');

            if ($this->input->post('birthday') != null) {

                $data['birthday']   = $this->input->post('birthday');

            }

            if ($this->input->post('sex') != null) {

                $data['sex']            = $this->input->post('sex');

            }

            if ($this->input->post('address') != null) {

               $data['address']        = $this->input->post('address');

            }

            if ($this->input->post('phone') != null) {

                $data['phone']          = $this->input->post('phone');

            }

            if ($this->input->post('dormitory_id') != null) {

               $data['dormitory_id']   = $this->input->post('dormitory_id');

            }

            if ($this->input->post('transport_id') != null) {

                $data['transport_id']   = $this->input->post('transport_id');

            }



            //student id

            if($this->input->post('student_code') != null){

                $data['student_code'] = $this->input->post('student_code');

                $code_validation = code_validation_update($data['student_code'],$param2);

                if(!$code_validation){

                    $this->session->set_flashdata('error_message' , get_phrase('this_id_no_is_not_available'));

                    redirect(base_url() . 'index.php?admin/student_information/'.$param3, 'refresh');

                }

            }





            $validation = email_validation_for_edit($data['email'], $param2, 'student');

            if($validation == 1){

                $this->db->where('student_id', $param2);

                $this->db->update('student', $data);



                $data2['section_id'] = $this->input->post('section_id');

                if ($this->input->post('roll') != null) {

                  $data2['roll'] = $this->input->post('roll');

                }

                else{

                  $data2['roll'] = null;

                }

                $running_year = $this->db->get_where('settings' , array('type'=>'running_year'))->row()->description;

                $this->db->where('student_id' , $param2);

                $this->db->where('year' , $running_year);

                $this->db->update('enroll' , array(

                    'section_id' => $data2['section_id'] , 'roll' => $data2['roll']

                ));



                move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/student_image/' . $param2 . '.jpg');

                $this->crud_model->clear_cache();

                $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

           }

           else{

             $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

           }

            redirect(base_url() . 'index.php?admin/student_information/' . $param3, 'refresh');

        }

    }



    function delete_student($student_id = '', $course_id = '') {

      $this->crud_model->delete_student($student_id);

      $this->session->set_flashdata('flash_message' , get_phrase('student_deleted'));

      redirect(base_url() . 'index.php?admin/student_information/' . $course_id, 'refresh');

    }



    // STUDENT PROMOTION

    function student_promotion($param1 = '' , $param2 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');



        if($param1 == 'promote') {

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

            $from_course_id =   $this->input->post('promotion_from_course_id');

            $students_of_promotion_course =   $this->db->get_where('enroll' , array(

                'course_id' => $from_course_id , 'year' => $running_year

            ))->result_array();

            foreach($students_of_promotion_course as $row) {

                $enroll_data['enroll_code']     =   substr(md5(rand(0, 1000000)), 0, 7);

                $enroll_data['student_id']      =   $row['student_id'];

                $enroll_data['course_id']        =   $this->input->post('promotion_status_'.$row['student_id']);

                $enroll_data['year']            =   $this->input->post('promotion_year');

                $enroll_data['date_added']      =   strtotime(date("Y-m-d H:i:s"));

                $this->db->insert('enroll' , $enroll_data);

            }

            $this->session->set_flashdata('flash_message' , get_phrase('new_enrollment_successfull'));

            redirect(base_url() . 'index.php?admin/student_promotion' , 'refresh');

        }



        $page_data['page_title']    = get_phrase('student_promotion');

        $page_data['page_name']  = 'student_promotion';

        $this->load->view('backend/index', $page_data);

    }



    function get_students_to_promote($course_id_from , $course_id_to , $running_year , $promotion_year)

    {

        $page_data['course_id_from']     =   $course_id_from;

        $page_data['course_id_to']       =   $course_id_to;

        $page_data['running_year']      =   $running_year;

        $page_data['promotion_year']    =   $promotion_year;

        $this->load->view('backend/admin/student_promotion_selector' , $page_data);

    }





     /****MANAGE PARENTS CLASSWISE*****/

    function parent($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        if ($param1 == 'create') {

            $data['name']        			= $this->input->post('name');

            $data['email']       			= $this->input->post('email');

            $data['password']    			= sha1($this->input->post('password'));

            if ($this->input->post('phone') != null) {

               $data['phone'] = $this->input->post('phone');

            }

            if ($this->input->post('address') != null) {

               $data['address'] = $this->input->post('address');

            }

            if ($this->input->post('profession') != null) {

               $data['profession'] = $this->input->post('profession');

            }

            $validation = email_validation($data['email']);

            if($validation == 1){

                $this->db->insert('parent', $data);

                $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

                $this->email_model->account_opening_email('parent', $data['email']); //SEND EMAIL ACCOUNT OPENING EMAIL

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

            }



            redirect(base_url() . 'index.php?admin/parent/', 'refresh');

        }

        if ($param1 == 'edit') {

            $data['name']                   = $this->input->post('name');

            $data['email']                  = $this->input->post('email');

            if ($this->input->post('phone') != null) {

               $data['phone'] = $this->input->post('phone');

            }

            else{

              $data['phone'] = null;

            }

            if ($this->input->post('address') != null) {

                $data['address'] = $this->input->post('address');

            }

            else{

               $data['address'] = null;

            }

            if ($this->input->post('profession') != null) {

                $data['profession'] = $this->input->post('profession');

            }

            else{

                $data['profession'] = null;

            }

            $validation = email_validation_for_edit($data['email'], $param2, 'parent');

            if ($validation == 1) {

                $this->db->where('parent_id' , $param2);

                $this->db->update('parent' , $data);

                $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

            }



            redirect(base_url() . 'index.php?admin/parent/', 'refresh');

        }

        if ($param1 == 'delete') {

            $this->db->where('parent_id' , $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/parent/', 'refresh');

        }

        $page_data['page_title'] 	= get_phrase('all_parents');

        $page_data['page_name']  = 'parent';

        $this->load->view('backend/index', $page_data);

    }





    /****MANAGE TEACHERS*****/

    function teacher($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        if ($param1 == 'create') {

            $data['name']     = $this->input->post('name');

            $data['email']    = $this->input->post('email');

            $data['password'] = sha1($this->input->post('password'));

            if ($this->input->post('birthday') != null) {

                $data['birthday'] = $this->input->post('birthday');

            }

            if ($this->input->post('sex') != null) {

               $data['sex'] = $this->input->post('sex');

            }

            if ($this->input->post('address') != null) {

                $data['address'] = $this->input->post('address');

            }

            if ($this->input->post('phone') != null) {

                $data['phone'] = $this->input->post('phone');

            }

            if ($this->input->post('designation') != null) {

                $data['designation'] = $this->input->post('designation');

            }

            if ($this->input->post('show_on_website') != null) {

                $data['show_on_website'] = $this->input->post('show_on_website');

            }

            $links = array();

            $social['facebook'] = $this->input->post('facebook');

            $social['twitter'] = $this->input->post('twitter');

            $social['linkedin'] = $this->input->post('linkedin');

            array_push($links, $social);

            $data['social_links'] = json_encode($links);



            $validation = email_validation($data['email']);

            if($validation == 1){

                $this->db->insert('teacher', $data);

                $teacher_id = $this->db->insert_id();

                move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/teacher_image/' . $teacher_id . '.jpg');

                $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

                $this->email_model->account_opening_email('teacher', $data['email']); //SEND EMAIL ACCOUNT OPENING EMAIL

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

            }



            redirect(base_url() . 'index.php?admin/teacher/', 'refresh');

        }

        if ($param1 == 'do_update') {

            $data['name']        = $this->input->post('name');

            $data['email']       = $this->input->post('email');



            if ($this->input->post('birthday') != null) {

                $data['birthday'] = $this->input->post('birthday');

            }

            else{

              $data['birthday'] = null;

            }

            if ($this->input->post('sex') != null) {

                $data['sex']         = $this->input->post('sex');

            }

            if ($this->input->post('address') != null) {

                $data['address']     = $this->input->post('address');

            }

            else{

              $data['address'] = null;

            }

            if ($this->input->post('phone') != null) {

               $data['phone']       = $this->input->post('phone');

            }

            else{

              $data['phone'] = null;

            }

            if ($this->input->post('designation') != null) {

               $data['designation']       = $this->input->post('designation');

            }

            else{

              $data['designation'] = null;

            }

            if ($this->input->post('show_on_website') != null) {

               $data['show_on_website']       = $this->input->post('show_on_website');

            }

            else{

              $data['show_on_website'] = null;

            }

            $links = array();

            $social['facebook'] = $this->input->post('facebook');

            $social['twitter'] = $this->input->post('twitter');

            $social['linkedin'] = $this->input->post('linkedin');

            array_push($links, $social);

            $data['social_links'] = json_encode($links);



            $validation = email_validation_for_edit($data['email'], $param2, 'teacher');

            if($validation == 1){

                $this->db->where('teacher_id', $param2);

                $this->db->update('teacher', $data);

                move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/teacher_image/' . $param2 . '.jpg');

                $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

            }



            redirect(base_url() . 'index.php?admin/teacher/', 'refresh');

        }

        else if ($param1 == 'personal_profile') {

            $page_data['personal_profile']   = true;

            $page_data['current_teacher_id'] = $param2;

        }

        else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('teacher', array(

                'teacher_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $this->db->where('teacher_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/teacher/', 'refresh');

        }

        $page_data['teachers']   = $this->db->get('teacher')->result_array();

        $page_data['page_name']  = 'teacher';

        $page_data['page_title'] = get_phrase('manage_teacher');

        $this->load->view('backend/index', $page_data);

    }



    /****MANAGE SUBJECTS*****/

    function subject($param1 = '', $param2 = '' , $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        if ($param1 == 'create') {

            $data['name']       = $this->input->post('name');

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

            $data['year']       = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

            if ($this->input->post('teacher_id') != null) {

                $data['teacher_id'] = $this->input->post('teacher_id');

            }



            $this->db->insert('subject', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/subject/'.$data['course_id'], 'refresh');

        }

        if ($param1 == 'do_update') {

            $data['name']       = $this->input->post('name');

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

            $data['teacher_id'] = $this->input->post('teacher_id');

            $data['year']       = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;



            $this->db->where('subject_id', $param2);

            $this->db->update('subject', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/subject/'.$data['course_id'], 'refresh');

        } else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('subject', array(

                'subject_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $this->db->where('subject_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/subject/'.$param3, 'refresh');

        }

        $running_year = $this->db->get_where('settings', array('type' => 'running_year'))->row()->description;

		    $page_data['course_id']   = $param1;

        $page_data['subjects']   = $this->db->get_where('subject' , array('course_id' => $param1, 'year' => $running_year))->result_array();

        $page_data['page_name']  = 'subject';

        $page_data['page_title'] = get_phrase('manage_subject');

        $this->load->view('backend/index', $page_data);

    }



    /****MANAGE CLASSES*****/

    function courses($param1 = '', $param2 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        if ($param1 == 'create') {

            $data['name']         = $this->input->post('name');

            $data['teacher_id']   = $this->input->post('teacher_id');

            if ($this->input->post('name_numeric') != null) {

                $data['name_numeric'] = $this->input->post('name_numeric');

            }



            $this->db->insert('course', $data);

            $course_id = $this->db->insert_id();

            //create a section by default

            $data2['course_id']  =   $course_id;

            $data2['name']      =   'A';

            $data2['teacher_id']=$data['teacher_id'];

            $this->db->insert('section' , $data2);



            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/courses/', 'refresh');

        }

        if ($param1 == 'do_update') {

            $data['name']         = $this->input->post('name');

            $data['teacher_id']   = $this->input->post('teacher_id');

            if ($this->input->post('name_numeric') != null) {

                $data['name_numeric'] = $this->input->post('name_numeric');

            }

            else{

               $data['name_numeric'] = null;

            }

            $this->db->where('course_id', $param2);

            $this->db->update('course', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/courses/', 'refresh');

        } else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('course', array(

                'course_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $this->db->where('course_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/courses/', 'refresh');

        }

        $page_data['courses']    = $this->db->get('course')->result_array();

        $page_data['page_name']  = 'course';

        $page_data['page_title'] = get_phrase('manage_course');

        $this->load->view('backend/index', $page_data);

    }

     function get_subject($course_id)

    {

        $subject = $this->db->get_where('subject' , array(

            'course_id' => $course_id

        ))->result_array();

        foreach ($subject as $row) {

            echo '<option value="' . $row['subject_id'] . '">' . $row['name'] . '</option>';

        }

    }

    // ACADEMIC SYLLABUS

    function academic_syllabus($course_id = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        // detect the first class

        if ($course_id == '')

            $course_id           =   $this->db->get('course')->first_row()->course_id;



        $page_data['page_name']  = 'academic_syllabus';

        $page_data['page_title'] = get_phrase('academic_syllabus');

        $page_data['course_id']   = $course_id;

        $this->load->view('backend/index', $page_data);

    }



    function upload_academic_syllabus()

    {

        $data['academic_syllabus_code'] =   substr(md5(rand(0, 1000000)), 0, 7);

        if ($this->input->post('description') != null) {

           $data['description'] = $this->input->post('description');

        }

        $data['title']                  =   $this->input->post('title');

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

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

        $data['uploader_type']          =   $this->session->userdata('login_type');

        $data['uploader_id']            =   $this->session->userdata('login_user_id');

        $data['year']                   =   $this->db->get_where('settings',array('type'=>'running_year'))->row()->description;

        $data['timestamp']              =   strtotime(date("Y-m-d H:i:s"));

        //uploading file using codeigniter upload library

        $files = $_FILES['file_name'];

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

        $config['upload_path']   =  'uploads/syllabus/';

        $config['allowed_types'] =  '*';

        $_FILES['file_name']['name']     = $files['name'];

        $_FILES['file_name']['type']     = $files['type'];

        $_FILES['file_name']['tmp_name'] = $files['tmp_name'];

        $_FILES['file_name']['size']     = $files['size'];

        $this->upload->initialize($config);

        $this->upload->do_upload('file_name');



        $data['file_name'] = $_FILES['file_name']['name'];



        $this->db->insert('academic_syllabus', $data);

        $this->session->set_flashdata('flash_message' , get_phrase('syllabus_uploaded'));

        redirect(base_url() . 'index.php?admin/academic_syllabus/' . $data['course_id'] , 'refresh');



    }



    function download_academic_syllabus($academic_syllabus_code)

    {

        $file_name = $this->db->get_where('academic_syllabus', array(

            'academic_syllabus_code' => $academic_syllabus_code

        ))->row()->file_name;

        $this->load->helper('download');

        $data = file_get_contents("uploads/syllabus/" . $file_name);

        $name = $file_name;



        force_download($name, $data);

    }



    function delete_academic_syllabus($academic_syllabus_code) {

      $file_name = $this->db->get_where('academic_syllabus', array(

          'academic_syllabus_code' => $academic_syllabus_code

      ))->row()->file_name;

      if (file_exists('uploads/syllabus/'.$file_name)) {

        // unlink('uploads/syllabus/'.$file_name);

      }

      $this->db->where('academic_syllabus_code', $academic_syllabus_code);

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



      $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

      redirect(base_url() . 'index.php?admin/academic_syllabus' , 'refresh');



    }



    /****MANAGE SECTIONS*****/

    function section($course_id = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        // detect the first class

        if ($course_id == '')

            $course_id           =   $this->db->get('course')->first_row()->course_id;



        $page_data['page_name']  = 'section';

        $page_data['page_title'] = get_phrase('manage_sections');

        $page_data['course_id']   = $course_id;

        $this->load->view('backend/index', $page_data);

    }



    function sections($param1 = '' , $param2 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        if ($param1 == 'create') {

            $data['name']       =   $this->input->post('name');

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

            $data['teacher_id'] =   $this->input->post('teacher_id');

            if ($this->input->post('nick_name') != null) {

               $data['nick_name'] = $this->input->post('nick_name');

            }

            $validation = duplication_of_section_on_create($data['course_id'], $data['name']);

            if($validation == 1){

                $this->db->insert('section' , $data);

                $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('duplicate_name_of_section_is_not_allowed'));

            }



            redirect(base_url() . 'index.php?admin/section/' . $data['course_id'] , 'refresh');

        }



        if ($param1 == 'edit') {

            $data['name']       =   $this->input->post('name');

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

            $data['teacher_id'] =   $this->input->post('teacher_id');

            if ($this->input->post('nick_name') != null) {

                $data['nick_name'] = $this->input->post('nick_name');

            }

            else{

                $data['nick_name'] = null;

            }

            $validation = duplication_of_section_on_edit($param2, $data['course_id'], $data['name']);

            if ($validation == 1) {

               $this->db->where('section_id' , $param2);

               $this->db->update('section' , $data);

               $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            }

            else{

               $this->session->set_flashdata('error_message' , get_phrase('duplicate_name_of_section_is_not_allowed'));

            }



            redirect(base_url() . 'index.php?admin/section/' . $data['course_id'] , 'refresh');

        }



        if ($param1 == 'delete') {

            $this->db->where('section_id' , $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/section' , 'refresh');

        }

    }



    function get_course_section($course_id)

    {

        $sections = $this->db->get_where('section' , array(

            'course_id' => $course_id

        ))->result_array();

        foreach ($sections as $row) {

            echo '<option value="' . $row['section_id'] . '">' . $row['name'] . '</option>';

        }

    }



    function get_course_subject($course_id)

    {

        $subjects = $this->db->get_where('subject' , array(

            'course_id' => $course_id

        ))->result_array();

        foreach ($subjects as $row) {

            echo '<option value="' . $row['subject_id'] . '">' . $row['name'] . '</option>';

        }

    }



    function get_course_students($course_id)

    {

        $students = $this->db->get_where('enroll' , array(

            'course_id' => $course_id , 'year' => $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description

        ))->result_array();

        foreach ($students as $row) {

            $name = $this->db->get_where('student' , array('student_id' => $row['student_id']))->row()->name;

            echo '<option value="' . $row['student_id'] . '">' . $name . '</option>';

        }

    }



    function get_course_students_mass($course_id)

    {

        $students = $this->db->get_where('enroll' , array(

            'course_id' => $course_id , 'year' => $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description

        ))->result_array();

        echo '<div class="form-group">

                <label class="col-sm-3 control-label">' . get_phrase('students') . '</label>

                <div class="col-sm-9">';

        foreach ($students as $row) {

             $name = $this->db->get_where('student' , array('student_id' => $row['student_id']))->row()->name;

            echo '<div class="checkbox">

                    <label><input type="checkbox" class="check" name="student_id[]" value="' . $row['student_id'] . '">' . $name .'</label>

                </div>';

        }

        echo '<br><button type="button" class="btn btn-default" onClick="select()">'.get_phrase('select_all').'</button>';

        echo '<button style="margin-left: 5px;" type="button" class="btn btn-default" onClick="unselect()"> '.get_phrase('select_none').' </button>';

        echo '</div></div>';

    }







    /****MANAGE EXAMS*****/

    function exam($param1 = '', $param2 = '' , $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        if ($param1 == 'create') {

            $data['name']    = $this->input->post('name');

            $data['date']    = $this->input->post('date');

            $data['year']    = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

            if ($this->input->post('comment') != null) {

                $data['comment'] = $this->input->post('comment');

            }

            $this->db->insert('exam', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/exam/', 'refresh');

        }

        if ($param1 == 'edit' && $param2 == 'do_update') {

            $data['name']    = $this->input->post('name');

            $data['date']    = $this->input->post('date');

            if ($this->input->post('comment') != null) {

                $data['comment'] = $this->input->post('comment');

            }

            else{

              $data['comment'] = null;

            }

            $data['year']    = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;



            $this->db->where('exam_id', $param3);

            $this->db->update('exam', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/exam/', 'refresh');

        }

        else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('exam', array(

                'exam_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $this->db->where('exam_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/exam/', 'refresh');

        }

        $running_year = $this->db->get_where('settings', array('type' => 'running_year'))->row()->description;

        $page_data['exams']      = $this->db->get_where('exam', array('year' => $running_year))->result_array();

        $page_data['page_name']  = 'exam';

        $page_data['page_title'] = get_phrase('manage_exam');

        $this->load->view('backend/index', $page_data);

    }



    /****** SEND EXAM MARKS VIA SMS ********/

    function exam_marks_sms($param1 = '' , $param2 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        if ($param1 == 'send_sms') {



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

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

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

            if ($exam_id != '' && $course_id != '' && $receiver != '') {

            // get all the students of the selected class

            $students = $this->db->get_where('enroll' , array(

                'course_id' => $course_id,

                    'year' => $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description

            ))->result_array();

            // get the marks of the student for selected exam

            foreach ($students as $row) {

                if ($receiver == 'student')

                    $receiver_phone = $this->db->get_where('student' , array('student_id' => $row['student_id']))->row()->phone;

                if ($receiver == 'parent') {

                    $parent_id =  $this->db->get_where('student' , array('student_id' => $row['student_id']))->row()->parent_id;

                    if($parent_id != '' || $parent_id != null) {

                        $receiver_phone = $this->db->get_where('parent' , array('parent_id' => $row['parent_id']))->row()->phone;

                        if($receiver_phone == null){

                          $this->session->set_flashdata('error_message' , get_phrase('parent_phone_number_is_not_found'));

                        }

                    }

                }

                $running_year = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

                $this->db->where('exam_id' , $exam_id);

                $this->db->where('student_id' , $row['student_id']);

                $this->db->where('year', $running_year);

                $marks = $this->db->get('mark')->result_array();



                $message = '';

                foreach ($marks as $row2) {

                    $subject       = $this->db->get_where('subject' , array('subject_id' => $row2['subject_id']))->row()->name;

                    $mark_obtained = $row2['mark_obtained'];

                    $message      .= $row2['student_id'] . $subject . ' : ' . $mark_obtained . ' , ';



                }

                // send sms

                //$this->sms_model->send_sms( $message , $receiver_phone );

            }

            $this->session->set_flashdata('flash_message' , get_phrase('message_sent'));

          }

          else{

            $this->session->set_flashdata('error_message' , get_phrase('select_all_the_fields'));

          }

            redirect(base_url() . 'index.php?admin/exam_marks_sms' , 'refresh');

        }



        $page_data['page_name']  = 'exam_marks_sms';

        $page_data['page_title'] = get_phrase('send_marks_by_sms');

        $this->load->view('backend/index', $page_data);

    }



    /****MANAGE EXAM MARKS*****/

    function marks2($exam_id = '', $course_id = '', $subject_id = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        if ($this->input->post('operation') == 'selection') {

            $page_data['exam_id']    = $this->input->post('exam_id');

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

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



            if ($page_data['exam_id'] > 0 && $page_data['course_id'] > 0 && $page_data['subject_id'] > 0) {

                redirect(base_url() . 'index.php?admin/marks2/' . $page_data['exam_id'] . '/' . $page_data['course_id'] . '/' . $page_data['subject_id'], 'refresh');

            } else {

                $this->session->set_flashdata('mark_message', 'Choose exam, class and subject');

                redirect(base_url() . 'index.php?admin/marks2/', 'refresh');

            }

        }

        if ($this->input->post('operation') == 'update') {

            $students = $this->db->get_where('enroll' , array('course_id' => $course_id , 'year' => $running_year))->result_array();

            foreach($students as $row) {

                $data['mark_obtained'] = $this->input->post('mark_obtained_' . $row['student_id']);

                $data['comment']       = $this->input->post('comment_' . $row['student_id']);



                $this->db->where('mark_id', $this->input->post('mark_id_' . $row['student_id']));

                $this->db->update('mark', array('mark_obtained' => $data['mark_obtained'] , 'comment' => $data['comment']));

            }

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/marks2/' . $this->input->post('exam_id') . '/' . $this->input->post('course_id') . '/' . $this->input->post('subject_id'), 'refresh');

        }

        $page_data['exam_id']    = $exam_id;

        $page_data['course_id']   = $course_id;

        $page_data['subject_id'] = $subject_id;



        $page_data['page_info'] = 'Exam marks';



        $page_data['page_name']  = 'marks2';

        $page_data['page_title'] = get_phrase('manage_exam_marks');

        $this->load->view('backend/index', $page_data);

    }



    function marks_manage()

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        $page_data['page_name']  =   'marks_manage';

        $page_data['page_title'] = get_phrase('manage_exam_marks');

        $this->load->view('backend/index', $page_data);

    }



    function marks_manage_view($exam_id = '' , $course_id = '' , $section_id = '' , $subject_id = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        $page_data['exam_id']    =   $exam_id;

        $page_data['course_id']   =   $course_id;

        $page_data['subject_id'] =   $subject_id;

        $page_data['section_id'] =   $section_id;

        $page_data['page_name']  =   'marks_manage_view';

        $page_data['page_title'] = get_phrase('manage_exam_marks');

        $this->load->view('backend/index', $page_data);

    }



    function marks_selector()

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        $data['exam_id']    = $this->input->post('exam_id');

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

        $data['section_id'] = $this->input->post('section_id');

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

        $data['year']       = $this->db->get_where('settings' , array('type'=>'running_year'))->row()->description;

        if($data['course_id'] != '' && $data['exam_id'] != ''){

        $query = $this->db->get_where('mark' , array(

                    'exam_id' => $data['exam_id'],

                        'course_id' => $data['course_id']

                ));

        if($query->num_rows() < 1) {

           $students = $this->db->get_where('course_student' , array(

                'course_id' => $data['course_id']

            ))->result_array();/* /

            $students = $this->db->get_where('enroll' , array(

                'course_id' => $data['course_id'] , 'section_id' => $data['section_id'] , 'year' => $data['year']

            ))->result_array();/**/

            foreach($students as $row) {

                $data['student_id'] = $row['student_id'];

                $this->db->insert('mark' , $data);

            }

        }

        redirect(base_url() . 'index.php?admin/marks_manage_view/' . $data['exam_id'] . '/' . $data['course_id'] . '/' . $data['section_id'] . '/' . $data['subject_id'] , 'refresh');

    }

    else{

        $this->session->set_flashdata('error_message' , get_phrase('select_all_the_fields'));

        $page_data['page_name']  =   'marks_manage';

        $page_data['page_title'] = get_phrase('manage_exam_marks');

        $this->load->view('backend/index', $page_data);

    }

}



function marks_update($exam_id = '' , $course_id = '' , $section_id = '' , $subject_id = '')

    {

        $running_year = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

        if ($course_id != '' && $exam_id != '') {

        $marks_of_students = $this->db->get_where('mark' , array(

            'exam_id' => $exam_id,

                'course_id' => $course_id/** /,

                    'section_id' => $section_id,

                        'year' => $running_year,

                            'subject_id' => $subject_id/**/

        ))->result_array();

        foreach($marks_of_students as $row) {

            $obtained_marks = $this->input->post('marks_obtained_'.$row['mark_id']);

            $comment = $this->input->post('comment_'.$row['mark_id']);

            $this->db->where('mark_id' , $row['mark_id']);

            $this->db->update('mark' , array('mark_obtained' => $obtained_marks , 'comment' => $comment));

        }

        $this->session->set_flashdata('flash_message' , get_phrase('marks_updated'));

        redirect(base_url().'index.php?teacher/marks_manage_view/'.$exam_id.'/'.$course_id.'/'.$section_id.'/'.$subject_id , 'refresh');

    }

    else{

        $this->session->set_flashdata('error_message' , get_phrase('select_all_the_fields'));

        $page_data['page_name']  =   'marks_manage';

        $page_data['page_title'] = get_phrase('manage_exam_marks');

        $this->load->view('backend/index', $page_data);

    }

    }

    function marks_update__($exam_id = '' , $course_id = '' , $section_id = '' , $subject_id = '')

    {

        if ($course_id != '' && $exam_id != '') {

        $running_year = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

        $marks_of_students = $this->db->get_where('mark' , array(

            'exam_id' => $exam_id,

                'course_id' => $course_id,

                    'section_id' => $section_id,

                        'year' => $running_year,

                            'subject_id' => $subject_id

        ))->result_array();

        foreach($marks_of_students as $row) {

            $obtained_marks = $this->input->post('marks_obtained_'.$row['mark_id']);

            $comment = $this->input->post('comment_'.$row['mark_id']);

            $this->db->where('mark_id' , $row['mark_id']);

            $this->db->update('mark' , array('mark_obtained' => $obtained_marks , 'comment' => $comment));

        }

        $this->session->set_flashdata('flash_message' , get_phrase('marks_updated'));

        redirect(base_url().'index.php?admin/marks_manage_view/'.$exam_id.'/'.$course_id.'/'.$section_id.'/'.$subject_id , 'refresh');

    }

    else{

        $this->session->set_flashdata('error_message' , get_phrase('select_all_the_fields'));

        $page_data['page_name']  =   'marks_manage';

        $page_data['page_title'] = get_phrase('manage_exam_marks');

        $this->load->view('backend/index', $page_data);

    }

}

    function marks_get_subject($course_id)

    {

        $page_data['course_id'] = $course_id;

        $this->load->view('backend/admin/marks_get_subject' , $page_data);

    }



    // TABULATION SHEET

    function tabulation_sheet($course_id = '' , $exam_id = '') {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        if ($this->input->post('operation') == 'selection') {

            $page_data['exam_id']    = $this->input->post('exam_id');

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



            if ($page_data['exam_id'] > 0 && $page_data['course_id'] > 0) {

                redirect(base_url() . 'index.php?admin/tabulation_sheet/' . $page_data['course_id'] . '/' . $page_data['exam_id'] , 'refresh');

            } else {

                $this->session->set_flashdata('mark_message', 'Choose class and exam');

                redirect(base_url() . 'index.php?admin/tabulation_sheet/', 'refresh');

            }

        }

        $page_data['exam_id']    = $exam_id;

        $page_data['course_id']   = $course_id;



        $page_data['page_info'] = 'Exam marks';



        $page_data['page_name']  = 'tabulation_sheet';

        $page_data['page_title'] = get_phrase('tabulation_sheet');

        $this->load->view('backend/index', $page_data);



    }



    function tabulation_sheet_print_view($course_id , $exam_id) {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        $page_data['course_id'] = $course_id;

        $page_data['exam_id']  = $exam_id;

        $this->load->view('backend/admin/tabulation_sheet_print_view' , $page_data);

    }





    /****MANAGE GRADES*****/

    function grade($param1 = '', $param2 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        if ($param1 == 'create') {

            $data['name']        = $this->input->post('name');

            $data['grade_point'] = $this->input->post('grade_point');

            $data['mark_from']   = $this->input->post('mark_from');

            $data['mark_upto']   = $this->input->post('mark_upto');

            if ($this->input->post('comment') != null) {

                $data['comment'] = $this->input->post('comment');

            }



            $this->db->insert('grade', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/grade/', 'refresh');

        }

        if ($param1 == 'do_update') {

            $data['name']        = $this->input->post('name');

            $data['grade_point'] = $this->input->post('grade_point');

            $data['mark_from']   = $this->input->post('mark_from');

            $data['mark_upto']   = $this->input->post('mark_upto');

            if ($this->input->post('comment') != null) {

                $data['comment'] = $this->input->post('comment');

            }

            else{

              $data['comment'] = null;

            }



            $this->db->where('grade_id', $param2);

            $this->db->update('grade', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/grade/', 'refresh');

        } else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('grade', array(

                'grade_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $this->db->where('grade_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/grade/', 'refresh');

        }

        $page_data['grades']     = $this->db->get('grade')->result_array();

        $page_data['page_name']  = 'grade';

        $page_data['page_title'] = get_phrase('manage_grade');

        $this->load->view('backend/index', $page_data);

    }



    /**********MANAGING CLASS ROUTINE******************/

    function course_routine($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        if ($param1 == 'create') {



            if($this->input->post('course_id') != null){

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

            }



            $data['section_id']     = $this->input->post('section_id');

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



            // 12 AM for starting time

            if ($this->input->post('time_start') == 12 && $this->input->post('starting_ampm') == 1) {

                $data['time_start'] = 24;

            }

            // 12 PM for starting time

            elseif ($this->input->post('time_start') == 12 && $this->input->post('starting_ampm') == 2) {

                $data['time_start'] = 12;

            }

            // otherwise for starting time

            else{

                $data['time_start']     = $this->input->post('time_start') + (12 * ($this->input->post('starting_ampm') - 1));

            }

            // 12 AM for ending time

            if ($this->input->post('time_end') == 12 && $this->input->post('ending_ampm') == 1) {

                $data['time_end'] = 24;

            }

            // 12 PM for ending time

            elseif ($this->input->post('time_end') == 12 && $this->input->post('ending_ampm') == 2) {

                $data['time_end'] = 12;

            }

            // otherwise for ending time

            else{

                $data['time_end']       = $this->input->post('time_end') + (12 * ($this->input->post('ending_ampm') - 1));

            }



            $data['time_start_min'] = $this->input->post('time_start_min');

            $data['time_end_min']   = $this->input->post('time_end_min');

            $data['day']            = $this->input->post('day');

            $data['year']           = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

            // checking duplication

            $array = array(

               'section_id'    => $data['section_id'],

               'course_id'      => $data['course_id'],

               'time_start'    => $data['time_start'],

               'time_end'      => $data['time_end'],

               'time_start_min'=> $data['time_start_min'],

               'time_end_min'  => $data['time_end_min'],

               'day'           => $data['day'],

               'year'          => $data['year']

            );

            $validation = duplication_of_course_routine_on_create($array);

            if ($validation == 1) {

                $this->db->insert('course_routine', $data);

                $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('time_conflicts'));

            }



            redirect(base_url() . 'index.php?admin/course_routine_add/', 'refresh');

        }

        if ($param1 == 'do_update') {

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

            if($this->input->post('section_id') != '') {

                $data['section_id'] = $this->input->post('section_id');

            }

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



            // 12 AM for starting time

            if ($this->input->post('time_start') == 12 && $this->input->post('starting_ampm') == 1) {

                $data['time_start'] = 24;

            }

            // 12 PM for starting time

            elseif ($this->input->post('time_start') == 12 && $this->input->post('starting_ampm') == 2) {

                $data['time_start'] = 12;

            }

            // otherwise for starting time

            else{

                $data['time_start']     = $this->input->post('time_start') + (12 * ($this->input->post('starting_ampm') - 1));

            }

            // 12 AM for ending time

            if ($this->input->post('time_end') == 12 && $this->input->post('ending_ampm') == 1) {

                $data['time_end'] = 24;

            }

            // 12 PM for ending time

            elseif ($this->input->post('time_end') == 12 && $this->input->post('ending_ampm') == 2) {

                $data['time_end'] = 12;

            }

            // otherwise for ending time

            else{

                $data['time_end']       = $this->input->post('time_end') + (12 * ($this->input->post('ending_ampm') - 1));

            }



            $data['time_start_min'] = $this->input->post('time_start_min');

            $data['time_end_min']   = $this->input->post('time_end_min');

            $data['day']            = $this->input->post('day');

            $data['year']           = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

            if ($data['subject_id'] != '') {

            // checking duplication

            $array = array(

               'section_id'    => $data['section_id'],

               'course_id'      => $data['course_id'],

               'time_start'    => $data['time_start'],

               'time_end'      => $data['time_end'],

               'time_start_min'=> $data['time_start_min'],

               'time_end_min'  => $data['time_end_min'],

               'day'           => $data['day'],

               'year'          => $data['year']

            );

            $validation = duplication_of_course_routine_on_edit($array, $param2);



            if ($validation == 1) {

                $this->db->where('course_routine_id', $param2);

                $this->db->update('course_routine', $data);

                $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('time_conflicts'));

            }

          }

          else{

            $this->session->set_flashdata('error_message' , get_phrase('subject_is_not_found'));

          }



            redirect(base_url() . 'index.php?admin/course_routine_view/' . $data['course_id'], 'refresh');

        }

        else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('course_routine', array(

                'course_routine_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $course_id = $this->db->get_where('course_routine' , array('course_routine_id' => $param2))->row()->course_id;

            $this->db->where('course_routine_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/course_routine_view/' . $course_id, 'refresh');

        }



    }



    function course_routine_add()

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        $page_data['page_name']  = 'course_routine_add';

        $page_data['page_title'] = get_phrase('add_course_routine');

        $this->load->view('backend/index', $page_data);

    }



    function course_routine_view($course_id)

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        $page_data['page_name']  = 'course_routine_view';

        $page_data['course_id']  =   $course_id;

        $page_data['page_title'] = get_phrase('course_routine');

        $this->load->view('backend/index', $page_data);

    }



    function course_routine_print_view($course_id , $section_id)

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        $page_data['course_id']   =   $course_id;

        $page_data['section_id'] =   $section_id;

        $this->load->view('backend/admin/course_routine_print_view' , $page_data);

    }



    function get_course_section_subject($course_id)

    {

        $page_data['course_id'] = $course_id;

        $this->load->view('backend/admin/course_routine_section_subject_selector' , $page_data);

    }



    function section_subject_edit($course_id , $course_routine_id)

    {

        $page_data['course_id']          =   $course_id;

        $page_data['course_routine_id']  =   $course_routine_id;

        $this->load->view('backend/admin/course_routine_section_subject_edit' , $page_data);

    }



    function manage_attendance()

    {

        if($this->session->userdata('admin_login')!=1)

            redirect(base_url() , 'refresh');



        $page_data['page_name']  =  'manage_attendance';

        $page_data['page_title'] =  get_phrase('manage_attendance_of_course');

        $this->load->view('backend/index', $page_data);

    }



    function manage_attendance_view($course_id = '' , $section_id = '' , $timestamp = '')

    {

        if($this->session->userdata('admin_login')!=1)

            redirect(base_url() , 'refresh');

        $course_name = $this->db->get_where('course' , array(

            'course_id' => $course_id

        ))->row()->name;

        $page_data['course_id'] = $course_id;

        $page_data['timestamp'] = $timestamp;

        $page_data['page_name'] = 'manage_attendance_view';

        $section_name = $this->db->get_where('section' , array(

            'section_id' => $section_id

        ))->row()->name;

        $page_data['section_id'] = $section_id;

        $page_data['page_title'] = get_phrase('manage_attendance_of_course') . ' ' . $course_name . ' : ' . get_phrase('section') . ' ' . $section_name;

        $this->load->view('backend/index', $page_data);

    }

    function get_section($course_id) {

          $page_data['course_id'] = $course_id;

          $this->load->view('backend/admin/manage_attendance_section_holder' , $page_data);

    }

    function attendance_selector()

    {

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

        $data['year']       = $this->input->post('year');

        $data['timestamp']  = strtotime($this->input->post('timestamp'));

        $data['section_id'] = $this->input->post('section_id');

        $query = $this->db->get_where('attendance' ,array(

            'course_id'=>$data['course_id'],

                'section_id'=>$data['section_id'],

                    'year'=>$data['year'],

                        'timestamp'=>$data['timestamp']

        ));

        if($query->num_rows() < 1) {

            $students = $this->db->get_where('enroll' , array(

                'course_id' => $data['course_id'] , 'section_id' => $data['section_id'] , 'year' => $data['year']

            ))->result_array();



            foreach($students as $row) {

                $attn_data['course_id']   = $data['course_id'];

                $attn_data['year']       = $data['year'];

                $attn_data['timestamp']  = $data['timestamp'];

                $attn_data['section_id'] = $data['section_id'];

                $attn_data['student_id'] = $row['student_id'];

                $this->db->insert('attendance' , $attn_data);

            }



        }

        redirect(base_url().'index.php?admin/manage_attendance_view/'.$data['course_id'].'/'.$data['section_id'].'/'.$data['timestamp'],'refresh');

    }



    function attendance_update($course_id = '' , $section_id = '' , $timestamp = '')

    {

        $running_year = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

        $active_sms_service = $this->db->get_where('settings' , array('type' => 'active_sms_service'))->row()->description;

        $attendance_of_students = $this->db->get_where('attendance' , array(

            'course_id'=>$course_id,'section_id'=>$section_id,'year'=>$running_year,'timestamp'=>$timestamp

        ))->result_array();

        foreach($attendance_of_students as $row) {

            $attendance_status = $this->input->post('status_'.$row['attendance_id']);

            $this->db->where('attendance_id' , $row['attendance_id']);

            $this->db->update('attendance' , array('status' => $attendance_status));



            if ($attendance_status == 2) {



                if ($active_sms_service != '' || $active_sms_service != 'disabled') {

                    $student_name   = $this->db->get_where('student' , array('student_id' => $row['student_id']))->row()->name;

                    $parent_id      = $this->db->get_where('student' , array('student_id' => $row['student_id']))->row()->parent_id;

                    $message        = 'Your child' . ' ' . $student_name . 'is absent today.';

                    if($parent_id != null && $parent_id != 0){

                        $receiver_phone = $this->db->get_where('parent' , array('parent_id' => $parent_id))->row()->phone;

                        if($receiver_phone != '' || $receiver_phone != null){

                            $this->sms_model->send_sms($message,$receiver_phone);

                        }

                        else{

                            $this->session->set_flashdata('error_message' , get_phrase('parent_phone_number_is_not_found'));

                        }

                    }

                    else{

                        $this->session->set_flashdata('error_message' , get_phrase('parent_phone_number_is_not_found'));

                    }

                }

            }

        }

        $this->session->set_flashdata('flash_message' , get_phrase('attendance_updated'));

        redirect(base_url().'index.php?admin/manage_attendance_view/'.$course_id.'/'.$section_id.'/'.$timestamp , 'refresh');

    }



	/****** DAILY ATTENDANCE *****************/

	function manage_attendance2($date='',$month='',$year='',$course_id='' , $section_id = '' , $session = '')

	{

		if($this->session->userdata('admin_login')!=1)

            redirect(base_url() , 'refresh');



        $active_sms_service = $this->db->get_where('settings' , array('type' => 'active_sms_service'))->row()->description;

        $running_year = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;





		if($_POST)

		{

			// Loop all the students of $course_id

            $this->db->where('course_id' , $course_id);

            if($section_id != '') {

                $this->db->where('section_id' , $section_id);

            }

            //$session = base64_decode( urldecode( $session ) );

            $this->db->where('year' , $session);

            $students = $this->db->get('enroll')->result_array();

            foreach ($students as $row)

            {

                $attendance_status  =   $this->input->post('status_' . $row['student_id']);



                $this->db->where('student_id' , $row['student_id']);

                $this->db->where('date' , $date);

                $this->db->where('year' , $year);

                $this->db->where('course_id' , $row['course_id']);

                if($row['section_id'] != '' && $row['section_id'] != 0) {

                    $this->db->where('section_id' , $row['section_id']);

                }

                $this->db->where('session' , $session);



                $this->db->update('attendance' , array('status' => $attendance_status));



                if ($attendance_status == 2) {



                    if ($active_sms_service != '' || $active_sms_service != 'disabled') {

                        $student_name   = $this->db->get_where('student' , array('student_id' => $row['student_id']))->row()->name;

                        $parent_id      = $this->db->get_where('student' , array('student_id' => $row['student_id']))->row()->parent_id;

                        $receiver_phone = $this->db->get_where('parent' , array('parent_id' => $parent_id))->row()->phone;

                        $message        = 'Your child' . ' ' . $student_name . 'is absent today.';

                        $this->sms_model->send_sms($message,$receiver_phone);

                    }

                }



            }



			$this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

			redirect(base_url() . 'index.php?admin/manage_attendance/'.$date.'/'.$month.'/'.$year.'/'.$course_id.'/'.$section_id.'/'.$session , 'refresh');

		}

        $page_data['date']       =	$date;

        $page_data['month']      =	$month;

        $page_data['year']       =	$year;

        $page_data['course_id']   =  $course_id;

        $page_data['section_id'] =  $section_id;

        $page_data['session']    =  $session;



        $page_data['page_name']  =	'manage_attendance';

        $page_data['page_title'] =	get_phrase('manage_daily_attendance');

		$this->load->view('backend/index', $page_data);

	}

	function attendance_selector2()

	{

        //$session = $this->input->post('session');

        //$encoded_session = urlencode( base64_encode( $session ) );

		redirect(base_url() . 'index.php?admin/manage_attendance/'.$this->input->post('date').'/'.

					$this->input->post('month').'/'.

						$this->input->post('year').'/'.

							$this->input->post('course_id').'/'.

                                $this->input->post('section_id').'/'.

                                    $this->input->post('session') , 'refresh');

	}

        ///////ATTENDANCE REPORT /////

     function attendance_report() {

         $page_data['month']        = date('m');

         $page_data['page_name']    = 'attendance_report';

         $page_data['page_title']   = get_phrase('attendance_report');

         $this->load->view('backend/index',$page_data);

     }

     function attendance_report_view($course_id = '', $section_id = '', $month = '', $sessional_year = '')

     {

         if($this->session->userdata('admin_login')!=1)

            redirect(base_url() , 'refresh');



        $course_name                     = $this->db->get_where('course', array('course_id' => $course_id))->row()->name;

        $section_name                   = $this->db->get_where('section', array('section_id' => $section_id))->row()->name;

        $page_data['course_id']          = $course_id;

        $page_data['section_id']        = $section_id;

        $page_data['month']             = $month;

        $page_data['sessional_year']    = $sessional_year;

        $page_data['page_name']         = 'attendance_report_view';

        $page_data['page_title']        = get_phrase('attendance_report_of_course') . ' ' . $course_name . ' : ' . get_phrase('section') . ' ' . $section_name;

        $this->load->view('backend/index', $page_data);

     }

     function attendance_report_print_view($course_id ='' , $section_id = '' , $month = '', $sessional_year = '') {

          if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        $page_data['course_id']          = $course_id;

        $page_data['section_id']        = $section_id;

        $page_data['month']             = $month;

        $page_data['sessional_year']    = $sessional_year;

        $this->load->view('backend/admin/attendance_report_print_view' , $page_data);

    }



    function attendance_report_selector()

    {   if($this->input->post('course_id') == '' || $this->input->post('sessional_year') == '') {

            $this->session->set_flashdata('error_message' , get_phrase('please_make_sure_course_and_sessional_year_are_selected'));

            redirect(base_url() . 'index.php?admin/attendance_report', 'refresh');

        }

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

        $data['section_id']     = $this->input->post('section_id');

        $data['month']          = $this->input->post('month');

        $data['sessional_year'] = $this->input->post('sessional_year');

        redirect(base_url() . 'index.php?admin/attendance_report_view/' . $data['course_id'] . '/' . $data['section_id'] . '/' . $data['month'] . '/' . $data['sessional_year'], 'refresh');

    }



    /******MANAGE BILLING / INVOICES WITH STATUS*****/

    function invoice($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        if ($param1 == 'create') {

            $data['student_id']         = $this->input->post('student_id');

            $data['title']              = $this->input->post('title');

            $data['amount']             = $this->input->post('amount');

            $data['amount_paid']        = $this->input->post('amount_paid');

            $data['due']                = $data['amount'] - $data['amount_paid'];

            $data['status']             = $this->input->post('status');

            $data['creation_timestamp'] = strtotime($this->input->post('date'));

            $data['year']               = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

            if ($this->input->post('description') != null) {

                $data['description']    = $this->input->post('description');

            }



            $this->db->insert('invoice', $data);

            $invoice_id = $this->db->insert_id();



            $data2['invoice_id']        =   $invoice_id;

            $data2['student_id']        =   $this->input->post('student_id');

            $data2['title']             =   $this->input->post('title');

            $data2['payment_type']      =  'income';

            $data2['method']            =   $this->input->post('method');

            $data2['amount']            =   $this->input->post('amount_paid');

            $data2['timestamp']         =   strtotime($this->input->post('date'));

            $data2['year']              =  $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

            if ($this->input->post('description') != null) {

                $data2['description']    = $this->input->post('description');

            }

            $this->db->insert('payment' , $data2);



            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/student_payment', 'refresh');

        }



        if ($param1 == 'create_mass_invoice') {

            foreach ($this->input->post('student_id') as $id) {



                $data['student_id']         = $id;

                $data['title']              = $this->input->post('title');

                $data['description']        = $this->input->post('description');

                $data['amount']             = $this->input->post('amount');

                $data['amount_paid']        = $this->input->post('amount_paid');

                $data['due']                = $data['amount'] - $data['amount_paid'];

                $data['status']             = $this->input->post('status');

                $data['creation_timestamp'] = strtotime($this->input->post('date'));

                $data['year']               = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;



                $this->db->insert('invoice', $data);

                $invoice_id = $this->db->insert_id();



                $data2['invoice_id']        =   $invoice_id;

                $data2['student_id']        =   $id;

                $data2['title']             =   $this->input->post('title');

                $data2['description']       =   $this->input->post('description');

                $data2['payment_type']      =  'income';

                $data2['method']            =   $this->input->post('method');

                $data2['amount']            =   $this->input->post('amount_paid');

                $data2['timestamp']         =   strtotime($this->input->post('date'));

                $data2['year']               =   $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;



                $this->db->insert('payment' , $data2);

            }



            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/student_payment', 'refresh');

        }



        if ($param1 == 'do_update') {

            $data['student_id']         = $this->input->post('student_id');

            $data['title']              = $this->input->post('title');

            $data['description']        = $this->input->post('description');

            $data['amount']             = $this->input->post('amount');

            $data['status']             = $this->input->post('status');

            $data['creation_timestamp'] = strtotime($this->input->post('date'));



            $this->db->where('invoice_id', $param2);

            $this->db->update('invoice', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/income', 'refresh');

        } else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('invoice', array(

                'invoice_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'take_payment') {

            $data['invoice_id']   =   $this->input->post('invoice_id');

            $data['student_id']   =   $this->input->post('student_id');

            $data['title']        =   $this->input->post('title');

            $data['description']  =   $this->input->post('description');

            $data['payment_type'] =   'income';

            $data['method']       =   $this->input->post('method');

            $data['amount']       =   $this->input->post('amount');

            $data['timestamp']    =   strtotime($this->input->post('timestamp'));

            $data['year']         =   $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

            $this->db->insert('payment' , $data);



            $status['status']   =   $this->input->post('status');

            $this->db->where('invoice_id' , $param2);

            $this->db->update('invoice' , array('status' => $status['status']));



            $data2['amount_paid']   =   $this->input->post('amount');

            $data2['status']        =   $this->input->post('status');

            $this->db->where('invoice_id' , $param2);

            $this->db->set('amount_paid', 'amount_paid + ' . $data2['amount_paid'], FALSE);

            $this->db->set('due', 'due - ' . $data2['amount_paid'], FALSE);

            $this->db->update('invoice');



            $this->session->set_flashdata('flash_message' , get_phrase('payment_successfull'));

            redirect(base_url() . 'index.php?admin/income/', 'refresh');

        }



        if ($param1 == 'delete') {

            $this->db->where('invoice_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/income', 'refresh');

        }

        $page_data['page_name']  = 'invoice';

        $page_data['page_title'] = get_phrase('manage_invoice/payment');

        $this->db->order_by('creation_timestamp', 'desc');

        $page_data['invoices'] = $this->db->get('invoice')->result_array();

        $this->load->view('backend/index', $page_data);

    }



    /**********ACCOUNTING********************/

    function income($param1 = 'invoices' , $param2 = '')

    {

       if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');



        if ($param2 == 'filter_history')

            $page_data['student_id'] = $this->input->post('student_id');

        else

            $page_data['student_id'] = 'all';



        $page_data['page_name']  = 'income';

        $page_data['page_title'] = get_phrase('student_payments');

        $this->db->order_by('creation_timestamp', 'desc');

        $page_data['invoices'] = $this->db->get('invoice')->result_array();

        $page_data['active_tab']  = $param1;

        $this->load->view('backend/index', $page_data);

    }



    function student_payment($param1 = '' , $param2 = '' , $param3 = '') {



        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        $page_data['page_name']  = 'student_payment';

        $page_data['page_title'] = get_phrase('create_student_payment');

        $this->load->view('backend/index', $page_data);

    }



    function expense($param1 = '' , $param2 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        if ($param1 == 'create') {

            $data['title']               =   $this->input->post('title');

            $data['expense_category_id'] =   $this->input->post('expense_category_id');

            $data['payment_type']        =   'expense';

            $data['method']              =   $this->input->post('method');

            $data['amount']              =   $this->input->post('amount');

            $data['timestamp']           =   strtotime($this->input->post('timestamp'));

            $data['year']                =   $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

            if ($this->input->post('description') != null) {

                $data['description']     =   $this->input->post('description');

            }

            $this->db->insert('payment' , $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/expense', 'refresh');

        }



        if ($param1 == 'edit') {

            $data['title']               =   $this->input->post('title');

            $data['expense_category_id'] =   $this->input->post('expense_category_id');

            $data['payment_type']        =   'expense';

            $data['method']              =   $this->input->post('method');

            $data['amount']              =   $this->input->post('amount');

            $data['timestamp']           =   strtotime($this->input->post('timestamp'));

            $data['year']                =   $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

            if ($this->input->post('description') != null) {

                $data['description']     =   $this->input->post('description');

            }

            else{

                $data['description']     =   null;

            }

            $this->db->where('payment_id' , $param2);

            $this->db->update('payment' , $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/expense', 'refresh');

        }



        if ($param1 == 'delete') {

            $this->db->where('payment_id' , $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/expense', 'refresh');

        }



        $page_data['page_name']  = 'expense';

        $page_data['page_title'] = get_phrase('expenses');

        $this->load->view('backend/index', $page_data);

    }



    function expense_category($param1 = '' , $param2 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        if ($param1 == 'create') {

            $data['name']   =   $this->input->post('name');

            $this->db->insert('expense_category' , $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/expense_category');

        }

        if ($param1 == 'edit') {

            $data['name']   =   $this->input->post('name');

            $this->db->where('expense_category_id' , $param2);

            $this->db->update('expense_category' , $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/expense_category');

        }

        if ($param1 == 'delete') {

            $this->db->where('expense_category_id' , $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/expense_category');

        }



        $page_data['page_name']  = 'expense_category';

        $page_data['page_title'] = get_phrase('expense_category');

        $this->load->view('backend/index', $page_data);

    }



    /**********MANAGE LIBRARY / BOOKS********************/

    function book($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        if ($param1 == 'create') {

            $data['name']        = $this->input->post('name');

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

            if ($this->input->post('description') != null) {

               $data['description'] = $this->input->post('description');

            }

            if ($this->input->post('price') != null) {

               $data['price'] = $this->input->post('price');

            }

            if ($this->input->post('author') != null) {

               $data['author'] = $this->input->post('author');

            }

            if(!empty($_FILES["file_name"]["name"])) {

                $data['file_name'] = $_FILES["file_name"]["name"];

            }







            $this->db->insert('book', $data);



            if(!empty($_FILES["file_name"]["name"])) {

                move_uploaded_file($_FILES["file_name"]["tmp_name"], "uploads/document/" . $_FILES["file_name"]["name"]);

            }



            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/book', 'refresh');

        }

        if ($param1 == 'do_update') {

            $data['name']        = $this->input->post('name');

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

            if ($this->input->post('description') != null) {

               $data['description'] = $this->input->post('description');

            }

            else{

               $data['description'] = null;

            }

            if ($this->input->post('price') != null) {

               $data['price'] = $this->input->post('price');

            }

            else{

                $data['price'] = null;

            }

            if ($this->input->post('author') != null) {

               $data['author'] = $this->input->post('author');

            }

            else{

               $data['author'] = null;

            }



            if(!empty($_FILES["file_name"]["name"])) {

                $data['file_name'] = $_FILES["file_name"]["name"];

            }



            $this->db->where('book_id', $param2);

            $this->db->update('book', $data);



            if(!empty($_FILES["file_name"]["name"])) {

                move_uploaded_file($_FILES["file_name"]["tmp_name"], "uploads/document/" . $_FILES["file_name"]["name"]);

            }



            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/book', 'refresh');

        } else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('book', array(

                'book_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $this->db->where('book_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/book', 'refresh');

        }

        $page_data['books']      = $this->db->get('book')->result_array();

        $page_data['page_name']  = 'book';

        $page_data['page_title'] = get_phrase('manage_library_books');

        $this->load->view('backend/index', $page_data);



    }

    /**********MANAGE TRANSPORT / VEHICLES / ROUTES********************/

    function transport($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        if ($param1 == 'create') {

            $data['route_name']        = $this->input->post('route_name');

            $data['number_of_vehicle'] = $this->input->post('number_of_vehicle');

            if ($this->input->post('description') != null) {

               $data['description']    = $this->input->post('description');

            }

            if ($this->input->post('route_fare') != null) {

               $data['route_fare']     = $this->input->post('route_fare');

            }



            $this->db->insert('transport', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/transport', 'refresh');

        }

        if ($param1 == 'do_update') {

            $data['route_name']        = $this->input->post('route_name');

            $data['number_of_vehicle'] = $this->input->post('number_of_vehicle');

            if ($this->input->post('description') != null) {

               $data['description']    = $this->input->post('description');

            }

            else{

                $data['description'] = null;

            }

            if ($this->input->post('route_fare') != null) {

               $data['route_fare']   = $this->input->post('route_fare');

            }

            else{

                $data['route_fare']  = null;

            }



            $this->db->where('transport_id', $param2);

            $this->db->update('transport', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/transport', 'refresh');

        } else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('transport', array(

                'transport_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $this->db->where('transport_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/transport', 'refresh');

        }

        $page_data['transports'] = $this->db->get('transport')->result_array();

        $page_data['page_name']  = 'transport';

        $page_data['page_title'] = get_phrase('manage_transport');

        $this->load->view('backend/index', $page_data);



    }

    /**********MANAGE DORMITORY / HOSTELS / ROOMS ********************/

    function dormitory($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');

        if ($param1 == 'create') {

            $data['name']           = $this->input->post('name');

            $data['number_of_room'] = $this->input->post('number_of_room');

            if ($this->input->post('description') != null) {

                $data['description']    = $this->input->post('description');

            }



            $this->db->insert('dormitory', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/dormitory', 'refresh');

        }

        if ($param1 == 'do_update') {

            $data['name']           = $this->input->post('name');

            $data['number_of_room'] = $this->input->post('number_of_room');

            if ($this->input->post('description') != null) {

                $data['description']    = $this->input->post('description');

            }

            else{

                $data['description'] = null;

            }

            $this->db->where('dormitory_id', $param2);

            $this->db->update('dormitory', $data);

            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/dormitory', 'refresh');

        } else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('dormitory', array(

                'dormitory_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $this->db->where('dormitory_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/dormitory', 'refresh');

        }

        $page_data['dormitories'] = $this->db->get('dormitory')->result_array();

        $page_data['page_name']   = 'dormitory';

        $page_data['page_title']  = get_phrase('manage_dormitory');

        $this->load->view('backend/index', $page_data);



    }



    /***MANAGE EVENT / NOTICEBOARD, WILL BE SEEN BY ALL ACCOUNTS DASHBOARD**/

    function noticeboard($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        if ($param1 == 'create') {

            $data['notice_title']     = $this->input->post('notice_title');

            $data['notice']           = $this->input->post('notice');

            $data['show_on_website']  = $this->input->post('show_on_website');

            $data['create_timestamp'] = strtotime($this->input->post('create_timestamp'));

            if ($_FILES['image']['name'] != '') {

              $data['image']  = $_FILES['image']['name'];

              move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/frontend/noticeboard/'. $_FILES['image']['name']);

            }

            $this->db->insert('noticeboard', $data);



            $check_sms_send = $this->input->post('check_sms');



            if ($check_sms_send == 1) {

                // sms sending configurations



                $parents  = $this->db->get('parent')->result_array();

                $students = $this->db->get('student')->result_array();

                $teachers = $this->db->get('teacher')->result_array();

                $date     = $this->input->post('create_timestamp');

                $message  = $data['notice_title'] . ' ';

                $message .= get_phrase('on') . ' ' . $date;

                foreach($parents as $row) {

                    $reciever_phone = $row['phone'];

                    $this->sms_model->send_sms($message , $reciever_phone);

                }

                foreach($students as $row) {

                    $reciever_phone = $row['phone'];

                    $this->sms_model->send_sms($message , $reciever_phone);

                }

                foreach($teachers as $row) {

                    $reciever_phone = $row['phone'];

                    $this->sms_model->send_sms($message , $reciever_phone);

                }

            }



            $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

            redirect(base_url() . 'index.php?admin/noticeboard/', 'refresh');

        }

        if ($param1 == 'do_update') {

            $image = $this->db->get_where('noticeboard', array('notice_id' => $param2))->row()->image;

            $data['notice_title']     = $this->input->post('notice_title');

            $data['notice']           = $this->input->post('notice');

            $data['show_on_website']  = $this->input->post('show_on_website');

            $data['create_timestamp'] = strtotime($this->input->post('create_timestamp'));

            if ($_FILES['image']['name'] != '') {

              $data['image']  = $_FILES['image']['name'];

              move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/frontend/noticeboard/'. $_FILES['image']['name']);

            } else {

              $data['image']  = $image;

            }



            $this->db->where('notice_id', $param2);

            $this->db->update('noticeboard', $data);



            $check_sms_send = $this->input->post('check_sms');



            if ($check_sms_send == 1) {

                // sms sending configurations



                $parents  = $this->db->get('parent')->result_array();

                $students = $this->db->get('student')->result_array();

                $teachers = $this->db->get('teacher')->result_array();

                $date     = $this->input->post('create_timestamp');

                $message  = $data['notice_title'] . ' ';

                $message .= get_phrase('on') . ' ' . $date;

                foreach($parents as $row) {

                    $reciever_phone = $row['phone'];

                    //$this->sms_model->send_sms($message , $reciever_phone);

                }

                foreach($students as $row) {

                    $reciever_phone = $row['phone'];

                    //$this->sms_model->send_sms($message , $reciever_phone);

                }

                foreach($teachers as $row) {

                    $reciever_phone = $row['phone'];

                    //$this->sms_model->send_sms($message , $reciever_phone);

                }

            }



            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/noticeboard/', 'refresh');

        } else if ($param1 == 'edit') {

            $page_data['edit_data'] = $this->db->get_where('noticeboard', array(

                'notice_id' => $param2

            ))->result_array();

        }

        if ($param1 == 'delete') {

            $this->db->where('notice_id', $param2);

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

            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/noticeboard/', 'refresh');

        }

        if ($param1 == 'mark_as_archive') {

            $this->db->where('notice_id' , $param2);

            $this->db->update('noticeboard' , array('status' => 0));

            redirect(base_url() . 'index.php?admin/noticeboard/', 'refresh');

        }



        if ($param1 == 'remove_from_archived') {

            $this->db->where('notice_id' , $param2);

            $this->db->update('noticeboard' , array('status' => 1));

            redirect(base_url() . 'index.php?admin/noticeboard/', 'refresh');

        }

        $page_data['page_name']  = 'noticeboard';

        $page_data['page_title'] = get_phrase('manage_noticeboard');

        $this->load->view('backend/index', $page_data);

    }



    function noticeboard_edit($notice_id) {

      if ($this->session->userdata('admin_login') != 1)

          redirect(base_url(), 'refresh');



      $page_data['page_name']  = 'noticeboard_edit';

      $page_data['notice_id'] = $notice_id;

      $page_data['page_title'] = get_phrase('edit_notice');

      $this->load->view('backend/index', $page_data);

    }



    function reload_noticeboard() {

        $this->load->view('backend/admin/noticeboard');

    }

    /* private messaging */



    function message($param1 = 'message_home', $param2 = '', $param3 = '') {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        $max_size = 2097152;

        if ($param1 == 'send_new') {


			if((!empty($_POST['course_id']) || !empty($_POST['student_id'])  || !empty($_POST['teacher_id'])) && count($_POST['reciever'])>0)

			{


				 $this->session->set_flashdata('error_message' , 'You need to select course,student teacher or recipents');
					redirect(base_url() . 'index.php?admin/message/message_new/', 'refresh');






			}

	  else {
            if (!file_exists('uploads/private_messaging_attached_file/')) {

              $oldmask = umask(0);  // helpful when used in linux server

              mkdir ('uploads/private_messaging_attached_file/', 0777);

            }

            if ($_FILES['attached_file_on_messaging']['name'] != "") {

              if($_FILES['attached_file_on_messaging']['size'] > $max_size){

                $this->session->set_flashdata('error_message' , get_phrase('file_size_can_not_be_larger_that_2_Megabyte'));

                redirect(base_url() . 'index.php?admin/message/message_new/', 'refresh');

              }

              else{

                $file_path = 'uploads/private_messaging_attached_file/'.$_FILES['attached_file_on_messaging']['name'];

                move_uploaded_file($_FILES['attached_file_on_messaging']['tmp_name'], $file_path);

              }

            }



            $message_thread_code = $this->crud_model->send_new_private_message();

            $this->session->set_flashdata('flash_message', get_phrase('message_sent!'));

		}

           // redirect(base_url() . 'index.php?admin/message/message_read/' . $message_thread_code, 'refresh');

        }



        if ($param1 == 'send_reply') {



            if (!file_exists('uploads/private_messaging_attached_file/')) {

              $oldmask = umask(0);  // helpful when used in linux server

              mkdir ('uploads/private_messaging_attached_file/', 0777);

            }

            if ($_FILES['attached_file_on_messaging']['name'] != "") {

              if($_FILES['attached_file_on_messaging']['size'] > $max_size){

                $this->session->set_flashdata('error_message' , get_phrase('file_size_can_not_be_larger_that_2_Megabyte'));

                redirect(base_url() . 'index.php?admin/message/message_read/' . $param2, 'refresh');

              }

              else{

                $file_path = 'uploads/private_messaging_attached_file/'.$_FILES['attached_file_on_messaging']['name'];

                move_uploaded_file($_FILES['attached_file_on_messaging']['tmp_name'], $file_path);

              }

            }



            $this->crud_model->send_reply_message($param2);  //$param2 = message_thread_code

            $this->session->set_flashdata('flash_message', get_phrase('message_sent!'));

            redirect(base_url() . 'index.php?admin/message/message_read/' . $param2, 'refresh');

        }



        if ($param1 == 'message_read') {

            $page_data['current_message_thread_code'] = $param2;  // $param2 = message_thread_code

            $this->crud_model->mark_thread_messages_read($param2);

        }



        $page_data['message_inner_page_name']   = $param1;

        $page_data['page_name']                 = 'message';

        $page_data['page_title']                = get_phrase('private_messaging');

        $this->load->view('backend/index', $page_data);

    }



    /*****SITE/SYSTEM SETTINGS*********/

    function system_settings($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url() . 'index.php?login', 'refresh');



        if ($param1 == 'do_update') {



            $data['description'] = $this->input->post('system_name');

            $this->db->where('type' , 'system_name');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('system_title');

            $this->db->where('type' , 'system_title');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('address');

            $this->db->where('type' , 'address');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('phone');

            $this->db->where('type' , 'phone');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('paypal_email');

            $this->db->where('type' , 'paypal_email');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('payumoney_merchant_key');

            $this->db->where('type' , 'payumoney_merchant_key');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('payumoney_salt_id');

            $this->db->where('type' , 'payumoney_salt_id');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('currency');

            $this->db->where('type' , 'currency');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('system_email');

            $this->db->where('type' , 'system_email');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('system_name');

            $this->db->where('type' , 'system_name');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('language');

            $this->db->where('type' , 'language');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('text_align');

            $this->db->where('type' , 'text_align');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('running_year');

            $this->db->where('type' , 'running_year');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('purchase_code');

            $this->db->where('type' , 'purchase_code');

            $this->db->update('settings' , $data);


			    $data['description'] = $this->input->post('confirmstudent_enable');

            $this->db->where('type' , 'confirmstudent_enable');

            $this->db->update('settings' , $data);



			  $data['description'] = $this->input->post('smtp_host');

            $this->db->where('type' , 'smtp_host');

            $this->db->update('settings' , $data);


			 $data['description'] = $this->input->post('smtp_username');

            $this->db->where('type' , 'smtp_username');

            $this->db->update('settings' , $data);

			 $data['description'] = $this->input->post('smtp_password');

            $this->db->where('type' , 'smtp_password');

            $this->db->update('settings' , $data);

			 $data['description'] = $this->input->post('smtp_port');

            $this->db->where('type' , 'smtp_port');

            $this->db->update('settings' , $data);

			 $data['description'] = $this->input->post('smtp_from');

            $this->db->where('type' , 'smtp_from');

            $this->db->update('settings' , $data);

				 $data['description'] = $this->input->post('smtp_fromname');

            $this->db->where('type' , 'smtp_fromname');

            $this->db->update('settings' , $data);

					 $data['description'] = $this->input->post('smtp_tls');

            $this->db->where('type' , 'smtp_tls');

            $this->db->update('settings' , $data);


			 $data['description'] = $this->input->post('facebook_appid');

            $this->db->where('type' , 'facebook_appid');

            $this->db->update('settings' , $data);

			 $data['description'] = $this->input->post('facebook_appsecret');

            $this->db->where('type' , 'facebook_appsecret');

            $this->db->update('settings' , $data);


				 $data['description'] = $this->input->post('google_appid');

            $this->db->where('type' , 'google_appid');

            $this->db->update('settings' , $data);

			 $data['description'] = $this->input->post('google_appsecret');

            $this->db->where('type' , 'google_appsecret');

            $this->db->update('settings' , $data);







            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/system_settings/', 'refresh');

        }

        if ($param1 == 'upload_logo') {

            move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/logo.png');

            $this->session->set_flashdata('flash_message', get_phrase('settings_updated'));

            redirect(base_url() . 'index.php?admin/system_settings/', 'refresh');

        }

        if ($param1 == 'change_skin') {

            $data['description'] = $param2;

            $this->db->where('type' , 'skin_colour');

            $this->db->update('settings' , $data);

            $this->session->set_flashdata('flash_message' , get_phrase('theme_selected'));

            redirect(base_url() . 'index.php?admin/system_settings/', 'refresh');

        }

        $page_data['page_name']  = 'system_settings';

        $page_data['page_title'] = get_phrase('system_settings');

        $page_data['settings']   = $this->db->get('settings')->result_array();

        $this->load->view('backend/index', $page_data);

    }



    // FRONTEND



    function frontend_pages($param1 = '', $param2 = '', $param3 = '') {

      if ($this->session->userdata('admin_login') != 1) {

        redirect(base_url() , 'refresh');

      }

      if ($param1 == 'events') {

        $page_data['page_content']  = 'frontend_events';

      }

      if ($param1 == 'gallery') {

        $page_data['page_content']  = 'frontend_gallery';

      }

      if ($param1 == 'privacy_policy') {

        $page_data['page_content']  = 'frontend_privacy_policy';

      }

      if ($param1 == 'about_us') {

        $page_data['page_content']  = 'frontend_about_us';

      }

      if ($param1 == 'terms_conditions') {

        $page_data['page_content']  = 'frontend_terms_conditions';

      }

      if ($param1 == 'homepage_slider') {

        $page_data['page_content']  = 'frontend_slider';

      }

      if ($param1 == '' || $param1 == 'general') {

        $page_data['page_content']  = 'frontend_general_settings';

      }

      if ($param1 == 'gallery_image') {

        $page_data['page_content']  = 'frontend_gallery_image';

        $page_data['gallery_id']  = $param2;

      }

      $page_data['page_name'] = 'frontend_pages';

      $page_data['page_title']  = get_phrase('pages');

      $this->load->view('backend/index', $page_data);

    }



    function frontend_events($param1 = '', $param2 = '') {

      if ($param1 == 'add_event') {

        $this->frontend_model->add_event();

        $this->session->set_flashdata('flash_message' , get_phrase('event_added_successfully'));

        redirect(base_url() . 'index.php?admin/frontend_pages/events', 'refresh');

      }

      if ($param1 == 'edit_event') {

        $this->frontend_model->edit_event($param2);

        $this->session->set_flashdata('flash_message' , get_phrase('event_updated_successfully'));

        redirect(base_url() . 'index.php?admin/frontend_pages/events', 'refresh');

      }

      if ($param1 == 'delete') {

        $this->frontend_model->delete_event($param2);

        $this->session->set_flashdata('flash_message' , get_phrase('event_deleted'));

        redirect(base_url() . 'index.php?admin/frontend_pages/events', 'refresh');

      }

    }



    function frontend_gallery($param1 = '', $param2 = '', $param3 = '') {

      if ($param1 == 'add_gallery') {

        $this->frontend_model->add_gallery();

        $this->session->set_flashdata('flash_message' , get_phrase('gallery_added_successfully'));

        redirect(base_url() . 'index.php?admin/frontend_pages/gallery', 'refresh');

      }

      if ($param1 == 'edit_gallery') {

        $this->frontend_model->edit_gallery($param2);

        $this->session->set_flashdata('flash_message' , get_phrase('gallery_updated_successfully'));

        redirect(base_url() . 'index.php?admin/frontend_pages/gallery', 'refresh');

      }

      if ($param1 == 'upload_images') {

        $this->frontend_model->add_gallery_images($param2);

        $this->session->set_flashdata('flash_message' , get_phrase('images_uploaded'));

        redirect(base_url().'index.php?admin/frontend_pages/gallery_image/'.$param2, 'refresh');

      }

      if ($param1 == 'delete_image') {

        $this->frontend_model->delete_gallery_image($param2);

        $this->session->set_flashdata('flash_message' , get_phrase('images_deleted'));

        redirect(base_url().'index.php?admin/frontend_pages/gallery_image/'.$param3, 'refresh');

      }

      // if ($param1 == 'delete') {

      //   $this->frontend_model->delete_gallery($param2);

      //   $this->session->set_flashdata('flash_message' , get_phrase('gallery_deleted'));

      //   redirect(base_url() . 'index.php?admin/frontend_pages/gallery', 'refresh');

      // }

    }



    function frontend_news($param1 = '', $param2 = '') {

      if ($param1 == 'add_news') {

        $this->frontend_model->add_news();

        $this->session->set_flashdata('flash_message' , get_phrase('news_added_successfully'));

        redirect(base_url() . 'index.php?admin/frontend_pages/news', 'refresh');

      }

      if ($param1 == 'edit_news') {



      }

      if ($param1 == 'delete') {

        $this->frontend_model->delete_news($param2);

        $this->session->set_flashdata('flash_message' , get_phrase('news_was_deleted'));

        redirect(base_url() . 'index.php?admin/frontend_pages/news', 'refresh');

      }

    }



    function frontend_settings($task) {

      if ($task == 'update_terms_conditions') {

        $this->frontend_model->update_terms_conditions();

        $this->session->set_flashdata('flash_message' , get_phrase('terms_updated'));

        redirect(base_url() . 'index.php?admin/frontend_pages/terms_conditions', 'refresh');

      }

      if ($task == 'update_about_us') {

        $this->frontend_model->update_about_us();

        $this->session->set_flashdata('flash_message' , get_phrase('about_us_updated'));

        redirect(base_url() . 'index.php?admin/frontend_pages/about_us', 'refresh');

      }

      if ($task == 'update_privacy_policy') {

        $this->frontend_model->update_privacy_policy();

        $this->session->set_flashdata('flash_message' , get_phrase('privacy_policy_updated'));

        redirect(base_url() . 'index.php?admin/frontend_pages/privacy_policy', 'refresh');

      }

      if ($task == 'update_general_settings') {

        $this->frontend_model->update_frontend_general_settings();

        $this->session->set_flashdata('flash_message' , get_phrase('general_settings_updated'));

        redirect(base_url() . 'index.php?admin/frontend_pages/general', 'refresh');

      }

      if ($task == 'update_slider_images') {

        $this->frontend_model->update_slider_images();

        $this->session->set_flashdata('flash_message' , get_phrase('slider_images_updated'));

        redirect(base_url() . 'index.php?admin/frontend_pages/homepage_slider', 'refresh');

      }

    }



    function frontend_themes() {

      if ($this->session->userdata('admin_login') != 1) {

        redirect(base_url() , 'refresh');

      }

      $page_data['page_name'] = 'frontend_themes';

      $page_data['page_title']  = get_phrase('themes');

      $this->load->view('backend/index', $page_data);

    }



    // FRONTEND





    function get_session_changer()

    {

        $this->load->view('backend/admin/change_session');

    }



    function change_session()

    {

        $data['description'] = $this->input->post('running_year');

        $this->db->where('type' , 'running_year');

        $this->db->update('settings' , $data);

        $this->session->set_flashdata('flash_message' , get_phrase('session_changed'));

        redirect(base_url() . 'index.php?admin/dashboard/', 'refresh');

    }



	/***** UPDATE PRODUCT *****/



	function update( $task = '', $purchase_code = '' ) {



        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        // Create update directory.

        $dir    = 'update';

        if ( !is_dir($dir) )

            mkdir($dir, 0777, true);



        $zipped_file_name   = $_FILES["file_name"]["name"];

        $path               = 'update/' . $zipped_file_name;



        move_uploaded_file($_FILES["file_name"]["tmp_name"], $path);



        // Unzip uploaded update file and remove zip file.

        $zip = new ZipArchive;

        $res = $zip->open($path);

        if ($res === TRUE) {

            $zip->extractTo('update');

            $zip->close();

            unlink($path);

        }



        $unzipped_file_name = substr($zipped_file_name, 0, -4);

        $str                = file_get_contents('./update/' . $unzipped_file_name . '/update_config.json');

        $json               = json_decode($str, true);







		// Run php modifications

		require './update/' . $unzipped_file_name . '/update_script.php';



        // Create new directories.

        if(!empty($json['directory'])) {

            foreach($json['directory'] as $directory) {

                if ( !is_dir( $directory['name']) )

                    mkdir( $directory['name'], 0777, true );

            }

        }



        // Create/Replace new files.

        if(!empty($json['files'])) {

            foreach($json['files'] as $file)

                copy($file['root_directory'], $file['update_directory']);

        }



        $this->session->set_flashdata('flash_message' , get_phrase('product_updated_successfully'));

        redirect(base_url() . 'index.php?admin/system_settings');

    }



    /*****SMS SETTINGS*********/

    function sms_settings($param1 = '' , $param2 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url() . 'index.php?login', 'refresh');

        if ($param1 == 'clickatell') {



            $data['description'] = $this->input->post('clickatell_user');

            $this->db->where('type' , 'clickatell_user');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('clickatell_password');

            $this->db->where('type' , 'clickatell_password');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('clickatell_api_id');

            $this->db->where('type' , 'clickatell_api_id');

            $this->db->update('settings' , $data);



            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/sms_settings/', 'refresh');

        }



        if ($param1 == 'twilio') {



            $data['description'] = $this->input->post('twilio_account_sid');

            $this->db->where('type' , 'twilio_account_sid');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('twilio_auth_token');

            $this->db->where('type' , 'twilio_auth_token');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('twilio_sender_phone_number');

            $this->db->where('type' , 'twilio_sender_phone_number');

            $this->db->update('settings' , $data);



            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/sms_settings/', 'refresh');

        }

        if ($param1 == 'msg91') {



            $data['description'] = $this->input->post('authentication_key');

            $this->db->where('type' , 'msg91_authentication_key');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('sender_ID');

            $this->db->where('type' , 'msg91_sender_ID');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('msg91_route');

            $this->db->where('type' , 'msg91_route');

            $this->db->update('settings' , $data);



            $data['description'] = $this->input->post('msg91_country_code');

            $this->db->where('type' , 'msg91_country_code');

            $this->db->update('settings' , $data);



            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/sms_settings/', 'refresh');

        }



        if ($param1 == 'active_service') {



            $data['description'] = $this->input->post('active_sms_service');

            $this->db->where('type' , 'active_sms_service');

            $this->db->update('settings' , $data);



            $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            redirect(base_url() . 'index.php?admin/sms_settings/', 'refresh');

        }



        $page_data['page_name']  = 'sms_settings';

        $page_data['page_title'] = get_phrase('sms_settings');

        $page_data['settings']   = $this->db->get('settings')->result_array();

        $this->load->view('backend/index', $page_data);

    }



    /*****LANGUAGE SETTINGS*********/

    function manage_language($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

			redirect(base_url() . 'index.php?login', 'refresh');



		if ($param1 == 'edit_phrase') {

			$page_data['edit_profile'] 	= $param2;

		}

		if ($param1 == 'update_phrase') {

			$language	=	$param2;

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

			for($i = 1 ; $i < $total_phrase ; $i++)

			{

				//$data[$language]	=	$this->input->post('phrase').$i;

				$this->db->where('phrase_id' , $i);

				$this->db->update('language' , array($language => $this->input->post('phrase'.$i)));

			}

			redirect(base_url() . 'index.php?admin/manage_language/edit_phrase/'.$language, 'refresh');

		}

		if ($param1 == 'do_update') {

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

			$data[$language] = $this->input->post('phrase');

			$this->db->where('phrase_id', $param2);

			$this->db->update('language', $data);

			$this->session->set_flashdata('flash_message', get_phrase('settings_updated'));

			redirect(base_url() . 'index.php?admin/manage_language/', 'refresh');

		}

		if ($param1 == 'add_phrase') {

			$data['phrase'] = $this->input->post('phrase');

			$this->db->insert('language', $data);

			$this->session->set_flashdata('flash_message', get_phrase('settings_updated'));

			redirect(base_url() . 'index.php?admin/manage_language/', 'refresh');

		}

		if ($param1 == 'add_language') {

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

			$this->load->dbforge();

			$fields = array(

				$language => array(

					'type' => 'LONGTEXT'

				)

			);

			$this->dbforge->add_column('language', $fields);



			$this->session->set_flashdata('flash_message', get_phrase('settings_updated'));

			redirect(base_url() . 'index.php?admin/manage_language/', 'refresh');

		}

		if ($param1 == 'delete_language') {

			$language = $param2;

			$this->load->dbforge();

			$this->dbforge->drop_column('language', $language);

			$this->session->set_flashdata('flash_message', get_phrase('settings_updated'));



			redirect(base_url() . 'index.php?admin/manage_language/', 'refresh');

		}

		$page_data['page_name']        = 'manage_language';

		$page_data['page_title']       = get_phrase('manage_language');

		//$page_data['language_phrases'] = $this->db->get('language')->result_array();

		$this->load->view('backend/index', $page_data);

    }



    /*****BACKUP / RESTORE / DELETE DATA PAGE**********/

    function backup_restore($operation = '', $type = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        if ($operation == 'create') {

            $this->crud_model->create_backup($type);

        }

        if ($operation == 'restore') {

            $this->crud_model->restore_backup();

            $this->session->set_flashdata('backup_message', 'Backup Restored');

            redirect(base_url() . 'index.php?admin/backup_restore/', 'refresh');

        }

        if ($operation == 'delete') {

            $this->crud_model->truncate($type);

            $this->session->set_flashdata('backup_message', 'Data removed');

            redirect(base_url() . 'index.php?admin/backup_restore/', 'refresh');

        }



        $page_data['page_info']  = 'Create backup / restore from backup';

        $page_data['page_name']  = 'backup_restore';

        $page_data['page_title'] = get_phrase('manage_backup_restore');

        $this->load->view('backend/index', $page_data);

    }



    /******MANAGE OWN PROFILE AND CHANGE PASSWORD***/

    function manage_profile($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url() . 'index.php?login', 'refresh');

        if ($param1 == 'update_profile_info') {

            $data['name']  = $this->input->post('name');

            $data['email'] = $this->input->post('email');



            $admin_id = $param2;



            $validation = email_validation_for_edit($data['email'], $admin_id, 'admin');

            if($validation == 1){

                $this->db->where('admin_id', $this->session->userdata('admin_id'));

                $this->db->update('admin', $data);

                move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/admin_image/' . $this->session->userdata('admin_id') . '.jpg');

                $this->session->set_flashdata('flash_message', get_phrase('account_updated'));

            }

            else{

                $this->session->set_flashdata('error_message', get_phrase('this_email_id_is_not_available'));

            }

            redirect(base_url() . 'index.php?admin/manage_profile/', 'refresh');

        }

        if ($param1 == 'change_password') {

            $data['password']             = sha1($this->input->post('password'));

            $data['new_password']         = sha1($this->input->post('new_password'));

            $data['confirm_new_password'] = sha1($this->input->post('confirm_new_password'));



            $current_password = $this->db->get_where('admin', array(

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

            ))->row()->password;

            if ($current_password == $data['password'] && $data['new_password'] == $data['confirm_new_password']) {

                $this->db->where('admin_id', $this->session->userdata('admin_id'));

                $this->db->update('admin', array(

                    'password' => $data['new_password']

                ));

                $this->session->set_flashdata('flash_message', get_phrase('password_updated'));

            } else {

                $this->session->set_flashdata('error_message', get_phrase('password_mismatch'));

            }

            redirect(base_url() . 'index.php?admin/manage_profile/', 'refresh');

        }

        $page_data['page_name']  = 'manage_profile';

        $page_data['page_title'] = get_phrase('manage_profile');

        $page_data['edit_data']  = $this->db->get_where('admin', array(

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

        ))->result_array();

        $this->load->view('backend/index', $page_data);

    }



    // VIEW QUESTION PAPERS

    function question_paper($param1 = "", $param2 = "")

    {

        if ($this->session->userdata('admin_login') != 1)

        {

            $this->session->set_userdata('last_page', current_url());

            redirect(base_url(), 'refresh');

        }



        $data['page_name']  = 'question_paper';

        $data['page_title'] = get_phrase('question_paper');

        $this->load->view('backend/index', $data);

    }



    // MANAGE LIBRARIANS

    function librarian($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');



        if ($param1 == 'create') {

            $data['name']       = $this->input->post('name');

            $data['email']      = $this->input->post('email');

            $data['password']   = sha1($this->input->post('password'));

            $validation = email_validation($data['email']);

            if ($validation == 1) {

                $this->db->insert('librarian', $data);

                $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

                $this->email_model->account_opening_email('librarian', $data['email'], $this->input->post('password')); //SEND EMAIL ACCOUNT OPENING EMAIL

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

            }

            redirect(base_url() . 'index.php?admin/librarian/', 'refresh');

        }



        if ($param1 == 'edit') {

            $data['name']   = $this->input->post('name');

            $data['email']  = $this->input->post('email');

            $validation = email_validation_for_edit($data['email'], $param2, 'librarian');

            if ($validation == 1) {

                $this->db->where('librarian_id' , $param2);

                $this->db->update('librarian' , $data);

                $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

            }



            redirect(base_url() . 'index.php?admin/librarian/', 'refresh');

        }



        if ($param1 == 'delete') {

            $this->db->where('librarian_id' , $param2);

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



            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/librarian/', 'refresh');

        }



        $page_data['page_title']    = get_phrase('all_librarians');

        $page_data['page_name']     = 'librarian';

        $this->load->view('backend/index', $page_data);

    }



    // MANAGE ACCOUNTANTS

    function accountant($param1 = '', $param2 = '', $param3 = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect('login', 'refresh');



        if ($param1 == 'create') {

            $data['name']       = $this->input->post('name');

            $data['email']      = $this->input->post('email');

            $data['password']   = sha1($this->input->post('password'));



            $validation = email_validation($data['email']);

            if ($validation == 1) {

                $this->db->insert('accountant', $data);

                $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully'));

                $this->email_model->account_opening_email('accountant', $data['email'], $this->input->post('password')); //SEND EMAIL ACCOUNT OPENING EMAIL

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

            }



            redirect(base_url() . 'index.php?admin/accountant', 'refresh');

        }



        if ($param1 == 'edit') {

            $data['name']   = $this->input->post('name');

            $data['email']  = $this->input->post('email');



            $validation = email_validation_for_edit($data['email'], $param2, 'accountant');

            if($validation == 1){

                $this->db->where('accountant_id' , $param2);

                $this->db->update('accountant' , $data);

                $this->session->set_flashdata('flash_message' , get_phrase('data_updated'));

            }

            else{

                $this->session->set_flashdata('error_message' , get_phrase('this_email_id_is_not_available'));

            }



            redirect(base_url() . 'index.php?admin/accountant', 'refresh');

        }



        if ($param1 == 'delete') {

            $this->db->where('accountant_id' , $param2);

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



            $this->session->set_flashdata('flash_message' , get_phrase('data_deleted'));

            redirect(base_url() . 'index.php?admin/accountant', 'refresh');

        }



        $page_data['page_title']    = get_phrase('all_accountants');

        $page_data['page_name']     = 'accountant';

        $this->load->view('backend/index', $page_data);

    }











    // bulk student_add using CSV

    function generate_bulk_student_csv($course_id = '', $section_id = '')

    {

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



        $data['course_id']   = $course_id;

        $data['section_id'] = $section_id;

        $data['year']       = $this->db->get_where('settings', array('type'=>'running_year'))->row()->description;



        $file   = fopen("uploads/bulk_student.csv", "w");

        $line   = array('StudentName', 'Id', 'Email', 'Password', 'Phone', 'Address', 'ParentID', 'Gender');

        fputcsv($file, $line, ',');

       echo $file_path = base_url() . 'uploads/bulk_student.csv';

    }

    // CSV IMPORT

    function bulk_student_add_using_csv($param1 = '') {



        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');



       if ($param1 == 'import') {

          if ($this->input->post('course_id') != '' && $this->input->post('section_id') != '') {



              move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/bulk_student.csv');

              $csv = array_map('str_getcsv', file('uploads/bulk_student.csv'));

              $count = 1;

              $array_size = sizeof($csv);



             foreach ($csv as $row) {

                  if ($count == 1) {

                      $count++;

                      continue;

                  }

                  $password = $row[3];



                  $data['name']      = $row[0];

                  $data['student_code']  = $row[1];

                  $data['email']     = $row[2];

                  $data['password']  = sha1($row[3]);

                  $data['phone']     = $row[4];

                  $data['address']   = $row[5];

                  $data['parent_id'] = $row[6];

                  $data['sex']       = strtolower($row[7]);

                 //student id (code) validation

                 $code_validation = code_validation_insert($data['student_code']);

                 if(!$code_validation){

                     $this->session->set_flashdata('error_message' , get_phrase('this_id_no_is_not_available'));

                     redirect(base_url() . 'index.php?admin/student_add/', 'refresh');

                 }

                 //student id validation ends



                  $validation = email_validation($data['email']);

                  if ($validation == 1) {

                    $this->db->insert('student', $data);

                    $student_id = $this->db->insert_id();



                    $data2['student_id']  = $student_id;

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

                    $data2['section_id']  = $this->input->post('section_id');

//                    $data2['roll']        = $row[1];

                    $data2['enroll_code'] =   substr(md5(rand(0, 1000000)), 0, 7);

                    $data2['date_added']  =   strtotime(date("Y-m-d H:i:s"));

                    $data2['year']        =   $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description;

                    $this->db->insert('enroll' , $data2);

                  }

                  else{

                    if ($array_size == 2) {

                      $this->session->set_flashdata('error_message', get_phrase('this_email_id_"').$data['email'].get_phrase('"_is_not_available'));

                      redirect(base_url() . 'index.php?admin/student_bulk_add', 'refresh');

                    }

                    elseif($array_size > 2){

                      $this->session->set_flashdata('error_message', get_phrase('some_email_IDs_are_not_available'));

                    }

                  }



              }





              $this->session->set_flashdata('flash_message', get_phrase('student_imported'));

              redirect(base_url() . 'index.php?admin/student_bulk_add', 'refresh');

           }

           else{

             $this->session->set_flashdata('error_message', get_phrase('please_make_sure_course_and_section_is_selected'));

             redirect(base_url() . 'index.php?admin/student_bulk_add', 'refresh');

           }

        }

        $page_data['page_name']  = 'student_bulk_add';

        $page_data['page_title'] = get_phrase('add_bulk_student');

        $this->load->view('backend/index', $page_data);

    }



    function study_material($task = "", $document_id = "")

    {

        if ($this->session->userdata('admin_login') != 1)

        {

            $this->session->set_userdata('last_page' , current_url());

            redirect(base_url(), 'refresh');

        }



        if ($task == "create")

        {

            $this->crud_model->save_study_material_info();

            $this->session->set_flashdata('flash_message' , get_phrase('study_material_info_saved_successfuly'));

            redirect(base_url() . 'index.php?admin/study_material' , 'refresh');

        }



        if ($task == "update")

        {

            $this->crud_model->update_study_material_info($document_id);

            $this->session->set_flashdata('flash_message' , get_phrase('study_material_info_updated_successfuly'));

            redirect(base_url() . 'index.php?admin/study_material' , 'refresh');

        }



        if ($task == "delete")

        {

            $this->crud_model->delete_study_material_info($document_id);

            redirect(base_url() . 'index.php?admin/study_material');

        }



        $data['study_material_info']    = $this->crud_model->select_study_material_info();

        $data['page_name']              = 'study_material';

        $data['page_title']             = get_phrase('study_material');

        $this->load->view('backend/index', $data);

    }



    //new code

    function print_id($id){

        if ($this->session->userdata('admin_login') != 1)

            redirect(base_url(), 'refresh');

        $data['id'] = $id;

        $this->load->view('backend/admin/print_id', $data);

    }



    function create_barcode($student_id)

    {



            return $this->Barcode_model->create_barcode($student_id);





    }





}

Youez - 2016 - github.com/yon3zu
LinuXploit