Esempio n. 1
0
 function index()
 {
     $data = '';
     $banner_extension = $this->_tep_banner_image_extension();
     // check if the graphs directory exists
     $dir_ok = false;
     if (function_exists('imagecreate') && !empty($banner_extension)) {
         if (is_dir(FCPATH . 'media' . DS . 'graph')) {
             if (is_writeable(FCPATH . 'media' . DS . 'graph')) {
                 $dir_ok = true;
             } else {
                 // display login error
                 //$data['error_message'][] = 'Folder "' . dirname(FCPATH) . '/media/graph" must be writeable.';
                 $msg = array('error' => '<p>Folder ' . FCPATH . 'media' . DS . 'graph must be writeable.</p>');
                 setMessages($msg, 'error');
             }
         } else {
             // display login error
             //$data['error_message'][] = 'Folder "' . dirname(FCPATH) . '/media/graph" does not exists.';
             $msg = array('error' => "<p>Folder " . FCPATH . 'media' . DS . 'graph does not exists.</p>');
             setMessages($msg, 'error');
         }
     }
     $this->db->order_by('banner_title', 'asc');
     $banner_query = $this->db->get('banner');
     $data['banner'] = $banner_query->result_array();
     foreach ($data['banner'] as $k => $v) {
         $info_query = $this->db->query("select sum(banner_shown) as banner_shown, sum(banner_clicked) as banner_clicked from cf_banner_history where banner_id = '" . (int) $v['banner_id'] . "'");
         $data['banner'][$k]['info'] = $info_query->result_array();
     }
     $this->load->view('admin/banner/banner_view', $data);
 }
Esempio n. 2
0
 private function _check_access()
 {
     $is_admin = $this->CI->user('is_admin');
     if (!$is_admin) {
         return FALSE;
     }
     $group_id = $this->CI->user('group_id');
     //@todo::check if the user can access
     //Check access rights
     Library('login')->check_login($group_id);
     $page = trim($this->CI->cfAdminController . '/' . $this->CI->cfAdminMethod, '/');
     $defaultToAll = array('sortdata/menu', 'sortdata/folder', 'sortdata/group', 'form/ajax', 'file/file-search-form');
     if (in_array($page, $defaultToAll)) {
         return TRUE;
     }
     $can_access = Model('module')->can_access($group_id, $page);
     if ($can_access) {
         return TRUE;
     }
     $default_landing = Model('module')->default_landing($group_id);
     if (!$default_landing) {
         return FALSE;
     }
     $msg = array('error' => '<p>You need access to perform action on page <strong>' . $page . '</strong>. </p>');
     setMessages($msg, 'error');
     redirect('admin/' . $default_landing);
     return TRUE;
 }
Esempio n. 3
0
 function check_login($access = array())
 {
     $access = (array) $access;
     if ($this->CI()->session->userdata('logged_in') === '1') {
         $data = $this->CI()->session->userdata('loggedData');
         if (in_array($data['group_id'], $access)) {
             $this->CI()->db->where(array('email' => $data['email'], 'password' => $data['password'], 'group_id' => $data['group_id']));
             $this->CI()->db->where('active', '1');
             $this->CI()->db->from('user');
             $query = $this->CI()->db->count_all_results();
             if ($query < 1) {
                 $this->CI()->session->set_userdata('login_error', '1');
                 $msg = array('login' => '<p>Some problem caused accessing this page. Please contact us regarding this issue.</p>');
                 setMessages($msg, 'error');
                 redirect('registration/login');
             }
         } else {
             $this->CI()->session->set_userdata('login_error', '1');
             $msg = array('login' => '<p>You must have appropriate rights to access secure page.</p>');
             setMessages($msg, 'error');
             redirect('registration/login');
         }
     } else {
         $this->CI()->session->set_userdata('login_error', '1');
         $msg = array('login' => '<p>You must be logged in to access secure area.</p>');
         setMessages($msg, 'error');
         redirect('registration/login');
     }
     //just in case
     $this->CI()->session->set_userdata('redirect', '1');
     return $this->redirect();
 }
Esempio n. 4
0
 /**
  * Forgotten Password
  *
  * @access    public
  * @return    void
  */
 public function forgotten_password()
 {
     $data = '';
     //Define Validation Rules
     $val = array(array('field' => 'email', 'label' => 'Email', 'rules' => 'trim|required|valid_email|xss_clean'));
     $this->form_validation->set_rules($val);
     //Run Validation
     if ($this->form_validation->run()) {
         $email = set_value('email');
         $query = $this->db->get_where('user', array('email' => $email));
         $query = $query->result();
         //If User Found With Such Email, Reset Password And Notify
         if (count($query) >= 1) {
             $userData = $query[0];
             //Create A Random Password
             $newPass = $this->_createRandomPassword();
             $newPassMD5 = md5($newPass);
             //update database with new password
             $this->db->where('email', $email);
             $this->db->update('user', array('password' => $newPassMD5));
             //send new password
             $this->load->library('email');
             $this->email->initialize();
             $this->email->subject('| ' . $this->setting->site_name . ' | Password Reset');
             $this->email->from($this->setting->email_sender, $this->setting->site_name);
             $this->email->to($email);
             //Prepare Email Body
             $emailBody = "\n\nHi " . $userData->firstname . " " . $userData->lastname . ",\n\nYou or someone requested for a new password through forgotten password link at " . $this->setting->site_name . " and we have reset your password.\n\nYour New Password is:\n\n" . $newPass . "\n\n";
             $this->email->message($emailBody);
             if ($this->email->send()) {
                 //Set Success Message
                 $msg = array('login' => '<p>New Password Sent Successfully.</p>');
                 setMessages($msg, 'success');
                 $_POST = array();
             } else {
                 //Set Error Message
                 //echo $this->email->print_debugger();
                 $msg = array('login' => '<p>System could not send password at this time, please try again later.</p>');
                 setMessages($msg, 'error');
             }
         } else {
             //Set Error Message
             $msg = array('login' => '<p>Invalid Email.</p>');
             setMessages($msg, 'error');
         }
     }
     if (validation_errors()) {
         //Set Error Message
         $msg = array('login' => validation_errors());
         setMessages($msg, 'error');
     }
     //main content block [content view]
     $data['content_block'] = 'registration/forgotten_password_view';
     /*
     | @process_view('data', 'master page')
     | @see app/core/MY_Controller.php
     */
     $this->process_view($data);
 }
Esempio n. 5
0
 function _key_edit()
 {
     $data = '';
     $id_array = array();
     if (!isset($_POST['setting'])) {
         if (isset($_POST['select'])) {
             $id_array = $_POST['select'];
         } else {
             $msg = array('error' => "<p>You must select atleast one setting key to edit.</p>");
             setMessages($msg, 'error');
             unset($_POST);
             $this->keys();
             exit;
         }
     }
     !is_array($id_array) ? $id_array = array() : '';
     //START: for the first page load, get data from database
     foreach ($id_array as $id) {
         $id = preg_replace('/[^0-9]+/', '', $id);
         $this->db->where('setting_id', $id);
         $query = $this->db->get('setting_keys');
         foreach ($query->result() as $row) {
             $_POST['setting'][$row->setting_id]['setting_id'] = $row->setting_id;
             $_POST['setting'][$row->setting_id]['setting_key'] = $row->setting_key;
             $_POST['setting'][$row->setting_id]['setting_info'] = $row->setting_info;
             $_POST['setting'][$row->setting_id]['setting_form'] = $row->setting_form;
             $_POST['setting'][$row->setting_id]['setting_option'] = $row->setting_option;
         }
     }
     //END: for the first page load, get data from database
     //START: clean data and update in database
     if ($this->input->post('edit') == 'Update' && isset($_POST['setting']) && is_array($_POST['setting'])) {
         foreach ($_POST['setting'] as $v) {
             //cleaning
             $setting_id = $v['setting_id'];
             //clean the data to autofill in form
             $_POST['setting'][$setting_id]['setting_id'] = $setting_id;
             $_POST['setting'][$setting_id]['setting_key'] = $v['setting_key'];
             $_POST['setting'][$setting_id]['setting_info'] = $v['setting_info'];
             $_POST['setting'][$setting_id]['setting_form'] = $v['setting_form'];
             $_POST['setting'][$setting_id]['setting_option'] = $v['setting_option'];
             //update database if set
             if (!empty($v['setting_key']) && !empty($v['setting_info']) && !empty($v['setting_id'])) {
                 $query = $this->db->get_where('setting_keys', array('setting_id' => $v['setting_id']));
                 $row = $query->result_array();
                 $this->db->where('setting_id', $v['setting_id']);
                 $sql = array('setting_key' => $v['setting_key'], 'setting_option' => $v['setting_option'], 'setting_form' => $v['setting_form'], 'setting_info' => $v['setting_info']);
                 $this->db->update('setting_keys', $sql);
                 if (count($row) && isset($row[0]['setting_key'])) {
                     $this->db->where('setting_key', $row[0]['setting_key']);
                     $this->db->update('setting', $sql);
                 }
             }
             $msg = array('success' => "<p>Updated successfully.</p>");
             setMessages($msg, 'success');
         }
     }
     //END: validate data and update in database
     //---
     $html_string = $this->load->view('admin/setting/key_edit_view', $data, true);
     //Get view data in place of sending to browser.
     Library('process')->view($html_string);
 }
Esempio n. 6
0
 function _edit()
 {
     $data = '';
     Library('asset')->addJs('tiny_mce/tiny_mce');
     $data['authors'] = $this->get_authors();
     $id_array = array();
     if (!isset($_POST['page'])) {
         if (isset($_POST['select'])) {
             $id_array = $_POST['select'];
         } else {
             $msg = array('error' => "<p>You must select atleast one page to edit</p>");
             setMessages($msg, 'error');
             unset($_POST);
             $this->index();
             exit;
         }
     }
     !is_array($id_array) ? $id_array = array() : '';
     //START: for the first page load, get data from database
     foreach ($id_array as $id) {
         $id = preg_replace('/[^0-9]+/', '', $id);
         $this->db->where('page_id', $id);
         $query = $this->db->get('page');
         foreach ($query->result() as $row) {
             $_POST['page'][$row->page_id]['id'] = $row->page_id;
             $_POST['page'][$row->page_id]['page_active'] = $row->page_active;
             $_POST['page'][$row->page_id]['page_title'] = $row->page_title;
             //$_POST['page'][$row->page_id]['page_blurb'] = $row->page_blurb;
             //$_POST['page'][$row->page_id]['page_blurb_length'] = $row->page_blurb_length;
             $_POST['page'][$row->page_id]['page_body'] = $row->page_body;
             $_POST['page'][$row->page_id]['menu_id'] = $row->menu_id;
             $_POST['page'][$row->page_id]['websites_id'] = $row->websites_id;
             $_POST['page'][$row->page_id]['user_id'] = $row->user_id;
             $_POST['page'][$row->page_id]['page_author'] = $row->page_author;
             $_POST['page'][$row->page_id]['page_tag'] = $row->page_tag;
             $_POST['page'][$row->page_id]['page_date'] = $row->page_date;
             $_POST['page'][$row->page_id]['show_date'] = $row->show_date;
             $_POST['page'][$row->page_id]['show_author'] = $row->show_author;
             $_POST['page'][$row->page_id]['allow_comment'] = $row->allow_comment;
             $_POST['page'][$row->page_id]['page_meta_title'] = $row->page_meta_title;
             $_POST['page'][$row->page_id]['page_meta_keywords'] = $row->page_meta_keywords;
             $_POST['page'][$row->page_id]['page_meta_description'] = $row->page_meta_description;
             $_POST['page'][$row->page_id]['page_sort'] = $row->page_sort;
             $_POST['page'][$row->page_id]['group_id'] = array('1', '2', '3');
         }
         $this->db->where('page_id', $id);
         $query = $this->db->get('page_access');
         //$test = $query->result_array();
         foreach ($query->result() as $row) {
             $_POST['page'][$row->page_id]['group_id'] = explode('_', $row->group_id);
         }
         //To make it multiple selected, we need more than two elements in array.
         if (count($_POST['page'][$row->page_id]['group_id']) == 1) {
             $_POST['page'][$row->page_id]['group_id'][] = '0';
         }
     }
     //END: for the first page load, get data from database
     //START: clean data and update in database
     if ($this->input->post('edit') == 'Update' && isset($_POST['page']) && is_array($_POST['page'])) {
         foreach ($_POST['page'] as $v) {
             if (empty($v['menu_id'])) {
                 $v['menu_id'][0] = 0;
             }
             if (empty($v['websites_id'])) {
                 $v['websites_id'][0] = 0;
             }
             //print_r($v);
             //cleaning
             $id = xss_clean($v['id']);
             $page_active = xss_clean($v['page_active']);
             $page_title = $v['page_title'];
             $page_blurb = '';
             //$page_blurb_length = xss_clean($v['page_blurb_length']);
             $page_body = $v['page_body'];
             $user_id = $v['user_id'];
             $page_author = $v['page_author'];
             $page_tag = $v['page_tag'];
             $page_date = date('Y-m-d H:i:s', strtotime($v['page_date']));
             $show_date = isset($v['show_date']) ? $v['show_date'] : '0';
             $show_author = isset($v['show_author']) ? $v['show_author'] : '0';
             $allow_comment = isset($v['allow_comment']) ? $v['allow_comment'] : '0';
             $page_body = $v['page_body'];
             //$menu_id = $v['menu_id'];
             $page_meta_title = xss_clean($v['page_meta_title']);
             $page_meta_keywords = xss_clean($v['page_meta_keywords']);
             $page_meta_description = xss_clean($v['page_meta_description']);
             $page_sort = xss_clean($v['page_sort']);
             $page_break = explode('<!-- pagebreak -->', $page_body);
             if (isset($page_break[0])) {
                 $page_blurb = trim($page_break[0]);
                 if (substr($page_blurb, -1, 3) == '<p>') {
                     $page_blurb = substr($page_blurb, 0, -3);
                 }
             }
             //clean up menu ids
             $menu_id = array();
             foreach ($v['menu_id'] as $w) {
                 $w = xss_clean($w);
                 $menu_id[$w] = $w;
             }
             $websites_id = array();
             foreach ($v['websites_id'] as $w) {
                 $w = xss_clean($w);
                 $websites_id[$w] = $w;
             }
             //clean up group id, selected from multi select
             $group_id = array();
             foreach ($v['group_id'] as $w) {
                 $group_id[] = xss_clean($w);
             }
             //clean the data to autofill in form
             $_POST['page'][$id]['id'] = $id;
             $_POST['page'][$id]['page_active'] = $page_active;
             $_POST['page'][$id]['page_title'] = $page_title;
             //$_POST['page'][$id]['page_blurb'] = $page_blurb;
             //$_POST['page'][$id]['page_blurb_length'] = $page_blurb_length;
             $_POST['page'][$id]['page_body'] = $page_body;
             $_POST['page'][$id]['user_id'] = $user_id;
             $_POST['page'][$id]['page_author'] = $page_author;
             $_POST['page'][$id]['page_tag'] = $page_tag;
             $_POST['page'][$id]['page_date'] = $page_date;
             $_POST['page'][$id]['show_date'] = $show_date;
             $_POST['page'][$id]['show_author'] = $show_author;
             $_POST['page'][$id]['allow_comment'] = $allow_comment;
             $_POST['page'][$id]['menu_id'] = $menu_id;
             $_POST['page'][$id]['websites_id'] = $websites_id;
             $_POST['page'][$id]['page_meta_title'] = $page_meta_title;
             $_POST['page'][$id]['page_meta_keywords'] = $page_meta_keywords;
             $_POST['page'][$id]['page_meta_description'] = $page_meta_description;
             $_POST['page'][$id]['page_sort'] = $page_sort;
             $_POST['page'][$id]['group_id'] = $group_id;
             //update database if set
             if (!empty($page_title) && !empty($page_body) && !empty($id)) {
                 //delete previous tag
                 //$this->db->delete('page_tag', array('page_id' => $id));
                 //delete|decrement previous tag count
                 $this->db->where('page_id', $id);
                 $query = $this->db->get('page');
                 $page_data = $query->result_array();
                 if ($page_data[0]['websites_id']) {
                     $websites_ids = explode(',', trim($page_data[0]['websites_id'], ','));
                     Model('data')->tag_cloud_delete($id, $this->uri->segment(3, 'page'), $websites_ids);
                 }
                 //Model('data')->tag_cloud_delete($id, $this->uri->segment(3, 'page'), $websites_id);
                 //update page
                 $this->db->where('page_id', $id);
                 $this->db->update('page', array('page_active' => $page_active, 'page_title' => $page_title, 'page_blurb' => $page_blurb, 'page_body' => $page_body, 'user_id' => $user_id, 'page_author' => $page_author, 'page_tag' => $page_tag, 'page_date' => $page_date, 'show_date' => $show_date, 'show_author' => $show_author, 'allow_comment' => $allow_comment, 'menu_id' => ',' . implode(',', $menu_id) . ',', 'websites_id' => ',' . implode(',', $websites_id) . ',', 'page_meta_title' => $page_meta_title, 'page_meta_keywords' => $page_meta_keywords, 'page_meta_description' => $page_meta_description, 'page_sort' => $page_sort));
                 //update page access
                 $this->db->where('page_id', $id);
                 $this->db->delete('page_access');
                 $this->db->insert('page_access', array('page_id' => $id, 'group_id' => implode('_', $group_id)));
                 //update page tags
                 if (isset($page_tag)) {
                     $page_tag = explode(',', $page_tag);
                     if (is_array($page_tag) && count($page_tag) > 0) {
                         foreach ($page_tag as $v) {
                             //clean tag
                             $tag = url_title($v);
                             //add|increment tag count
                             Model('data')->tag_cloud_add($tag, $this->uri->segment(3, 'page'), $v, $websites_id);
                             //insert tag to tag table
                             $this->db->insert('page_tag', array('page_id' => $id, 'tag' => $tag));
                         }
                     }
                 }
             }
             $msg = array('success' => "<p>Updated successfully.</p>");
             setMessages($msg, 'success');
         }
     }
     //END: validate data and update in database
     //---
     $html_string = $this->load->view('admin/' . $this->uri->segment(3, 'page') . '/page_edit_view', $data, true);
     //Get view data in place of sending to browser.
     Library('process')->view($html_string);
 }
Esempio n. 7
0
 function edit_file()
 {
     $data = '';
     $success_count = 1;
     $id_array = array();
     //$_POST['file'] || see edit view file
     if (!isset($_POST['file'])) {
         if (isset($_POST['select'])) {
             $id_array = $_POST['select'];
         } else {
             $msg = array('error' => '<p>You must select atleast one file to edit.</p>');
             setMessages($msg, 'error');
             unset($_POST);
             $this->index();
             exit;
         }
     }
     $this->load->library('form_validation');
     $data['folder'] = Model('file')->get_active_folder();
     $data['group'] = Model('group')->get_group(FALSE);
     $data['user'] = Model('user')->get_active_user();
     !is_array($id_array) ? $id_array = array() : '';
     //START: for the first page load, get data from database
     foreach ($id_array as $id) {
         $id = preg_replace('/[^0-9]+/', '', $id);
         $this->db->where('file_id', $id);
         $query = $this->db->get('file');
         foreach ($query->result() as $row) {
             $_POST['file'][$row->file_id]['id'] = $row->file_id;
             $_POST['file'][$row->file_id]['active'] = $row->file_status;
             $_POST['file'][$row->file_id]['access'] = $row->file_access;
             $_POST['file'][$row->file_id]['parent'] = $row->folder_id;
             $_POST['file'][$row->file_id]['name'] = $row->file_title;
             $_POST['file'][$row->file_id]['description'] = $row->file_description;
             $file_access_members = explode(',', trim($row->file_access_members, ','));
             $_POST['file'][$row->file_id]['group'] = $file_access_members;
             $_POST['file'][$row->file_id]['user'] = $file_access_members;
         }
     }
     //END: for the first page load, get data from database
     //START: clean data and update in database
     if ($this->input->post('edit') == 'Update' && isset($_POST['file']) && is_array($_POST['file'])) {
         foreach ($_POST['file'] as $k => $v) {
             //cleaning
             $id = xss_clean($v['id']);
             //set_value('id');
             $active = xss_clean($v['active']);
             //set_value('active');
             $name = xss_clean($v['name']);
             //set_value('name');
             $description = xss_clean($v['description']);
             //set_value('description');
             $access = xss_clean($v['access']);
             $group = '';
             if (isset($v['group'])) {
                 $group = xss_clean($v['group']);
             }
             $user = '';
             if (isset($v['user'])) {
                 $user = xss_clean($v['user']);
             }
             //clean the data to autofill in form
             $_POST['file'][$id]['id'] = $id;
             $_POST['file'][$id]['active'] = $active;
             $_POST['file'][$id]['name'] = $name;
             $_POST['file'][$id]['description'] = $description;
             $_POST['file'][$id]['access'] = $access;
             $_POST['file'][$id]['group'] = $group;
             $_POST['file'][$id]['user'] = $user;
             //update database if set
             if (!empty($access) && !empty($name) && !empty($id)) {
                 $val = array(array('field' => 'file[' . $k . '][active]', 'label' => 'STATUS[id: ' . $id . ']', 'rules' => 'trim|required|xss_clean'), array('field' => 'file[' . $k . '][name]', 'label' => 'FILE NAME[id: ' . $id . ']', 'rules' => 'trim|required|xss_clean'), array('field' => 'file[' . $k . '][description]', 'label' => 'FILE DESCRIPTION[id: ' . $id . ']', 'rules' => 'trim|xss_clean'), array('field' => 'file[' . $k . '][access]', 'label' => 'ASSIGN TO', 'rules' => 'trim|required|xss_clean'));
                 if (isset($_POST['file'][$k]['access'])) {
                     //---
                     switch ($_POST['file'][$k]['access']) {
                         case 'group':
                             $val[] = array('field' => 'file[' . $k . '][group][]', 'label' => 'User Group', 'rules' => 'trim|required|xss_clean');
                             $val[] = array('field' => 'file[' . $k . '][user][]', 'label' => 'User', 'rules' => 'trim|xss_clean');
                             break;
                         case 'user':
                             $val[] = array('field' => 'file[' . $k . '][group][]', 'label' => 'User Group', 'rules' => 'trim|xss_clean');
                             $val[] = array('field' => 'file[' . $k . '][user][]', 'label' => 'User', 'rules' => 'trim|required|xss_clean');
                             break;
                         default:
                             $val[] = array('field' => 'file[' . $k . '][group][]', 'label' => 'User Group', 'rules' => 'trim|xss_clean');
                             $val[] = array('field' => 'file[' . $k . '][user][]', 'label' => 'User', 'rules' => 'trim|xss_clean');
                     }
                 }
                 $this->form_validation->set_rules($val);
                 if ($this->form_validation->run() == FALSE) {
                     if (!validation_errors() == '' && $this->input->post('edit') == 'Update') {
                         $msg = array('error' => validation_errors());
                         setMessages($msg, 'error');
                     }
                 } else {
                     $file = array('id' => $id, 'active' => $active, 'name' => $name, 'description' => $description, 'access' => $access, 'group' => $group, 'user' => $user);
                     //FCPATH
                     $update = Model('file')->update_file($file);
                     if ($update) {
                         $msg = array('success' => '<p>' . $success_count++ . ' Records Updated successfully.</p>');
                         setMessages($msg, 'success', false);
                     } else {
                         $msg = array('error' => '<p>Could not update files specified.</p>');
                         setMessages($msg, 'error');
                     }
                 }
             } else {
                 $msg = array('error' => '<p>Required fields can not be empty!</p>');
                 setMessages($msg, 'error');
             }
         }
     }
     //END: validate data and update in database
     //---
     $html_string = $this->load->view('admin/file/file_edit_view', $data, true);
     //Get view data in place of sending to browser.
     Library('process')->view($html_string);
 }
Esempio n. 8
0
 function _edit()
 {
     $data = '';
     $id_array = array();
     if (!isset($_POST['menu'])) {
         if (isset($_POST['select'])) {
             $id_array = $_POST['select'];
         } else {
             //$data['error_message']['select'] = "You must select atleast one menu to edit";
             $msg = array('error' => '<p>You must select atleast one menu to edit.</p>');
             setMessages($msg, 'error');
             unset($_POST);
             $this->index();
             exit;
         }
     }
     !is_array($id_array) ? $id_array = array() : '';
     $menu_type = $this->uri->segment(3, 'page');
     //START: for the first page load, get data from database
     foreach ($id_array as $id) {
         $id = preg_replace('/[^0-9]+/', '', $id);
         $this->db->where('menu_id', $id);
         $query = $this->db->get('menu');
         foreach ($query->result() as $row) {
             $_POST['menu'][$row->menu_id]['id'] = $row->menu_id;
             $_POST['menu'][$row->menu_id]['menu_active'] = $row->menu_active;
             $_POST['menu'][$row->menu_id]['menu_parent_id'] = $row->menu_parent_id;
             $_POST['menu'][$row->menu_id]['menu_title'] = $row->menu_title;
             $_POST['menu'][$row->menu_id]['menu_link'] = $row->menu_link;
             $_POST['menu'][$row->menu_id]['menu_params'] = $row->menu_params;
             $_POST['menu'][$row->menu_id]['websites_id'] = $row->websites_id;
             $_POST['menu'][$row->menu_id]['menu_sort'] = $row->menu_sort;
         }
     }
     //END: for the first page load, get data from database
     //START: clean data and update in database
     if ($this->input->post('edit') == 'Update' && isset($_POST['menu']) && is_array($_POST['menu'])) {
         foreach ($_POST['menu'] as $v) {
             //cleaning
             $id = xss_clean($v['id']);
             $menu_active = xss_clean($v['menu_active']);
             $menu_parent_id = xss_clean($v['menu_parent_id']);
             $menu_title = $v['menu_title'];
             $menu_link = $v['menu_link'];
             $menu_params = $v['menu_params'];
             $menu_sort = xss_clean($v['menu_sort']);
             $menu_type = $this->uri->segment(3, 'page');
             if (!isset($v['websites_id'])) {
                 $v['websites_id'] = 0;
             }
             $websites_id = xss_clean($v['websites_id']);
             //If menu link is not defined, create one.
             if (empty($menu_link)) {
                 $menu_link = preg_replace('/[^a-z0-9]+/i', '-', strtolower($menu_title));
             }
             //remove last dashes if any
             while (substr($menu_link, -1) == '-') {
                 $menu_link = substr($menu_link, 0, -1);
             }
             //clean the data to autofill in form
             $_POST['menu'][$id]['id'] = $id;
             $_POST['menu'][$id]['menu_active'] = $menu_active;
             $_POST['menu'][$id]['menu_parent_id'] = $menu_parent_id;
             $_POST['menu'][$id]['menu_title'] = $menu_title;
             $_POST['menu'][$id]['menu_link'] = $menu_link;
             $_POST['menu'][$id]['menu_params'] = $menu_params;
             $_POST['menu'][$id]['menu_sort'] = $menu_sort;
             $_POST['menu'][$id]['websites_id'] = $websites_id;
             //update database if set
             if (!empty($menu_title) && !empty($menu_link) && !empty($id)) {
                 /*
                 $this->db->where('menu_id', $id);
                 $this->db->update('menu', array(
                                 'menu_active' => $menu_active,
                                 'menu_parent_id' => $menu_parent_id,
                                 'menu_title' => $menu_title,
                                 'menu_link' => $menu_link,
                                 'menu_type' => $menu_type,
                                 'menu_sort' => $menu_sort));
                 */
                 $_menu_data = array('menu_id' => $id, 'menu_active' => $menu_active, 'menu_parent_id' => $menu_parent_id, 'menu_link' => $menu_link, 'menu_params' => $menu_params, 'menu_title' => $menu_title, 'menu_type' => $menu_type, 'menu_meta_title' => '', 'menu_meta_keywords' => '', 'menu_meta_description' => '', 'websites_id' => ',' . implode(',', (array) $websites_id) . ',', 'menu_sort' => $menu_sort);
                 //insert new menu to database
                 $insert = Model('menu')->update($_menu_data);
             }
             //['update']: to avoid repeated success_message
             /*
             $msg = array('success' => '<p>Updated successfully.</p>');
             setMessages($msg, 'success');
             */
         }
     }
     //END: validate data and update in database
     //---
     $data['websites'] = Model('websites')->get_websites();
     $html_string = $this->load->view('admin/menu/menu_edit_view', $data, true);
     //Get view data in place of sending to browser.
     Library('process')->view($html_string);
 }
Esempio n. 9
0
 function _upload($data = array())
 {
     $data = (array) $data;
     if (empty($data)) {
         return FALSE;
     }
     $config = array();
     $config['upload_path'] = FCPATH . 'media/upload/';
     $config['allowed_types'] = 'gif|jpg|png|pdf|doc|zip|csv|xls';
     $config['max_size'] = '1073741824';
     //default: 1GB max
     //$config['max_width']  = '1024';
     //$config['max_height']  = '768';
     $config['file_field'] = 'file';
     //overwrite default config values with supplied (if any)
     $config = array_merge($config, $data);
     //print_r($config);
     $this->load->library('upload', $config);
     if (!$this->upload->do_upload($config['file_field'])) {
         $msg = array('error' => $this->upload->display_errors());
         setMessages($msg, 'error');
         return FALSE;
     } else {
         return $this->upload->data();
     }
 }
Esempio n. 10
0
 function _manage_group_item()
 {
     $data = '';
     $id_array = array();
     //if its not submitting edit page (form_item_edit_view.php)
     if (!isset($_POST['group'])) {
         if (isset($_POST['select'])) {
             $id_array = $_POST['select'];
         } else {
             $msg = array('error' => '<p>You must select atleast one item to edit.</p>');
             setMessages($msg, 'error');
             unset($_POST);
             $this->group();
             exit;
         }
     }
     !is_array($id_array) ? $id_array = array() : '';
     //START: for the first page load, get data from database
     foreach ($id_array as $id) {
         $id = preg_replace('/[^0-9]+/', '', $id);
         $this->db->where('form_group_id', $id);
         $query = $this->db->get('form_group');
         foreach ($query->result() as $row) {
             $_POST['group'][$row->form_group_id]['form_group_id'] = $row->form_group_id;
             $_POST['group'][$row->form_group_id]['form_group_name'] = $row->form_group_name;
             $_POST['group'][$row->form_group_id]['form_group_identifier'] = $row->form_group_identifier;
             $_POST['group'][$row->form_group_id]['form_group_send_to'] = $row->form_group_send_to;
         }
     }
     //END: for the first page load, get data from database
     //START: clean data and update in database
     if ($this->input->post('edit') == 'Update' && isset($_POST['group']) && is_array($_POST['group'])) {
         foreach ($_POST['group'] as $v) {
             //cleaning
             $form_group_id = $v['form_group_id'];
             //clean the data to autofill in form
             $_POST['group'][$form_group_id]['form_group_id'] = $form_group_id;
             $_POST['group'][$form_group_id]['form_group_name'] = $v['form_group_name'];
             $_POST['group'][$form_group_id]['form_group_identifier'] = $v['form_group_identifier'];
             $_POST['group'][$form_group_id]['form_group_send_to'] = $v['form_group_send_to'];
             //update database if set
             if (!empty($v['form_group_name']) && !empty($v['form_group_identifier']) && !empty($v['form_group_id'])) {
                 $this->db->where('form_group_id', $v['form_group_id']);
                 $this->db->update('form_group', array('form_group_name' => $v['form_group_name'], 'form_group_identifier' => $v['form_group_identifier'], 'form_group_send_to' => $v['form_group_send_to']));
             }
             //['update']: to avoid repeated success_message
             $msg = array('success' => '<p>Updated successfully.</p>');
             setMessages($msg, 'success');
         }
     }
     //END: validate data and update in database
     //---
     $html_string = $this->load->view('admin/form/form_group_item_manage_view', $data, true);
     //Get view data in place of sending to browser.
     Library('process')->view($html_string);
 }
Esempio n. 11
0
 function _approve()
 {
     $data = '';
     if (isset($_POST['select'])) {
         $id_array = $_POST['select'];
     } else {
         $id_array = array();
         $msg = array('error' => "<p>You must select atleast one comment to approve.</p>");
         setMessages($msg, 'error');
     }
     !is_array($id_array) ? $id_array = array() : '';
     $msg = false;
     foreach ($id_array as $id) {
         $id = preg_replace('/[^0-9]+/', '', $id);
         $this->db->where('page_comment_id', $id);
         if ($this->db->update('page_comment', array('page_comment_status' => '1'))) {
             $msg = array('error' => "<p>Selected comment(s) approved successfully.</p>");
             $type = 'success';
         } else {
             $msg = array('error' => "<p>Error! couldn't approve.</p>");
             $type = 'error';
         }
     }
     if ($msg) {
         setMessages($msg, $type);
     }
     return $data;
 }
Esempio n. 12
0
 function set_setting_keys($val)
 {
     if (isset($val['submit'])) {
         unset($val['submit']);
     }
     foreach ($val as $k => $v) {
         $this->db->where('setting_key', $k);
         $this->db->update('setting', array('setting_info' => $v));
     }
     $msg = array('success' => "<p>Setting Updated Successfully.</p>");
     setMessages($msg, 'success');
 }
Esempio n. 13
0
 function index()
 {
     $url_to_trim = $this->input->post('longurl', TRUE);
     //Remove the last slash
     while (substr($url_to_trim, -1) == '/') {
         $url_to_trim = substr($url_to_trim, 0, -1);
     }
     //$url_to_trim = prep_url($url_to_trim);
     $error = FALSE;
     $data = array();
     if (!empty($url_to_trim) && preg_match('|^https?://|', $url_to_trim)) {
         $this->config->load('trim.php');
         $this->base = $this->config->item('allowed_chars');
         //check if the client's IP is allowed to trim
         if ($_SERVER['REMOTE_ADDR'] != $this->config->item('limit_to_ip')) {
             $msg = array('error' => '<p>You are not allowed to trim URLs with this service.</p>');
             setMessages($msg, 'error');
             $error = TRUE;
         }
         // check if the URL is valid
         $pos = strpos($url_to_trim, base_url());
         if ($this->config->item('verify_url') && !$error || $pos === FALSE) {
             $ch = curl_init();
             curl_setopt($ch, CURLOPT_URL, $url_to_trim);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
             $response = curl_exec($ch);
             if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '404') {
                 $msg = array('error' => '<p>That is not a valid URL.</p>');
                 setMessages($msg, 'error');
                 $error = TRUE;
             }
             curl_close($ch);
         }
         if (!$error) {
             // check if the URL has already been trimed
             $this->db->where('long_url', $url_to_trim);
             $query = $this->db->get('trim');
             $already_trimed = $query->result_array();
             if (!empty($already_trimed)) {
                 // URL has already been trimed
                 $integer = $already_trimed[0]['trim_id'];
                 $trimed_url = $this->_getShortUrl($integer);
             } else {
                 // URL not in database, insert
                 $sql = array('long_url' => $url_to_trim, 'created' => time(), 'creator' => $_SERVER['REMOTE_ADDR']);
                 $this->db->insert('trim', $sql);
                 $trimed_url = $this->_getShortUrl($this->db->insert_id());
             }
             $data['trim'] = site_url('trim/' . $trimed_url);
             $data['url'] = $url_to_trim;
             $msg = array('success' => '<p>URL successfully Trimed.</p>');
             setMessages($msg, 'success');
         }
     } elseif (isset($_POST['longurl'])) {
         $msg = array('error' => '<p>Not a valid URL.</p>');
         setMessages($msg, 'error');
     }
     $html_string = $this->load->view('admin/trim/trim_view', $data, true);
     //Get view data in place of sending to browser.
     Library('process')->view($html_string);
 }
Esempio n. 14
0
 function insert($_menu_data, $action = 'insert')
 {
     $_menu_data = (array) $_menu_data;
     if (empty($_menu_data)) {
         return FALSE;
     }
     if (!in_array($action, array('insert', 'update'))) {
         return FALSE;
     }
     if ($action == 'update') {
         $this->db->where('menu_id !=', $_menu_data['menu_id']);
     }
     $this->db->where('menu_title', $_menu_data['menu_title']);
     $this->db->where('menu_parent_id', $_menu_data['menu_parent_id']);
     $this->db->where('menu_type', $_menu_data['menu_type']);
     $count = $this->db->count_all_results('menu');
     if ($count >= 1) {
         $msg = array('error' => '<p>Menu <strong>' . $_menu_data['menu_title'] . '</strong> already exists!</p>');
         setMessages($msg, 'error');
         return FALSE;
     } else {
         /*
         if($_menu_data['menu_type'] == 'blog')
         {
             $_menu_data['menu_link'] = 'blog/c/' . $_menu_data['menu_link'];
         }
         */
         if ($action == 'update') {
             $this->db->where('menu_id !=', $_menu_data['menu_id']);
         }
         $this->db->where('menu_link', $_menu_data['menu_link']);
         $this->db->where('menu_type', $_menu_data['menu_type']);
         $this->db->where('menu_parent_id', $_menu_data['menu_parent_id']);
         $count = $this->db->count_all_results('menu');
         if ($count >= 1 && !preg_match('/javascript::void\\(0\\);/', $_menu_data['menu_link'])) {
             $msg = array('error' => '<p>Menu Link <strong>' . $_menu_data['menu_link'] . '</strong> already exists!</p>');
             setMessages($msg, 'error');
             return FALSE;
         } else {
             $msg = array('success' => '<p>New Menu <strong>' . $_menu_data['menu_title'] . '</strong> Successfully Added.</p>');
             if ($action == 'update') {
                 $msg = array('success' => '<p>Menu <strong>' . $_menu_data['menu_title'] . '</strong> Updated Successfully.</p>');
             }
             setMessages($msg, 'success');
             /*
             $sql = array(
                     'menu_active' => $menu_active,
                     'menu_parent_id' => $menu_parent_id,
                     'menu_title' => $menu_title,
                     'menu_link' => $menu_link,
                     'menu_type' => $menu_type,
                     'menu_sort' => $menu_sort
                 );
             */
             if ($action == 'update') {
                 $this->db->where('menu_id', $_menu_data['menu_id']);
             }
             $this->db->{$action}('menu', $_menu_data);
             return TRUE;
         }
     }
 }
Esempio n. 15
0
 function _edit()
 {
     $this->load->library('form_validation');
     $data = '';
     $success_count = 1;
     $id_array = array();
     if (!isset($_POST['user'])) {
         if (isset($_POST['select'])) {
             $id_array = $_POST['select'];
         } else {
             $msg = array('error' => '<p>You must select atleast one user to edit.</p>');
             setMessages($msg, 'error');
             unset($_POST);
             $this->index();
             exit;
         }
     }
     !is_array($id_array) ? $id_array = array() : '';
     //START: for the first page load, get data from database
     foreach ($id_array as $id) {
         $id = preg_replace('/[^0-9]+/', '', $id);
         $this->db->where('user_id', $id);
         $query = $this->db->get('user');
         foreach ($query->result() as $row) {
             $_POST['user'][$row->user_id]['id'] = $row->user_id;
             $_POST['user'][$row->user_id]['active'] = $row->active;
             $_POST['user'][$row->user_id]['email'] = $row->email;
             $_POST['user'][$row->user_id]['firstname'] = $row->firstname;
             $_POST['user'][$row->user_id]['lastname'] = $row->lastname;
             $_POST['user'][$row->user_id]['group_id'] = $row->group_id;
             $_POST['user'][$row->user_id]['is_admin'] = $row->is_admin;
             $_POST['user'][$row->user_id]['is_author'] = $row->is_author;
             $_POST['user'][$row->user_id]['profile'] = $row->profile;
             $_POST['user'][$row->user_id]['profile_link'] = $row->profile_link;
             //$_POST['user'][$row->user_id]['password'] = $row->password;
         }
     }
     //END: for the first page load, get data from database
     //START: clean data and update in database
     if ($this->input->post('edit') == 'Update' && isset($_POST['user']) && is_array($_POST['user'])) {
         foreach ($_POST['user'] as $v) {
             //cleaning
             $id = (int) preg_replace('/[^0-9]+/', '', $v['id']);
             //only intergers
             $active = (int) preg_replace('/[^0-9]+/', '', $v['active']);
             $email = $v['email'];
             $firstname = $v['firstname'];
             $lastname = $v['lastname'];
             $profile = $v['profile'];
             $profile_link = $v['profile_link'];
             $is_author = (int) preg_replace('/[^0-9]+/', '', $v['is_author']);
             $is_admin = (int) preg_replace('/[^0-9]+/', '', $v['is_admin']);
             $group_id = (int) preg_replace('/[^0-9]+/', '', $v['group_id']);
             $password = $v['password'];
             //clean the data to autofill in form
             $_POST['user'][$id]['id'] = $id;
             $_POST['user'][$id]['active'] = $active;
             $_POST['user'][$id]['email'] = $email;
             $_POST['user'][$id]['firstname'] = $firstname;
             $_POST['user'][$id]['lastname'] = $lastname;
             $_POST['user'][$id]['is_admin'] = $is_admin;
             $_POST['user'][$id]['is_author'] = $is_author;
             $_POST['user'][$id]['group_id'] = $group_id;
             $_POST['user'][$id]['password'] = $password;
             $_POST['user'][$id]['profile'] = $profile;
             $_POST['user'][$id]['profile_link'] = $profile_link;
             //update database if set
             if (!empty($email) && !empty($group_id) && !empty($id)) {
                 $_POST['email'] = $email;
                 $_POST['is_admin'] = $is_admin;
                 $_POST['is_author'] = $is_author;
                 $_POST['group_id'] = $group_id;
                 $_POST['firstname'] = $firstname;
                 $_POST['lastname'] = $lastname;
                 $_POST['password'] = $password;
                 $_POST['profile'] = $profile;
                 $_POST['profile_link'] = $profile_link;
                 $val = array(array('field' => 'email', 'label' => 'Email', 'rules' => 'trim|required|valid_email'), array('field' => 'is_admin', 'label' => 'Is Admin', 'rules' => 'trim|required'), array('field' => 'is_author', 'label' => 'Is Author', 'rules' => 'trim|required'), array('field' => 'group_id', 'label' => 'Group', 'rules' => 'trim|required'), array('field' => 'password', 'label' => 'Password', 'rules' => 'trim|md5'), array('field' => 'firstname', 'label' => 'First Name', 'rules' => 'trim|required'), array('field' => 'lastname', 'label' => 'Last Name', 'rules' => 'trim|required'), array('field' => 'profile', 'label' => 'Profile', 'rules' => 'trim'), array('field' => 'profile_link', 'label' => 'Profile Link', 'rules' => 'trim'));
                 $this->form_validation->set_rules($val);
                 if ($this->form_validation->run() == FALSE) {
                     if (!validation_errors() == '' && $this->input->post('edit') == 'Update') {
                         $msg = array('error' => validation_errors());
                         setMessages($msg, 'error');
                     }
                 } else {
                     $my_data = array('active' => $active, 'email' => set_value('email'), 'user_id' => $id, 'firstname' => set_value('firstname'), 'lastname' => set_value('lastname'), 'profile' => $profile, 'profile_link' => set_value('profile_link'), 'is_author' => set_value('is_author'), 'is_admin' => set_value('is_admin'), 'group_id' => set_value('group_id'));
                     if (!empty($password)) {
                         $my_data['password'] = set_value('password');
                     }
                     $save = Model('user')->reset()->set('table', 'user')->set('action', 'update')->save($my_data);
                     if ($save) {
                         $msg = array('success' => '<p>' . $success_count++ . ' Records Updated successfully.</p>');
                         setMessages($msg, 'success', false);
                     }
                 }
             } else {
                 $msg = array('error' => '<p>Required fields can not be empty!</p>');
                 setMessages($msg, 'error');
             }
         }
     }
     //END: validate data and update in database
     //---
     $html_string = $this->load->view('admin/user/user_edit_view', $data, true);
     //Get view data in place of sending to browser.
     Library('process')->view($html_string);
 }
Esempio n. 16
0
 function _edit()
 {
     $data = '';
     $id_array = array();
     if (!isset($_POST['group'])) {
         if (isset($_POST['select'])) {
             $id_array = $_POST['select'];
         } else {
             $msg = array('error' => '<p>You must select atleast one group to edit.</p>');
             setMessages($msg, 'error');
             unset($_POST);
             $this->index();
             exit;
         }
     }
     !is_array($id_array) ? $id_array = array() : '';
     //START: for the first page load, get data from database
     foreach ($id_array as $id) {
         $id = preg_replace('/[^0-9]+/', '', $id);
         $this->db->where('group_id', $id);
         $query = $this->db->get('group');
         foreach ($query->result() as $row) {
             $_POST['group'][$row->group_id]['id'] = $row->group_id;
             $_POST['group'][$row->group_id]['title'] = $row->group_title;
             $_POST['group'][$row->group_id]['description'] = $row->group_description;
         }
     }
     //END: for the first page load, get data from database
     //START: clean data and update in database
     if ($this->input->post('edit') == 'Update' && isset($_POST['group']) && is_array($_POST['group'])) {
         $msg = false;
         foreach ($_POST['group'] as $v) {
             //cleaning
             $id = xss_clean($v['id']);
             $title = xss_clean($v['title']);
             $description = xss_clean($v['description']);
             //clean the data to autofill in form
             $_POST['group'][$id]['id'] = $id;
             $_POST['group'][$id]['title'] = xss_clean($v['title']);
             $_POST['group'][$id]['description'] = xss_clean($v['description']);
             //update database if set
             if (!empty($title) && !empty($description) && !empty($id)) {
                 $this->db->where('group_id', $id);
                 $this->db->update('group', array('group_title' => $title, 'group_description' => $description));
                 if (!$msg) {
                     $msg = array('success' => '<p>Updated successfully.</p>');
                     setMessages($msg, 'success');
                 }
             }
         }
     }
     //END: validate data and update in database
     //---
     $html_string = $this->load->view('admin/group/group_edit_view', $data, true);
     //Get view data in place of sending to browser.
     Library('process')->view($html_string);
 }
Esempio n. 17
0
 function delete_ids($id)
 {
     $error = 0;
     $success = 0;
     $ids = (array) $id;
     foreach ($ids as $id) {
         $this->db->where('websites_id', $id);
         $this->db->delete('websites');
         if ($this->db->affected_rows()) {
             $success++;
         } else {
             $error++;
         }
     }
     if ($error) {
         $msg = array('error' => "<p>{$error} websites could not be deleted.</p>");
         setMessages($msg, 'error');
     }
     if ($success) {
         $msg = array('success' => "<p>{$success} Websites Deleted Successfully.</p>");
         setMessages($msg, 'success');
     }
     return;
 }
Esempio n. 18
0
 function __($language_key = '', $return = true, $file = false)
 {
     $CI =& get_instance();
     if ($file) {
         $CI->lang->setFile($file);
     }
     $files = $CI->lang->getFile();
     foreach ($files as $file) {
         if (!empty($file)) {
             $filename = 'language' . DS . $CI->language . DS . "{$file}_lang.php";
             $filename_path = str_replace(array('/', '\\'), DS, FCPATH . APPPATH . $filename);
             log_message('info', $filename_path);
             if (is_file($filename_path)) {
                 log_message('info', 'exists: ' . $filename_path);
                 $CI->lang->load($file, $CI->language);
             } else {
                 $msg = array('error' => "{$CI->language}/{$file}_lang.php not found!");
                 setMessages($msg, 'error', false);
                 log_message('error', 'not found - ' . $filename_path);
             }
         }
     }
     $string = $CI->lang->line($language_key);
     if (!$string) {
         $string = $language_key;
     }
     if ($return) {
         return $string;
     }
     echo $string;
     return '';
     //for older versions.
 }