You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1830 lines
106 KiB
1830 lines
106 KiB
<?php
|
|
|
|
if (!defined('BASEPATH')) {
|
|
exit('No direct script access allowed');
|
|
}
|
|
|
|
use app\core\auth\User as UserAuth;
|
|
use app\core\auth\Sso;
|
|
use app\core\auth\Page;
|
|
use app\core\utils\Response;
|
|
use app\core\auth\Registration as UserRegistration;
|
|
use app\core\auth\Unregister;
|
|
use app\core\auth\Profile as ProfileDetails;
|
|
use app\libraries\StripePayment;
|
|
|
|
class Frontoffice extends MY_Controller
|
|
{
|
|
protected $registration;
|
|
protected $profile;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->setCspHeader(true);
|
|
$this->frontoffice_parent_controller();
|
|
$this->load_language_frontoffice();
|
|
if (isset($_GET['preview_event'])) {
|
|
Page::authorize(PAGE_CODE['events'], PRIVS[PAGE_CODE['events']]['preview_event'], true);
|
|
} else {
|
|
Response::showPage404('frontoffice');
|
|
}
|
|
|
|
// Release the lock
|
|
$this->check_instance_of_reservation_modal();
|
|
|
|
$this->load->model('event_model', '', true);
|
|
$this->load->model('event_type_model', '', true);
|
|
$this->load->model('event_city_location_model', '', true);
|
|
$this->load->model('event_sponsor_assignee_model', '', true);
|
|
$this->load->model('event_speaker_assignee_model', '', true);
|
|
$this->load->model('personalization_model', '', true);
|
|
$this->load->model('User_subscription_model', '', true);
|
|
$this->load->model('event_payment_model', '', true);
|
|
$this->load->model('event_video_model', '', true);
|
|
$this->load->model('event_registration_model', '', true);
|
|
$this->load->model('event_schedule_model', '', true);
|
|
$this->load->model('event_registration_model','', true);
|
|
|
|
$announcement = $this->personalization_model->getLatestAnnouncement();
|
|
$announcementID = @$announcement['id'];
|
|
$announcementTitle = @$announcement['title'];
|
|
$announcementContent = @$announcement['content'];
|
|
$announcementCookie = 'announcement_cookie_'.@$announcement['cookie_char'];
|
|
$this->data['announcement_id'] = $announcementID;
|
|
$this->data['announcement_title'] = $announcementTitle;
|
|
$this->data['announcement_content'] = $announcementContent;
|
|
$this->data['announcement_cookie'] = $announcementCookie;
|
|
$this->data['homepage_title'] = $this->personalization_model->get_homepage_title();
|
|
|
|
if (!isset($_COOKIE['eucookie'])) {
|
|
$expire = time() + 86400;
|
|
set_cookie('eucookie', 'eucookie', $expire);
|
|
}
|
|
if (!isset($_COOKIE[$announcementCookie])) {
|
|
delete_cookie( $prefix = 'announcement_cookie_');
|
|
$expire = time() + 86400;
|
|
set_cookie($announcementCookie, $announcementTitle, $expire);
|
|
}
|
|
$this->registration = new UserRegistration();
|
|
$this->profile = new ProfileDetails();
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
$this->home();
|
|
}
|
|
public function home()
|
|
{
|
|
$this->load->model('user_login_history_model');
|
|
$this->load->model('event_moderation_model');
|
|
$new_banner = $this->personalization_model->upload_get_banner();
|
|
$white_label = $new_banner['description'];
|
|
$banner = (isset($new_banner['image']) && !empty($new_banner['image'])) ? $new_banner['image'] : '';
|
|
|
|
$this->data['content'] = 'frontoffice/home/homepage_view';
|
|
$this->data['page_title'] = "Les ateliers du Company For Madagascar : sélection d'ateliers et cours par la rédaction du Company For Madagascar";
|
|
$this->data['page_description'] = "Company For Madagascar propose une sélection d'ateliers et de cours organisés par la rédaction du Company For Madagascar";
|
|
$this->data['page_banner_bg'] = $banner;
|
|
$this->data['page_banner_description'] = $white_label;
|
|
$this->data['event_city'] = $this->event_city_location_model->home();
|
|
$this->data['past_events'] = [];
|
|
$events = $this->event_model->get_selected_past_events();
|
|
|
|
/** past events */
|
|
/**Get the videos of past events */
|
|
if(count($events)>0) {
|
|
$se = array();
|
|
foreach($events as $item) {
|
|
$videoReserved = false;
|
|
$event_item = (array)$item;
|
|
$videos = $this->event_video_model->get_videos_by_event_id($item->event_id);
|
|
$event_item['total_duration'] = $this->event_video_model->total_video_duration($videos);
|
|
$sevs = array();
|
|
if(count($videos)>0) {
|
|
foreach($videos as $video) {
|
|
$video->duration = $this->event_video_model->format_video_duration($video->duration);
|
|
array_push($sevs, (array)$video);
|
|
}
|
|
}
|
|
if(UserAuth::isAuth() && ($item->workshop_session == 'ENLIGNE')) {
|
|
$re = $this->event_registration_model->is_subscribed($this->data['logged_in']['user_id'], $item->event_id);
|
|
if($re && $re->is_expired == 1) {
|
|
$videoReserved = true;
|
|
}
|
|
}
|
|
$event_item['video_reserved'] = $videoReserved;
|
|
$event_item['event_videos'] = $sevs;
|
|
array_push($se, (object)$event_item);
|
|
}
|
|
$this->data['past_events'] = $se;
|
|
}
|
|
/** end past events */
|
|
/** Only For SEO */
|
|
$this->data['event_seo'] = $this->event_model->filter_events("_default_", "1", "", "", "", "", "","");
|
|
/** end for SEO */
|
|
|
|
$event_type_data = $this->event_type_model->home();
|
|
$event_data = array();
|
|
foreach($event_type_data as $row) {
|
|
$event_count = $this->event_model->count_workshop('type', $row->event_type_id, isset($this->data['logged_in']['user_id'])?$this->data['logged_in']['user_id']:NULL);
|
|
if($event_count>0) {
|
|
array_push($event_data, (object)array(
|
|
'event_type_id' => $row->event_type_id,
|
|
'event_type' =>$row->event_type,
|
|
'count' => $event_count
|
|
));
|
|
}
|
|
}
|
|
$this->data['event_type'] =(object) $event_data;
|
|
|
|
/**
|
|
* Check if subscriber is already notified by the moderation feature or not
|
|
*/
|
|
$this->data['notifyUserABoutModerationFeature'] = false;
|
|
$this->data['reservations'] = [
|
|
'base' => [],
|
|
'sessions' => []
|
|
];
|
|
|
|
if (UserAuth::isAuth()) {
|
|
$this->load->model('user_subscriber_model', '', true);
|
|
$this->data['notifyUserABoutModerationFeature'] = $this->user_subscriber_model->notifyUserABoutModerationFeature($this->data['logged_in']['user_id']);
|
|
$subscription = $this->User_subscription_model->get_subscription($this->data['logged_in']['user_id']);
|
|
if(!empty($subscription) && !is_null($subscription)) {
|
|
$this->data['subscription'] = !is_null($subscription->expirationDate) && !is_null($subscription->transactionDateTime) ? 'enabled': 'disabled';
|
|
}
|
|
if ($this->data['notifyUserABoutModerationFeature']) {
|
|
$cur_sett = $this->event_moderation_model->getLatestModSettings(3, 0);
|
|
$this->data['notifyUserABoutModerationFeature'] = (!count($cur_sett) || $cur_sett['gm_mod_stat'] == 0) ? false : true;
|
|
}
|
|
|
|
// Mes réservations tab data
|
|
$this->data['reservations']['base'] = $this->event_payment_model->getActiveEventsPayment([
|
|
'user_id' => $this->session->userdata('logged_in')['user_id'],
|
|
//"DATEDIFF(end_date_time, NOW()) >=" => "0"
|
|
]);
|
|
$events = array();
|
|
foreach($this->data['reservations']['base'] as $index => $r) {
|
|
$event = (array)$r;
|
|
$videoReserved = false;
|
|
if($r->workshop_session =='ENLIGNE' || $r->workshop_session =='DISTANCE-PRESENTIEL'){
|
|
$videos = $this->event_video_model->get_videos_by_event_id($r->event_id);
|
|
if($videos) {
|
|
$event['total_videos_duration'] = $this->event_video_model->total_video_duration($videos);
|
|
$event['total_videos'] = count($videos);
|
|
$event["commencement_cours"] = $this->event_video_model->get_next_course_from_id($r->event_id)["live_video_start_date"];
|
|
}
|
|
$re = $this->event_registration_model->is_subscribed($this->data['logged_in']['user_id'], $r->event_id);
|
|
if($re) {
|
|
$videoReserved = true;
|
|
}
|
|
}
|
|
$event['video_reserved'] = $videoReserved;
|
|
array_push($events, (object)$event);
|
|
$this->data['reservations']['sessions'][$index] = $this->event_schedule_model->get_event_schedule($r->event_id);
|
|
}
|
|
$this->data['reservations']['base'] = $events;
|
|
}
|
|
|
|
$announcement = $this->personalization_model->getLatestAnnouncement();
|
|
$announcementID = @$announcement['id'];
|
|
$announcementTitle = @$announcement['title'];
|
|
$announcementContent = @$announcement['content'];
|
|
$this->data['announcement_id'] = $announcementID;
|
|
$this->data['announcement_title'] = $announcementTitle;
|
|
$this->data['announcement_content'] = $announcementContent;
|
|
$expire_announcement = $this->personalization_model->expireAnnouncement();
|
|
$this->data['expire_announcement'] = $expire_announcement;
|
|
|
|
|
|
$this->load_extra_files(array(
|
|
'bootbox' => true,
|
|
'dotdotdot' => true,
|
|
'notify' => true,
|
|
'ga' => true,
|
|
'moment' => true,
|
|
'ajax_helper' => true,
|
|
));
|
|
|
|
//load laguages
|
|
array_push($this->data['load_scripts'], '<script type="text/javascript" nonce="'.($this->data['csp_nonce']).'">app.setLocale([], {currenturl : "'.str_replace(base_url().'?', base_url(), current_url()).'", baseurl : "'.base_url().'", timeout: '.Response::handleSessionTimeoutOnPageLoad('fo').'}, 2);</script>');
|
|
|
|
if (UserAuth::isAuth()) {
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/init.js")."'></script>");
|
|
array_push($this->data['load_scripts'], '<script type="text/javascript" nonce="'.($this->data['csp_nonce']).'">_initjs.set_vars({baseurl : "'.base_url().'", currenturl : "'.str_replace(base_url().'?/', base_url(), current_url()).'"});</script>');
|
|
}
|
|
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/online.event.js")."'></script>");
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/subscribe.js")."'></script>");
|
|
// Changes start here
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/events.js")."'></script>");
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/jquery.translate.js")."'></script>");
|
|
array_push($this->data['load_scripts'], "<script type='text/javascript' nonce=\"{$this->data['csp_nonce']}\"> const notifyUserABoutModerationFeature='".(($this->data['notifyUserABoutModerationFeature'])?'true':'false')."'; </script>");
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/homepage.css').'" rel="stylesheet">'
|
|
);
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
|
|
public function my_account()
|
|
{
|
|
if (!UserAuth::isAuth())
|
|
redirect('home');
|
|
|
|
$user = null;
|
|
|
|
if (Sso::isLoggedIn()) {
|
|
$loggedIn = UserAuth::auth();
|
|
$user = $this->user_model->get_subscribers($loggedIn['user_id']);
|
|
}
|
|
|
|
$this->data['user'] = $user;
|
|
|
|
$this->data['content'] = 'frontoffice/home/my_account_view';
|
|
$this->data['page_title'] = 'Mon Compte';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/my_account.css').'" rel="stylesheet">'
|
|
);
|
|
|
|
$this->load_extra_files(array(
|
|
'bootbox' => true,
|
|
'notify' => true,
|
|
'ajax_helper' => true
|
|
));
|
|
|
|
//load laguages
|
|
array_push($this->data['load_scripts'], '<script type="text/javascript" nonce="'.($this->data['csp_nonce']).'">app.setLocale([], {currenturl : "'.str_replace(base_url().'?', base_url(), current_url()).'", baseurl : "'.base_url().'", timeout: '.Response::handleSessionTimeoutOnPageLoad('fo').'}, 2);</script>');
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/profile.js")."'></script>");
|
|
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function my_reservations()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/my_reservation';
|
|
$this->data['page_title'] = 'Mes Réservations';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/booking_history.css').'" rel="stylesheet">'
|
|
);
|
|
|
|
// Mes réservations tab data
|
|
$this->data['reservations'] = [
|
|
'base' => [],
|
|
'sessions' => []
|
|
];
|
|
$this->data['reservations']['base'] = $this->event_payment_model->getActiveEventsPayment([
|
|
'user_id' => $this->session->userdata('logged_in')['user_id'],
|
|
//"DATEDIFF(end_date_time, NOW()) >=" => "0"
|
|
]);
|
|
$events = array();
|
|
foreach($this->data['reservations']['base'] as $index => $r) {
|
|
$event = (array)$r;
|
|
if($r->workshop_session =='ENLIGNE'){
|
|
$videos = $this->event_video_model->get_videos_by_event_id($r->event_id);
|
|
if($videos) {
|
|
$event['total_videos_duration'] = $this->event_video_model->total_video_duration($videos);
|
|
$event['total_videos'] = count($videos);
|
|
$event["commencement_cours"] = $this->event_video_model->get_next_course_from_id($r->event_id)["live_video_start_date"];
|
|
}
|
|
}
|
|
array_push($events, (object)$event);
|
|
$this->data['reservations']['sessions'][$index] = $this->event_schedule_model->get_event_schedule($r->event_id);
|
|
}
|
|
$this->data['reservations']['base'] = $events;
|
|
// Mon historique tab data
|
|
$this->data['reservations_history'] = [
|
|
'base' => [],
|
|
'sessions' => []
|
|
];
|
|
$this->data['reservations_history']['base'] = $this->event_payment_model->getPastEventsPayment([
|
|
'user_id' => $this->session->userdata('logged_in')['user_id'],
|
|
"DATEDIFF(end_date_time, NOW()) <" => "0"
|
|
]);
|
|
$historyEvents = array();
|
|
foreach($this->data['reservations_history']['base'] as $index => $r) {
|
|
if($r->workshop_session =='DISTANCE-PRESENTIEL' && $r->registration_type == 'soir-distance' && $r->is_expired == 1) {
|
|
break;
|
|
} else {
|
|
$event = (array)$r;
|
|
if($r->workshop_session =='ENLIGNE' || $r->workshop_session =='DISTANCE-PRESENTIEL'){
|
|
$videos = $this->event_video_model->get_videos_by_event_id($r->event_id);
|
|
if($videos) {
|
|
$event['total_videos_duration'] = $this->event_video_model->total_video_duration($videos);
|
|
$event['total_videos'] = count($videos);
|
|
$event["commencement_cours"] = $this->event_video_model->get_next_course_from_id($r->event_id)["live_video_start_date"];
|
|
}
|
|
}
|
|
array_push($historyEvents, (object)$event);
|
|
$this->data['reservations_history']['sessions'][$index] = $this->event_schedule_model->get_event_schedule($r->event_id);
|
|
}
|
|
}
|
|
$this->data['reservations_history']['base'] = $historyEvents;
|
|
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function cours_en_ligne_achat($event_id = null)
|
|
{
|
|
if (!UserAuth::isAuth() || $event_id == null)
|
|
redirect('home');
|
|
$event = $this->event_model->get_event_details($event_id);
|
|
if((!isset($event) || is_null($event)) && $event->workshop_session != 'ENLIGNE')
|
|
redirect('home');
|
|
|
|
$this->data['event'] = $event;
|
|
/** Check if user has current subscription on this video workshop */
|
|
$user_id = $this->session->userdata('logged_in')['user_id'];
|
|
if (Sso::isLoggedIn()) {
|
|
$loggedIn = UserAuth::auth();
|
|
$user_id = $loggedIn['user_id'];
|
|
}
|
|
$re = $this->event_registration_model->is_subscribed($user_id, $event_id);
|
|
if(!isset($re) || is_null($re))
|
|
redirect('home');
|
|
|
|
//$this->load->model('event_video_model');
|
|
$videos = $this->event_video_model->get_videos_by_event_id($event_id);
|
|
$this->data['event_videos'] = array();
|
|
$this->data['total_videos_duration'] = $this->event_video_model->total_video_duration($videos);
|
|
$this->data["commencement_cours"] = $this->event_video_model->get_next_course_from_id($event_id)["live_video_start_date"];
|
|
$this->data['total_videos'] = count($videos);
|
|
foreach($videos as $video) {
|
|
$video->duration = $this->event_video_model->format_video_duration($video->duration);
|
|
array_push($this->data['event_videos'], $video);
|
|
}
|
|
|
|
$this->data['content'] = 'frontoffice/home/cours_en_ligne_achat_view';
|
|
$this->data['page_title'] = 'Cours en ligne achat';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/online-course-achat.css').'" rel="stylesheet">',
|
|
);
|
|
$this->data['load_scripts'] = array(
|
|
"<script src='".auto_version(app_bundle()."frontoffice/event.video.js")."'></script>"
|
|
);
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function in_development()
|
|
{
|
|
$this->data['content'] = 'in_development_view';
|
|
$this->data['page_title'] = 'In Development';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function event_details(string $event_id = null)
|
|
{
|
|
if(!empty($event_id))
|
|
$_GET['event_id'] = $event_id;
|
|
|
|
$this->data['content'] = 'frontoffice/home/event_details_view';
|
|
// $this->data['page_title'] = 'Event Details';
|
|
// $this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/event_details.css').'" rel="stylesheet">',
|
|
'<link href="' . auto_version(plugins_bundle() . 'floating-labels.css').'" rel="stylesheet">'
|
|
);
|
|
//$this->load->view('frontoffice_view', $this->data);
|
|
|
|
if (!isset($_GET['event_id']) || empty($_GET['event_id']) || !is_numeric($_GET['event_id'])) {
|
|
show_404();
|
|
} else {
|
|
if(!UserAuth::isAuth()) {
|
|
$this->set_event_cookie($_GET['event_id']);
|
|
}
|
|
$logged_in = UserAuth::isAuth();
|
|
$this->load->model('event_author_works_model');
|
|
$this->load->model('event_venue_photos_model');
|
|
$this->load->model('event_comment_model');
|
|
//$this->load->model('event_video_model');
|
|
|
|
$this->data['include_archived_events'] = (!isset($_GET['hs']) || empty($_GET['hs']) || strtolower($_GET['hs']) !== 'true') ? false : true;
|
|
$event_id = $this->input->get('event_id');
|
|
$event = $this->event_model->event_details($event_id);
|
|
|
|
// if(UserAuth::isPremium() == true && $event->event_id != EVENT_ID && $event->discounted_price > 0) {
|
|
// $event->event_rate = $event->discounted_price;
|
|
// }
|
|
$similar_events = $this->event_model->get_similar_events(json_decode($event->similar_events));
|
|
$event->similar_events = [];
|
|
/**Get the videos of similar events */
|
|
if(count($similar_events)>0) {
|
|
$se = array();
|
|
foreach($similar_events as $item) {
|
|
$videoReserved = false;
|
|
$event_item = (array)$item;
|
|
$videos = $this->event_video_model->get_videos_by_event_id($item['event_id']);
|
|
$event_item['total_duration'] = $this->event_video_model->total_video_duration($videos);
|
|
$sevs = array();
|
|
if(count($videos)>0) {
|
|
foreach($videos as $video) {
|
|
$video->duration = $this->event_video_model->format_video_duration($video->duration);
|
|
array_push($sevs, (array)$video);
|
|
}
|
|
}
|
|
if($logged_in && $item['workshop_session'] == 'ENLIGNE') {
|
|
$re = $this->event_registration_model->is_subscribed($this->data['logged_in']['user_id'], $item['event_id']);
|
|
if($re && $re->is_expired == 1) {
|
|
$videoReserved = true;
|
|
}
|
|
}
|
|
$event_item['video_reserved'] = $videoReserved;
|
|
$event_item['event_videos'] = $sevs;
|
|
array_push($se, $event_item);
|
|
}
|
|
$event->similar_events = $se;
|
|
}
|
|
$works = $this->event_author_works_model->get_works_by_event_id($event_id);
|
|
$venue_photos = $this->event_venue_photos_model->get_venue_photos_by_event_id($event_id);
|
|
$comments = $this->event_comment_model->get_formatted_comments_by_event_id($event_id);
|
|
$event_videos = $this->event_video_model->get_videos_by_event_id($event_id);
|
|
|
|
if($event->workshop_session == 'DISTANCE-PRESENTIEL') {
|
|
$event = $this->event_model->format_night_class_prices($event);
|
|
} else {
|
|
$registration = $this->event_registration_model->count_total_reserved_seats($event_id);
|
|
$event->remaining_combined_seat = (int)$event->total_available_seat - (int) $registration;
|
|
}
|
|
|
|
$event = (array)$event;
|
|
$event['works'] = $works;
|
|
$event['venue_photos'] = $venue_photos;
|
|
$event['commentaires'] = $comments;
|
|
$event['event_videos'] = $event_videos;
|
|
$event = (object) $event;
|
|
$event->workshop_author_awards = json_decode($event->workshop_author_awards);
|
|
$this->data['event_details'] = $event;
|
|
/**
|
|
* Redirect to 404 page if event's back_office_status is either `en cours` (being created) or `archived`
|
|
*/
|
|
if (in_array($this->data['event_details']->back_office_status, [
|
|
BO_STAT['en_c'],
|
|
BO_STAT['arc'],
|
|
]) ) {
|
|
show_404();
|
|
}
|
|
|
|
if (isset($this->data['event_details']) && !empty($this->data['event_details']) && !empty($this->data['event_details']->event_id)) {
|
|
/*heart stroke*/
|
|
|
|
$this->load->model('personalization_model');
|
|
$this->load->model('event_schedule_model');
|
|
$images = $this->event_model->get_file_attachments($this->input->get('event_id'));
|
|
if(isset($images)) {
|
|
|
|
$image = null;
|
|
for($i=0; $i<count($images); $i++) {
|
|
if($images[$i]['display']==1) {
|
|
$image= $images[$i]['file_name'];
|
|
}
|
|
}
|
|
if($image)
|
|
$this->data['event_details']->file_name = $image;
|
|
}
|
|
$this->hstroke_folder = hstroke_bundle();
|
|
|
|
$this->data['heart_stroke_img'] = $this->hstroke_folder.$this->personalization_model->get_logo()['image'];
|
|
/*end heart stroke*/
|
|
|
|
$this->lang->load('frontoffice/event_details', 'fr');
|
|
$this->data['content'] = 'frontoffice/home/event_details_view';
|
|
|
|
$this->load->model('personalization_model');
|
|
$new_banner = $this->personalization_model->upload_get_banner();
|
|
$white_label = $new_banner['description'];
|
|
$banner = $new_banner['image'];
|
|
|
|
|
|
|
|
|
|
$this->data['page_banner_bg'] = $banner; //images_bundle().'frontoffice/homepage/caroussel.png';
|
|
$this->data['page_banner_description'] = $white_label;
|
|
|
|
if($this->data['event_details']->event_id === '38') { // Lewis Trondheim
|
|
$this->data['page_title'] = 'Atelier commando BD avec Lewis Trondheim';
|
|
$this->data['page_description'] = "Atelier BD avec Lewis Trondheim : réservez votre place pour l'atelier commando BD animé par Lewis Trondheim.";
|
|
}else if($this->data['event_details']->event_id === '42') { // Atelier dîner dégustation
|
|
$this->data['page_title'] = 'Atelier dîner dégustation vins du Portugal avec Tomy Gousset et Micael Morais';
|
|
$this->data['page_description'] = "Atelier dîner dégustation vins du Portugal avec Tomy Gousset et Micael Morais : réservez votre place pour un dîner dégustation animé par Tomy Gousset et Micael Morais.";
|
|
}else if($this->data['event_details']->event_id === '36') { // Agnès Desarthe
|
|
$this->data['page_title'] = "Atelier d'écriture avec Agnès Desarthe";
|
|
$this->data['page_description'] = "Atelier d'écriture avec Agnès Desarthe : réservez votre place pour l'atelier d'écriture animé par Agnès Desarthe.";
|
|
}else if($this->data['event_details']->event_id === '37') { // Muriel Gilbert
|
|
$this->data['page_title'] = 'Dictée interactive avec Muriel Gilbert';
|
|
$this->data['page_description'] = "Dictée interactive avec Muriel Gilbert : réservez votre place pour la dictée interactive animée par Muriel Gilbert.";
|
|
} else if($this->data['event_details']->event_id === '26') { // Véronique Ovaldé
|
|
$this->data['page_title'] = "Atelier d'écriture avec Véronique Ovaldé";
|
|
$this->data['page_description'] = "Atelier d'écriture avec Véronique Ovaldé : réservez votre place pour l'atelier d'écriture animé par Véronique Ovaldé.";
|
|
}
|
|
else {
|
|
$this->data['page_title'] = $this->data['event_details']->workshop_author . ' - ' . $this->data['event_details']->event_type . ' with ' . $this->data['event_details']->workshop_author;
|
|
$this->data['page_description'] = $this->data['event_details']->event_type . ' with ' . $this->data['event_details']->workshop_author . ': ' . substr_replace(strip_tags($this->data['event_details']->description),'...', 100);
|
|
}
|
|
|
|
$this->load->model('event_schedule_model');
|
|
$this->load->model('event_file_attachment_model');
|
|
|
|
//check weather a user can still register more than one date per event
|
|
$this->data['allowed_to_book'] = $this->event_schedule_model->continue_registration($this->input->get('event_id'), UserAuth::isAuth() ? $this->data['logged_in']['user_id'] : null, 'register', 1);
|
|
//check weather a user can still register for waitinglist more than one date per event
|
|
$this->data['allowed_to_book_for_wl'] = $this->event_schedule_model->continue_registration($this->input->get('event_id'), UserAuth::isAuth() ? $this->data['logged_in']['user_id'] : null, 'register', 2);
|
|
|
|
// $this->data['event_schedule'] = $this->event_schedule_model->list_event_schedule($this->input->get('event_id'), 1, $this->data['include_archived_events']);
|
|
|
|
$this->data['event_attachment'] = $this->event_file_attachment_model->list_event_attachment($this->input->get('event_id'), $this->event_model->event_details_attachment_type($this->input->get('event_id')));
|
|
|
|
$this->data['event_speakers'] = $this->event_speaker_assignee_model->event_details(UserAuth::isAuth() ? $this->data['logged_in']['user_id'] : null, $this->input->get('event_id'));
|
|
|
|
$this->data['event_sponsors'] = $this->event_sponsor_assignee_model->event_details(UserAuth::isAuth() ? $this->data['logged_in']['user_id'] : null, $this->input->get('event_id'));
|
|
|
|
$this->data['event_status'] = $this->event_detailed_info();
|
|
|
|
$this->load_extra_files(array(
|
|
'notify' => true,
|
|
'bootbox' => true,
|
|
'ga' => true,
|
|
'moment' => true,
|
|
'ajax_helper' => true,
|
|
));
|
|
|
|
array_push($this->data['load_styles'], '<link href="'.auto_version(styles_bundle().'frontoffice/event_details.css').'" rel="stylesheet">');
|
|
|
|
//load laguages
|
|
array_push($this->data['load_scripts'], '<script type="text/javascript" nonce="'.($this->data['csp_nonce']).'">app.setLocale([], {currenturl : "'.current_url().'",baseurl : "'.base_url().'", timeout: '.Response::handleSessionTimeoutOnPageLoad('fo').'}, 2); const pcode= "'.Sso::getSubsriptionType().'";</script>');
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/online.event.js")."'></script>");
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/subscribe.js")."'></script>");
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/jquery.translate.js")."'></script>");
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/workshop.informer.js")."'></script>");
|
|
array_push($this->data['load_scripts'], "<script src='https://player.vimeo.com/api/player.js'></script>");
|
|
|
|
// array_push($this->data['load_scripts'], '<script type="text/javascript" nonce="'.($this->data['csp_nonce']).'">subscribe.event_pageview_counter('.$this->input->get('event_id').'); </script>');
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
} else {
|
|
show_404();
|
|
}
|
|
}
|
|
}
|
|
|
|
// OTHER SAMPLE EVENT DETAILS CONTENT
|
|
public function cours_en_ligne()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/sample_event_details_view/cours_en_ligne_view';
|
|
$this->data['page_title'] = 'Event Details';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/event_details.css').'" rel="stylesheet">'
|
|
);
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
public function cours_du_soir()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/sample_event_details_view/cours_du_soir_view';
|
|
$this->data['page_title'] = 'Cour du soir';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/event_details.css').'" rel="stylesheet">'
|
|
);
|
|
$this->data['load_scripts'] = array(
|
|
"<script src='".auto_version(app_bundle()."frontoffice/online.event.js")."'></script>",
|
|
"<script src='".auto_version(app_bundle()."frontoffice/workshop.informer.js")."'></script>"
|
|
);
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
public function live_stream_view()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/livestream_view';
|
|
$this->data['page_title'] = 'Cour du soir';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/livestream.css').'" rel="stylesheet">'
|
|
);
|
|
$this->data['load_scripts'] = array(
|
|
"<script src='".auto_version(app_bundle()."frontoffice/livestream.video.js")."'></script>",
|
|
// "<script src='".auto_version(app_bundle()."frontoffice/workshop.informer.js")."'></script>"
|
|
);
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function atelier_a_distance3($event_id = null)
|
|
{
|
|
$this->lang->load('frontoffice/subscribe', 'fr');
|
|
|
|
if (!UserAuth::isAuth() || $event_id == null)
|
|
redirect('home');
|
|
|
|
$event = $this->event_model->event_details($event_id);
|
|
// $ncp = $this->event_model->format_night_class_prices($event);
|
|
// $event = (object) array_merge((array) $event, (array)$ncp);
|
|
if((!isset($event) || is_null($event)))
|
|
redirect('home');
|
|
|
|
$event->event_start_month_name = $this->lang->line($event->event_start_month_name);
|
|
/** Check if user has current subscription on this video workshop */
|
|
$user_id = $this->session->userdata('logged_in')['user_id'];
|
|
$user_email = $this->session->userdata('logged_in')['email_address'];
|
|
if (Sso::isLoggedIn()) {
|
|
$loggedIn = UserAuth::auth();
|
|
$user_id = $loggedIn['user_id'];
|
|
$user_email = $loggedIn['email_address'];
|
|
}
|
|
//a rajouter mail pour acces
|
|
//$re = $this->event_registration_model->is_subscribed_in_atelier_distance($user_id, $event_id, $user_email);
|
|
$re = $this->event_registration_model->is_subscribed($user_id, $event_id, $user_email);
|
|
//if(!isset($re) || is_null($re))
|
|
//$re = $this->event_registration_model->is_subscribed($user_id, "47", $user_email);
|
|
if(!isset($re) || is_null($re))
|
|
redirect('home');
|
|
$date = isset($_GET["date"]) ? $_GET["date"] : date("Y-m-d H:i:s");
|
|
$videos = $this->event_video_model->get_videos_by_event_id_spec($event_id);
|
|
//print_r($videos);die;
|
|
$this->data['event_videos']['upcoming'] = array();
|
|
$this->data['event_videos']['replay'] = array();
|
|
$this->data['event_videos']['total_replay_duration'] = $this->event_video_model->total_replay_videos_duration_spec($videos);
|
|
$this->data['event_videos']['total_replay_videos'] = $this->event_video_model->total_replay_videos_spec($videos);
|
|
$this->data['total_videos_duration'] = $this->event_video_model->total_video_duration($videos);
|
|
$this->data["commencement_cours"] = $this->event_video_model->get_next_course_from_id_spec($videos)->live_video_start_date;
|
|
$this->data['total_videos'] = count($videos);
|
|
$current_date = false;
|
|
$past_videos = array();
|
|
foreach($videos as $video) {
|
|
if($video->live_video_end_date < $date) {
|
|
/** replay videos */
|
|
array_push($past_videos, $video);
|
|
} else {
|
|
/** ongoing or upcoming videos */
|
|
$video->duration = $this->event_video_model->format_video_duration($video->duration);
|
|
if(!$current_date) {
|
|
$current_date = true;
|
|
array_push($this->data['event_videos']['upcoming'], $video);
|
|
} else {
|
|
$uv = $this->data['event_videos']['upcoming'];
|
|
$is_inserted = false;
|
|
foreach($uv as $index => $value) {
|
|
if($value->live_video_start_date > $video->live_video_start_date) {
|
|
$this->data['event_videos']['upcoming'] = array_merge(array_slice($this->data['event_videos']['upcoming'],0, $index),array($video), array_slice($this->data['event_videos']['upcoming'], $index));
|
|
$is_inserted = true;
|
|
break;
|
|
}
|
|
}
|
|
if(!$is_inserted) {
|
|
array_push($this->data['event_videos']['upcoming'], $video);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(count($past_videos) > 0) {
|
|
$this->data['event_videos']['total_replay_duration'] = $this->event_video_model->total_video_duration($past_videos);
|
|
$this->data['event_videos']['total_replay_videos'] = count($past_videos);
|
|
foreach($past_videos as $pv) {
|
|
$pv->duration = $this->event_video_model->format_video_duration($pv->duration);
|
|
array_push($this->data['event_videos']['replay'], $pv);
|
|
}
|
|
}
|
|
/** format date of first upcoming video */
|
|
if(count($this->data['event_videos']['upcoming']) > 0) {
|
|
$this->lang->load('frontoffice/subscribe', 'fr');
|
|
$u_video = $this->data['event_videos']['upcoming'][0];
|
|
$m = date('F',strtotime($u_video->live_video_start_date));
|
|
$d = date('d',strtotime($u_video->live_video_start_date));
|
|
$u_video = array_merge((array)$u_video, ['month' => $this->lang->line($m), 'day' => $d]);
|
|
$this->data['event_videos']['upcoming'][0] = (object)$u_video;
|
|
|
|
}
|
|
$this->data['event_details'] = $event;
|
|
|
|
if($date >= $event->start_date_time) {
|
|
$this->data['content'] = 'frontoffice/home/livestream_view';
|
|
$this->data['page_title'] = 'Cour du soir';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/livestream.css').'" rel="stylesheet">'
|
|
);
|
|
$this->data['load_scripts'] = array(
|
|
"<script src='".auto_version(app_bundle()."frontoffice/livestream.video.js")."'></script>",
|
|
// "<script src='".auto_version(app_bundle()."frontoffice/workshop.informer.js")."'></script>"
|
|
);
|
|
} else {
|
|
$this->data['content'] = 'frontoffice/home/streaming_link_view';
|
|
$this->data['page_title'] = 'Atelier a distance';
|
|
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/atelier_distance.css').'" rel="stylesheet">',
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/event_details.css').'" rel="stylesheet">'
|
|
);
|
|
$this->data['load_scripts'] = array(
|
|
"<script src='".auto_version(app_bundle()."frontoffice/online.event.js")."'></script>",
|
|
"<script src='".auto_version(app_bundle()."frontoffice/workshop.informer.js")."'></script>"
|
|
);
|
|
}
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function atelier_a_distance($event_id = null)
|
|
{
|
|
if($event_id == "311"){
|
|
return $this->atelier_a_distance3($event_id);
|
|
}
|
|
$this->lang->load('frontoffice/subscribe', 'fr');
|
|
|
|
//if (!UserAuth::isAuth() || $event_id == null)
|
|
// redirect('home');
|
|
|
|
$event = $this->event_model->event_details($event_id);
|
|
// $ncp = $this->event_model->format_night_class_prices($event);
|
|
// $event = (object) array_merge((array) $event, (array)$ncp);
|
|
//if((!isset($event) || is_null($event)) && $event->workshop_session != 'DISTANCE-PRESENTIEL' && $event->workshop_session != 'DISTANCE')
|
|
// redirect('home');
|
|
|
|
$event->event_start_month_name = $this->lang->line($event->event_start_month_name);
|
|
/** Check if user has current subscription on this video workshop */
|
|
//$user_id = $this->session->userdata('logged_in')['user_id'];
|
|
if (Sso::isLoggedIn()) {
|
|
$loggedIn = UserAuth::auth();
|
|
$user_id = $loggedIn['user_id'];
|
|
}
|
|
// $re = $this->event_registration_model->is_subscribed_in_atelier_distance($user_id, $event_id);
|
|
//$re = $this->event_registration_model->is_subscribed($user_id, $event_id);
|
|
//if(!isset($re) && is_null($re) && (($re->workshop_session != 'DISTANCE-PRESENTIEL' && $re->registration_type != 'soir-presentiel' ) || $re->workshop_session != 'DISTANCE'))
|
|
// redirect('home');
|
|
|
|
$videos = $this->event_video_model->get_videos_by_event_id($event_id);
|
|
$this->data['event_videos']['upcoming'] = array();
|
|
$this->data['event_videos']['replay'] = array();
|
|
$this->data['event_videos']['total_replay_duration'] = '0h0';
|
|
$this->data['event_videos']['total_replay_videos'] = 0;
|
|
$this->data['total_videos_duration'] = $this->event_video_model->total_video_duration($videos);
|
|
$this->data["commencement_cours"] = $this->event_video_model->get_next_course_from_id($event_id)["live_video_start_date"];
|
|
$this->data['total_videos'] = count($videos);
|
|
$current_date = false;
|
|
$past_videos = array();
|
|
foreach($videos as $video) {
|
|
if($video->live_video_end_date < date("Y-m-d H:i:s")) {
|
|
/** replay videos */
|
|
array_push($past_videos, $video);
|
|
} else {
|
|
/** ongoing or upcoming videos */
|
|
$video->duration = $this->event_video_model->format_video_duration($video->duration);
|
|
if(!$current_date) {
|
|
$current_date = true;
|
|
array_push($this->data['event_videos']['upcoming'], $video);
|
|
} else {
|
|
$uv = $this->data['event_videos']['upcoming'];
|
|
$is_inserted = false;
|
|
foreach($uv as $index => $value) {
|
|
if($value->live_video_start_date > $video->live_video_start_date) {
|
|
$this->data['event_videos']['upcoming'] = array_merge(array_slice($this->data['event_videos']['upcoming'],0, $index),array($video), array_slice($this->data['event_videos']['upcoming'], $index));
|
|
$is_inserted = true;
|
|
break;
|
|
}
|
|
}
|
|
if(!$is_inserted) {
|
|
array_push($this->data['event_videos']['upcoming'], $video);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(count($past_videos) > 0) {
|
|
$this->data['event_videos']['total_replay_duration'] = $this->event_video_model->total_video_duration($past_videos);
|
|
$this->data['event_videos']['total_replay_videos'] = count($past_videos);
|
|
foreach($past_videos as $pv) {
|
|
$pv->duration = $this->event_video_model->format_video_duration($pv->duration);
|
|
array_push($this->data['event_videos']['replay'], $pv);
|
|
}
|
|
}
|
|
/** format date of first upcoming video */
|
|
if(count($this->data['event_videos']['upcoming']) > 0) {
|
|
$this->lang->load('frontoffice/subscribe', 'fr');
|
|
$u_video = $this->data['event_videos']['upcoming'][0];
|
|
$m = date('F',strtotime($u_video->live_video_start_date));
|
|
$d = date('d',strtotime($u_video->live_video_start_date));
|
|
$u_video = array_merge((array)$u_video, ['month' => $this->lang->line($m), 'day' => $d]);
|
|
$this->data['event_videos']['upcoming'][0] = (object)$u_video;
|
|
|
|
}
|
|
$this->data['event_details'] = $event;
|
|
|
|
if(date("Y-m-d H:i:s") >= $event->start_date_time) {
|
|
$this->data['content'] = 'frontoffice/home/livestream_view';
|
|
$this->data['page_title'] = 'Cour du soir';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/livestream.css').'" rel="stylesheet">'
|
|
);
|
|
$this->data['load_scripts'] = array(
|
|
"<script src='".auto_version(app_bundle()."frontoffice/livestream.video.js")."'></script>",
|
|
// "<script src='".auto_version(app_bundle()."frontoffice/workshop.informer.js")."'></script>"
|
|
);
|
|
} else {
|
|
$this->data['content'] = 'frontoffice/home/streaming_link_view';
|
|
$this->data['page_title'] = 'Atelier a distance';
|
|
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/atelier_distance.css').'" rel="stylesheet">',
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/event_details.css').'" rel="stylesheet">'
|
|
);
|
|
$this->data['load_scripts'] = array(
|
|
"<script src='".auto_version(app_bundle()."frontoffice/online.event.js")."'></script>",
|
|
"<script src='".auto_version(app_bundle()."frontoffice/workshop.informer.js")."'></script>"
|
|
);
|
|
}
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function atelier_a_distance2()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/atelier_a_distance_view';
|
|
$this->data['page_title'] = 'Atelier a distance';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/atelier_distance.css').'" rel="stylesheet">',
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/event_details.css').'" rel="stylesheet">'
|
|
);
|
|
$this->data['load_scripts'] = array(
|
|
"<script src='".auto_version(app_bundle()."frontoffice/online.event.js")."'></script>",
|
|
"<script src='".auto_version(app_bundle()."frontoffice/workshop.informer.js")."'></script>"
|
|
);
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function contact()
|
|
{
|
|
$this->load->model('frontoffice_faq_model');
|
|
// $this->load->model('user_subscriber_model', '', true);
|
|
|
|
$this->data['content'] = 'frontoffice/home/contact_view';
|
|
$this->data['page_title'] = 'Contacter les ateliers du Company For Madagascar';
|
|
$this->data['page_description'] = "Contacter les ateliers du Company For Madagascar. Formulaire de contact.";
|
|
// $this->data['page_banner_bg'] = banner_bundle().'contact_banner.jpg';
|
|
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/contactpage.css').'" rel="stylesheet">',
|
|
'<link href="' . auto_version(plugins_bundle() . 'floating-labels.css').'" rel="stylesheet">'
|
|
);
|
|
|
|
$client_session = $this->data['logged_in'];
|
|
$this->data['userdata'] = $client_session;
|
|
|
|
$this->load_extra_files(array(
|
|
'notify' => true,
|
|
'bootbox' => true,
|
|
// "ga" => true,
|
|
"select2" => true,
|
|
'form_validator' => true,
|
|
));
|
|
|
|
//load laguages
|
|
array_push($this->data['load_scripts'], '<script type="text/javascript" nonce="'.($this->data['csp_nonce']).'">app.setLocale([], {currenturl : "'.current_url().'",baseurl : "'.base_url().'", timeout: '.Response::handleSessionTimeoutOnPageLoad('fo').'}, 2);</script>');
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/contact.js")."'></script>");
|
|
|
|
$this->data['natureofbusiness'] = $this->frontoffice_faq_model->natureofbusiness();
|
|
$this->lang->load('frontoffice/contact', 'fr');
|
|
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function nous_contact()
|
|
{
|
|
$this->load->model('frontoffice_faq_model');
|
|
// $this->load->model('user_subscriber_model', '', true);
|
|
|
|
$this->data['content'] = 'frontoffice/home/nous_contact_view';
|
|
$this->data['page_title'] = 'Contact';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
// $this->data['page_banner_bg'] = banner_bundle().'contact_banner.jpg';
|
|
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/contactpage.css').'" rel="stylesheet">',
|
|
'<link href="' . auto_version(plugins_bundle() . 'floating-labels.css').'" rel="stylesheet">'
|
|
);
|
|
|
|
// $client_session = $this->data['logged_in'];
|
|
// $this->data['userdata'] = $this->user_subscriber_model->myaccount($client_session['user_id']);
|
|
|
|
$this->load_extra_files(array(
|
|
'notify' => true,
|
|
'bootbox' => true,
|
|
// "ga" => true,
|
|
"select2" => true,
|
|
'form_validator' => true,
|
|
));
|
|
|
|
//load laguages
|
|
array_push($this->data['load_scripts'], '<script type="text/javascript" nonce="'.($this->data['csp_nonce']).'">app.setLocale([], {currenturl : "'.current_url().'",baseurl : "'.base_url().'", timeout: '.Response::handleSessionTimeoutOnPageLoad('fo').'}, 2);</script>');
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/contact.js")."'></script>");
|
|
|
|
$this->data['natureofbusiness'] = $this->frontoffice_faq_model->natureofbusiness();
|
|
$this->lang->load('frontoffice/contact', 'fr');
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function otp_verification() {
|
|
|
|
|
|
$this->data['content'] = 'payment/verify_otp';
|
|
$this->data['page_title'] = 'Confirmation de payment';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/bootstrap.min.css').'" rel="stylesheet">',
|
|
'<link href="'.auto_version(styles_bundle().'otp/otp_verification.css').'" rel="stylesheet">',
|
|
|
|
'<link href="' . auto_version(plugins_bundle() . 'floating-labels.css').'" rel="stylesheet">'
|
|
);
|
|
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(plugins_bundle()."jquery/jquery-2.2.3.min.js")."'></script>");
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(plugins_bundle()."bootstrap/notify_3.3.1/0.4.2/bootstrap-notify.min.js")."'></script>");
|
|
// array_push($this->data['load_scripts'], "<script src='https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css'></script>");
|
|
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/payment.js")."'></script>");
|
|
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
|
|
}
|
|
|
|
public function payment()
|
|
{
|
|
$this->load->model('user_subscriber_model', '', true);
|
|
|
|
$this->data['content'] = 'frontoffice/home/payment_view';
|
|
$this->data['page_title'] = 'Payment';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
// $this->data['page_banner_bg'] = banner_bundle().'contact_banner.jpg';
|
|
|
|
$this->data['load_styles'] = array(
|
|
'<link href="'.auto_version(styles_bundle().'frontoffice/payment.css').'" rel="stylesheet">',
|
|
'<link href="' . auto_version(plugins_bundle() . 'floating-labels.css').'" rel="stylesheet">'
|
|
);
|
|
|
|
// $client_session = $this->data['logged_in'];
|
|
// $this->data['userdata'] = $this->user_subscriber_model->myaccount($client_session['user_id']);
|
|
/**
|
|
* Get the event id from cookie set during booking
|
|
* If null means no booking
|
|
*/
|
|
$event = json_decode(get_cookie($this->config->item('sess_cookie_name').'_event_data'));
|
|
if ($event) {
|
|
$this->data['event_details'] = (array)$this->event_model->event_details($event->event_id);
|
|
$this->data['event_details'] = array_merge($this->data['event_details'], ["seats_reserved" => $event->seats_reserved]);
|
|
} else {
|
|
redirect(base_url("home"));
|
|
}
|
|
if($event->booking->workshop_session =='DISTANCE-PRESENTIEL') {
|
|
$ncp = json_decode($this->data['event_details']['night_class_prices']);
|
|
if($event->booking->session_type == 'soir-presentiel') {
|
|
$this->data['event_details']['discount_apply'] = $ncp->presentiel->discount_apply;
|
|
$this->data['event_details']['event_rate'] = $ncp->presentiel->rate;
|
|
} else {
|
|
$this->data['event_details']['discount_apply'] = $ncp->distance->discount_apply;
|
|
$this->data['event_details']['event_rate'] = $ncp->distance->rate;
|
|
}
|
|
}
|
|
$this->load_extra_files(array(
|
|
'notify' => true,
|
|
'bootbox' => true,
|
|
// "ga" => true,
|
|
"select2" => true,
|
|
'form_validator' => true,
|
|
));
|
|
|
|
// Stripe setup
|
|
// $stripePayment = new StripePayment();
|
|
// $stripePublicKey = $stripePayment->getPublicKey();
|
|
|
|
$this->data['event_details']['event_rate'] = empty($this->data['event_details']['event_rate']) ? 0 : $this->data['event_details']['event_rate'];
|
|
|
|
// Total amount calculation
|
|
if(UserAuth::isPremium() == true && $event->event_id == EVENT_ID) {
|
|
$this->data['event_details']['discount'] = 5;
|
|
$this->data['event_details']['subtotal_amount'] = ($this->data['event_details']['event_rate']-5) * $this->data['event_details']['seats_reserved'];
|
|
$this->data['event_details']['service_charge'] = 0;
|
|
$this->data['event_details']['total_amount'] = $this->data['event_details']['subtotal_amount'] + $this->data['event_details']['service_charge'];
|
|
} else {
|
|
$discount = 0;
|
|
if(UserAuth::isPremium()) {
|
|
$discount = $this->data['event_details']['discount_apply'];
|
|
// if($this->data['event_details']['discounted_price'] > 0) {
|
|
// $this->data['event_details']['event_rate'] = $this->data['event_details']['discounted_price'];
|
|
// }
|
|
}
|
|
|
|
$this->data['event_details']['discount'] = $discount;
|
|
$this->data['event_details']['subtotal_amount'] = ($this->data['event_details']['event_rate'] - $discount) * $this->data['event_details']['seats_reserved'];
|
|
$this->data['event_details']['service_charge'] = 0;
|
|
$this->data['event_details']['total_amount'] = $this->data['event_details']['subtotal_amount'] + $this->data['event_details']['service_charge'];
|
|
}
|
|
|
|
// Get user's subscriber data to prefill the form
|
|
$subscriber_query = $this->user_subscriber_model->getSubscribers(['user_id' => $this->session->userdata('logged_in')['user_id']]);
|
|
|
|
$this->data['subscriber_data'] = $subscriber_query ? $subscriber_query[0] : [];
|
|
|
|
// array_push($this->data['load_scripts'], '<script id="stripe-js" async src="https://js.stripe.com/v3/"></script>');
|
|
// array_push($this->data['load_scripts'], "<script>const stripePublicKey = '{$stripePublicKey}'</script>");
|
|
|
|
|
|
// array_push($this->data['load_scripts'], "<script src='".auto_version(plugins_bundle()."jquery/jquery-2.2.3.min.js")."'></script>");
|
|
// array_push($this->data['load_scripts'], "<script src='".auto_version(plugins_bundle()."mask/jquery.mask.min.js")."'></script>");
|
|
array_push($this->data['load_scripts'], "<script src='".auto_version(app_bundle()."frontoffice/payment.js")."'></script>");
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function payment_success()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/payment_success_view';
|
|
$this->data['page_title'] = 'Payment Success';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
delete_cookie($this->config->item('sess_cookie_name').'_event_data');
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function create_account_fo()
|
|
{
|
|
$this->data['content'] = 'frontoffice/create_account_view';
|
|
$this->data['page_title'] = 'Create Account';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->data['load_scripts'] = array(
|
|
"<script src='".auto_version(app_bundle()."frontoffice/authentication.js")."'></script>",
|
|
"<script type='text/javascript' nonce=\"{$this->data['csp_nonce']}\"> authentication.set_vars({baseurl : '".base_url()."'}); </script>",
|
|
);
|
|
|
|
$this->lang->load('frontoffice/create_account', 'fr');
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function mentions_legales()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/mentions_legales_view';
|
|
$this->data['page_title'] = 'Mentions légales - Les ateliers du Company For Madagascar';
|
|
$this->data['page_description'] = "Mentions légales - Les ateliers du Company For Madagascar";
|
|
|
|
$this->load->model('personalization_model');
|
|
$new_banner = $this->personalization_model->upload_get_banner();
|
|
$white_label = $new_banner['description'];
|
|
$banner = $new_banner['image'];
|
|
|
|
$this->data['page_banner_bg'] = $banner;
|
|
// $this->data['page_banner_bg'] = banner_bundle().'mentions-légales.jpg';
|
|
|
|
$this->data['load_scripts'] = array("<script src='".auto_version(app_bundle()."frontoffice/legales.js")."'></script>");
|
|
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function privacy_policy()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/privacy_policy_view';
|
|
$this->data['page_title'] = 'Politique de confidentialité';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function manage_cookies()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/manage_cookies_view';
|
|
$this->data['page_title'] = 'Gestion des cookies';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function general_conditions()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/general_conditions_view';
|
|
$this->data['page_title'] = 'Conditions générales';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function data_privacy()
|
|
{
|
|
$this->data['content'] = 'frontoffice/home/data_privacy_view';
|
|
$this->data['page_title'] = 'Protection des données';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
|
|
$this->load->model('personalization_model');
|
|
$new_banner = $this->personalization_model->upload_get_banner();
|
|
$white_label = $new_banner['description'];
|
|
$banner = $new_banner['image'];
|
|
|
|
$this->data['page_banner_bg'] = $banner;
|
|
// $this->data['page_banner_bg'] = banner_bundle().'mentions-légales.jpg';
|
|
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function faq()
|
|
{
|
|
$this->load->model('frontoffice_faq_model');
|
|
$this->data['page_title'] = 'FAQ - Les ateliers du Company For Madagascar';
|
|
$this->data['page_description'] = "Foire aux questions - Les ateliers du Company For Madagascar";
|
|
|
|
$this->load->model('personalization_model');
|
|
$new_banner = $this->personalization_model->upload_get_banner();
|
|
$white_label = $new_banner['description'];
|
|
$banner = $new_banner['image'];
|
|
|
|
$this->data['page_banner_bg'] = $banner;
|
|
// $this->data['page_banner_bg'] = banner_bundle().'faq_banner.jpg';
|
|
|
|
$this->load_extra_files(array(
|
|
'easycomplete' => true,
|
|
'notify' => true,
|
|
'app' => true,
|
|
));
|
|
/*
|
|
* check if keyword is safe from xss scripts
|
|
* display results if safe, do not do anything otherwise
|
|
*/
|
|
$faq_search =false;
|
|
if (
|
|
(isset($_GET['word']) && !empty($_GET['word'])) &&
|
|
$this->security->xss_clean($_GET['word'], TRUE)
|
|
) {
|
|
/* Set keyword
|
|
'/^[a-z0-9 .\-]+$/i'*/
|
|
$faq_search['keyword'] = preg_replace('/<|>/','' ,$this->security->xss_clean(($this->input->get('word',TRUE))));
|
|
/* fetch results */
|
|
$faq_search['results'] = $this->frontoffice_faq_model->displaysearchfaq($faq_search['keyword']);
|
|
}
|
|
|
|
|
|
array_push($this->data['load_styles'], '<link href="https://use.fontawesome.com/releases/v5.13.0/css/all.css" rel="stylesheet">');
|
|
array_push($this->data['load_styles'], '<link href="'.auto_version(styles_bundle().'frontoffice/faqpage.css').'" rel="stylesheet">');
|
|
array_push($this->data['load_scripts'], '<script src="'.auto_version(app_bundle().'frontoffice/faq.js').'"></script>');
|
|
$this->data['faq_search'] = $faq_search;
|
|
|
|
$this->data['faq_cat'] = $this->frontoffice_faq_model->list_faq_cat();
|
|
|
|
$this->data['content'] = 'frontoffice/faq/faqpage';
|
|
|
|
$this->load->view('frontoffice_view', $this->data);
|
|
}
|
|
|
|
public function maintenance()
|
|
{
|
|
$this->load->model('personalization_model');
|
|
|
|
$new_banner = $this->personalization_model->upload_get_banner();
|
|
$white_label = $new_banner['description'];
|
|
$banner = (isset($new_banner['image']) && !empty($new_banner['image'])) ? $new_banner['image'] : '';
|
|
|
|
$this->data['page_title'] = 'Maintenance';
|
|
$this->data['page_description'] = "Retrouvez l'ensemble des ateliers organisés par la rédaction du Company For Madagascar.";
|
|
// $this->data['page_banner'] = images_bundle().'frontoffice/homepage/caroussel.png';
|
|
$this->data['page_banner_bg'] = $banner;
|
|
$this->data['page_banner_description'] = $white_label;
|
|
|
|
$this->load->view('maintenance_view', $this->data);
|
|
}
|
|
|
|
private function event_detailed_info()
|
|
{
|
|
$this->load->model('event_wait_list_model');
|
|
|
|
return array(
|
|
'online_event' => function($event_schedule, $event_details) {
|
|
$bostatus = (int) $event_schedule->back_office_status;
|
|
$fav = ((int) $event_schedule->is_favorite == 1) ? 'btn-favorite': '';
|
|
|
|
$redirectOfflineUser = (!UserAuth::isAuth() ||!UserAuth::isLoggedInAsSubscriber())? 'subscribe-btn-redirect': '';
|
|
$btnClass = 'btn btn-block btn-default-style btn-closed event-btn btn-online-event';
|
|
$btnText = '';
|
|
$btnDisabled = true;
|
|
|
|
// Event is Coming soon
|
|
if ($event_schedule->is_coming_soon == 'coming_soon' && $event_schedule->event_status === 'AVAILABLE' && ($bostatus == 2 || $bostatus ==1) ) {
|
|
$btnClass = "${fav} ${btnClass} disabled";
|
|
$btnDisabled = true;
|
|
$btnText = $this->lang->line('js')['btn']['coming_soon'];
|
|
}
|
|
// Event is AVAILABLE
|
|
else if ($event_schedule->is_coming_soon == '' && $event_schedule->event_status === 'AVAILABLE' && $bostatus == 2 ) {
|
|
$btnClass = "${fav} ${btnClass} ${redirectOfflineUser}";
|
|
$btnDisabled = false;
|
|
$btnText = $this->lang->line('js')['btn']['_book_online_event'];
|
|
}
|
|
// Event is FULL || COMPLETE
|
|
else if ($event_schedule->event_status === 'FULL' && ($bostatus == 2 || $bostatus == 3)) {
|
|
$btnClass = "${btnClass} disabled";
|
|
$btnDisabled = true;
|
|
$btnText = $this->lang->line('js')['btn']['_full'];
|
|
}
|
|
// Event is Cancelled
|
|
else if ($event_schedule->event_status === 'CANCEL') {
|
|
$btnClass = "${fav} ${btnClass} cancelled_event disabled";
|
|
$btnDisabled = true;
|
|
$btnText = $this->lang->line('js')['btn']['_cancelled'];
|
|
}
|
|
// Event is Closed
|
|
else if ($bostatus == 4) {
|
|
$btnClass = "${btnClass} disabled";
|
|
$btnDisabled = true;
|
|
$btnText = $this->lang->line('js')['btn']['_closed'];
|
|
}
|
|
// Event is Terminee
|
|
else if ($bostatus == 7) {
|
|
$btnClass = "${btnClass} disabled";
|
|
$btnDisabled = true;
|
|
$btnText = $this->lang->line('js')['btn']['_terminee'];
|
|
}
|
|
// Event is Archived
|
|
else {
|
|
$btnClass = "${btnClass} disabled";
|
|
$btnDisabled = true;
|
|
$btnText = $this->lang->line('js')['btn']['_archive'];
|
|
}
|
|
|
|
echo "<button
|
|
id='event_schedule_id".$event_schedule->event_schedule_id."'
|
|
class='${btnClass}'
|
|
".(($btnDisabled || $redirectOfflineUser) ? "" : "data-event_url='".$event_schedule->event_url."'")."
|
|
data-event-schedule-id='".$event_schedule->event_schedule_id."'
|
|
data-event-id='".$event_details->event_id."'
|
|
data-event-id='".$event_details->event_id."'
|
|
data-bostatus='".$bostatus."'
|
|
data-event-cat='".$event_schedule->event_category."'
|
|
role='button'
|
|
".($btnDisabled ? "disabled='disabled' data-btntype='disabled'": "")."
|
|
data-page='details'>
|
|
${btnText}
|
|
</button>";
|
|
// btn disabled btn-block btn-default-style btn-closed event-btn
|
|
// btn btn-block btn-default-style event-btn btn-online-event disabled
|
|
},
|
|
'button_status' => function ($event_schedule, $event_details, $allowed_to_book, $allowed_to_book_for_wl) {
|
|
$is_user_active = UserAuth::isAuth() ? true : false;
|
|
$event_url = !(!$is_user_active || !UserAuth::isLoggedInAsSubscriber()) && $event_schedule->event_url
|
|
? "data-event_url='".$event_schedule->event_url."'"
|
|
: "";
|
|
|
|
if (!isset($_GET['preview_event'])) {
|
|
$user_idd = $this->data['logged_in'] ? $this->data['logged_in']['user_id'] : null;
|
|
$booking_type = UserAuth::isLoggedInAsSubscriber()?
|
|
$this->event_registration_model->check_subscription($user_idd, $event_schedule->event_schedule_id): 0;
|
|
$subscribed_waitlist = 0;
|
|
$subscribed = 0;
|
|
$onClick = '';
|
|
$data_attrib = '';
|
|
$event_listener_class = '';
|
|
$attribs = "";
|
|
$disabledBtn = 'disabled';
|
|
$can_still_book = 0;
|
|
$showCancelBtn = 1;
|
|
$checkStats = array('2FULL', '3FULL', '2AVAILABLE', '3AVAILABLE');
|
|
$disbledbtns = array(
|
|
'bos1' => $this->lang->line('js')['btn']['coming_soon'],
|
|
'bos3' => $this->lang->line('js')['btn']['_full'],
|
|
'bos4' => $this->lang->line('js')['btn']['_closed'],
|
|
'bos7' => $this->lang->line('js')['btn']['_terminee'],
|
|
'bos8' => $this->lang->line('js')['btn']['_cancelled'],
|
|
);
|
|
$cancelBtnWithModify = "Date limite d'annulation de la réservation";
|
|
$fav = '';
|
|
|
|
if (in_array($event_schedule->back_office_status.$event_schedule->event_status, array('2FULL'))) {
|
|
if ($event_schedule->remaining_seat >= 0 && $event_schedule->quota_waiting_list_seat > 0) {
|
|
$book_waiting_list = 1;
|
|
} else {
|
|
//complete but bo status is open
|
|
$book_waiting_list = 0;
|
|
$event_schedule->back_office_status = 3;
|
|
}
|
|
}
|
|
//to make the button complete when when there are no remaining seats and waiting list seats
|
|
elseif (0 == $event_schedule->remaining_seat && 0 == $event_schedule->quota_waiting_list_seat && $event_schedule->back_office_status < 4 && $event_schedule->back_office_status > 1) {
|
|
$book_waiting_list = 0;
|
|
$event_schedule->back_office_status = 3;
|
|
} else {
|
|
$book_waiting_list = (in_array($event_schedule->back_office_status.$event_schedule->event_status, $checkStats) && $event_schedule->remaining_seat <= 0 && $event_schedule->quota_waiting_list_seat > 0 && $event_schedule->back_office_status < 3 && $event_schedule->back_office_status > 1) ? 1 : 0;
|
|
}
|
|
|
|
//if event is not closed and is open
|
|
if (in_array($event_schedule->back_office_status, [
|
|
BO_STAT['ouv'],
|
|
BO_STAT['ver']
|
|
]) || UserAuth::isLoggedInAsSubscriber()
|
|
) {
|
|
$subscribed = $this->event_registration_model->check_subscription($user_idd, $event_schedule->event_schedule_id);
|
|
|
|
if ($subscribed) {
|
|
$booking_type = 1; //Booked in normal registration
|
|
} else {
|
|
$subscribed_waitlist = $this->event_wait_list_model->check_subscription($user_idd, $event_schedule->event_schedule_id);
|
|
if ($subscribed_waitlist) {
|
|
$booking_type = 2; //booked in waiting list
|
|
}
|
|
}
|
|
}
|
|
|
|
if ((isset($disbledbtns['bos'.$event_schedule->back_office_status]) && !empty(isset($disbledbtns['bos'.$event_schedule->back_office_status]))) && $book_waiting_list == 0) {
|
|
if (!$is_user_active) { //check if user is logged in
|
|
$onClick = "";
|
|
$data_attrib = "data-event-id={$event_details->event_id}";
|
|
$event_listener_class = "subscribe-btn-redirect";
|
|
$disableBtn = 'disabled="disabled"';
|
|
|
|
if (
|
|
($event_schedule->event_status == 'CANCEL')
|
|
) {
|
|
$event_schedule->back_office_status = 8;
|
|
$cancelledClass = 'cancelled_event disabled';
|
|
$btnText = 'Annulé';
|
|
} else {
|
|
$cancelledClass = '';
|
|
$btnText = '';
|
|
}
|
|
} else {
|
|
$disableBtn = 'disabled="disabled"';
|
|
if (2 == $booking_type) {
|
|
$cancelBtnWithModify = "Date limite d'annulation d'inscription sur liste d'attente";
|
|
}
|
|
if (
|
|
($event_schedule->event_status == 'CANCEL')
|
|
) {
|
|
$event_schedule->back_office_status = 8;
|
|
$cancelledClass = 'cancelled_event disabled';
|
|
$btnText = 'Annulé';
|
|
} else {
|
|
$cancelledClass = '';
|
|
$btnText = '';
|
|
}
|
|
}
|
|
echo "<button ".$event_url." disabled='disabled' ".$onClick." $data_attrib id='event_schedule_id".$event_schedule->event_schedule_id
|
|
."' class='$event_listener_class btn disabled btn-block btn-default-style btn-closed event-btn ".$cancelledClass
|
|
."' data-event-schedule-id='".$event_schedule->event_schedule_id
|
|
."' data-event-id='".$event_details->event_id
|
|
."' data-bostatus='".$event_schedule->back_office_status
|
|
."' data-event-cat='".$event_schedule->event_category
|
|
."' role='button' data-page='details'data-btntype='disabled' ".'>'
|
|
.(($btnText == 'Annulé')?'Annulé': ($disbledbtns['bos'.$event_schedule->back_office_status])).'</button>';
|
|
if (1 == $event_schedule->back_office_status) {
|
|
echo start_date($event_schedule->reservation_start_date);
|
|
}
|
|
} elseif (($event_schedule->back_office_status == 2 && $book_waiting_list == 0 && $event_schedule->remaining_seat > 0) || 1 == $booking_type) {
|
|
|
|
$showCancelBtn = ($is_user_active) ? $this->show_cancel_btn_or_not($booking_type, $event_schedule->event_status, $event_schedule->remaining_seat) : 1;
|
|
$disableBtn = '';
|
|
$btnText = $this->lang->line('js')['btn']['_book'];
|
|
$btnType = '';
|
|
$onclick = '';
|
|
$btnClass = '';
|
|
$sched_text = 'Date limite de réservation';
|
|
$fav = '';
|
|
|
|
if (1 == $booking_type && $is_user_active) { //subscriber is registered
|
|
$can_still_book = $this->check_if_user_can_still_book($booking_type, $event_schedule->seats_per_subscriber, $subscribed, $event_schedule->remaining_seat);
|
|
|
|
if ($can_still_book > 0) {
|
|
if ('' != $event_details->event_favorite || null != $event_details->event_favorite) {
|
|
$fav = ' btn-favorite';
|
|
}else{
|
|
$fav = ' ';
|
|
}
|
|
if ($event_schedule->event_status != "FULL") {
|
|
$btnText = 'Ajouter des places à ma réservation';
|
|
$btnType = 'reg-modify';
|
|
$data_attrib = 'data-reg-type="'.(REG_TYPE['normal_reg'])
|
|
.'" data-action="'.SUBSCRIBE_ACTION['modify']
|
|
.'" data-process-type="'.PROCESS_TYPE['modify_reg']
|
|
.'" data-seat-feature="'.$event_schedule->seat_feature
|
|
.'" data-show-cancel-btn="'.$showCancelBtn.'"';
|
|
$event_listener_class = "register-or-modify";
|
|
$onclick = "";
|
|
$sched_text = 'Date limite de modification';
|
|
$cancelBtnWithModify = 'Date limite de modification de la réservation';
|
|
$disableBtn = '';
|
|
$btnclosed ='';
|
|
} else {
|
|
$disableBtn = 'disabled="disabled"';
|
|
$btnText = 'RÉSERVÉ';
|
|
$btnType = 'disabled';
|
|
$btnclosed ='btnclosed';
|
|
$fav = ' ';
|
|
}
|
|
} else {
|
|
if ('' != $event_details->event_favorite || null != $event_details->event_favorite) {
|
|
$fav = '';
|
|
}
|
|
$disableBtn = 'disabled="disabled"';
|
|
$btnText = isset($disbledbtns['bos'.$event_schedule->back_office_status]) ? $disbledbtns['bos'.$event_schedule->back_office_status] : 'Réservé';
|
|
$btnType = 'disabled';
|
|
$btnclosed ='btnclosed';
|
|
// $cancelBtnWithModify = "Date limite d'annulation d'inscription sur liste d'attente";
|
|
}
|
|
if (
|
|
('CANCEL' == $event_schedule->event_status && $event_schedule->back_office_status != 4) ||
|
|
($event_details->date_feature == 2 && $event_schedule->event_status == 'CANCEL')
|
|
) {
|
|
$event_schedule->back_office_status = 8;
|
|
$btnText = 'Annulé';
|
|
$cancelledClass = 'cancelled_event disabled';
|
|
$btnType = 'disabled';
|
|
} else {
|
|
$cancelledClass = '';
|
|
//$btnType = '';
|
|
}
|
|
if($btnType=='reg-book'){
|
|
|
|
$style = 'style="letter-spacing:4px;"';
|
|
}else{
|
|
$style = '';
|
|
}
|
|
|
|
echo '<button '.$event_url.' '.$style.' '.$onclick." $data_attrib id='event_schedule_id".$event_schedule->event_schedule_id."' class='$event_listener_class btn ".$btnType.' btn-block btn-default-style btn-closed '.$btnclosed.' event-btn modify-reservation '.$fav." {$cancelledClass}' data-event-cat='".$event_schedule->event_category."' data-event-schedule-id='".$event_schedule->event_schedule_id."' data-event-id='".$event_details->event_id."' data-bostatus='".$event_schedule->back_office_status."' data-btntype='".$btnType."' role='button' data-page='details' ".$disableBtn.' '.(($can_still_book > 0) ? '' : 'disabled').'>'.$btnText.'</button>';
|
|
} else {
|
|
|
|
$eventRate ="";
|
|
$paidEvent = "";
|
|
|
|
if($event_schedule->event_category == 'PAID_EVENT') {
|
|
$paidEvent='paid_btn';
|
|
$eventRate = $event_schedule->event_rate ? number_format($event_schedule->event_rate, 2, ',', '.') ."€" : "";
|
|
}
|
|
|
|
if ($is_user_active) { //check if user is logged in
|
|
/* This code fragment is used to determine
|
|
whether a subscriber can book for more than 1 per event or not
|
|
*/
|
|
$data_attrib = 'data-reg-type="'.(REG_TYPE['normal_reg'])
|
|
.'" data-action="'.SUBSCRIBE_ACTION['register']
|
|
.'" data-process-type="'.PROCESS_TYPE['event_reg']
|
|
.'" data-seat-feature="'.$event_schedule->seat_feature
|
|
.'" data-show-cancel-btn="'.$showCancelBtn.'"';
|
|
$event_listener_class = "register-or-modify";
|
|
$onClick = "";
|
|
|
|
if (!$allowed_to_book) {
|
|
$event_listener_class = "not-allowed-to-book";
|
|
$onClick = "'";
|
|
$btnClass = 'btn-disabled';
|
|
}
|
|
/* END of code fragment*/
|
|
} else { //if user not logged in
|
|
$data_attrib = "data-event-id={$event_details->event_id}";
|
|
$event_listener_class = "subscribe-btn-redirect";
|
|
$onClick = "";
|
|
}
|
|
|
|
if ('' != $event_details->event_favorite || null != $event_details->event_favorite) {
|
|
if (
|
|
('CANCEL' == $event_schedule->event_status && $event_schedule->back_office_status != 4) ||
|
|
($event_details->date_feature == 2 && $event_schedule->event_status == 'CANCEL')
|
|
) {
|
|
$event_schedule->back_office_status = 8;
|
|
$btnText = 'Annulé';
|
|
$cancelledClass = 'cancelled_event disabled';
|
|
$btnType = 'disabled';
|
|
} else {
|
|
$cancelledClass = '';
|
|
$btnType = '';
|
|
}
|
|
echo '<button '.$event_url.' '.$onClick." id='event_schedule_id".$event_schedule->event_schedule_id."' $data_attrib data-event-schedule-id='".$event_schedule->event_schedule_id."' data-event-id='".$event_details->event_id."' class='$event_listener_class $paidEvent btn btn-default-style btn-block btn-book2 btn-register btn-favorite ".$btnClass.' '.$cancelledClass."' data-page='details'".$disableBtn." data-btntype='reg-book' data-bostatus='".$event_schedule->back_office_status."' ".$btnType." data-event-cat='".$event_schedule->event_category."'>".$btnText.' '.$eventRate.'</button> ';
|
|
} else {
|
|
$cancelledClass = '';
|
|
$btnType = '';
|
|
if (
|
|
('CANCEL' == $event_schedule->event_status && $event_schedule->back_office_status != 4) ||
|
|
($event_details->date_feature == 2 && $event_schedule->event_status == 'CANCEL')
|
|
) {
|
|
$event_schedule->back_office_status = 8;
|
|
$btnText = 'Annulé';
|
|
$cancelledClass = 'cancelled_event disabled';
|
|
$btnType = 'disabled';
|
|
}
|
|
|
|
echo '<button '.$event_url.' '.$onClick." $data_attrib id='event_schedule_id".$event_schedule->event_schedule_id."' data-event-schedule-id='".$event_schedule->event_schedule_id."' data-event-id='".$event_details->event_id."' data-event-cat='".$event_schedule->event_category."' class='$event_listener_class $paidEvent btn btn-default-style btn-block btn-book2 btn-register ".$btnClass.' '.$cancelledClass.' '.$btnType."' data-page='details' ".$disableBtn." data-btntype='reg-book' data-bostatus='".$event_schedule->back_office_status."' ".$btnType.'>'.$btnText.' '.$eventRate.'</button> ';
|
|
}
|
|
|
|
if (null != $event_schedule->reservation_end_date && '' != $event_schedule->reservation_end_date && 'CANCEL' != $event_schedule->event_status ) {
|
|
echo "<center class='start_date_text' id='res-date-".$event_schedule->event_schedule_id."'> ".$sched_text.' : <br>'.date_in_french($event_schedule->reservation_end_date).'<br></center>';
|
|
}
|
|
}
|
|
} elseif ($event_schedule->back_office_status == 3 || $book_waiting_list > 0 || $booking_type == 2) {
|
|
$disableBtn = '';
|
|
$btnText = $this->lang->line('js')['btn']['_bookwaitlist'];
|
|
$btnType = '';
|
|
$onclick = '';
|
|
$btnClass = '';
|
|
$sched_text = 'Date limite d\'inscription sur liste d\'attente';
|
|
|
|
if (2 == $booking_type && $is_user_active) { //subscriber is registered
|
|
$can_still_book = $this->check_if_user_can_still_book($booking_type, $event_schedule->quota_waiting_list_seat, $subscribed_waitlist, $event_schedule->seats_per_subscriber);
|
|
|
|
if ($can_still_book > 0) {
|
|
if ('' != $event_details->event_favorite || null != $event_details->event_favorite) {
|
|
$fav = ' btn-favorite';
|
|
}
|
|
$btnClass = 'modify-waitlistreservation '.$fav;
|
|
$disableBtn = '';
|
|
$btnText = "Ajouter des places sur liste d'attente";
|
|
$btnType = 'wl-modify';
|
|
|
|
$data_attrib = 'data-reg-type="'.(REG_TYPE['waitlist_reg'])
|
|
.'" data-action="'.SUBSCRIBE_ACTION['modify']
|
|
.'" data-process-type="'.PROCESS_TYPE['modify_wl_reg']
|
|
.'" data-seat-feature="'.$event_schedule->seat_feature
|
|
.'" data-show-cancel-btn="'.$showCancelBtn.'"';
|
|
$event_listener_class = "register-or-modify";
|
|
|
|
$onclick = "";
|
|
$cancelBtnWithModify = "Date limite de modification de l'inscription sur liste d'attente";
|
|
} else {
|
|
if ('' != $event_details->event_favorite || null != $event_details->event_favorite) {
|
|
$fav = ' ';
|
|
}
|
|
$btnClass = 'modify-reservation '.$fav;
|
|
$disableBtn = 'disabled="disabled"';
|
|
$btnText = isset($disbledbtns['bos'.$event_schedule->back_office_status]) ? $disbledbtns['bos'.$event_schedule->back_office_status] : "INSCRIT SUR LISTE D'ATTENTE";
|
|
$btnType = 'disabled';
|
|
$cancelBtnWithModify = "Date limite d'annulation d'inscription sur liste d'attente";
|
|
}
|
|
|
|
if (
|
|
('CANCEL' == $event_schedule->event_status && $event_schedule->back_office_status != 4) ||
|
|
($event_details->date_feature == 2 && $event_schedule->event_status == 'CANCEL')
|
|
) {
|
|
$event_schedule->back_office_status = 8;
|
|
$btnText = 'Annulé';
|
|
$cancelledClass = 'cancelled_event disabled';
|
|
$btnType = 'disabled';
|
|
} else {
|
|
$cancelledClass = '';
|
|
//$btnType = '';
|
|
}
|
|
|
|
echo '<button '.$event_url.' '.$onclick."$data_attrib id='event_schedule_id".$event_schedule->event_schedule_id."' class='$event_listener_class btn ".$btnType.' btn-block btn-default-style btn-closed event-btn '.$btnClass." {$cancelledClass}\" '
|
|
data-event-cat='".$event_schedule->event_category."' data-event-schedule-id='".$event_schedule->event_schedule_id."' data-event-id='".$event_details->event_id."' data-bostatus='".$event_schedule->back_office_status."' data-btntype='".$btnType."' href='#' role='button' data-page='details' ".(($can_still_book > 0) ? '' : 'disabled').' '.$disableBtn.' >'.$btnText.'</button> ';
|
|
} else {
|
|
if ($is_user_active) { //check if user is logged in
|
|
/* This code fragment is used to determine
|
|
whether a subscriber can book for waiting listmore than 1 per event or not
|
|
*/
|
|
$data_attrib = 'data-reg-type="'.(REG_TYPE['waitlist_reg'])
|
|
.'" data-action="'.SUBSCRIBE_ACTION['register']
|
|
.'" data-process-type="'.PROCESS_TYPE['waitlist_reg']
|
|
.'" data-seat-feature="'.$event_schedule->seat_feature
|
|
.'"data-event-cat="'.$event_schedule->event_category
|
|
.'" data-show-cancel-btn="'.$showCancelBtn.'"';
|
|
$event_listener_class = "register-or-modify";
|
|
$onClick = "";
|
|
|
|
if (!$allowed_to_book_for_wl) {
|
|
$event_listener_class = "not-allowed-to-book";
|
|
$onClick = "";
|
|
$btnClass = 'btn-disabled btn-reg-waitlist_detailsp';
|
|
} else {
|
|
$btnClass = 'btn-reg-waitlist_detailsp';
|
|
$disableBtn = '';
|
|
}
|
|
/* END of code fragment*/
|
|
} else { //if user not logged in
|
|
$data_attrib = "data-event-id={$event_details->event_id}";
|
|
$event_listener_class = "subscribe-btn-redirect";
|
|
$onClick = "";
|
|
if (!$allowed_to_book_for_wl) {
|
|
$event_listener_class = "not-allowed-to-book";
|
|
$onClick = "";
|
|
$btnClass = 'btn-disabled modify-reservation';
|
|
} else {
|
|
$btnClass = 'btn-reg-waitlist_detailsp';
|
|
$disableBtn = '';
|
|
}
|
|
}
|
|
|
|
if ('' != $event_details->event_favorite || null != $event_details->event_favorite) {
|
|
echo '<button '.$event_url.' '.$onClick." id='event_schedule_id".$event_schedule->event_schedule_id."' $data_attrib data-event-schedule-id='".$event_schedule->event_schedule_id."' data-event-cat='".$event_schedule->event_category."' data-event-id='".$event_details->event_id."' class='$event_listener_class btn btn-default-style btn-block modify-reservation btn-favorite ".$btnClass."' data-page='details' data-btntype='wl-register' data-bostatus='".$event_schedule->back_office_status."' ".$disableBtn.'>'.$btnText.'</button>';
|
|
} else {
|
|
$subscription = $this->User_subscription_model->get_subscription($this->data['logged_in']['user_id']);
|
|
if(!empty($subscription) && !is_null($subscription)) {
|
|
if(is_null($subscription->expirationDate) && is_null($subscription->transactionDateTime)) {
|
|
$disableBtn = 'disabled="disabled"';
|
|
$btnClass = 'btn-disabled btn-reg-waitlist_detailsp';
|
|
}
|
|
}
|
|
echo '<button '.$event_url.' '.$onClick." id='event_schedule_id".$event_schedule->event_schedule_id."' $data_attrib data-event-schedule-id='".$event_schedule->event_schedule_id."' data-event-cat='".$event_schedule->event_category."' data-event-id='".$event_details->event_id."' class='$event_listener_class btn btn-default-style btn-block modify-reservation ".$btnClass."' data-page='details' data-btntype='wl-register' data-bostatus='".$event_schedule->back_office_status."' ".$disableBtn.'>'.$btnText.'</button>';
|
|
}
|
|
|
|
if (null != $event_schedule->reservation_end_date && '' != $event_schedule->reservation_end_date && 'CANCEL' != $event_schedule->event_status) {
|
|
echo "<center class='start_date_text' id='res-date-".$event_schedule->event_schedule_id."'> ".$sched_text.' : <br>'.date_in_french($event_schedule->reservation_end_date).'<br></center>';
|
|
}
|
|
}
|
|
} else {
|
|
if (
|
|
('CANCEL' == $event_schedule->event_status && $event_schedule->back_office_status != 4) ||
|
|
($event_details->date_feature == 2 && $event_schedule->event_status == 'CANCEL')
|
|
) {
|
|
$event_schedule->back_office_status = 8;
|
|
$btnText = 'Annulé';
|
|
$cancelledClass = 'cancelled_event disabled';
|
|
$btnType = 'disabled';
|
|
echo "<button '.$event_url.' id='event_schedule_id".$event_schedule->event_schedule_id."' class='btn ".$btnType.' btn-block btn-default-style btn-closed event-btn '." {$cancelledClass}\" '
|
|
data-event-cat='".$event_schedule->event_category."' data-event-schedule-id='".$event_schedule->event_schedule_id."' data-event-id='".$event_details->event_id."' data-bostatus='".$event_schedule->back_office_status."' data-btntype='".$btnType."' href='#' role='button' data-page='details' ".(($can_still_book > 0) ? '' : 'disabled').' >'.$btnText.'</button> ';
|
|
}
|
|
|
|
}
|
|
|
|
//display cancel button when subscriber is registered
|
|
if ($booking_type && $is_user_active && $event_schedule->back_office_status > 1) {
|
|
if (1 == $booking_type) {
|
|
$btnClass = 'btn-cancel-registration';
|
|
} else {
|
|
$btnClass = 'btn-cancel-wl-registration';
|
|
}
|
|
|
|
/*Cancel button will be hidden once a seat is available for reservation*/
|
|
if (1 == $this->show_cancel_btn_or_not($booking_type, $event_schedule->event_status, $event_schedule->remaining_seat) && $event_schedule->event_status != 'CANCEL') {
|
|
$data_attrib =
|
|
'data-event-id="'.($event_details->event_id)
|
|
.'" data-event-schedule-id="'.$event_schedule->event_schedule_id
|
|
.'" data-reg-type="'.$booking_type.'"';
|
|
$event_listener_class = "cancel-reservation";
|
|
|
|
echo '<button '.$event_url.' '.($data_attrib).' id="event_cancel_registration'.$event_schedule->event_schedule_id.'" data-event-id="'.$event_details->event_id.'" data-event-cat="'.$event_schedule->event_category.'" data-seat-feature="'.$event_details->seat_feature.'" data-date-feature="'.$event_details->date_feature.'" data-is-multiple-reservation="'.$event_details->is_multiple_reservation.'" data-is-multiple-waitlist-reservation="'.$event_details->is_multiple_waitlist_reservation.'" class="'.($event_listener_class).' btn btn-default-style2 btn-block '.$btnClass.' " data-page="details">'.((1 == $booking_type) ? 'MODIFIER OU ANNULER MA RÉSERVATION' : 'MODIFIER OU ANNULER MON INSCRIPTION SUR LISTE D’ATTENTE').'</button>';
|
|
// echo '<button '.($data_attrib).' id="event_cancel_registration'.$event_schedule->event_schedule_id.'" data-event-id="'.$event_details->event_id.'" data-seat-feature="'.$event_details->seat_feature.'" data-date-feature="'.$event_details->date_feature.'" data-is-multiple-reservation="'.$event_details->is_multiple_reservation.'" data-is-multiple-waitlist-reservation="'.$event_details->is_multiple_waitlist_reservation.'" class="'.($event_listener_class).' btn btn-default-style2 btn-block '.$btnClass.' " data-page="details">'.((1 == $booking_type) ? 'ANNULER MA RÉSERVATION' : 'ANNULER MON INSCRIPTION SUR LISTE D’ATTENTE').'</button>';
|
|
|
|
if (null != $event_schedule->reservation_end_date && '' != $event_schedule->reservation_end_date && 'CANCEL' != $event_schedule->event_status) {
|
|
echo "<center class='start_date_text' id='res-date-".$event_schedule->event_schedule_id."'>".($cancelBtnWithModify).' : <br>'.date_in_french($event_schedule->reservation_end_date).'<br></center>';
|
|
}
|
|
}
|
|
}
|
|
|
|
return $booking_type;
|
|
} else {
|
|
$sched_text = 'Date limite de réservation';
|
|
$cancelBtnWithModify = "Date limite d'annulation de la réservation";
|
|
if ('' != $event_details->event_favorite || null != $event_details->event_favorite) {
|
|
$fav = ' btn-favorite';
|
|
} else {
|
|
$fav = '';
|
|
}
|
|
echo '<button data-event-cat="'.$event_schedule->event_category.'"' .$event_url.' id="event_schedule_id'.$event_schedule->event_schedule_id.'" data-event-schedule-id="'.$event_schedule->event_schedule_id.'" data-event-id="'.$event_details->event_id.'" class="btn btn-default-style btn-block btn-book2 btn-register '.$fav.'" data-page="details" data-btntype="reg-book" data-bostatus="2">Réserver</button>';
|
|
|
|
if (is_object($event_schedule)) {
|
|
if (null != $event_schedule->reservation_end_date && '' != $event_schedule->reservation_end_date && 'CANCEL' != $event_schedule->event_status ) {
|
|
echo "<center class='start_date_text' id='res-date-".$event_schedule->event_schedule_id."'> ".$sched_text.' : <br>'.date_in_french($event_schedule->reservation_end_date).'<br></center>';
|
|
}
|
|
}
|
|
}
|
|
},
|
|
'schedule_info' => function ($event_schedule, $event_details) {
|
|
$zero_hour_patt = '/00h00/';
|
|
if (
|
|
preg_match($zero_hour_patt, $event_schedule->start_date_hour) &&
|
|
preg_match($zero_hour_patt, $event_schedule->end_date_hour) ||
|
|
empty($event_schedule->start_date_hour) && empty($event_schedule->end_date_hour)
|
|
) {
|
|
$event_start_hour = '';
|
|
$event_end_hour = '';
|
|
} elseif (
|
|
!preg_match($zero_hour_patt, $event_schedule->start_date_hour) &&
|
|
preg_match($zero_hour_patt, $event_schedule->end_date_hour) ||
|
|
(!empty($event_schedule->start_date_hour) && empty($event_schedule->end_date_hour))
|
|
) {
|
|
$event_start_hour = ' à '.$event_schedule->start_date_hour;
|
|
$event_end_hour = '';
|
|
} elseif (
|
|
preg_match($zero_hour_patt, $event_schedule->start_date_hour) &&
|
|
!preg_match($zero_hour_patt, $event_schedule->end_date_hour) ||
|
|
empty($event_schedule->start_date_hour) && !empty($event_schedule->end_date_hour)
|
|
) {
|
|
$event_start_hour = '';
|
|
$event_end_hour = ' à '.$event_schedule->end_date_hour;
|
|
} elseif (
|
|
!preg_match($zero_hour_patt, $event_schedule->start_date_hour) &&
|
|
!preg_match($zero_hour_patt, $event_schedule->end_date_hour) ||
|
|
!empty($event_schedule->start_date_hour) && !empty($event_schedule->end_date_hour)
|
|
) {
|
|
if ($event_schedule->start_date != $event_schedule->end_date) {
|
|
$event_start_hour = ' à '.$event_schedule->start_date_hour;
|
|
$event_end_hour = ' à '.$event_schedule->end_date_hour;
|
|
} else {
|
|
$event_start_hour = ' de '.$event_schedule->start_date_hour;
|
|
$event_end_hour = ' à '.$event_schedule->end_date_hour;
|
|
}
|
|
}
|
|
|
|
$ev_scheddate = false;
|
|
|
|
if (0 == $event_schedule->end_day) {
|
|
$event_end_day = ' au '.$event_schedule->end_day.' ';
|
|
} else {
|
|
$event_end_day = '';
|
|
}
|
|
if ($event_schedule->start_date == $event_schedule->end_date || 0 == $event_schedule->end_date) {
|
|
// Le XX Septembre XXXX 8h00 jusq'au XX October XXXX 12h00
|
|
// Du 28 octobre au 29 octobre 2016 de 20h30 Ã 23h00
|
|
echo 'Le ';
|
|
translate_day_in_french($event_schedule->day);
|
|
echo ' ';
|
|
translate_date_in_french($event_schedule->start_date_day);
|
|
echo ' '.$event_start_hour;
|
|
echo ' '.$event_end_hour;
|
|
} else {
|
|
// Le 28 Septembre 1995 de 8h00 a 12h00
|
|
// Du 28 octobre 2016 de 20h30 Ã 22h30
|
|
if ($event_schedule->start_month == $event_schedule->end_month) {
|
|
echo ' '.$event_schedule->start_day.$event_end_day.' ';
|
|
translate_date_in_french($event_schedule->end_month);
|
|
echo ' '.$event_schedule->end_year;
|
|
// ." de ".$event_schedule->start_date_hour." Ã ".$event_schedule->end_date_hour;
|
|
} elseif ($event_schedule->start_year != $event_schedule->end_year) {
|
|
echo 'Du ';
|
|
strtolower(translate_day_in_french($event_schedule->day));
|
|
echo ' '.$event_schedule->start_day.' ';
|
|
translate_date_in_french($event_schedule->event_start_month_name);
|
|
echo ' '.$event_schedule->start_year;
|
|
echo ' '.$event_start_hour;
|
|
echo ' au ';
|
|
translate_day_in_french($event_schedule->endday);
|
|
echo ' '.$event_schedule->end_day.' ';
|
|
translate_date_in_french($event_schedule->end_month);
|
|
echo ' '.$event_schedule->end_year; //." de ".$event_schedule->start_date_hour." Ã ".$event_schedule->end_date_hour;
|
|
echo ' '.$event_end_hour;
|
|
} else {
|
|
echo 'Du ';
|
|
strtolower(translate_day_in_french($event_schedule->day));
|
|
echo ' '.$event_schedule->start_day.' ';
|
|
strtolower(translate_date_in_french($event_schedule->event_start_month_name));
|
|
echo " $event_start_hour";
|
|
|
|
echo ' au ';
|
|
strtolower(translate_day_in_french($event_schedule->endday));
|
|
echo ' '.$event_schedule->end_day.' ';
|
|
strtolower(translate_date_in_french($event_schedule->end_month));
|
|
echo " {$event_schedule->end_year} $event_end_hour";
|
|
$ev_scheddate = true;
|
|
echo ($ev_scheddate) ? '' : $event_start_hour.$event_end_hour;
|
|
}
|
|
}
|
|
|
|
},
|
|
);
|
|
}
|
|
|
|
/*This is for showing or hiding cancel button when seats open for reservation after waiting list*/
|
|
private function show_cancel_btn_or_not($booking_type, $event_status, $remaining_seat)
|
|
{
|
|
if (1 == $booking_type) { //normal registration
|
|
return 1;
|
|
} elseif (2 == $booking_type) { //waitinglist registration
|
|
if ('AVAILABLE' == $event_status && $remaining_seat > 0) {
|
|
//the subscriber is currently registered for waitinglist then suddenly seats are open for reservation
|
|
return 2;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
private function check_if_user_can_still_book($reg_type = 0, $quota_seats = 0, $seats_reserved = 0, $remaining_seats = 0)
|
|
{
|
|
$seats_available = 0;
|
|
|
|
if (1 == $reg_type) {
|
|
//check if seats per subscriber caters the remaining seats
|
|
if ($quota_seats >= $seats_reserved && $remaining_seats > 0) {
|
|
if ($quota_seats == $seats_reserved) {
|
|
$seats_available = 0;
|
|
} else {
|
|
$seats_available = ($quota_seats > $seats_reserved) ? $quota_seats - $seats_reserved : $quota_seats;
|
|
$seats_available = ($remaining_seats >= $seats_available) ? $seats_available : $remaining_seats;
|
|
}
|
|
}
|
|
} elseif (2 == $reg_type) {
|
|
//check if quota_waiting_list_seat caters the seats_reserved
|
|
/*!note remaining seat here means seat_per_subscriber*/
|
|
$seats_per_subscriber = $remaining_seats;
|
|
|
|
if ($seats_per_subscriber >= $seats_reserved && $seats_per_subscriber > 0 && $quota_seats > 0) {
|
|
if ($seats_per_subscriber == $seats_reserved) {
|
|
$seats_available = 0;
|
|
} else {
|
|
$seats_available = ($seats_per_subscriber > $seats_reserved) ? $seats_per_subscriber - $seats_reserved : (($seats_per_subscriber > $quota_seats) ? $quota_seats : $seats_per_subscriber);
|
|
$seats_available = ($quota_seats >= $seats_available) ? $seats_available : $quota_seats;
|
|
}
|
|
}
|
|
}
|
|
|
|
return $seats_available;
|
|
}
|
|
|
|
private function set_event_cookie($event_id) {
|
|
delete_cookie($this->config->item('sess_cookie_name').'_eventpage');
|
|
$cookie_eventpage = array(
|
|
'name' => 'eventpage',
|
|
'value' => json_encode(array(
|
|
"event_link" => base_url('event_details?event_id='.$event_id)
|
|
)),
|
|
'expire' => 7200, // time() + (86400 * 30),
|
|
'prefix' => $this->config->item('sess_cookie_name').'_'
|
|
);
|
|
set_cookie($cookie_eventpage);
|
|
}
|
|
}
|
|
|