my_parent_controller(); $this->lang->load('frontoffice/subscribe', 'fr'); } public function workshop_informer($code){ if(!isset($code) && empty($code)) show_404(); //decode $code = base64_decode($code); if(empty($code)) show_404(); $this->load->model("event_workshop_informer_model"); $result = $this->event_workshop_informer_model->get_workshop_informer_email($code); if(!$result) show_404(); $emailTemplate = $this->event_workshop_informer_model->getDefaultEmailTemplate($result->email_type_id, $result->email_tpl_id); if(!$emailTemplate) show_404(); $this->initialize_event_vars($result); $email_template = str_replace($this->search, $this->replacements, urldecode($emailTemplate->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } public function push_event_email($code){ if(isset($code) && !empty($code)){ //decode $code = base64_decode($code); if(!empty($code)){ $ecode = explode("_", $code); if(sizeof($ecode) == 2){ $this->load->model("event_email_custom_model"); $result = $this->event_email_custom_model->get_push_event_email_data($ecode[0], $ecode[1]); if($result) { $this->initialize_event_vars($result); $email_template = str_replace($this->search, $this->replacements, urldecode($result->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } else{ show_404(); } } else { show_404(); } } else { show_404(); } } else { show_404(); } } public function reminder($code){ if(isset($code) && !empty($code)){ //decode $code = base64_decode($code); if(!empty($code)){ $ecode = explode("_", $code); if(sizeof($ecode) == 2){ $this->load->model("event_registration_model"); $result = $this->event_registration_model->get_reminder_email_data($ecode[0], $ecode[1]); if($result) { $this->initialize_event_vars($result); $email_template = str_replace($this->search, $this->replacements, urldecode($result->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } else{ show_404(); } } else { show_404(); } } else { show_404(); } } else { show_404(); } } public function waitlist_reinvitation($code){ if(isset($code) && !empty($code)){ //decode $code = base64_decode($code); if(!empty($code)){ $ecode = explode("_", $code); if(sizeof($ecode) == 2){ //$this->lang->load('frontoffice/subscribe', 'fr'); $this->load->model("event_wait_list_model"); $result = $this->event_wait_list_model->get_waitlist_reinvitation_email_data($ecode[0], $ecode[1]); if($result) { $this->initialize_event_vars($result); $email_template = str_replace($this->search, $this->replacements, urldecode($result->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } else{ show_404(); } } else { show_404(); } } else { show_404(); } } else { show_404(); } } public function forgot_password($reset_code){ if(isset($reset_code) && !empty($reset_code)){ $this->load->model("user_forgot_password_model"); //get result using reset_code $result = $this->user_forgot_password_model->get_data_by_reset_code($reset_code); if($result) { $route_page = ($result->role_id == USER_ROLES['subscriber'])?"enter_code_page":"enter_code"; $message = ""; $mail_content = array(); $message .= "
Si vous avez oublié votre mot de passe, veuillez cliquer sur le lien suivant et entrer le code ci-dessous :

"; $message .= "> Changer mon mot de passe <
"; $message .= "Code : " . $reset_code; $mail_content["logo"] = "http://s1.lemde.fr/mmpub/img/espace-client/logo-lemonde.png"; $mail_content["description"] = $message; $mail_content["open_in_a_newtab"] = false; $page = $this->load->view("backoffice/email_template/forgot_password_tpl", $mail_content, true); $page = str_replace("{(email)}", "(".$result->email_address.")", $page); echo $this->create_header().$page.$this->create_footer(); } else { show_404(); } } else { show_404(); } } public function email_registered($code){ if(isset($code) && !empty($code)){ //decode $code = base64_decode($code); if(!empty($code)){ $ecode = explode("_", $code); if(sizeof($ecode) == 4 ){ $user_id = $ecode[0]; $event_id = $ecode[1]; $event_schedule_id = $ecode[2]; $seats_reserved = $ecode[3]; $this->load->model("user_subscriber_model");; $this->load->model("event_model"); $this->load->model('event_email_template_model'); if (is_numeric($ecode[0])) { $user_info = $this->user_subscriber_model->email_registered($user_id); $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 3, true); if(countVal($event_info) >0 && countVal($user_info) > 0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars($user_info, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } else { show_404(); } } else { $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 3, true); if(countVal($event_info) >0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars_test($user_id, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } else { show_404(); } } } else { show_404(); } } else { show_404(); } } else { show_404(); } } public function email_registered_preview($email_type_id, $event_id, $event_schedule_id, $seats_reserved){ $email_title = "Confirmation de réservation"; $this->load->model("user_subscriber_model");; $this->load->model("event_model"); $this->load->model('event_email_template_model'); $user_id = $this->data["logged_in"]['user_id']?? null; if(isset($email_type_id, $event_id, $event_schedule_id) && $user_id != null){ $user_info = $this->user_subscriber_model->email_registered($user_id); $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 3, true); if(countVal($event_info) >0 && countVal($user_info) > 0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars($user_info, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().'
'.$email_template.'
'.$this->create_footer($email_title); } else { show_404(); } } else { $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 3, true); if(countVal($event_info) >0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars_test($user_id, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().'
'.$this->create_footer($email_title); } else { show_404(); } } } public function email_unregistered($code){ if(isset($code) && !empty($code)){ //decode $code = base64_decode($code); if(!empty($code)){ $ecode = explode("_", $code); if(sizeof($ecode) == 4){ $user_id = $ecode[0]; $event_id = $ecode[1]; $event_schedule_id = $ecode[2]; $seats_reserved = $ecode[3]; $this->load->model("user_subscriber_model");; $this->load->model("event_model"); $this->load->model('event_email_template_model'); if (is_numeric($ecode[0])) { $user_info = $this->user_subscriber_model->email_registered($user_id); $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 5, true); if(countVal($event_info) >0 && countVal($user_info) > 0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars($user_info, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } else { show_404(); } } else { $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 5, true); if(countVal($event_info) >0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars_test($user_id, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } else { show_404(); } } } else { show_404(); } } else { show_404(); } } else { show_404(); } } public function partial_subs_cancelation($code){ if(isset($code) && !empty($code)){ //decode $code = base64_decode($code); if(!empty($code)){ $ecode = explode("_", $code); if(sizeof($ecode) == 4){ $user_id = $ecode[0]; $event_id = $ecode[1]; $event_schedule_id = $ecode[2]; $seats_reserved = $ecode[3]; $this->load->model("user_subscriber_model");; $this->load->model("event_model"); $this->load->model('event_email_template_model'); if (is_numeric($ecode[0])) { $user_info = $this->user_subscriber_model->email_registered($user_id); $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 5, true, 8); if(countVal($event_info) >0 && countVal($user_info) > 0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars($user_info, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer2(); } else { show_404(); } } else { $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 5, true, 8); if(countVal($event_info) >0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars_test($user_id, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer2(); } else { show_404(); } } } else { show_404(); } } else { show_404(); } } else { show_404(); } } public function email_registered_waitlist($code){ if(isset($code) && !empty($code)){ //decode $code = base64_decode($code); if(!empty($code)){ $ecode = explode("_", $code); if(sizeof($ecode) == 4){ $user_id = $ecode[0]; $event_id = $ecode[1]; $event_schedule_id = $ecode[2]; $seats_reserved = $ecode[3]; $this->load->model("user_subscriber_model");; $this->load->model("event_model"); $this->load->model('event_email_template_model'); $user_info = $this->user_subscriber_model->email_registered($user_id); $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 6, true); if(countVal($event_info) >0 && countVal($user_info) > 0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars($user_info, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } else { show_404(); } } else { show_404(); } } else { show_404(); } } else { show_404(); } } public function email_registered_waitlist_preview($email_type_id, $event_id, $event_schedule_id, $seats_reserved){ $email_title = "Confirmation d'inscription sur liste d'attente"; $this->load->model("user_subscriber_model");; $this->load->model("event_model"); $this->load->model('event_email_template_model'); $user_id = $this->data["logged_in"]['user_id']?? null; if(isset($email_type_id, $event_id, $event_schedule_id) && $user_id != null) { $user_info = $this->user_subscriber_model->email_registered($user_id); $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 6, true); if(countVal($event_info) >0 && countVal($user_info) > 0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars($user_info, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().'
'.$email_template.'
'.$this->create_footer($email_title); } else { show_404(); } } else { show_404(); } } public function preview_test_email($code){ if(isset($code) && !empty($code)){ //decode $code = base64_decode($code); if(!empty($code)){ $ecode = explode("_", $code); if(sizeof($ecode) == 4){ $email = $ecode[0]; $email_type_id = $ecode[1]; $event_id = $ecode[2]; $event_schedule_id = $ecode[3]; $this->load->model("event_model"); $this->load->model('event_email_template_model'); $event_info = $this->event_model->get_event_detail_for_test_email($event_schedule_id, $email_type_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, $email_type_id, true); if(countVal($event_info) >0 && $email_tpl){ $event_info = $this->add_email_vars_test($email, $event_info, 1); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer(); } else { show_404(); } } else { show_404(); } } else { show_404(); } } else { show_404(); } } public function cancel($code){ if(isset($code) && !empty($code)){ //decode $code = base64_decode($code); if(!empty($code)){ $ecode = explode("_", $code); if(sizeof($ecode) == 4){ $user_id = $ecode[0]; $event_id = $ecode[1]; $event_schedule_id = $ecode[2]; $seats_reserved = $ecode[3]; $this->load->model("user_subscriber_model");; $this->load->model("event_model"); $this->load->model('event_email_template_model'); if (is_numeric($ecode[0])) { $user_info = $this->user_subscriber_model->email_registered($user_id); $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 6, true, 7); if(countVal($event_info) >0 && countVal($user_info) > 0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars($user_info, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer2(); } else { show_404(); } } else { $event_info = $this->event_model->event_details_email($event_schedule_id); $email_tpl = $this->event_email_template_model->get_current_event_email_template($event_id, $event_schedule_id, 6, true, 7); if(countVal($event_info) >0 && countVal($email_tpl) > 0){ $event_info = $this->add_email_vars_test($user_id, $event_info, $seats_reserved); $this->initialize_event_vars($event_info); $email_template = str_replace($this->search, $this->replacements, urldecode($email_tpl->email_tpl_detail)); echo $this->create_header().$email_template.$this->create_footer2(); } else { show_404(); } } } else { show_404(); } } else { show_404(); } } else { show_404(); } } private function create_header(){ $js = ' '; return ' Company For Madagascar évènements abonnés '.$js.' '; } private function create_footer($email_title = ""){ return ' '; } private function create_footer2(){ return ' '; } private function create_footer_fo() { return ' '; } private function add_email_vars_test($email, $event_info, $seats_reserved=0){ $event_info->{"subscriber"} = "Test Account"; $event_info->{"subs_nom"} = "Test"; $event_info->{"subs_prenom"} = "Account"; $event_info->{"subscriber"} = "Test Account"; $event_info->{"seats_reserved"} = ($seats_reserved <= 1)?$seats_reserved.' place': $seats_reserved.' places '; $event_info->{"email_address"} = $email; if (!isset($event_info->email_tpl_setting_sched) || !isset($event_info->email_tpl_setting_sched_by)) { $event_info->email_tpl_setting_sched = ''; $event_info->email_tpl_setting_sched_by = ''; } switch ($event_info->email_tpl_setting_sched_by) { case 'DAYS': $event_info->email_tpl_setting_sched_by = 'jour'; break; case 'HOURS': $event_info->email_tpl_setting_sched_by = 'heurs'; break; case 'MINUTES': $event_info->email_tpl_setting_sched_by = 'minutes'; break; default: $event_info->email_tpl_setting_sched_by = ''; break; } $event_info->{"event_reminder_date"} = $event_info->email_tpl_setting_sched.' '.$event_info->email_tpl_setting_sched_by; return $event_info; } private function add_email_vars($user_info, $event_info, $seats_reserved=0){ $event_info->{"subscriber"} = $user_info->first_name." ".$user_info->last_name; $event_info->{"subs_prenom"} = $user_info->first_name; $event_info->{"subs_nom"} = $user_info->last_name; $event_info->{"seats_reserved"} = ($seats_reserved <= 1)?$seats_reserved.' place': $seats_reserved.' places '; $event_info->{"email_address"} = $user_info->email_address; return $event_info; } private function initialize_event_vars($event){ $Vars = array('subs_prenom', 'subs_nom', 'event_reminder_date','subscriber','email_address','event_title','event_start_day_name','event_start_day','event_start_month', 'event_start_month_name','event_start_year','event_start_hour','seats_reserved','event_start_day_name', 'city', 'event_description', 'event_venue', 'event_place_name', 'event_address', 'event_postal_code', 'event_rate', 'day', 'addressee', 'start_day', 'start_month', 'start_year', 'start_date_hour', 'subscriber', 'email_address', 'workshop_author'); //for translation $toFR = array('event_start_month_name', 'event_start_day_name'); $specialFields = array('event_postal_code', 'event_start_hour'); foreach ($event as $key => $value) { if (in_array($key, $Vars)) { $search = "[[var:" . $key . "]]"; //translate to french if(in_array($key, $toFR) && ($key!='subs_prenom' || $key!='subs_nom')) { $value = $this->lang->line($value); } if($key === "event_reminder_date") { if(isset($event->event_reminder_specific_date) && !empty($event->event_reminder_specific_date)) { $value = secondsToTime($event->event_reminder_specific_date); } } if (in_array($key, $specialFields) && $key == 'event_start_hour' && $value === '00h00') { $search = ", à [[var:" . $key . "]]"; $value = ''; } if (in_array($key, $specialFields) && $key == 'event_postal_code' && empty($value)) { $search = ", [[var:" . $key . "]]"; $value = ','; } $this->search[] = $search; $this->replacements[] = $value; } } $this->search[] = "[[var:event_url]]"; $this->replacements[] = 'event_details?event_id='.$event->event_id; $this->search[] = "[[var:event_picture]]"; $this->replacements[] = 'resources/images/frontoffice/events/'.$event->event_picture; } public function upload_default_email_template(){ $this->load->helper('default_email_template.php'); $this->load->model("event_email_template_model"); $result = $this->event_email_template_model->upload_default_email_template(upload_default_email_template()); if($result){ print_r("Email templates have been reset."); } } public function send_comment() { //load language file $this->lang->load('frontoffice/contact', 'fr'); if( isset($_POST['sender']) && !empty($_POST['sender']) ) { $this->load->model('personalization_model', '', TRUE); $email = $this->personalization_model->select_contact_email(); if($email){ $this->load->library("mailjet_libr"); $display_name = "COMPANY FOR MADAGASCAR MasterClass"; $config = $this->mailjet_libr->_ci_instance_email(); $this->load->library('email', $config); $this->email->from($config['sender'], $display_name); $this->email->to($email); $this->email->set_header('Reply-to', $this->input->post('sender')); $this->email->subject('Club abo - '.$this->input->post('nature')); $this->email->message($this->load->view("frontoffice/email/contact_email_template_view", $this->input->post(), true)); $mailjet_response = $this->email->send(TRUE, $this->input->post('sender')); if( $mailjet_response ){ // store the email in local database $this->personalization_model->insert_contact_email($_POST); output_to_json($this, array( "mtype" => "success", "message" => $this->lang->line('email_was_sent') )); } else { output_to_json($this,array( "mtype" => "error", "message" => $this->lang->line('email_not_sent') )); } } else { output_to_json($this, array( "mtype" => "error", "message" => $this->lang->line('email_not_sent') )); } }else{ output_to_json($this, array( "mtype" => "error", "message" => $this->lang->line('sender_email_required') )); } } public function send_comment_nous (){ //load language file $this->lang->load('frontoffice/contact', 'fr'); if( isset($_POST['sender']) && !empty($_POST['sender']) ) { $this->load->model('personalization_model', '', TRUE); $email = 'univ@c4m.mg'; if($email){ $this->load->library("mailjet_libr"); $display_name = "COMPANY FOR MADAGASCAR MasterClass"; $config = $this->mailjet_libr->_ci_instance_email(); $this->load->library('email', $config); $this->email->from($config['sender'], $display_name); $this->email->to($email); $this->email->set_header('Reply-to', $this->input->post('sender')); $this->email->subject('Club abo - '.$this->input->post('nature')); $this->email->message($this->load->view("frontoffice/email/contact_email_template_view", $this->input->post(), true)); $mailjet_response = $this->email->send(TRUE, $this->input->post('sender')); if( $mailjet_response ){ // store the email in local database $this->personalization_model->insert_contact_email($_POST); output_to_json($this, array( "mtype" => "success", "message" => $this->lang->line('email_was_sent') )); } else { output_to_json($this,array( "mtype" => "error", "message" => $this->lang->line('email_not_sent') )); } } else { output_to_json($this, array( "mtype" => "error", "message" => $this->lang->line('email_not_sent') )); } }else{ output_to_json($this, array( "mtype" => "error", "message" => $this->lang->line('sender_email_required') )); } } }