Вход Регистрация
Файл: application/controllers/profile/Home.php
Строк: 2218
<?php
 
/**
 * Home controller class
 *
 * Displays User Dashboard page
 *
 * @package        ci_fullcalendar
 * @category    Controller
 * @author        sirdre
 * @link        /profile/home
 */
class Home extends CI_Controller {

    
/*
     * Home controller class constructor
     */

    
function Home() {
    
parent::__construct(); 
    
$this->load->model('Fullcalendar_model','calendar');
    
$this->load->model('Member_model');
    
$this->load->model('gmaps_model');        
    
$this->load->model('Eventsources_model');  
    
$this->load->model('Page_model');      
    
    
$this->load->helper('string');
    
$this->load->helper('date');     
    
$this->load->helper('security');
    
$this->load->helper('form');
    
$this->load->helper('url');     
    
    
$this->load->library('ion_auth');
    
$this->load->library('Languages'); 
    
$this->load->library('Icalendar');
    
$this->load->library('Notify');
    
$this->load->library('form_validation');        
    
$this->load->library('upload');
    
$this->load->library('image_lib'); 

    
// load all settings into an array
    
$this->setting $this->Setting_model->getEverySetting();
    }

    
/**
    * Display template
    * This function displays the dashboard
    ****
    * @access public/private
    * @ Param none
    * @return none
    */
    
function index() { 
     
        
// set the page language, site name, page title, meta keywords and meta description  
        
$data['lang'] = $this->setting['site_language'];         
        
        
$this->languages->get_lang($data['lang']);
 
        
$data['site_name'] = $this->setting['site_name'];
        
$data['page_title'] = lang('calendar');
        
$data['meta_keywords'] = $this->setting['meta_keywords'];
        
$data['meta_description'] = $this->setting['meta_description'];
        
$data['key'] = $this->setting['cal_apikey'];   
        
$data['current_version'] = $this->setting['current_version'];          
        
        
// check if the user is logged in 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
            
            
//load the data within view
            
$data['userinfo'] = $this->Member_model->getUserById($user->id);    
            
$data['pagename'] = $this->Page_model->getAllMembersPages(4$this->uri->segment(4)); 
    
            
            
// if there is a site logo, get the path to the image file
            
if ($this->Member_model->userImageExists$data['userinfo']->image,  $data['userinfo']->id) !== '') {
                
$data['current_logo'] = base_url().'assets/img/profile/'$data['userinfo']->image;;
            } else {
                
// no logo so leave it blank
                
$data['current_logo'] = base_url().'assets/img/profile/default.png';
            }    
     
            
debug('Initialize index - loading "home/index" view');
            
$sections = array('body_content' => $this->setting['current_theme'] . '/backend/home/index''nav_content' => $this->setting['current_theme'] . '/backend/home/nav''header_content' => $this->setting['current_theme'] . '/backend/home/header''footer_content' => $this->setting['current_theme'] . '/backend/home/footer');
            
$this->template->load($this->setting['current_theme'] . '/backend/masterpage'$sections$data);
  
        } else {
            
// user not found, redirect to users list
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);

        } 

    }
    
   
/**
    * import - events are saved in ics format
    *
    ****
    * @access public
    * @ Param none
    * @ Return string with the last query 
    */            
    
public function upload_file() {
        
debug('Initialize upload - loading "home/upload_file" uploading ICS files');
        
// check user is logged in with permissions   
        
         
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
        
            
$user $this->ion_auth->user()->row();
            
            
$userinfo $this->Member_model->getUserById($user->id);
         
            
$status "";
            
$msg "";
            
$file_element_name 'userfile';  
            
            if (
$status != "error")   {
           
                
$config['upload_path']    = $this->setting['sync_path_location'];
                
$config['allowed_types']= $this->setting['sync_allowed_extension'];  
                
$config['max_size']        = $this->setting['sync_max_size'];
                
$config['encrypt_name'] = FALSE;  

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

                if (!
$this->upload->do_upload($file_element_name))    {
                
                     
$status 'error';
                     
$msg $this->upload->display_errors('''');
                
                }else {
                
                    
$data $this->upload->data();
                    
$filename $_FILES['userfile']['tmp_name'];
                     
                    
$this->calendar->import($userinfo->username$this->icalendar->parseFile($filename));                     
                }
                @
unlink($_FILES[$file_element_name]);
            }
            
        }else {
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301); 
        }               
   }    
     
   
/**
    * export - Export specific event in ics format
    *
    ****
    * @access public
    * @ Param none
    * @ Return string with the last query 
    */        
    
function export($id) {        
        
// set the page language, site name, page title, meta keywords and meta description  
        
$data['lang'] = $this->setting['site_language'];         
        
        
$this->languages->get_lang($data['lang']);
        
        
$data['site_name'] = $this->setting['site_name'];
        
$data['page_title'] = lang('calendar');
        
$data['meta_keywords'] = $this->setting['meta_keywords'];
        
$data['meta_description'] = $this->setting['meta_description'];  
        
$data['key'] = $this->setting['cal_apikey'];
        
$data['current_version'] = $this->setting['current_version']; 
        
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {            
            
            
$user $this->ion_auth->user()->row();
        
            
$userinfo $this->Member_model->getUserById($user->id);
          
            
debug('Initialize export - loading "home/index" ics export'); 
            
$filename $userinfo->username "_export_"now() .".ics";
            
header("Content-type:text/calendar");
            
header("Content-Disposition: attachment; filename=$filename");  
            
            
$timezone $this->setting['site_timezone']; 
            echo 
$this->calendar->export($userinfo->username$id$timezone$data['lang']); 
        
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }       
    
    
/**
    * export_all - All events are saved in ics format by each member
    *
    ****
    * @access public
    * @ Param none
    * @ Return string with the last query 
    */        
    
function export_all() {        
        
// set the page language, site name, page title, meta keywords and meta description  
        
$data['lang'] = $this->setting['site_language'];         
        
        
$this->languages->get_lang($data['lang']);
        
        
$data['site_name'] = $this->setting['site_name'];
        
$data['page_title'] = lang('calendar');
        
$data['meta_keywords'] = $this->setting['meta_keywords'];
        
$data['meta_description'] = $this->setting['meta_description']; 
        
$data['key'] = $this->setting['cal_apikey'];
        
$data['current_version'] = $this->setting['current_version']; 
        
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
        
            
$userinfo $this->Member_model->getUserById($user->id);
          
            
debug('Initialize export - loading "home/index" ics export'); 
            
$filename $userinfo->username "_export_"now() .".ics";
            
header("Content-type:text/calendar");
            
header("Content-Disposition: attachment; filename=$filename");  
            
            
$timezone $this->setting['site_timezone']; 
            echo 
$this->calendar->export($userinfo->username0$timezone$data['lang']); 
        
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }        
        
    
/**
    * search - query events by title
    *
    ****
    * @access public
    * @ Param none
    * @ Return string with the last query 
    */        
    
function search() {
        
// check user is logged in with permissions  
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            
$title $this->security->xss_clean($this->input->get('title'));  
            echo 
$this->calendar->search_private($title$user->username); 
          
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }        
    
    }    

    
/**
    * get_usergroups events and shows
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
    
public function get_usergroups()    {       
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
            
// pass the user group to the view
            
$usergroups $this->ion_auth->get_users_groups($user->id)->result(); 
            
            echo 
json_encode($usergroups);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }        
    
    
/**
    * get_groups events and shows
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
    
public function get_groups()    {       
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
            
// pass the user group to the view
            
$groups $this->ion_auth->groups()->result_array(); 
            
            echo 
json_encode($groups);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
    
/**
    * get_marker events and shows
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_marker() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            
$category $this->security->xss_clean($this->input->get('category'));
            
$marker $this->gmaps_model->get($category$user->username);
            
            echo 
json_encode($marker);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }
    
    
/**
    * get_category events and shows
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
    
public function get_category()    {       
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
          
            
$category $this->calendar->category($user->username);
            
            echo 
json_encode($category);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }
    
     
/**
    * get_eventsource get the list of 20 event sources
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
    
public function get_eventsource() {          
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();  
            
$category $this->Eventsources_model->getSourceList(20,0,$user->username);
            echo 
json_encode($category);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
     
/**
    * get_lang events and shows
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_lang() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();  
            echo 
json_encode($user->lang);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }     
    
    
/**
    * get_timezone events and shows
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_timezone() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();  
            
$datetime = new DateTime('now', new DateTimeZone($user->cal_timezone));
            
$datetime_string $datetime->format('c'); 
            
            echo 
json_encode($datetime_string);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }
    
/**
    * get_timezone2 get timezone string
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_timezone2() {  
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();  
            echo 
json_encode($user->cal_timezone);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
    
/**
    * get_coordinate - get longitude, latitude string
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_coordinate() {       
            
        
$latitude $this->setting['site_latitude']; 
        
$longitude $this->setting['site_longitude'];  
        
$coordinate $latitude.",".$longitude
        echo 
json_encode($coordinate); 
    }
    
    
/**
    * get_defaultview events and shows
    * This function is called to specify calendar default view.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_defaultview() {  
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_defaultview);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
    
/**
    * get_header_left - headers buttons
    * This function is called to specify calendar default header_left.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_header_left() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_header_left);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }
    
    
/**
    * get_header_center - headers buttons
    * This function is called to specify calendar default header_center.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_header_center() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_header_center);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
    
/**
    * get_header_right - headers buttons
    * This function is called to specify calendar default header right.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_header_right() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_header_right);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
    
/**
    * get_hiddenDays - calendar preference
    * This function is called to specify calendar default hiddenDays.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_hiddendays() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();      
            echo 
json_encode($user->cal_hiddendays);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }        
    
    
/**
    * get_firstday - calendar preference
    * This function is called to specify calendar default hiddenDays.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_firstday() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();     
            echo 
json_encode($user->cal_firstday);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
    
/**
    * get_businessstart - calendar preference
    * This function is called to specify calendar default hiddenDays.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_businessstart() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_businessstart);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }        
    
    
/**
    * get_businessend - calendar preference
    * This function is called to specify calendar default hiddenDays.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_businessend() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_businessend);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }        
    
    
/**
    * get_businessdays - calendar preference
    * This function is called to specify calendar default hiddenDays.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_businessdays() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_businessdays);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }        
    
    
/**
    * get_editable - calendar preference
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_editable() {     
    
            
$editable $this->setting['cal_editable'];      
            echo 
json_encode($editable); 
    }    
    
    
/**
    * get_weeknumbers - calendar preference
    * This function is called to specify calendar default weeknumbers.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_weeknumbers() {  
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_weeknumbers);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
    
/**
    * get_eventlimit - calendar preference
    * This function is called to specify calendar default eventlimit.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_eventlimit() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_eventlimit);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }
        
    
/**
    * get_alldayslot - calendar preference
    * This function is called to specify calendar default alldayslot.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_alldayslot() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_alldayslot);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
    
/**
    * get_slotduration - calendar preference
    * This function is called to specify calendar default view for slot duration.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_slotduration() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_slotduration);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }        
    
    
/**
    * get_slotlabeling - calendar preference
    * This function is called to specify calendar default view for slot labeling.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_slotlabeling() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();  
            echo 
json_encode($user->cal_slotlabeling);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }        
    
    
/**
    * get_aspectratio - calendar preference
    * This function is called to specify calendar default view for slot duration.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_aspectratio() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_aspectratio);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }        
    
    
/**
    * get_isrtl - calendar preference
    * This function is called to specify calendar default isrtl.
    ****
    * @access public
    * @ Param none
    * @return none
    */
     
public function get_isrtl() { 
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            echo 
json_encode($user->cal_isrtl);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }    
    
     
/**
    * json - Generates events by users
    * This function is called to specify multiple event sources.
    ****
    * @access public
    * @ Param none
    * @return none
    */
    
public function json () {       
        
header("Content-Type: application/json");         
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            
$this->calendar->jsonEvents($user);
        
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }            
    }
 
    
    
/**
    * Generates get events by users and category
    * This function is called to specify multiple event categories.
    ****
    * @access public
    * @ Param none
    * @return none
    */
    
public function jsoncat ( )  {       
    
        
header("Content-Type: application/json");         
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();     
            
$category $this->security->xss_clean($this->input->get('category')); 
            
$this->calendar->jsonEventsCategory($category$user->username);
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }            
        
    }    

    
/**
    * get_eventsgroups display user groups
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */
    
public function jsongroups()    {       
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
            
// pass the user group to the view
            
$group $this->security->xss_clean($this->input->get('group')); 
            echo 
$this->calendar->jsonEventsGroups($group$user); 
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }
    
    
/**
    * resize
    * This function is triggered when resizing stops and the event has changed in duration.
    ****
    * @access public
    * @ Param none
    * @return none
    */
    
public function resize() {
        
header("Content-Type: application/json");  
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
         
            
$rec '';
            
$endrecurring ''
        
        
            
$data = array(
                
'event'         =>  $this->security->xss_clean($this->input->post('event')),
                
'daystart'      =>  $this->security->xss_clean($this->input->post('daystart')),
                
'dayend'        =>  $this->security->xss_clean($this->input->post('dayend')),
                
'allDay'        =>  $this->security->xss_clean($this->input->post('allDay')), 
            );            
            
            
$event $this->calendar->get_eventById($data['event']);
            
            if(!empty(
$event)){
            
$rec=(int)$event->recurdays;  
            
$endrecurring=$event->recurend
            }
            
            if(
$endrecurring && $rec==|| $rec==|| $rec==14 || $rec==30 || $rec==365){
             
$start_date strtotime($data['daystart']);
             
$end_date strtotime($data['dayend']);
             
             
$length=(int)$end_date-$start_date;
             list(
$y,$m,$d) = explode('-',$endrecurring);
             
$end_date=mktime(23,59,59,$m,$d,$y);
             
$step=3600*24*$rec;
              
                 
$this->calendar->delete_event($event->id);
                 
        
                if(
$rec==|| $rec==|| $rec==14 || $rec == 365) {
                    
$step=3600*24*$rec
                    
                    for(
$i=$start_date;$i<=$end_date;$i+=$step){    
                        
$data['start']=date('Y-m-d H:i:s',$i);
                        
$data['end']=date('Y-m-d H:i:s',$i+$length);  
                
                        
$this->calendar->add_event($event->id$event->title$event->category$event->backgroundColor$event->borderColor$event->textColor$event->description$data['start'], $data['end'], $event->url$data['allDay'], $event->rendering$event->overlap$event->recurdays$event->recurend$event->gid$event->location,  $event->latitude$event->longitude$user->username);
            
                    }
                }else if(
$rec == 30) {
                    for(
$i=$start_date;$i<=$end_date;$i+=3600*24*(int)date('t'mktime(000, (int)date('m',$i), 1, (int)date('y',$i)))){    
                        
$data['start']=date('Y-m-d H:i:s',$i);
                        
$data['end']=date('Y-m-d H:i:s',$i+$length);   
                    
                        
$this->calendar->add_event($event->id$event->title$event->category$event->backgroundColor$event->borderColor$event->textColor$event->description$data['start'], $data['end'], $event->url$data['allDay'], $event->rendering$event->overlap$event->recurdays$event->recurend$event->gid$event->location,  $event->latitude$event->longitude$user->username);
                    }
                }                  
         
                
            }else{ 
                
               echo 
$this->calendar->resize($data);    
            
            }
        
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }        
        
         
    }
 
  
    
/**
    * drop_event
    * This function triggered when dragging stops and the event has moved to a different day/time.
    ****
    * @access public
    * @ Param none
    * @return none
    */
   
public function drop_event ( )  {
        
header("Content-Type: application/json");  
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row(); 
            
            
$rec '';
            
$endrecurring ''
            
            
$data = array(
                
'event'         =>  $this->security->xss_clean($this->input->post('event')),
                
'daystart'      =>  $this->security->xss_clean($this->input->post('daystart')),
                
'dayend'        =>  $this->security->xss_clean($this->input->post('dayend')),
                
'allDay'        =>  $this->security->xss_clean($this->input->post('allDay')),
            );            
            
$event $this->calendar->get_eventById($data['event']);
            
            if(!empty(
$event)) {
            
$rec=(int)$event->recurdays;  
            
$endrecurring=$event->recurend
            }
                
            if(
$endrecurring && $rec==|| $rec==|| $rec==14 || $rec==30 || $rec==365){
             
$start_date strtotime($data['daystart']);
             
$end_date strtotime($data['dayend']);
             
             
$length=(int)$end_date-$start_date;
             list(
$y,$m,$d) = explode('-',$endrecurring);
             
$end_date=mktime(23,59,59,$m,$d,$y); 
              
                 
$this->calendar->delete_event($event->id);
            
                if(
$rec==|| $rec==|| $rec==14 || $rec == 365) {
                    
$step=3600*24*$rec
                    
                    for(
$i=$start_date;$i<=$end_date;$i+=$step){    
                        
$data['start']=date('Y-m-d H:i:s',$i);
                        
$data['end']=date('Y-m-d H:i:s',$i+$length);  
                
                        
$this->calendar->add_event($event->id$event->title$event->category$event->backgroundColor$event->borderColor$event->textColor$event->description$data['start'], $data['end'], $event->url$data['allDay'], $event->rendering$event->overlap$event->recurdays$event->recurend$event->gid$event->location,  $event->latitude$event->longitude$user->username);
            
                    }
                }else if(
$rec == 30) {
                    for(
$i=$start_date;$i<=$end_date;$i+=3600*24*(int)date('t'mktime(000, (int)date('m',$i), 1, (int)date('y',$i)))){    
                        
$data['start']=date('Y-m-d H:i:s',$i);
                        
$data['end']=date('Y-m-d H:i:s',$i+$length);   
                    
                        
$this->calendar->add_event($event->id$event->title$event->category$event->backgroundColor$event->borderColor$event->textColor$event->description$data['start'], $data['end'], $event->url$data['allDay'],  $event->rendering$event->overlap$event->recurdays$event->recurend$event->gid$event->location,  $event->latitude$event->longitude$user->username);
                    }
                }         
              
                
            }else{  
                echo 
$this->calendar->drop_event($data); 
            }
        
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }            
        
        
    }
 
    
/**
    * drag_event
    * This function is called when a valid jQuery UI draggable has been dropped onto the calendar.
    ****
    * @access public
    * @ Param none
    * @return none
    */
   
public function drag_event ( )  {
        
header("Content-Type: application/json");  
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();            
             
            
$eventid random_string('numeric'7);
            
$event $this->calendar->get_eventById($eventid);  

            if(!
$event){ 
                
$data = array(
                    
'id'         =>  $this->security->xss_clean($eventid), 
                    
'username'   =>  $this->security->xss_clean($user->username),
                    
'category'   =>  $this->security->xss_clean($this->input->post('category')),
                    
'title'      =>  $this->security->xss_clean($this->input->post('title')),
                    
'description'      =>  $this->security->xss_clean($this->input->post('description')),
                    
'rendering'      =>  $this->security->xss_clean($this->input->post('rendering')),
                    
'backgroundColor'  =>  $this->security->xss_clean($this->input->post('backgroundColor')),
                    
'borderColor'      =>  $this->security->xss_clean($this->input->post('borderColor')),
                    
'textColor'        =>  $this->security->xss_clean($this->input->post('textColor')),
                    
'start'      =>  $this->security->xss_clean($this->input->post('start')),
                    
'end'        =>  $this->security->xss_clean($this->input->post('end')),
                    
'allDay'     =>  $this->security->xss_clean($this->input->post('allDay'))
                );
                echo 
$this->calendar->drag_drop_event($data); 
            }
         
        
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }            
        
        
    }

    
/**
    * Deletes the event
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */ 
    
public function delete_event() {
        
        
$data['lang'] = $this->setting['site_language'];         
        
        
$this->languages->get_lang($data['lang']);        
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
                  
            
$username $user->username;            
            
$data["message"] = "";
            
            
$config = array(
                array(
                    
'field' => 'ic_event_title',
                    
'label' => lang('calendar_modal_eventname'),
                    
'rules' => 'trim|xss_clean'
                
),    
                array(
                    
'field' => 'ic_event_starttime',
                    
'label' => lang('calendar_modal_eventbegin'),
                    
'rules' => 'trim|required|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_endtime',
                    
'label' => lang('calendar_modal_eventend'),
                    
'rules' => 'trim|required|xss_clean'
                
),                
                array(
                    
'field' => 'apptID',
                    
'label' => lang('calendar_modal_eventname'),
                    
'rules' => 'trim|required|numeric|xss_clean'
                
),  
                array(
                    
'field' => 'userfile1',
                    
'label' => lang('attach'),
                    
'rules' => 'trim'
                
)                 
            );
            
$this->form_validation->set_error_delimiters('''');
            
$this->form_validation->set_rules($config);
            
            if (
$this->form_validation->run() === FALSE) { 
                
                    
debug('Initialize validation - loading "profile/home" fields requirement');
                    
$data['message'] = form_error('ic_event_title'); 
                     
            } else {        
                
$event $this->security->xss_clean($this->input->post('apptID'));  
                
$this->calendar->delete_event($event);        
            }
            
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
    }   
    
   
/**
    * Add the event
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */    
    
function add_event()   { 
 
         
$data['lang'] = $this->setting['site_language'];         
        
        
$this->languages->get_lang($data['lang']);
        
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
                   
            
$lang $user->lang;
            
$username $user->username;
            
$status "";
            
$data["message"] = "";
            
            
$config = array(
                array(
                    
'field' => 'ic_event_title',
                    
'label' => lang('calendar_modal_eventname'),
                    
'rules' => 'trim|required|min_length[3]|max_length[90]|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_desc',
                    
'label' => lang('calendar_modal_description'),
                    
'rules' => 'trim|max_length[1000]|xss_clean'
                
),
                array(
                    
'field' => 'marker_category',
                    
'label' => lang('calendar_modal_category'),
                    
'rules' => 'trim|required|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_starttime',
                    
'label' => lang('calendar_modal_eventbegin'),
                    
'rules' => 'trim|required|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_endtime',
                    
'label' => lang('calendar_modal_eventend'),
                    
'rules' => 'trim|required|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_urllink',
                    
'label' => lang('calendar_modal_eventend'),
                    
'rules' => 'trim|prep_url|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_shareit',
                    
'label' => lang('calendar_modal_eventshare'),
                    
'rules' => 'trim|required|numeric|xss_clean'
                
),
                array(
                    
'field' => 'userfile1',
                    
'label' => lang('attach'),
                    
'rules' => 'trim'
                
)                 
            );
            
$this->form_validation->set_error_delimiters('''');
            
$this->form_validation->set_rules($config);
            
            if (
$this->form_validation->run() === FALSE) { 
                
                   
debug('Initialize validation - loading "profile/home" fields requirement');
                   
$data['message'] = form_error('ic_event_title'); 
                     
            } else {
 
                
setlocale(LC_ALL$lang);  

                
$id random_string('numeric'8);
                
$title $this->input->post('ic_event_title'); 
                
$marker_category $this->input->post('marker_category'); 
                
$backgroundColor $this->input->post('ic_event_bgcolor');
                
$borderColor $this->input->post('ic_event_textcolor');
                
$textColor $this->input->post('ic_event_bordercolor');
                
$description $this->input->post('ic_event_desc');
                
$start strftime('%Y-%m-%d %H:%M:%S'$this->languages->langtotime($this->input->post('ic_event_starttime'), $lang));
                
$end =  strftime('%Y-%m-%d %H:%M:%S'$this->languages->langtotime($this->input->post('ic_event_endtime'), $lang));
                
$url $this->input->post('ic_event_urllink');
                
$allDay $this->input->post('ic_event_allday');            
                
$rendering $this->input->post('ic_event_rendering'); 
                
$recurring $this->input->post('ic_event_recurring'); 
                
$endrecurring $this->input->post('ic_event_endrecurring'); 
                
$auth $this->input->post('ic_event_shareit');
                
$overlap $this->input->post('ic_event_eventoverlap'); 
                
$location $this->input->post('ic_event_location');
                
$markers_lat $this->input->post('markers_clat');
                
$markers_lng $this->input->post('markers_clng');
                             
                
$markers_logo "pin2.png";
                 
                if(
$rendering == "background") {$allDay "true";}
                                
                
$rec=(int)$recurring;  
                
                if(
$endrecurring && $rec==|| $rec==|| $rec==14 || $rec==30 || $rec==365){
                 
$start_date $this->languages->langtotime($start$lang);
                 
$end_date $this->languages->langtotime($end$lang);
                              
                 
$length=(int)$end_date-$start_date;
                 list(
$y,$m,$d) = explode('-',$endrecurring);
                 
$end_date=mktime(23,59,59,$m,$d,$y);
                 
     
                    if(
$rec==|| $rec==|| $rec==14 || $rec == 365) {
                        
$step=3600*24*$rec
                        
                        for(
$i=$start_date;$i<=$end_date;$i+=$step){    
                            
$data['start']=date('Y-m-d H:i:s',$i);
                            
$data['end']=date('Y-m-d H:i:s',$i+$length);  
                            
                            
$this->calendar->add_event($id$title$marker_category$backgroundColor$borderColor$textColor$description$data['start'], $data['end'], $url$allDay$rendering$overlap$recurring$endrecurring$auth$location$markers_lat$markers_lng$username);
                                    
                        }
                    }else if(
$rec == 30) {
                        for(
$i=$start_date;$i<=$end_date;$i+=3600*24*(int)date('t'mktime(000, (int)date('m',$i), 1, (int)date('y',$i)))){    
                            
$data['start']=date('Y-m-d H:i:s',$i);
                            
$data['end']=date('Y-m-d H:i:s',$i+$length);  
                            
                            
$this->calendar->add_event($id$title$marker_category$backgroundColor$borderColor$textColor$description$data['start'], $data['end'], $url$allDay$rendering$overlap$recurring$endrecurring$auth$location$markers_lat$markers_lng$username);
                                    
                        }
                    }     
                 
                    
$this->gmaps_model->add_marker($marker_category$id$username$title$markers_logo$location$markers_lat$markers_lng$url$description );
 
                }else{
                     
                    
$this->calendar->add_event($id$title$marker_category$backgroundColor$borderColor$textColor$description$start$end$url$allDay$rendering$overlap$recurring$endrecurring$auth$location$markers_lat$markers_lng$username);
                    
                    
$this->gmaps_model->add_marker($marker_category$id$username$title$markers_logo$location$markers_lat$markers_lng$url$description );
                 }
            
                
$file_element_name 'userfile1'

                if (
$status != "error" && !$this->input->post('userfile1'))   {
               
                    
$config['upload_path']    = './assets/attachments/';
                    
$config['file_name']    = $username.'_'.$_FILES['userfile1']['name'];
                    
$config['allowed_types']= $this->setting['attach_allowed_extension'];  
                    
$config['max_size']        = $this->setting['attach_max_size'];
                    
$config['xss_clean']    = FALSE;
                    
$config['encrypt_name'] = FALSE;

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

                    if (!
$this->upload->do_upload($file_element_name))    {
                    
                         
$status 'error';
                         
$data["message"] = $this->upload->display_errors('''');
                    
                    }else {
                    
                        
debug('Initialize upload - loading "home/index" attachment upload');                         
                        
$file_data $this->upload->data();             
                        
$this->calendar->attachment($id$file_data['file_name']);  
                        
                    }
                    @
unlink($_FILES[$file_element_name]['name']);
                }

                if(
$auth "0") {$this->notify->notify_admins('notify_message'$usernamelang('notify_email_public_event'));}                
      
            }
                   

        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
      
    }
     
    
/**
    * Update the event
    * This function is called from calendar.custom.js
    ****
    * @access public
    * @ Param none
    * @return none
    */    
   
function update_event() {
 
         
$data['lang'] = $this->setting['site_language'];         
        
        
$this->languages->get_lang($data['lang']);
        
// check user is logged in with permissions 
        
if ($this->ion_auth->logged_in() || $this->ion_auth->is_admin()) {
            
            
$user $this->ion_auth->user()->row();
             
            
$lang $user->lang;
            
$username $user->username;
            
$status "";
            
$data['message'] = ""

  
            
$config = array(
                array(
                    
'field' => 'ic_event_title',
                    
'label' => lang('calendar_modal_eventname'),
                    
'rules' => 'trim|required|min_length[3]|max_length[90]|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_desc',
                    
'label' => lang('calendar_modal_description'),
                    
'rules' => 'trim|max_length[1000]|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_starttime',
                    
'label' => lang('calendar_modal_eventbegin'),
                    
'rules' => 'trim|required|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_endtime',
                    
'label' => lang('calendar_modal_eventend'),
                    
'rules' => 'trim|required|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_urllink',
                    
'label' => lang('calendar_modal_eventend'),
                    
'rules' => 'trim|prep_url|xss_clean'
                
),
                array(
                    
'field' => 'ic_event_shareit2',
                    
'label' => lang('calendar_modal_eventshare'),
                    
'rules' => 'trim|required|numeric|xss_clean'
                
),
                array(
                    
'field' => 'userfile2',
                    
'label' => lang('attach'),
                    
'rules' => 'trim'
                

            );
            
$this->form_validation->set_error_delimiters('''');
            
$this->form_validation->set_rules($config);
            
            if (
$this->form_validation->run() === FALSE) { 
            
                
debug('Initialize validation - loading "profile/home" fields requirement');
                
$data['message'] = form_error('ic_event_title'); 
                     
            } else {     
        
                
setlocale(LC_ALL$lang);   
                
$id random_string('numeric'9);  
                
$event $this->input->post('apptID'); 
                
$title $this->input->post('ic_event_title');
                
$backgroundColor $this->input->post('ic_event_bgcolor');
                
$borderColor $this->input->post('ic_event_textcolor');
                
$textColor $this->input->post('ic_event_bordercolor');
                
$description $this->input->post('ic_event_desc'); 
                
$start strftime('%Y-%m-%d %H:%M:%S'$this->languages->langtotime($this->input->post('ic_event_starttime'), $lang));
                
$end =  strftime('%Y-%m-%d %H:%M:%S'$this->languages->langtotime($this->input->post('ic_event_endtime'), $lang));
                
$url $this->input->post('ic_event_urllink');
                
$allDay $this->input->post('ic_event_allday');
                
$auth $this->input->post('ic_event_shareit2');
                
$rendering $this->input->post('ic_event_rendering');
                
$overlap $this->input->post('ic_event_eventoverlap');
                
$recurring $this->input->post('ic_event_recurring'); 
                
$endrecurring $this->input->post('ic_event_endrecurring');             
                
$location $this->input->post('ic_event_location');
                
$markers_lat $this->input->post('markers_ulat');
                
$markers_lng $this->input->post('markers_ulng');            
                
$marker_category $this->input->post('marker_category2');  
                
$markers_logo "pin3.png";
  
                
$file_element_name 'userfile2'

                if (
$status != "error")   {
               
                    
$config['upload_path']    = './assets/attachments/';
                    
$config['file_name']    = $username.'_'.$_FILES['userfile2']['name'];
                    
$config['allowed_types']= $this->setting['attach_allowed_extension'];  
                    
$config['max_size']        = $this->setting['attach_max_size'];
                    
$config['xss_clean']    = FALSE;
                    
$config['encrypt_name'] = FALSE

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

                    if (!
$this->upload->do_upload($file_element_name))    {
                    
                         
$status 'error'
                         
$data["message"] = $this->upload->display_errors('''');
                    
                    }else {
                    
                        
debug('Initialize upload - loading "home/index" attachment upload');   
                    
                        
$data $this->upload->data();            
                            
                        
$this->calendar->attachment($event$data['file_name']); 
                        
                    }
                    @
unlink($_FILES[$file_element_name]['name']);
                }                
                

                 
                if(
$rendering == "background") {$allDay "true";}
                                
                
$rec=(int)$recurring
                
                if(
$endrecurring && $rec==|| $rec==|| $rec==14 || $rec==30 || $rec==365){
                 
$start_date $this->languages->langtotime($start$lang);
                 
$end_date $this->languages->langtotime($end$lang);
                 
                 
$length=(int)$end_date-$start_date;
                 list(
$y,$m,$d) = explode('-',$endrecurring);
                 
$end_date=mktime(23,59,59,$m,$d,$y); 
                 
                    if (
$this->calendar->get_eventById($event)){
                     
$this->calendar->delete_event($event);

                        if(
$rec==|| $rec==|| $rec==14 || $rec == 365) {
                            
$step=3600*24*$rec
                            
                            for(
$i=$start_date;$i<=$end_date;$i+=$step){    
                                
$data['start']=date('Y-m-d H:i:s',$i);
                                
$data['end']=date('Y-m-d H:i:s',$i+$length);  
                                
                                
$this->calendar->add_event($event$title$marker_category$backgroundColor$borderColor$textColor$description$data['start'], $data['end'], $url$allDay$rendering$overlap$recurring$endrecurring$auth$location$markers_lat$markers_lng$username);            
                            }
                        }else if(
$rec == 30) {
                            for(
$i=$start_date;$i<=$end_date;$i+=3600*24*(int)date('t'mktime(000, (int)date('m',$i), 1, (int)date('y',$i)))){    
                                
$data['start']=date('Y-m-d H:i:s',$i);
                                
$data['end']=date('Y-m-d H:i:s',$i+$length);  
                                
                                
$this->calendar->add_event($event$title$marker_category$backgroundColor$borderColor$textColor$description$data['start'], $data['end'], $url$allDay$rendering$overlap$recurring$endrecurring$auth$location$markers_lat$markers_lng$username);
                                        
                            }
                        }     
                     
                    }
                 
                    if (
$this->gmaps_model->get_markersById($event)){
                        
$this->gmaps_model->update_marker($marker_category$event$username$title$markers_logo$location$markers_lat$markers_lng$url$description);
                    }else {
                       if (
$this->calendar->get_eventById($event)){
                            
$this->gmaps_model->add_marker($marker_category$event$username$title$markers_logo$location$markers_lat$markers_lng$url$description );
                        }
                    }                
                         
                    
                }else{
                     
                     if (
$this->calendar->get_eventById($event)){
                        
$this->calendar->update_event($event$title$marker_category$backgroundColor$borderColor$textColor$description$start$end$url$allDay$auth$rendering$overlap$location$markers_lat$markers_lng$username);
                     }else{
                        
$this->calendar->add_event($id$title$marker_category$backgroundColor$borderColor$textColor$description$start$end$url$allDay$rendering$overlap$recurring$endrecurring$auth$location$markers_lat$markers_lng$username);
                     }    
                        if (
$this->gmaps_model->get_markersById($event)){
                            
$this->gmaps_model->update_marker($marker_category$event$username$title$markers_logo$location$markers_lat$markers_lng$url$description);
                        }else {
                           if (
$this->calendar->get_eventById($event)){
                                
$this->gmaps_model->add_marker($marker_category$event$username$title$markers_logo$location$markers_lat$markers_lng$url$description );
                            }
                        }         
                }             

                if(
$auth "0") {$this->notify->notify_admins('notify_message'$usernamelang('notify_email_public_event'));}
            }    
    
        }else {            
            
debug('Initialize index - loading "login/index" view');
            
redirect('/profile/login'301);
        }
      
    }
    

}

/* End of file home.php (cifullcalendar+) */
/* Location: ./application/controllers/profile/home.php */
Онлайн: 1
Реклама