MasterClass/application/models/Event_video_model.php
2025-07-29 15:53:43 +03:00

256 lines
11 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Event_video_model extends CI_Model {
public function __construct() {
parent::__construct();
$this->db->query("SET @@group_concat_max_len =30000");
}
public function save_video($video) {
$data = array(
'image' => $video['image'],
'title' => $video['title'],
'duration' => $video['duration'],
'description' => $video['description'],
'embed' => $video['embed'],
'live_video_start_date' => $video['live_video_start_date'],
'live_video_end_date' => $video['live_video_end_date'],
'url' => $video['url'],
'owner' => $video['owner'],
'event_id' => $video['event_id']
);
$this->db->insert('event_videos', $data);
}
public function update_video($id, $video) {
$data = array(
'title' => $video['title'],
'description' => $video['description'],
'live_video_start_date' => $video['live_video_start_date'],
'live_video_end_date' => $video['live_video_end_date'],
);
$this->db->where('id', $id);
$this->db->update('event_videos', $data);
}
public function total_replay_videos_duration_spec($videos){
return "12h";
}
public function total_replay_videos_spec($videos){
$cpt = 0;
$date = isset($_GET["date"]) ? $_GET["date"] : date("Y-m-d H:i:s");
foreach($videos as $video){
if($video->live_video_start_date < $date && $video->live_video_end_date < $date)
$cpt++;
}
return $cpt;
}
public function get_videos_by_event_id($event_id) {
$this->db->select('*');
$this->db->where('event_id', $event_id);
$this->db->where('status', 1);
return $this->db->get('event_videos')->result();
}
public function get_videos_by_event_id_spec($event_id) {
if($event_id != "311")
return;
$videos = [];
$videos[0] = new \stdClass();
$videos[1] = new \stdClass();
$videos[2] = new \stdClass();
$videos[3] = new \stdClass();
$videos[4] = new \stdClass();
$videos[5] = new \stdClass();
$videos[0]->title = "Au tournant du siècle, les Etats-Unis dans livresse de lhyperpuissance";
$videos[0]->duration = "02:00:00";
$videos[0]->description = "Au tournant du siècle, les Etats-Unis dans livresse de lhyperpuissance";
$videos[0]->embed = <<<HERE
"<iframe src=\"https://player.vimeo.com/video/690207852?h=d41b2a1893&badge=0&autopause=0&player_id=0&app_id=227616\" width=\"1920\" height=\"1080\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"YSL X ROS&Eacute; NEW 마블팩트 MAIN FILM\"></iframe>"
HERE;
$videos[0]->url = "https://vimeo.com/690207852";
$videos[0]->live_video_start_date = "2022-04-07 19:00:00";
$videos[0]->live_video_end_date = "2022-04-07 21:00:00";
$videos[1]->title = "Attentats du 11 septembre 2001 : la réponse américaine, un enchaînement derreurs stratégiques majeures ";
$videos[1]->duration = "02:00:00";
$videos[1]->description = "Attentats du 11 septembre 2001 : la réponse américaine, un enchaînement derreurs stratégiques majeures ";
$videos[1]->embed = <<<HERE
"<iframe src=\"https://player.vimeo.com/video/1982076?h=d41b2a1893&badge=0&autopause=0&player_id=0&app_id=227616\" width=\"1920\" height=\"1080\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"YSL X ROS&Eacute; NEW 마블팩트 MAIN FILM\"></iframe>"
HERE;
$videos[1]->url = "https://vimeo.com/event/1982076";
$videos[1]->live_video_start_date = "2022-04-14 19:00:00";
$videos[1]->live_video_end_date = "2022-04-14 21:00:00";
$videos[2]->title = "La passion Obama (déraisonnable) et le pourquoi du trumpisme (encore plus déraisonnable)";
$videos[2]->duration = "02:00:00";
$videos[2]->description = "La passion Obama (déraisonnable) et le pourquoi du trumpisme (encore plus déraisonnable)";
$videos[2]->embed = <<<HERE
"<iframe src=\"https://player.vimeo.com/video/694372698?h=d41b2a1893&badge=0&autopause=0&player_id=0&app_id=227616\" width=\"1920\" height=\"1080\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"YSL X ROS&Eacute; NEW 마블팩트 MAIN FILM\"></iframe>"
HERE;
$videos[2]->url = "https://vimeo.com/694372698";
$videos[2]->live_video_start_date = "2022-04-21 19:00:00";
$videos[2]->live_video_end_date = "2022-04-21 21:00:00";
$videos[3]->title = "Les Etats-Unis et la Chine : de lamitié à laffrontement";
$videos[3]->duration = "02:00:00";
$videos[3]->description = "Les Etats-Unis et la Chine : de lamitié à laffrontement";
$videos[3]->embed = <<<HERE
"<iframe src=\"https://player.vimeo.com/video/694374796?h=d41b2a1893&badge=0&autopause=0&player_id=0&app_id=227616\" width=\"1920\" height=\"1080\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"YSL X ROS&Eacute; NEW 마블팩트 MAIN FILM\"></iframe>"
HERE;
$videos[3]->url = "https://vimeo.com/694374796";
$videos[3]->live_video_start_date = "2022-05-12 19:00:00";
$videos[3]->live_video_end_date = "2022-05-12 21:00:00";
$videos[4]->title = "Menaces sur la démocratie américaine : une mécanique institutionnelle déréglée";
$videos[4]->duration = "02:00:00";
$videos[4]->description = "Menaces sur la démocratie américaine : une mécanique institutionnelle déréglée";
$videos[4]->embed = <<<HERE
"<iframe src=\"https://player.vimeo.com/video/6bf8516668?h=d41b2a1893&badge=0&autopause=0&player_id=0&app_id=227616\" width=\"1920\" height=\"1080\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"YSL X ROS&Eacute; NEW 마블팩트 MAIN FILM\"></iframe>"
HERE;
$videos[4]->url = "https://vimeo.com/event/1989102/6bf8516668";
$videos[4]->live_video_start_date = "2022-05-19 19:00:00";
$videos[4]->live_video_end_date = "2022-05-19 21:00:00";
$videos[5]->title = "Des atouts toujours déterminants face aux autres « grands » : la Chine, la Russie, lUnion européenne…";
$videos[5]->duration = "02:00:00";
$videos[5]->description = "Des atouts toujours déterminants face aux autres « grands » : la Chine, la Russie, lUnion européenne…";
$videos[5]->embed = <<<HERE
"<iframe src=\"https://player.vimeo.com/video/694376759?h=d41b2a1893&badge=0&autopause=0&player_id=0&app_id=227616\" width=\"1920\" height=\"1080\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"YSL X ROS&Eacute; NEW 마블팩트 MAIN FILM\"></iframe>"
HERE;
$videos[5]->url = "https://vimeo.com/694376759";
$videos[5]->live_video_start_date = "2022-05-25 19:00:00";
$videos[5]->live_video_end_date = "2022-05-25 21:00:00";
return $videos;
}
public function get_next_course_from_id($event_id) {
$this->db->select('*');
$this->db->where('event_id', $event_id);
$this->db->where('status', 1);
$res = $this->db->get('event_videos')->result_array();
foreach($res as $r => $rr){
if($rr["live_video_start_date"] > date("Y-m-d H:i:s")){
return $rr;
}
}
return $res[count($res)-1];
}
public function get_next_course_from_id_spec($event_id) {
if(count($event_id)>0){
$date = isset($_GET["date"]) ? $_GET["date"] : date("Y-m-d H:i:s");
foreach((array)$event_id as $r){
if($r->live_video_start_date > $date){
return $r;
}
}
return $event_id[count($event_id)-1];
}
return;
}
public function get_video_by_id($id) {
$this->db->select('*');
$this->db->where('id', $id);
$this->db->where('status', 1);
return $this->db->get('event_videos')->row();
}
public function delete_video($id) {
$data = array(
'status' => 0
);
$this->db->where('id', $id);
$this->db->update('event_videos', $data);
}
public function format_video_duration($time) {
$minute = '00';
$hour = '0';
$second = '0';
$duration = explode(':', $time);
$h = (int)$duration[0];
$m = (int)$duration[1];
$s = (int)$duration[2];
$m = $m + floor($s/60);
$h = $h + floor($m/60);
$m = $m % 60;
$s = $s % 60;
$hour=(string) $h;
if($m<10)
$minute='0'. (string) $m;
else
$minute = (string)$m;
if($s<10)
$second = '0'. (string) $s;
else
$second = (string) $s;
if($h>0) {
return $hour.'h'.$minute;
}
return $minute.'min'.$second;
}
public function date_diff_array(DateTime $oDate1, DateTime $oDate2) {
$aIntervals = array(
'year' => 0,
'month' => 0,
'week' => 0,
'day' => 0,
'hour' => 0,
'minute' => 0,
'second' => 0,
);
foreach($aIntervals as $sInterval => &$iInterval) {
while($oDate1 <= $oDate2){
$oDate1->modify('+1 ' . $sInterval);
if ($oDate1 > $oDate2) {
$oDate1->modify('-1 ' . $sInterval);
break;
} else {
$iInterval++;
}
}
}
return $aIntervals;
}
public function total_video_duration($videos) {
$minute = '00';
$hour = '0';
$h = 0;
$m = 0;
$s = 0;
if(count($videos)>0) {
foreach($videos as $video) {
$dura= $this->date_diff_array(new DateTime($video->live_video_start_date),new DateTime($video->live_video_end_date));
$duration = explode(':', $dura["hour"].":".$dura["minute"].":".$dura["second"]);
$h += (int)$duration[0];
$m += (int)$duration[1];
$s += (int)$duration[2];
}
$m = $m + floor($s/60);
$h = $h + floor($m/60);
$m = $m % 60;
$hour = (string)$h;
if($m<10)
$minute='0'. (string) $m;
else
$minute = (string)$m;
}
return $hour.'h'.$minute;
}
}