Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17145 | Rev 17148 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 17145 Rev 17147
Línea 411... Línea 411...
411
                $slideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
411
                $slideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
412
                if($slideMapper->insert($slide)) {
412
                if($slideMapper->insert($slide)) {
413
                    $slide = $slideMapper->fetchOne($slide->id);
413
                    $slide = $slideMapper->fetchOne($slide->id);
Línea 414... Línea 414...
414
                    
414
                    
415
                    
415
                    
Línea -... Línea 416...
-
 
416
                    $storage = Storage::getInstance($this->config, $this->adapter);
Línea 416... Línea 417...
416
                    $image = Image::getInstance($this->config);
417
                    $target_path = $storage->getPathMicrolearningSlide();
417
                    $target_path = $image->getStorage()->getPathMicrolearningSlide();
-
 
418
                    
-
 
419
                    
-
 
420
                    $files = $this->getRequest()->getFiles()->toArray();
-
 
421
                   
-
 
422
                    
-
 
423
                    if(isset($files['file']) && empty($files['file']['error'])) {
-
 
424
                        
-
 
425
                        
-
 
426
                    
-
 
427
                        switch($slide->type)
-
 
428
                        {
-
 
429
 
-
 
430
                            case MicrolearningSlide::TYPE_IMAGE : 
-
 
431
                        
-
 
432
                           
-
 
433
                                $tmp_filename  = $files['file']['tmp_name'];
-
 
434
                                // $filename      = \LeadersLinked\Library\Functions::normalizeStringFilename($files['file']['name']);
-
 
435
                                
-
 
436
                                try {
-
 
437
                                    list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.microlearning_image_size']);
-
 
438
                                    
-
 
439
                                    $filename =  'slide-' .uniqid() . '.jpg';
-
 
440
                                    $crop_to_dimensions = false;
-
 
441
                                    $unlink_source = true;
-
 
442
                                    
-
 
443
                                    if($image->uploadProcessChangeSize($tmp_filename, $target_path, $slide->uuid, $filename, $target_width, $target_height, $crop_to_dimensions, $unlink_source)) {
-
 
444
                                        $slide->file = $filename;
-
 
445
                                        $slideMapper->update($slide);
-
 
446
                                    
-
 
447
                                    }
-
 
448
                                } catch(\Throwable $e) {
-
 
449
                                    error_log($e->getTraceAsString());
-
 
450
                                }
-
 
451
                                
-
 
452
                                break;
-
 
453
                       
-
 
454
                        
-
 
455
                            case MicrolearningSlide::TYPE_DOCUMENT : 
-
 
456
                                $tmp_filename       = $files['file']['tmp_name'];
-
 
457
                                $original_filename  = trim(strtolower($files['file']['name']));
-
 
458
                                
418
                    
459
                                
419
                    $storage->setFiles($this->getRequest()->getFiles()->toArray());
460
                                if($slide->file) {
420
                    
461
                                    if(!$image->getStorage()->deleteFile($target_path, $slide->uuid, $slide->file)) {
-
 
462
                                        return new JsonModel([
-
 
463
                                            'success'   => false,
421
                    if (!$storage->setCurrentFilename('file')) {
464
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
465
                                        ]);
-
 
466
                                    }
-
 
467
                                }
-
 
468
                                
-
 
469
                                try {
-
 
470
                                    
-
 
471
                                    $parts = explode('.', $original_filename);
-
 
472
                                    $filename = 'document-' . uniqid() . '.' . $parts[ count($parts) - 1 ];
-
 
473
                                    
-
 
474
                      
-
 
475
                                    if($image->getStorage()->moveAndputFile($target_path, $slide->uuid, $tmp_filename, $full_filename)) {
-
 
476
                                        $slide->file = $filename;
-
 
477
                                        $slideMapper->update($slide);
422
                        return new JsonModel([
Línea 478... Línea 423...
478
                                    }
423
                            'success'   => false,
-
 
424
                            'data'      => 'ERROR_UPLOAD_IMAGE'
479
                                } catch(\Throwable $e) {
425
                        ]);
480
                                    error_log($e->getTraceAsString());
426
                    }
481
                                }
427
 
482
 
428
                    switch($slide->type)
483
                                break;
-
 
484
                                
429
                    {
485
                            case  MicrolearningSlide::TYPE_AUDIO : 
-
 
486
                                $tmp_filename       = $files['file']['tmp_name'];
430
 
487
                                $original_filename  = trim(strtolower($files['file']['name']));
431
                        case MicrolearningSlide::TYPE_IMAGE: 
488
                                
432
                            $target_size = $this->config['leaderslinked.image_sizes.microlearning_image_size'];
489
                                
433
                            list($target_width, $target_height) = explode('x', $target_size);
490
                                if($slide->file) {
434
 
491
                                    if(!image ::delete($target_path, $slide->file)) {
435
                            $source_filename = $storage->getTmpFilename();
492
                                        return new JsonModel([
436
                            $filename = 'image-' . uniqid() . '.jpg';
493
                                            'success'   => false,
437
                            $target_filename = $storage->composePathToFilename(
-
 
438
                                Storage::TYPE_MICROLEARNING_SLIDE,
494
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
439
                                $slide->uuid,
495
                                        ]);
-
 
496
                                    }
440
                                $filename
497
                                }
441
                            );
498
                                
-
 
499
                                try {
442
 
500
                                    
443
                            if (!$storage->uploadImageCrop($source_filename, $target_filename, $target_width, $target_height)) {
501
                                    $parts = explode('.', $original_filename);
444
                                return new JsonModel([
-
 
445
                                    'success'   => false,
502
                                    $filename = 'audio-' . uniqid() . '.' . $parts[ count($parts) - 1 ];
446
                                    'data'      => 'ERROR_UPLOAD_IMAGE'
503
                                    
447
                                ]);
-
 
448
                            }
504
                                    $full_filename      =  sys_get_temp_dir() . DIRECTORY_SEPARATOR .$filename;
449
 
505
                                    if(move_uploaded_file($tmp_filename , $full_filename)) {
450
                            $slide->file = $filename;
506
                                        
451
 
-
 
452
                            if(!$slideMapper->update($slide)) {
507
                                        
453
                                return new JsonModel([
508
                                        $generateFileName   = substr($filename, 0, strrpos($filename, '.')) .  '.mp3';
454
                                    'success'   => false,
509
                                        $generateFile       = sys_get_temp_dir() .  DIRECTORY_SEPARATOR . $generateFileName;
455
                                    'data'      => 'ERROR_THERE_WAS_AN_ERROR'
-
 
456
                                ]);
-
 
457
                            }
-
 
458
 
510
                                        $cmd                = "/usr/bin/ffmpeg -i $full_filename -b:a 320000 $generateFile";
459
                        break;
-
 
460
 
511
                                        exec($cmd);
461
                        case MicrolearningSlide::TYPE_DOCUMENT:
512
                                        
462
                            $source_filename = $storage->getTmpFilename();
513
                                        if($image->getStorage()->putFile($target_path, $slide->uuid, $generateFile)) {
463
                            $filename = 'document-' . uniqid() . '.pdf';
514
                                            
464
                            $target_filename = $storage->composePathToFilename(
-
 
465
                                Storage::TYPE_MICROLEARNING_SLIDE,
-
 
466
                                $slide->uuid,
515
                                            $slide->file =  $generateFileName;
467
                                $filename
516
                                            $slideMapper->update($slide);
468
                            );
-
 
469
                            
-
 
470
                            if($slide->file) {
517
                                        }
471
                                if(!$storage->deleteFile($target_path, $slide->uuid, $slide->file)) {
-
 
472
                                    return new JsonModel([
518
                                    }
473
                                        'success'   => false,
-
 
474
                                        'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
475
                                    ]);
-
 
476
                                }
-
 
477
                            }
519
                                    
478
 
-
 
479
                            if(!$storage->putFile($source_filename, $target_filename)) {
520
                                } catch(\Throwable $e) {
480
                                return new JsonModel([
-
 
481
                                    'success'   => false,
-
 
482
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
483
                                ]);
-
 
484
                            }
-
 
485
 
-
 
486
                            $slide->file = $filename;
-
 
487
                            if(!$slideMapper->update($slide)) {
-
 
488
                                return new JsonModel([
521
                                    error_log($e->getTraceAsString());
489
                                    'success'   => false,
522
                                }
490
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
523
                                
491
                                ]);
-
 
492
                            }
524
                                break;
493
                        break;
-
 
494
 
-
 
495
                        case  MicrolearningSlide::TYPE_AUDIO : 
-
 
496
                            $source_filename = $storage->getTmpFilename();
-
 
497
                            $filename = 'audio-' . uniqid() . '.mp3';
525
                                
498
                            $target_filename = $storage->composePathToFilename(
526
                                
499
                                Storage::TYPE_MICROLEARNING_SLIDE,
527
                            case MicrolearningSlide::TYPE_VIDEO : 
500
                                $slide->uuid,
528
                                $tmp_filename       = $files['file']['tmp_name'];
501
                                $filename
529
                                $original_filename  = trim(strtolower($files['file']['name']));
502
                            );
530
                                
503
                            
531
                                
504
                            
532
                                if($slide->file) {
-
 
533
                                    if(!image ::delete($target_path, $slide->file)) {
505
                            if($slide->file) {
534
                                        return new JsonModel([
506
                                if(!$storage->deleteFile($target_path, $slide->uuid, $slide->file)) {
-
 
507
                                    return new JsonModel([
-
 
508
                                        'success'   => false,
-
 
509
                                        'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
510
                                    ]);
-
 
511
                                }
-
 
512
                            }
-
 
513
                            
-
 
514
                            
-
 
515
                            if(!$storage->putFile($source_filename, $target_filename)) {
Línea 535... Línea 516...
535
                                            'success'   => false,
516
                                return new JsonModel([
536
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
517
                                    'success'   => false,
537
                                        ]);
518
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
538
                                    }
-
 
539
                                }
519
                                ]);
540
 
-
 
541
                                try {
520
                            }
-
 
521
 
-
 
522
                            $slide->file = $filename;
-
 
523
                            if(!$slideMapper->update($slide)) {
542
                                    $parts = explode('.', $original_filename);
524
                                return new JsonModel([
543
                                    $filename = 'video-' . uniqid() . '.' . $parts[ count($parts) - 1 ];
525
                                    'success'   => false,
544
                                    
-
 
545
                                    $full_filename      = $image->getStorage()->getTempPath()  . DIRECTORY_SEPARATOR .$filename;
526
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
546
                                    
527
                                ]);
547
                                    if(move_uploaded_file($tmp_filename , $full_filename)) {
528
                            }
548
                                        
529
                        break;
549
                                        if($image->getStorage()->putFile($target_path, $slide->uuid, $full_filename)) {
-
 
550
                                        
530
                            
551
                                            $videoConvert = new VideoConvert();
531
                        case MicrolearningSlide::TYPE_VIDEO : 
552
                                            $videoConvert->uuid = $slide->uuid;
-
 
-
 
532
                            $source_filename = $storage->getTmpFilename();
553
                                            $videoConvert->filename = $full_filename;
533
                            $filename = 'video-' . uniqid() . '.mp4';
554
                                            $videoConvert->type = VideoConvert::TYPE_MICRO_LEARNING_SLIDES;
534
                            $target_filename = $storage->composePathToFilename(
555
                                            
535
                                Storage::TYPE_MICROLEARNING_SLIDE,
556
                                            $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
536
                                $slide->uuid,
557
                                            $videoConvertMapper->insert($videoConvert);
537
                                $filename
558
                                            
538
                            );
559
                                           
-
 
560
                                            
539
                            
561
                                            $slide->file = $filename;
540
                            
562
                                            $slideMapper->update($slide);
-
 
563
                                        }
-
 
564
                                    }
541
                            if($slide->file) {
565
                                    
-
 
566
                                } catch(\Throwable $e) {
542
                                if(!$storage->deleteFile($target_path, $slide->uuid, $slide->file)) {
567
                                    echo $e->getMessage();
-
 
568
                                    
543
                                    return new JsonModel([
569
                                    error_log($e->getTraceAsString());
-
 
570
                                }
-
 
571
                                break;
544
                                        'success'   => false,
572
                        }
545
                                        'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
573
                    }
546
                                    ]);
574
                    
547
                                }
575
                    if(isset($files['background']) && empty($files['background']['error'])) {
548
                            }
576
                        if($slide->background) {
549
 
577
                            if(!image ::delete($target_path, $slide->background)) {
-
 
578
                                return new JsonModel([
550
                            if(!$storage->putFile($source_filename, $target_filename)) {
-
 
551
                                return new JsonModel([
-
 
552
                                    'success'   => false,
579
                                    'success'   => false,
553
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
554
                                ]);
580
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
555
                            }
581
                                ]);
-
 
582
                            }
556
 
583
                        }
557
                            $videoConvert = new VideoConvert();
584
                        
558
                            $videoConvert->uuid = $slide->uuid;
585
                        $tmp_filename  = $files['background']['tmp_name'];
559
                            $videoConvert->filename = $filename;
586
                        
560
                            $videoConvert->type = VideoConvert::TYPE_MICRO_LEARNING_SLIDES;
-
 
561
                            
-
 
562
                            $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
-
 
563
 
587
                        try {
564
                            if(!$videoConvertMapper->insert($videoConvert)) {
-
 
565
                                return new JsonModel([
588
                            list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.microlearning_image_size']);
566
                                    'success'   => false,
589
                            
567
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
590
                            $filename = 'background-' .uniqid() . '.png';
568
                                ]);
-
 
569
                            }
-
 
570
                            
591
                            $crop_to_dimensions = true;
571
                            $slide->file = $filename;
-
 
572
                            if(!$slideMapper->update($slide)) {
-
 
573
                                return new JsonModel([
-
 
574
                                    'success'   => false,
-
 
575
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
592
                            $unlink_source = true;
576
                                ]);
-
 
577
                            }
-
 
578
                        break;
-
 
579
                    }
-
 
580
 
-
 
581
                    if(!$storage->setCurrentFilename('background')) {
-
 
582
                        return new JsonModel([
-
 
583
                            'success'   => false,
593
                            
584
                            'data'   =>  'ERROR_UPLOAD_IMAGE'
-
 
585
                        ]);
-
 
586
                    }
-
 
587
                    
594
                            if($image->uploadProcessChangeSize($tmp_filename, $target_path, $slide->uuid, $filename, $target_width, $target_height, $crop_to_dimensions, $unlink_source)) {
588
                    if($slide->background) {
595
                                $slide->background = $filename;
589
                        if(!$storage->deleteFile($target_path, $slide->uuid, $slide->background)) {
Línea -... Línea 590...
-
 
590
                            return new JsonModel([
-
 
591
                                'success'   => false,
-
 
592
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
593
                            ]);
-
 
594
                        }
-
 
595
                    }
-
 
596
                    
-
 
597
                    $tmp_filename  = $storage->getTmpFilename();
-
 
598
                    $filename = 'background-' .uniqid() . '.png';
-
 
599
                    $target_filename = $storage->composePathToFilename(
-
 
600
                        Storage::TYPE_MICROLEARNING_SLIDE,
-
 
601
                        $slide->uuid,
-
 
602
                        $filename
-
 
603
                    );
-
 
604
 
-
 
605
                    list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.microlearning_image_size']);
-
 
606
                    
-
 
607
                    if(!$storage->uploadImageCrop($tmp_filename, $target_filename, $target_width, $target_height)) {
-
 
608
                        return new JsonModel([
-
 
609
                            'success'   => false,
-
 
610
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
611
                        ]);
-
 
612
                    }
-
 
613
 
-
 
614
                    $slide->background = $filename;
596
                                $slideMapper->update($slide);
615
                    if(!$slideMapper->update($slide)) {
Línea 597... Línea 616...
597
                            }
616
                        return new JsonModel([
598
                        } catch(\Throwable $e) {
617
                            'success'   => false,
599
                            error_log($e->getTraceAsString());
618
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'