/application/controllers/cvideo.php
PHP | 298 lines | 222 code | 47 blank | 29 comment | 19 complexity | 8d35f6d8c56d614df84c43b774472cb6 MD5 | raw file
Possible License(s): MIT, LGPL-2.1
- <?php
- class Cvideo_Controller extends Base_Controller
- {
- public $restful = true;
- public function post_upload()
- {
- $project_id = Input::get('project_id');
- $project = Project::find($project_id);
- $truvo = $project->is_truvo;
- try{
- if($truvo){
- //special namings for truvo projects
- $filename = $project->truvo_id .'.'. File::extension(Input::get('videofileValue'));
- //$path = path('public').'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id.DS.'mysite'.DS.'video';
- $path = path('public').'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id.DS.'mysite'.DS.'video';
- }else{
- //default namings
- $filename = $project_id . '_'.Input::get('newVideoFile_id') . '_'.Input::get('videofileValue');
- $path = path('public').'uploads'.DS.'projects'.DS.'zidis_'.$project_id.DS.'video_'.Input::get('newVideoFile_id');
- }
- if(!is_dir($path)){
- mkdir($path, 0777, true);
- }
- Input::upload('videofile', $path, $filename);
- //echo (disk_free_space(path('public').'uploads/projects/video')/pow(1024, 3)) . ' Gb';
- $vimeo = IoC::resolve('vimeo-api');
- $vimeo_id = $vimeo->upload($path.DS.$filename);
-
- if($vimeo_id){
- $video = Video::find(Input::get('newVideoFile_id'));
- if($truvo){
- //Truvo projects are saved on the server for a while
- $video->file_path = $path.DS.$filename;
- }else{
- //Video files of non-truvo projects can immediately be deleted when they are on vimeo
- File::delete($path.DS.$filename);
- }
- $video->vimeo_id = $vimeo_id;
- $video->save();
- return Redirect::back()
- ->with_lang_message('messages.videofileadded','success');
- }
- }catch(ErrorException $e)
- {
- Log::write('error', $e);
- return Redirect::back()
- ->with_lang_message('messages.unknownerror','error');
- }
- }
- public function post_uploadftp()
- {
- $project_id = Input::get('project_id');
- $project = Project::find($project_id);
- $truvo = $project->is_truvo;
- try{
- $uploadedPath = path('public').'uploads'.DS.'tempVideo';
- $latest_ctime = 0;
- $latest_filename = '';
- $d = dir($uploadedPath);
- while (false !== ($entry = $d->read())) {
- $filepath = "{$uploadedPath}/{$entry}";
- // could do also other checks than just checking whether the entry is a file
- if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
- $latest_ctime = filectime($filepath);
- $latest_filename = $entry;
- }
- }
- if($truvo){
- //special namings for truvo projects
- $filename = $project->truvo_id .'.'. File::extension($latest_filename);
- //Old zip structure
- $path = path('public').'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id.DS.'mysite'.DS.'video';
- //New zip structure
- //$path = path('public').'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id;
- }else{
- //default namings
- $filename = $project_id . '_'.Input::get('videoFileFTP_id') . '_'.$latest_filename;
- $path = path('public').'uploads'.DS.'projects'.DS.'zidis_'.$project_id.DS.'video_'.Input::get('videoFileFTP_id');
- }
- if(!is_dir($path)){
- mkdir($path, 0777, true);
- }
- copy($uploadedPath.DS.$latest_filename, $path.DS.$filename);
- File::delete($uploadedPath.DS.$latest_filename);
- //echo (disk_free_space(path('public').'uploads/projects/video')/pow(1024, 3)) . ' Gb';
- $vimeo = IoC::resolve('vimeo-api');
- $vimeo_id = $vimeo->upload($path.DS.$filename);
- if($vimeo_id){
- $video = Video::find(Input::get('videoFileFTP_id'));
- if($truvo){
- //Truvo projects are saved on the server for a while
- $video->file_path = $path.DS.$filename;
- }else{
- //Video files of non-truvo projects can immediately be deleted when they are on vimeo
- File::delete($path.DS.$filename);
- }
- $video->vimeo_id = $vimeo_id;
- $video->save();
- return Redirect::back()
- ->with_lang_message('messages.videofileadded','success');
- }
- }catch(ErrorException $e)
- {
- Log::write('error', $e);
- return Redirect::back()
- ->with_lang_message('messages.unknownerror','error');
- }
- }
- public function post_uploadThumbnail()
- {
- try{
- $project_id = Input::get('project_id');
- $project = Project::find($project_id);
- $truvo = $project->is_truvo;
- if($truvo){
- //special namings for truvo projects
- $filename = $project->truvo_id .'_hd.'. File::extension(Input::get('thumbnailValue'));
- $extraPath = path('public').'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id.DS.$project->truvo_id;
- $path = DS.'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id.DS.'mysite'.DS.'video'.DS.'thumbnail';
- //Old zip structure
- $uploadPath = path('public').'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id.DS.'mysite'.DS.'video'.DS.'thumbnail';
- //Old zip structure
- if(!is_dir($extraPath)){
- mkdir($extraPath, 0777, true);
- }
- }else{
- //default namings
- $filename = $project_id . '_thumbnail_'.Input::get('newThumbnailVideo_id') . '_'.Input::get('thumbnailValue');
- $uploadPath = path('public').'uploads'.DS.'projects'.DS.'zidis_'.$project->id.DS.'video_'.Input::get('newVideoFile_id');
- $path = DS.'uploads'.DS.'projects'.DS.'zidis_'.$project->id.DS.'video_'.Input::get('newVideoFile_id');
- }
- if(!is_dir($uploadPath)){
- mkdir($uploadPath, 0777, true);
- }
- Input::upload('thumbnail', $uploadPath, $filename);
- if($truvo){
- try{
- Resizer::open($uploadPath.DS.$filename)
- ->resize(100, 90, 'exact')
- ->save($extraPath.DS.$project->truvo_id .'_t.'. File::extension(Input::get('thumbnailValue')), 90);
- //copy($uploadPath.DS.$filename, $extraPath.DS.$project->truvo_id .'_t.'. File::extension(Input::get('thumbnailValue')));
- }catch(Exception $e){
- File::delete($uploadPath.DS.$filename);
- Log::error($e);
- return Redirect::back()
- ->with_lang_message('messages.imageresizeerror','error');
- }
- }
- $thumbnail = Thumbnail::create(array(
- 'video_id' => Input::get('newThumbnailVideo_id'),
- 'url' => $path.DS. $filename,
- 'description' => Input::get('description')
- ));
- return Redirect::back()
- ->with_lang_message('messages.thumbnailadded','success');
- }catch(ErrorException $e)
- {
- Log::write('error', $e);
- return Redirect::back()
- ->with_lang_message('messages.unknownerror','error');
- }
- }
- //Update name and type of video
- public function post_updateVideo()
- {
- $video = Video::find(Input::get('video'));
- $video->name = Input::get('videoname');
- $video->productcode_id = Input::get('productcode'.Input::get('video'));
- $video->language_id = Input::get('videoLanguage'.Input::get('video'));
- $video->save();
- return true;
- }
- //Remove video from a project
- public function post_removeVideo()
- {
-
- $video = Video::find(Input::get('video'));
- if(!$video->removeVideo()){
- return Redirect::back()
- ->with_lang_message('messages.errordeletevimeo','error');
- }
-
- return Redirect::back()
- ->with_lang_message('messages.videodeleted','success');
- }
- //Remove video from a project
- public function post_removeVideoFile()
- {
- $video = Video::find(Input::get('video'));
- if(!$video->removeVideoFile()){
- return Redirect::back()
- ->with_lang_message('messages.errordeletevimeo','error');
- }
- return Redirect::back()
- ->with_lang_message('messages.videodeleted','success');
- }
- //add video to a project
- public function post_newVideo()
- {
- $project_id = Input::get('project_id');
- $video = Video::create(array(
- 'project_id' => $project_id,
- 'name' => Input::get('newVideoName'),
- 'productcode_id' => Input::get('newVideoProductcode'),
- 'language_id' => Input::get('newVideoLanguage')
- ));
- return Redirect::back()
- ->with_lang_message('messages.videoadded','success');
- }
- //add a subtitle container, not the actual file
- public function post_newSub()
- {
- $video = Video::find(Input::get('newSubVideo_id'));
- $video->addSub(Input::get('description'));
- return Redirect::back()
- ->with_lang_message('messages.subadded','success');
- }
- //actually upload a subtitle file
- public function post_uploadSub()
- {
- try{
- $project_id = Input::get('project_id');
- $project = Project::find($project_id);
- $truvo = $project->is_truvo;
- $subtitle = Subtitle::find(Input::get('newSubFile_id'));
- if($truvo){
- //special namings for truvo projects
- $filename = 'sub-' . $project->truvo_id .'.'. File::extension(Input::get('subfileValue'));
- $relpath = 'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id.DS.$filename;
- $path = path('public').'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id;
- //$extraPath = path('public').'uploads'.DS.'projects'.DS.'truvo_'.$project->truvo_id.DS.$project->truvo_id.DS.'mysite'.DS.'video'.DS.'thumbnail';
- }else{
- //default namings
- $filename = $project_id . '_subtitle_'.Input::get('newSubFile_id') . '_'.Input::get('subfileValue');
- $relpath = 'uploads'.DS.'projects'.DS.'zidis_'.$project->id.DS.'video_'.Input::get('newVideoFile_id').DS.$filename;
- $path = path('public').'uploads'.DS.'projects'.DS.'zidis_'.$project->id.DS.'video_'.Input::get('newVideoFile_id');
- }
- if(!is_dir($path)){
- mkdir($path, 0777, true);
- }
-
- Input::upload('subfile', $path, $filename);
- $subtitle->url = $relpath;
- $subtitle->save();
- return Redirect::back()
- ->with_lang_message('messages.subfileadded','success');
- }catch(ErrorException $e)
- {
- Log::write('error', $e);
- return Redirect::back()
- ->with_lang_message('messages.unknownerror','error');
- }
- }
- }
- ?>