Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 5557 Rev 5558
Línea 242... Línea 242...
242
 
242
 
243
    //         return new JsonModel($response);
243
    //         return new JsonModel($response);
244
    //     }
244
    //     }
Línea 245... Línea 245...
245
    // }
245
    // }
246
 
246
 
247
    public function shareAction()
247
    // public function shareAction()
Línea 248... Línea 248...
248
    {
248
    // {
249
        $id = $this->params()->fromRoute('id');
249
    //     $id = $this->params()->fromRoute('id');
Línea 250... Línea 250...
250
 
250
 
251
        $request = $this->getRequest();
251
    //     $request = $this->getRequest();
Línea 252... Línea 252...
252
        if ($request->isPost()) {
252
    //     if ($request->isPost()) {
253
 
253
 
254
            $currentUserPlugin = $this->plugin('currentUserPlugin');
254
    //         $currentUserPlugin = $this->plugin('currentUserPlugin');
255
            $currentUser = $currentUserPlugin->getUser();
255
    //         $currentUser = $currentUserPlugin->getUser();
256
 
256
 
257
 
257
 
258
            $feedMapper = FeedMapper::getInstance($this->adapter);
258
    //         $feedMapper = FeedMapper::getInstance($this->adapter);
259
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
259
    //         $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
260
            if (!$feed) {
260
    //         if (!$feed) {
Línea 261... Línea 261...
261
                $response = [
261
    //             $response = [
262
                    'success' => false,
262
    //                 'success' => false,
263
                    'data' => 'ERROR_POST_NOT_FOUND'
263
    //                 'data' => 'ERROR_POST_NOT_FOUND'
264
                ];
264
    //             ];
Línea 265... Línea 265...
265
                return new JsonModel($response);
265
    //             return new JsonModel($response);
266
            }
266
    //         }
267
 
267
 
268
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
268
    //         $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
Línea 269... Línea 269...
269
            $dataPost['company_id'] = $this->params()->fromRoute('company_id');
269
    //         $dataPost['company_id'] = $this->params()->fromRoute('company_id');
270
            $dataPost['group_id'] = $this->params()->fromRoute('group_id');
270
    //         $dataPost['group_id'] = $this->params()->fromRoute('group_id');
Línea 271... Línea 271...
271
            $dataPost['shared_feed_id'] = $feed->id;
271
    //         $dataPost['shared_feed_id'] = $feed->id;
272
 
272
 
273
 
273
 
274
 
274
 
275
 
275
 
276
            $response = $this->postOrShareFeed($dataPost);
276
    //         $response = $this->postOrShareFeed($dataPost);
277
            if ($response['success']) {
277
    //         if ($response['success']) {
Línea 278... Línea 278...
278
                $feedMapper->incTotalShared($feed->id);
278
    //             $feedMapper->incTotalShared($feed->id);
279
                $total_shared = $feedMapper->fetchTotalShared($feed->id);
279
    //             $total_shared = $feedMapper->fetchTotalShared($feed->id);
Línea 280... Línea 280...
280
 
280
 
281
                $response['total_shared'] = $total_shared;
281
    //             $response['total_shared'] = $total_shared;
282
            }
282
    //         }
283
 
283
 
Línea 437... Línea 437...
437
        }
437
        }
Línea 438... Línea 438...
438
 
438
 
439
        return new JsonModel($response);
439
        return new JsonModel($response);
Línea 440... Línea 440...
440
    }
440
    }
441
 
441
 
442
    public function postOrShareFeed($dataPost)
442
    // public function postOrShareFeed($dataPost)
443
    {
443
    // {
444
        $utilMapper = UtilMapper::getInstance($this->adapter);
444
    //     $utilMapper = UtilMapper::getInstance($this->adapter);
445
        $now = $utilMapper->getDatebaseNow();
445
    //     $now = $utilMapper->getDatebaseNow();
446
 
446
 
447
        $currentUserPlugin = $this->plugin('currentUserPlugin');
447
    //     $currentUserPlugin = $this->plugin('currentUserPlugin');
448
        $currentUser = $currentUserPlugin->getUser();
448
    //     $currentUser = $currentUserPlugin->getUser();
449
 
449
 
450
        $companyId  = empty($dataPost['company_id']) ? '' : $dataPost['company_id'];
450
    //     $companyId  = empty($dataPost['company_id']) ? '' : $dataPost['company_id'];
451
        $groupId    = empty($dataPost['group_id']) ? '' : $dataPost['group_id'];
451
    //     $groupId    = empty($dataPost['group_id']) ? '' : $dataPost['group_id'];
452
 
452
 
453
 
453
 
454
        if ($groupId || $companyId) {
454
    //     if ($groupId || $companyId) {
455
            $form = new  CreateGroupCompanyForm($this->adapter);
455
    //         $form = new  CreateGroupCompanyForm($this->adapter);
456
        } else {
456
    //     } else {
457
            $form = new  CreateForm($this->adapter);
457
    //         $form = new  CreateForm($this->adapter);
458
        }
458
    //     }
459
        $form->setData($dataPost);
-
 
460
        if ($form->isValid()) {
-
 
461
 
-
 
462
 
-
 
463
 
-
 
464
 
-
 
465
            $hydrator = new ObjectPropertyHydrator();
-
 
466
            $feed = new Feed();
-
 
467
            $hydrator->hydrate($dataPost, $feed);
-
 
468
 
-
 
469
            $company = null;
-
 
470
            $group = null;
-
 
471
 
-
 
472
            if ($companyId) {
-
 
473
                $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
474
                $company = $companyMapper->fetchOneByUuidAndNetworkId($companyId, $currentUser->network_id);
-
 
475
 
-
 
476
 
-
 
477
                if (!$company) {
-
 
478
                    return [
-
 
479
                        'success'   => false,
-
 
480
                        'data'   => 'ERROR_COMPANY_NOT_FOUND'
-
 
481
                    ];
-
 
482
                }
-
 
483
 
-
 
484
                if ($company->status != Company::STATUS_ACTIVE) {
-
 
485
                    return [
-
 
486
                        'success'   => false,
-
 
487
                        'data'   => 'ERROR_COMPANY_IS_NOT_ACTIVE'
-
 
488
                    ];
-
 
489
                }
-
 
490
 
-
 
491
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
492
                $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
-
 
493
 
-
 
494
                //print_r($companyUser); exit;
-
 
495
 
-
 
496
 
-
 
497
                if (!$companyUser || $companyUser->status != CompanyUser::STATUS_ACCEPTED) {
-
 
498
                    return [
-
 
499
                        'success'   => false,
-
 
500
                        'data'   => 'ERROR_UNAUTHORIZED'
-
 
501
                    ];
-
 
502
                }
-
 
503
            }
-
 
504
 
-
 
505
            if ($groupId) {
-
 
506
                $groupMapper = GroupMapper::getInstance($this->adapter);
-
 
507
                $group = $groupMapper->fetchOneByUuidAndNetworkId($groupId, $currentUser->network_id);
-
 
508
 
-
 
509
                if (!$group) {
-
 
510
                    return [
-
 
511
                        'success'   => false,
-
 
512
                        'data'   => 'ERROR_GROUP_NOT_FOUND'
-
 
513
                    ];
-
 
514
                }
-
 
515
 
-
 
516
                if ($group->status != Group::STATUS_ACTIVE) {
-
 
517
                    return [
-
 
518
                        'success'   => false,
-
 
519
                        'data'   => 'ERROR_GROUP_IS_NOT_ACTIVE'
-
 
520
                    ];
-
 
521
                }
-
 
522
 
-
 
523
                $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
-
 
524
                $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
-
 
525
                if (!$groupMember || !in_array($groupMember->status, [GroupMember::STATUS_ACCEPTED, GroupMember::STATUS_AUTO_JOIN])) {
-
 
526
                    return [
-
 
527
                        'success'   => false,
-
 
528
                        'data'   => 'ERROR_UNAUTHORIZED'
-
 
529
                    ];
-
 
530
                }
-
 
531
            }
-
 
532
 
-
 
533
            $feed->network_id   = $currentUser->network_id;
-
 
534
            $feed->company_id   = $company ? $company->id : null;
-
 
535
            $feed->group_id     = $group ? $group->id : null;
-
 
536
            $feed->user_id      = $currentUser->id;
-
 
537
 
-
 
538
            if ($companyId) {
-
 
539
                $feed->type = Feed::TYPE_COMPANY;
-
 
540
            } else if ($groupId) {
-
 
541
                $feed->type = Feed::TYPE_GROUP;
-
 
542
            } else {
-
 
543
                $feed->type = Feed::TYPE_UPDATE;
-
 
544
            }
-
 
545
 
-
 
546
            $posted_or_shared   = $dataPost['posted_or_shared'];
-
 
547
            if ($posted_or_shared != Feed::POSTED && $posted_or_shared != Feed::SHARED) {
-
 
548
                return [
-
 
549
                    'success'   => false,
-
 
550
                    'data'      => 'ERROR_SUPPLY_VALID_SHARING_STATUS'
-
 
551
                ];
-
 
552
            }
-
 
553
            $feed->posted_or_shared = $posted_or_shared;
-
 
554
            $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
555
 
-
 
556
            $shared_with = isset($dataPost['shared_with']) ? $dataPost['shared_with'] : Feed::SHARE_WITH_PUBLIC;
-
 
557
            if ($shared_with != Feed::SHARE_WITH_PUBLIC && $shared_with != Feed::SHARE_WITH_CONNECTIONS) {
-
 
558
                return [
-
 
559
                    'status' => false,
-
 
560
                    'error' => 'ERROR_SUPPLY_VALID_SHARING_WITH_TYPE',
-
 
561
                ];
-
 
562
            }
-
 
563
 
-
 
564
            $feed->shared_with = $shared_with;
-
 
565
            if (Feed::SHARED == $feed->posted_or_shared) {
-
 
566
                $shared_feed_id     = empty($dataPost['shared_feed_id']) ? 0 : $dataPost['shared_feed_id'];
-
 
567
 
-
 
568
 
-
 
569
                $sharedFeed = $feedMapper->fetchOneByIdAndNetworkId($shared_feed_id, $currentUser->network_id);
-
 
570
                if (!$sharedFeed) {
-
 
571
                    return [
-
 
572
                        'status' => false,
-
 
573
                        'error' => 'ERROR_POST_SHARE',
-
 
574
                    ];
-
 
575
                }
-
 
576
 
-
 
577
                $feed->shared_feed_id       = $sharedFeed->id;
-
 
578
                $feed->shared_company_id    = $sharedFeed->shared_company_id;
-
 
579
                $feed->shared_group_id      = $sharedFeed->shared_group_id;
-
 
580
                $feed->shared_job_id        = $sharedFeed->shared_job_id;
-
 
581
            } else {
-
 
582
                $sharedFeed = null;
-
 
583
            }
-
 
584
 
-
 
585
            $feed->status = Feed::STATUS_PUBLISHED;
-
 
586
            $feed->total_comments    = 0;
-
 
587
            $feed->total_shared     = 0;
-
 
588
 
-
 
589
 
-
 
590
            $files = $this->getRequest()->getFiles()->toArray();
-
 
591
            $file_type = '';
-
 
592
 
-
 
593
            $encoding = $this->params()->fromRoute('encoding');
-
 
594
            if ($encoding == 'base64') {
-
 
595
 
-
 
596
 
-
 
597
                $fileBase64Name = $this->params()->fromPost('file_base64_name');
-
 
598
                $fileBase64Content = $this->params()->fromPost('file_base64_content');
-
 
599
 
-
 
600
                if ($fileBase64Name && $fileBase64Content) {
-
 
601
 
-
 
602
                    try {
-
 
603
                        $fileBase64Content = base64_decode($fileBase64Content);
-
 
604
                        if ($fileBase64Content) {
-
 
605
                            $feed_filename      = $this->normalizeString($fileBase64Name);
-
 
606
                            $feed_tmp_filename = 'data' . DIRECTORY_SEPARATOR . 'tmp';
-
 
607
                            if (!file_exists($feed_tmp_filename)) {
-
 
608
                                mkdir($feed_tmp_filename, 0755, true);
-
 
609
                            }
-
 
610
 
-
 
611
 
-
 
612
 
-
 
613
                            $feed_tmp_filename = 'data' . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . $feed_filename;
-
 
614
                            file_put_contents($feed_tmp_filename, $fileBase64Content);
-
 
615
 
-
 
616
 
-
 
617
 
-
 
618
                            $mime_type = mime_content_type($feed_tmp_filename);
-
 
619
                            //echo '$mime_type = '. $mime_type; exit;
-
 
620
 
-
 
621
 
-
 
622
                            if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
-
 
623
                                $file_type = Feed::FILE_TYPE_IMAGE;
-
 
624
                            } else if ($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
-
 
625
                                $file_type = Feed::FILE_TYPE_VIDEO;
-
 
626
                            } else if ($mime_type == 'application/pdf') {
-
 
627
                                $file_type = Feed::FILE_TYPE_DOCUMENT;
-
 
628
                            }
-
 
629
                        }
-
 
630
                    } catch (\Exception $e) {
-
 
631
                    }
-
 
632
                }
-
 
633
            } else {
-
 
634
 
-
 
635
                if (isset($files['file']) && empty($files['file']['error'])) {
-
 
636
                    $feed_tmp_filename  = $files['file']['tmp_name'];
-
 
637
                    $feed_filename      = $this->normalizeString($files['file']['name']);
-
 
638
 
-
 
639
                    $mime_type = mime_content_type($feed_tmp_filename);
-
 
640
 
-
 
641
 
-
 
642
                    if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
-
 
643
                        $file_type = Feed::FILE_TYPE_IMAGE;
-
 
644
                    } else if ($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
-
 
645
                        $file_type = Feed::FILE_TYPE_VIDEO;
-
 
646
                    } else if ($mime_type == 'application/pdf') {
-
 
647
                        $file_type = Feed::FILE_TYPE_DOCUMENT;
-
 
648
                    }
-
 
649
                }
-
 
650
            }
-
 
651
 
-
 
652
 
-
 
653
            $result = $feedMapper->insert($feed);
-
 
654
            if ($result) {
-
 
655
 
-
 
656
                if ($sharedFeed && $sharedFeed->type == Feed::TYPE_UPDATE) {
-
 
657
 
-
 
658
 
-
 
659
                    $userMapper = UserMapper::getInstance($this->adapter);
-
 
660
                    $ownerFeed = $userMapper->fetchOne($sharedFeed->user_id);
-
 
661
 
-
 
662
                    $notification = new Notification();
-
 
663
                    $notification->type     = Notification::TYPE_SHARE_MY_FEED;
-
 
664
                    $notification->read     = Notification::NO;
-
 
665
                    $notification->user_id  = $ownerFeed->id;
-
 
666
                    $notification->feed_id = $feed->id;
-
 
667
                    $notification->message  = 'LABEL_SHARE_MY_FEED';
-
 
668
                    $notification->url      = $this->url()->fromRoute('dashboard', ['feed' => $sharedFeed->uuid]);
-
 
669
 
-
 
670
                    $notificationMapper = NotificationMapper::getInstance($this->adapter);
-
 
671
                    $notificationMapper->insert($notification);
-
 
672
 
-
 
673
                    $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
-
 
674
                    $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
-
 
675
 
-
 
676
                    if ($userNotification && $userNotification->share_my_feed) {
-
 
677
                        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
-
 
678
                        $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_SHARE_MY_FEED, $currentUser->network_id);
-
 
679
 
-
 
680
                        if ($emailTemplate) {
-
 
681
                            $arrayCont = [
-
 
682
                                'firstname'             => $currentUser->first_name,
-
 
683
                                'lastname'              => $currentUser->last_name,
-
 
684
                                'other_user_firstname'  => $ownerFeed->first_name,
-
 
685
                                'other_user_lastname'   => $ownerFeed->last_name,
-
 
686
                                'company_name'          => '',
-
 
687
                                'group_name'            => '',
-
 
688
                                'content'               => '',
-
 
689
                                'code'                  => '',
-
 
690
                                'link'                  => $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid], ['force_canonical' => true])
-
 
691
                            ];
-
 
692
 
-
 
693
                            $email = new QueueEmail($this->adapter);
-
 
694
                            $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
-
 
695
                        }
-
 
696
                    }
-
 
697
                }
-
 
698
 
-
 
699
 
-
 
700
                $feed = $feedMapper->fetchOne($feed->id);
-
 
701
 
-
 
702
                if ($file_type == Feed::FILE_TYPE_DOCUMENT) {
-
 
703
                    try {
-
 
704
                        $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
-
 
705
                        if (!file_exists($target_path)) {
-
 
706
                            mkdir($target_path, 0755);
-
 
707
                        }
-
 
708
 
-
 
709
                        $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
-
 
710
 
-
 
711
                        if ($encoding == 'base64') {
-
 
712
                            $resultMoveOrRename = rename($feed_tmp_filename, $full_filename);
-
 
713
                        } else {
-
 
714
                            $resultMoveOrRename = move_uploaded_file($feed_tmp_filename, $full_filename);
-
 
715
                        }
-
 
716
 
-
 
717
                        if ($resultMoveOrRename) {
-
 
718
 
-
 
719
                            $feed->file_type = $file_type;
-
 
720
                            $feed->file_name = basename($feed_filename);
-
 
721
                            $feedMapper->update($feed);
-
 
722
                        } else {
-
 
723
                            error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
-
 
724
                        }
-
 
725
                    } catch (\Throwable $e) {
-
 
726
                        error_log($e->getTraceAsString());
-
 
727
                    }
-
 
728
                }
-
 
729
                if ($file_type == Feed::FILE_TYPE_IMAGE) {
-
 
730
                    try {
-
 
731
                        $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
-
 
732
                        if (!file_exists($target_path)) {
-
 
733
                            mkdir($target_path, 0755);
-
 
734
                        }
-
 
735
 
-
 
736
                        list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.feed_image_size']);
-
 
737
 
-
 
738
                        $feed_filename = substr($feed_filename, 0, strrpos($feed_filename, '.'))  . '.png';
-
 
739
                        //$crop_to_dimensions = false;
-
 
740
                        //if(Image::uploadImage($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height, $crop_to_dimensions )) {
-
 
741
                        if (Image::uploadImageWithoutCompletationSize($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height)) {
-
 
742
 
-
 
743
                            $feed->file_type = $file_type;
-
 
744
                            $feed->file_name = basename($feed_filename);
-
 
745
                            $feedMapper->update($feed);
-
 
746
                        }
-
 
747
                    } catch (\Throwable $e) {
-
 
748
                        error_log($e->getTraceAsString());
-
 
749
                    }
-
 
750
                }
-
 
751
                if ($file_type == Feed::FILE_TYPE_VIDEO) {
-
 
752
                    try {
-
 
753
                        $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
-
 
754
                        if (!file_exists($target_path)) {
-
 
755
                            mkdir($target_path, 0755);
-
 
756
                        }
-
 
757
 
-
 
758
                        $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
-
 
759
 
-
 
760
                        if ($encoding == 'base64') {
-
 
761
                            $resultMoveOrRename = rename($feed_tmp_filename, $full_filename);
-
 
762
                        } else {
-
 
763
                            $resultMoveOrRename = move_uploaded_file($feed_tmp_filename, $full_filename);
-
 
764
                        }
-
 
765
 
-
 
766
                        if ($resultMoveOrRename) {
-
 
767
 
-
 
768
 
-
 
769
                            // $getFromSecound = 2;
-
 
770
 
-
 
771
                            //extracción del cover
-
 
772
                            $generateFileName = substr($feed_filename, 0, strrpos($feed_filename, '.'));
-
 
773
                            $generateFile =  $target_path  . DIRECTORY_SEPARATOR . $generateFileName .  '.jpg';
-
 
774
 
-
 
775
                            $cmd        = "/usr/bin/ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width,duration  $full_filename";
-
 
776
                            //error_log($cmd);
-
 
777
 
-
 
778
                            $response   = trim(shell_exec($cmd));
-
 
779
 
-
 
780
                            $source_duration = 0;
-
 
781
 
-
 
782
 
-
 
783
                            $lines = explode("\n", $response);
-
 
784
                            foreach ($lines as $line) {
-
 
785
                                $line = trim(strtolower($line));
-
 
786
                                if (strpos($line, 'duration') !== false) {
-
 
787
                                    $values = explode('=', $line);
-
 
788
                                    $source_duration = intval(str_replace($values[1], '#', ''), 10);
-
 
789
                                }
-
 
790
                            }
-
 
791
 
-
 
792
 
-
 
793
                            if ($source_duration == 0) {
-
 
794
                                $second_extract = '00:00:02';
-
 
795
                            } else {
-
 
796
                                if ($source_duration > 10) {
-
 
797
                                    $second_extract = '00:00:10';
-
 
798
                                } else {
-
 
799
                                    $second_extract = '00:00:02';
-
 
800
                                }
-
 
801
                            }
-
 
802
 
-
 
803
                            $imageSize = $this->config['leaderslinked.image_sizes.feed_image_size'];
-
 
804
 
-
 
805
                            //$cmd = "/usr/bin/ffmpeg -y -i $full_filename  -pix_fmt yuvj422p -deinterlace -an -ss $second_extract -f mjpeg -t 1 -r 1 -y -s $imageSize $generateFile";
-
 
806
                            $cmd = "/usr/bin/ffmpeg -y -i $full_filename  -pix_fmt yuvj422p -an -ss $second_extract -f mjpeg -t 1 -r 1 -y -s $imageSize $generateFile";
-
 
807
                            //error_log($cmd);
-
 
808
 
-
 
809
 
-
 
810
                            exec($cmd);
-
 
811
 
-
 
812
 
-
 
813
                            $feed->file_type = $file_type;
-
 
814
                            $feed->file_name = basename($feed_filename);
-
 
815
                            $feed->file_image_preview = basename($generateFile);
-
 
816
                            $feedMapper->update($feed);
-
 
817
 
-
 
818
                            $videoConvert = new VideoConvert();
-
 
819
                            $videoConvert->filename = $full_filename;
-
 
820
                            $videoConvert->type = VideoConvert::TYPE_FEED;
-
 
821
 
-
 
822
                            $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
-
 
823
                            $videoConvertMapper->insert($videoConvert);
-
 
824
                        } else {
-
 
825
                            error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
-
 
826
                        }
-
 
827
                    } catch (\Throwable $e) {
-
 
828
                        error_log($e->getTraceAsString());
-
 
829
                    }
-
 
830
                }
-
 
831
 
-
 
832
 
-
 
833
                return [
-
 
834
                    'success'   => true,
-
 
835
                    'data'   => $this->renderFeed($feed->id, $now)
-
 
836
                ];
-
 
837
            } else {
-
 
838
                return [
-
 
839
                    'success'   => false,
-
 
840
                    'data'   => $feedMapper->getError()
-
 
841
                ];
-
 
842
            }
-
 
843
        } else {
-
 
844
            $messages = [];
-
 
845
            $form_messages = (array) $form->getMessages();
-
 
846
            foreach ($form_messages  as $fieldname => $field_messages) {
-
 
847
                $messages[$fieldname] = array_values($field_messages);
-
 
848
            }
-
 
849
 
-
 
850
            return [
-
 
851
                'success'   => false,
-
 
852
                'data'   => $messages
-
 
853
            ];
-
 
854
        }
-
 
855
    }
-
 
856
 
-
 
857
    public function likeAction()
-
 
858
    {
-
 
859
        $id = $this->params()->fromRoute('id');
-
 
860
 
-
 
861
        $request = $this->getRequest();
-
 
862
        if ($request->isPost()) {
-
 
Línea 863... Línea -...
863
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
864
            $currentUser = $currentUserPlugin->getUser();
-
 
865
 
-
 
866
 
-
 
867
            $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
868
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
-
 
869
            if (!$feed) {
-
 
870
                $response = [
-
 
871
                    'success' => false,
-
 
Línea 872... Línea -...
872
                    'data' => 'ERROR_POST_NOT_FOUND'
-
 
873
                ];
-
 
Línea -... Línea 459...
-
 
459
    //     $form->setData($dataPost);
-
 
460
    //     if ($form->isValid()) {
-
 
461
 
-
 
462
 
-
 
463
 
-
 
464
 
-
 
465
    //         $hydrator = new ObjectPropertyHydrator();
874
                return new JsonModel($response);
466
    //         $feed = new Feed();
-
 
467
    //         $hydrator->hydrate($dataPost, $feed);
-
 
468
 
-
 
469
    //         $company = null;
-
 
470
    //         $group = null;
-
 
471
 
-
 
472
    //         if ($companyId) {
-
 
473
    //             $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
474
    //             $company = $companyMapper->fetchOneByUuidAndNetworkId($companyId, $currentUser->network_id);
-
 
475
 
-
 
476
 
-
 
477
    //             if (!$company) {
-
 
478
    //                 return [
875
            }
479
    //                     'success'   => false,
876
 
480
    //                     'data'   => 'ERROR_COMPANY_NOT_FOUND'
877
            $likeMapper = LikeMapper::getInstance($this->adapter);
481
    //                 ];
-
 
482
    //             }
878
            $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
483
 
-
 
484
    //             if ($company->status != Company::STATUS_ACTIVE) {
-
 
485
    //                 return [
-
 
486
    //                     'success'   => false,
-
 
487
    //                     'data'   => 'ERROR_COMPANY_IS_NOT_ACTIVE'
879
 
488
    //                 ];
-
 
489
    //             }
-
 
490
 
-
 
491
    //             $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
492
    //             $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
-
 
493
 
-
 
494
    //             //print_r($companyUser); exit;
-
 
495
 
-
 
496
 
880
            if ($like) {
497
    //             if (!$companyUser || $companyUser->status != CompanyUser::STATUS_ACCEPTED) {
-
 
498
    //                 return [
-
 
499
    //                     'success'   => false,
-
 
500
    //                     'data'   => 'ERROR_UNAUTHORIZED'
-
 
501
    //                 ];
-
 
502
    //             }
-
 
503
    //         }
-
 
504
 
-
 
505
    //         if ($groupId) {
-
 
506
    //             $groupMapper = GroupMapper::getInstance($this->adapter);
-
 
507
    //             $group = $groupMapper->fetchOneByUuidAndNetworkId($groupId, $currentUser->network_id);
-
 
508
 
-
 
509
    //             if (!$group) {
-
 
510
    //                 return [
-
 
511
    //                     'success'   => false,
-
 
512
    //                     'data'   => 'ERROR_GROUP_NOT_FOUND'
-
 
513
    //                 ];
-
 
514
    //             }
-
 
515
 
881
                $response = [
516
    //             if ($group->status != Group::STATUS_ACTIVE) {
-
 
517
    //                 return [
-
 
518
    //                     'success'   => false,
-
 
519
    //                     'data'   => 'ERROR_GROUP_IS_NOT_ACTIVE'
-
 
520
    //                 ];
-
 
521
    //             }
-
 
522
 
882
                    'success' => false,
523
    //             $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
-
 
524
    //             $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
-
 
525
    //             if (!$groupMember || !in_array($groupMember->status, [GroupMember::STATUS_ACCEPTED, GroupMember::STATUS_AUTO_JOIN])) {
-
 
526
    //                 return [
-
 
527
    //                     'success'   => false,
-
 
528
    //                     'data'   => 'ERROR_UNAUTHORIZED'
-
 
529
    //                 ];
883
                    'data' => 'ERROR_DUPLICATE_ACTION'
530
    //             }
-
 
531
    //         }
-
 
532
 
-
 
533
    //         $feed->network_id   = $currentUser->network_id;
-
 
534
    //         $feed->company_id   = $company ? $company->id : null;
-
 
535
    //         $feed->group_id     = $group ? $group->id : null;
-
 
536
    //         $feed->user_id      = $currentUser->id;
-
 
537
 
-
 
538
    //         if ($companyId) {
-
 
539
    //             $feed->type = Feed::TYPE_COMPANY;
-
 
540
    //         } else if ($groupId) {
-
 
541
    //             $feed->type = Feed::TYPE_GROUP;
-
 
542
    //         } else {
-
 
543
    //             $feed->type = Feed::TYPE_UPDATE;
-
 
544
    //         }
-
 
545
 
-
 
546
    //         $posted_or_shared   = $dataPost['posted_or_shared'];
-
 
547
    //         if ($posted_or_shared != Feed::POSTED && $posted_or_shared != Feed::SHARED) {
-
 
548
    //             return [
-
 
549
    //                 'success'   => false,
-
 
550
    //                 'data'      => 'ERROR_SUPPLY_VALID_SHARING_STATUS'
-
 
551
    //             ];
-
 
552
    //         }
-
 
553
    //         $feed->posted_or_shared = $posted_or_shared;
-
 
554
    //         $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
555
 
-
 
556
    //         $shared_with = isset($dataPost['shared_with']) ? $dataPost['shared_with'] : Feed::SHARE_WITH_PUBLIC;
-
 
557
    //         if ($shared_with != Feed::SHARE_WITH_PUBLIC && $shared_with != Feed::SHARE_WITH_CONNECTIONS) {
884
                ];
558
    //             return [
-
 
559
    //                 'status' => false,
-
 
560
    //                 'error' => 'ERROR_SUPPLY_VALID_SHARING_WITH_TYPE',
-
 
561
    //             ];
-
 
562
    //         }
-
 
563
 
-
 
564
    //         $feed->shared_with = $shared_with;
-
 
565
    //         if (Feed::SHARED == $feed->posted_or_shared) {
-
 
566
    //             $shared_feed_id     = empty($dataPost['shared_feed_id']) ? 0 : $dataPost['shared_feed_id'];
-
 
567
 
-
 
568
 
-
 
569
    //             $sharedFeed = $feedMapper->fetchOneByIdAndNetworkId($shared_feed_id, $currentUser->network_id);
-
 
570
    //             if (!$sharedFeed) {
-
 
571
    //                 return [
-
 
572
    //                     'status' => false,
-
 
573
    //                     'error' => 'ERROR_POST_SHARE',
-
 
574
    //                 ];
-
 
575
    //             }
-
 
576
 
-
 
577
    //             $feed->shared_feed_id       = $sharedFeed->id;
-
 
578
    //             $feed->shared_company_id    = $sharedFeed->shared_company_id;
885
                return new JsonModel($response);
579
    //             $feed->shared_group_id      = $sharedFeed->shared_group_id;
-
 
580
    //             $feed->shared_job_id        = $sharedFeed->shared_job_id;
-
 
581
    //         } else {
-
 
582
    //             $sharedFeed = null;
-
 
583
    //         }
-
 
584
 
-
 
585
    //         $feed->status = Feed::STATUS_PUBLISHED;
-
 
586
    //         $feed->total_comments    = 0;
-
 
587
    //         $feed->total_shared     = 0;
-
 
588
 
-
 
589
 
-
 
590
    //         $files = $this->getRequest()->getFiles()->toArray();
-
 
591
    //         $file_type = '';
-
 
592
 
-
 
593
    //         $encoding = $this->params()->fromRoute('encoding');
-
 
594
    //         if ($encoding == 'base64') {
-
 
595
 
-
 
596
 
-
 
597
    //             $fileBase64Name = $this->params()->fromPost('file_base64_name');
-
 
598
    //             $fileBase64Content = $this->params()->fromPost('file_base64_content');
-
 
599
 
-
 
600
    //             if ($fileBase64Name && $fileBase64Content) {
-
 
601
 
-
 
602
    //                 try {
-
 
603
    //                     $fileBase64Content = base64_decode($fileBase64Content);
-
 
604
    //                     if ($fileBase64Content) {
-
 
605
    //                         $feed_filename      = $this->normalizeString($fileBase64Name);
-
 
606
    //                         $feed_tmp_filename = 'data' . DIRECTORY_SEPARATOR . 'tmp';
-
 
607
    //                         if (!file_exists($feed_tmp_filename)) {
-
 
608
    //                             mkdir($feed_tmp_filename, 0755, true);
-
 
609
    //                         }
-
 
610
 
-
 
611
 
-
 
612
 
-
 
613
    //                         $feed_tmp_filename = 'data' . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . $feed_filename;
-
 
614
    //                         file_put_contents($feed_tmp_filename, $fileBase64Content);
-
 
615
 
-
 
616
 
-
 
617
 
-
 
618
    //                         $mime_type = mime_content_type($feed_tmp_filename);
-
 
619
    //                         //echo '$mime_type = '. $mime_type; exit;
-
 
620
 
-
 
621
 
-
 
622
    //                         if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
-
 
623
    //                             $file_type = Feed::FILE_TYPE_IMAGE;
-
 
624
    //                         } else if ($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
-
 
625
    //                             $file_type = Feed::FILE_TYPE_VIDEO;
-
 
626
    //                         } else if ($mime_type == 'application/pdf') {
-
 
627
    //                             $file_type = Feed::FILE_TYPE_DOCUMENT;
-
 
628
    //                         }
-
 
629
    //                     }
-
 
630
    //                 } catch (\Exception $e) {
-
 
631
    //                 }
-
 
632
    //             }
-
 
633
    //         } else {
-
 
634
 
-
 
635
    //             if (isset($files['file']) && empty($files['file']['error'])) {
-
 
636
    //                 $feed_tmp_filename  = $files['file']['tmp_name'];
-
 
637
    //                 $feed_filename      = $this->normalizeString($files['file']['name']);
-
 
638
 
-
 
639
    //                 $mime_type = mime_content_type($feed_tmp_filename);
-
 
640
 
-
 
641
 
-
 
642
    //                 if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
-
 
643
    //                     $file_type = Feed::FILE_TYPE_IMAGE;
-
 
644
    //                 } else if ($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
-
 
645
    //                     $file_type = Feed::FILE_TYPE_VIDEO;
-
 
646
    //                 } else if ($mime_type == 'application/pdf') {
-
 
647
    //                     $file_type = Feed::FILE_TYPE_DOCUMENT;
-
 
648
    //                 }
-
 
649
    //             }
-
 
650
    //         }
-
 
651
 
-
 
652
 
-
 
653
    //         $result = $feedMapper->insert($feed);
-
 
654
    //         if ($result) {
-
 
655
 
-
 
656
    //             if ($sharedFeed && $sharedFeed->type == Feed::TYPE_UPDATE) {
-
 
657
 
-
 
658
 
-
 
659
    //                 $userMapper = UserMapper::getInstance($this->adapter);
-
 
660
    //                 $ownerFeed = $userMapper->fetchOne($sharedFeed->user_id);
-
 
661
 
-
 
662
    //                 $notification = new Notification();
-
 
663
    //                 $notification->type     = Notification::TYPE_SHARE_MY_FEED;
-
 
664
    //                 $notification->read     = Notification::NO;
-
 
665
    //                 $notification->user_id  = $ownerFeed->id;
-
 
666
    //                 $notification->feed_id = $feed->id;
-
 
667
    //                 $notification->message  = 'LABEL_SHARE_MY_FEED';
-
 
668
    //                 $notification->url      = $this->url()->fromRoute('dashboard', ['feed' => $sharedFeed->uuid]);
-
 
669
 
-
 
670
    //                 $notificationMapper = NotificationMapper::getInstance($this->adapter);
-
 
671
    //                 $notificationMapper->insert($notification);
-
 
672
 
-
 
673
    //                 $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
-
 
674
    //                 $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
-
 
675
 
-
 
676
    //                 if ($userNotification && $userNotification->share_my_feed) {
-
 
677
    //                     $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
-
 
678
    //                     $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_SHARE_MY_FEED, $currentUser->network_id);
-
 
679
 
-
 
680
    //                     if ($emailTemplate) {
-
 
681
    //                         $arrayCont = [
-
 
682
    //                             'firstname'             => $currentUser->first_name,
-
 
683
    //                             'lastname'              => $currentUser->last_name,
-
 
684
    //                             'other_user_firstname'  => $ownerFeed->first_name,
-
 
685
    //                             'other_user_lastname'   => $ownerFeed->last_name,
-
 
686
    //                             'company_name'          => '',
-
 
687
    //                             'group_name'            => '',
-
 
688
    //                             'content'               => '',
-
 
689
    //                             'code'                  => '',
-
 
690
    //                             'link'                  => $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid], ['force_canonical' => true])
-
 
691
    //                         ];
-
 
692
 
-
 
693
    //                         $email = new QueueEmail($this->adapter);
-
 
694
    //                         $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
-
 
695
    //                     }
-
 
696
    //                 }
-
 
697
    //             }
-
 
698
 
-
 
699
 
-
 
700
    //             $feed = $feedMapper->fetchOne($feed->id);
-
 
701
 
-
 
702
    //             if ($file_type == Feed::FILE_TYPE_DOCUMENT) {
-
 
703
    //                 try {
-
 
704
    //                     $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
-
 
705
    //                     if (!file_exists($target_path)) {
-
 
706
    //                         mkdir($target_path, 0755);
-
 
707
    //                     }
-
 
708
 
-
 
709
    //                     $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
-
 
710
 
-
 
711
    //                     if ($encoding == 'base64') {
-
 
712
    //                         $resultMoveOrRename = rename($feed_tmp_filename, $full_filename);
-
 
713
    //                     } else {
-
 
714
    //                         $resultMoveOrRename = move_uploaded_file($feed_tmp_filename, $full_filename);
-
 
715
    //                     }
-
 
716
 
-
 
717
    //                     if ($resultMoveOrRename) {
-
 
718
 
-
 
719
    //                         $feed->file_type = $file_type;
-
 
720
    //                         $feed->file_name = basename($feed_filename);
-
 
721
    //                         $feedMapper->update($feed);
-
 
722
    //                     } else {
-
 
723
    //                         error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
-
 
724
    //                     }
-
 
725
    //                 } catch (\Throwable $e) {
-
 
726
    //                     error_log($e->getTraceAsString());
-
 
727
    //                 }
-
 
728
    //             }
-
 
729
    //             if ($file_type == Feed::FILE_TYPE_IMAGE) {
-
 
730
    //                 try {
-
 
731
    //                     $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
-
 
732
    //                     if (!file_exists($target_path)) {
-
 
733
    //                         mkdir($target_path, 0755);
-
 
734
    //                     }
-
 
735
 
-
 
736
    //                     list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.feed_image_size']);
-
 
737
 
-
 
738
    //                     $feed_filename = substr($feed_filename, 0, strrpos($feed_filename, '.'))  . '.png';
-
 
739
    //                     //$crop_to_dimensions = false;
-
 
740
    //                     //if(Image::uploadImage($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height, $crop_to_dimensions )) {
-
 
741
    //                     if (Image::uploadImageWithoutCompletationSize($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height)) {
-
 
742
 
-
 
743
    //                         $feed->file_type = $file_type;
-
 
744
    //                         $feed->file_name = basename($feed_filename);
-
 
745
    //                         $feedMapper->update($feed);
-
 
746
    //                     }
-
 
747
    //                 } catch (\Throwable $e) {
-
 
748
    //                     error_log($e->getTraceAsString());
-
 
749
    //                 }
-
 
750
    //             }
-
 
751
    //             if ($file_type == Feed::FILE_TYPE_VIDEO) {
-
 
752
    //                 try {
-
 
753
    //                     $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
-
 
754
    //                     if (!file_exists($target_path)) {
-
 
755
    //                         mkdir($target_path, 0755);
-
 
756
    //                     }
-
 
757
 
-
 
758
    //                     $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
-
 
759
 
-
 
760
    //                     if ($encoding == 'base64') {
-
 
761
    //                         $resultMoveOrRename = rename($feed_tmp_filename, $full_filename);
-
 
762
    //                     } else {
-
 
763
    //                         $resultMoveOrRename = move_uploaded_file($feed_tmp_filename, $full_filename);
-
 
764
    //                     }
-
 
765
 
-
 
766
    //                     if ($resultMoveOrRename) {
-
 
767
 
-
 
768
 
-
 
769
    //                         // $getFromSecound = 2;
-
 
770
 
-
 
771
    //                         //extracción del cover
-
 
772
    //                         $generateFileName = substr($feed_filename, 0, strrpos($feed_filename, '.'));
-
 
773
    //                         $generateFile =  $target_path  . DIRECTORY_SEPARATOR . $generateFileName .  '.jpg';
-
 
774
 
-
 
775
    //                         $cmd        = "/usr/bin/ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width,duration  $full_filename";
-
 
776
    //                         //error_log($cmd);
-
 
777
 
-
 
778
    //                         $response   = trim(shell_exec($cmd));
-
 
779
 
-
 
780
    //                         $source_duration = 0;
-
 
781
 
-
 
782
 
-
 
783
    //                         $lines = explode("\n", $response);
-
 
784
    //                         foreach ($lines as $line) {
-
 
785
    //                             $line = trim(strtolower($line));
-
 
786
    //                             if (strpos($line, 'duration') !== false) {
-
 
787
    //                                 $values = explode('=', $line);
-
 
788
    //                                 $source_duration = intval(str_replace($values[1], '#', ''), 10);
-
 
789
    //                             }
-
 
790
    //                         }
-
 
791
 
-
 
792
 
-
 
793
    //                         if ($source_duration == 0) {
-
 
794
    //                             $second_extract = '00:00:02';
-
 
795
    //                         } else {
-
 
796
    //                             if ($source_duration > 10) {
-
 
797
    //                                 $second_extract = '00:00:10';
-
 
798
    //                             } else {
-
 
799
    //                                 $second_extract = '00:00:02';
-
 
800
    //                             }
-
 
801
    //                         }
-
 
802
 
-
 
803
    //                         $imageSize = $this->config['leaderslinked.image_sizes.feed_image_size'];
-
 
804
 
-
 
805
    //                         //$cmd = "/usr/bin/ffmpeg -y -i $full_filename  -pix_fmt yuvj422p -deinterlace -an -ss $second_extract -f mjpeg -t 1 -r 1 -y -s $imageSize $generateFile";
-
 
806
    //                         $cmd = "/usr/bin/ffmpeg -y -i $full_filename  -pix_fmt yuvj422p -an -ss $second_extract -f mjpeg -t 1 -r 1 -y -s $imageSize $generateFile";
-
 
807
    //                         //error_log($cmd);
-
 
808
 
-
 
809
 
-
 
810
    //                         exec($cmd);
-
 
811
 
-
 
812
 
-
 
813
    //                         $feed->file_type = $file_type;
-
 
814
    //                         $feed->file_name = basename($feed_filename);
-
 
815
    //                         $feed->file_image_preview = basename($generateFile);
-
 
816
    //                         $feedMapper->update($feed);
-
 
817
 
-
 
818
    //                         $videoConvert = new VideoConvert();
-
 
819
    //                         $videoConvert->filename = $full_filename;
-
 
820
    //                         $videoConvert->type = VideoConvert::TYPE_FEED;
-
 
821
 
-
 
822
    //                         $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
-
 
823
    //                         $videoConvertMapper->insert($videoConvert);
-
 
824
    //                     } else {
-
 
825
    //                         error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
-
 
826
    //                     }
-
 
827
    //                 } catch (\Throwable $e) {
-
 
828
    //                     error_log($e->getTraceAsString());
-
 
829
    //                 }
-
 
830
    //             }
-
 
831
 
-
 
832
 
-
 
833
    //             return [
-
 
834
    //                 'success'   => true,
-
 
835
    //                 'data'   => $this->renderFeed($feed->id, $now)
-
 
836
    //             ];
-
 
837
    //         } else {
-
 
838
    //             return [
-
 
839
    //                 'success'   => false,
-
 
840
    //                 'data'   => $feedMapper->getError()
-
 
841
    //             ];
-
 
842
    //         }
-
 
843
    //     } else {
-
 
844
    //         $messages = [];
-
 
845
    //         $form_messages = (array) $form->getMessages();
-
 
846
    //         foreach ($form_messages  as $fieldname => $field_messages) {
-
 
847
    //             $messages[$fieldname] = array_values($field_messages);
-
 
848
    //         }
-
 
849
 
Línea -... Línea 850...
-
 
850
    //         return [
-
 
851
    //             'success'   => false,
886
            }
852
    //             'data'   => $messages
Línea -... Línea 853...
-
 
853
    //         ];
-
 
854
    //     }
-
 
855
    // }
887
 
856
 
Línea -... Línea 857...
-
 
857
    // public function likeAction()
-
 
858
    // {
-
 
859
    //     $id = $this->params()->fromRoute('id');
-
 
860
 
-
 
861
    //     $request = $this->getRequest();
-
 
862
    //     if ($request->isPost()) {
-
 
863
    //         $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
864
    //         $currentUser = $currentUserPlugin->getUser();
-
 
865
 
Línea 888... Línea 866...
888
            $like = new Like();
866
 
-
 
867
    //         $feedMapper = FeedMapper::getInstance($this->adapter);
Línea -... Línea 868...
-
 
868
    //         $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
-
 
869
    //         if (!$feed) {
-
 
870
    //             $response = [
-
 
871
    //                 'success' => false,
-
 
872
    //                 'data' => 'ERROR_POST_NOT_FOUND'
-
 
873
    //             ];
-
 
874
    //             return new JsonModel($response);
Línea -... Línea 875...
-
 
875
    //         }
889
            $like->user_id = $currentUser->id;
876
 
890
            $like->feed_id = $feed->id;
877
    //         $likeMapper = LikeMapper::getInstance($this->adapter);
-
 
878
    //         $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
Línea 891... Línea 879...
891
            $like->relational = Like::RELATIONAL_FEED;
879
 
892
 
-
 
893
            if ($likeMapper->insert($like)) {
-
 
894
 
-
 
895
                $likes = $likeMapper->fetchCountLikeByFeedId($feed->id);
-
 
896
 
-
 
897
 
-
 
Línea 898... Línea -...
898
 
-
 
899
                if ($feed->type == Feed::TYPE_UPDATE) {
880
    //         if ($like) {
Línea 900... Línea -...
900
 
-
 
901
 
-
 
Línea 902... Línea -...
902
                    $userMapper = UserMapper::getInstance($this->adapter);
-
 
903
                    $ownerFeed = $userMapper->fetchOne($feed->user_id);
-
 
904
 
-
 
Línea 905... Línea 881...
905
                    $notification = new Notification();
881
    //             $response = [
906
                    $notification->type     = Notification::TYPE_LIKE_MY_FEED;
-
 
907
                    $notification->read     = Notification::NO;
-
 
908
                    $notification->user_id  = $feed->user_id;
-
 
909
                    $notification->feed_id  = $feed->id;
-
 
910
                    $notification->message  = 'LABEL_LIKE_MY_FEED';
-
 
911
                    $notification->url      = $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid]);
-
 
912
 
-
 
913
                    $notificationMapper = NotificationMapper::getInstance($this->adapter);
-
 
914
                    $notificationMapper->insert($notification);
-
 
915
 
-
 
916
                    $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
-
 
Línea 917... Línea -...
917
                    $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
-
 
918
 
-
 
919
                    if ($userNotification && $userNotification->like_my_feed) {
-
 
920
                        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
-
 
921
                        $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_LIKE_MY_FEED, $currentUser->network_id);
-
 
Línea -... Línea 882...
-
 
882
    //                 'success' => false,
-
 
883
    //                 'data' => 'ERROR_DUPLICATE_ACTION'
Línea -... Línea 884...
-
 
884
    //             ];
-
 
885
    //             return new JsonModel($response);
-
 
886
    //         }
-
 
887
 
-
 
888
    //         $like = new Like();
-
 
889
    //         $like->user_id = $currentUser->id;
-
 
890
    //         $like->feed_id = $feed->id;
Línea -... Línea 891...
-
 
891
    //         $like->relational = Like::RELATIONAL_FEED;
-
 
892
 
Línea -... Línea 893...
-
 
893
    //         if ($likeMapper->insert($like)) {
-
 
894
 
Línea -... Línea 895...
-
 
895
    //             $likes = $likeMapper->fetchCountLikeByFeedId($feed->id);
-
 
896
 
-
 
897
 
Línea -... Línea 898...
-
 
898
 
-
 
899
    //             if ($feed->type == Feed::TYPE_UPDATE) {
-
 
900
 
-
 
901
 
-
 
902
    //                 $userMapper = UserMapper::getInstance($this->adapter);
-
 
903
    //                 $ownerFeed = $userMapper->fetchOne($feed->user_id);
-
 
904
 
-
 
905
    //                 $notification = new Notification();
-
 
906
    //                 $notification->type     = Notification::TYPE_LIKE_MY_FEED;
-
 
907
    //                 $notification->read     = Notification::NO;
-
 
908
    //                 $notification->user_id  = $feed->user_id;
-
 
909
    //                 $notification->feed_id  = $feed->id;
Línea -... Línea 910...
-
 
910
    //                 $notification->message  = 'LABEL_LIKE_MY_FEED';
-
 
911
    //                 $notification->url      = $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid]);
-
 
912
 
-
 
913
    //                 $notificationMapper = NotificationMapper::getInstance($this->adapter);
-
 
914
    //                 $notificationMapper->insert($notification);
Línea 922... Línea -...
922
 
-
 
923
                        if ($emailTemplate) {
-
 
924
                            $arrayCont = [
-
 
925
                                'firstname'             => $currentUser->first_name,
-
 
926
                                'lastname'              => $currentUser->last_name,
-
 
927
                                'other_user_firstname'  => $ownerFeed->first_name,
-
 
928
                                'other_user_lastname'   => $ownerFeed->last_name,
-
 
929
                                'company_name'          => '',
-
 
930
                                'group_name'            => '',
-
 
931
                                'content'               => '',
-
 
932
                                'code'                  => '',
-
 
933
                                'link'                  => $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid], ['force_canonical' => true])
-
 
934
                            ];
-
 
935
 
-
 
Línea 936... Línea -...
936
                            $email = new QueueEmail($this->adapter);
-
 
937
                            $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
-
 
938
                        }
-
 
939
                    }
-
 
940
                }
-
 
941
 
-
 
Línea 942... Línea -...
942
 
-
 
943
 
-
 
944
 
-
 
Línea 945... Línea -...
945
 
-
 
946
 
-
 
947
 
-
 
948
 
-
 
Línea 949... Línea -...
949
                $response = [
-
 
950
                    'success' => true,
-
 
951
                    'data' => [
-
 
952
                        'likes' => $likes
-
 
953
                    ]
-
 
954
                ];
-
 
955
            } else {
-
 
956
                $response = [
-
 
957
                    'success' => false,
-
 
Línea 958... Línea -...
958
                    'data' => $likeMapper->getError()
-
 
959
                ];
-
 
Línea 960... Línea -...
960
            }
-
 
961
            return new JsonModel($response);
-
 
962
        }
-
 
963
 
-
 
964
        $response = [
-
 
965
            'success' => false,
-
 
966
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
Línea -... Línea 915...
-
 
915
 
-
 
916
    //                 $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
-
 
917
    //                 $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
967
        ];
918
 
-
 
919
    //                 if ($userNotification && $userNotification->like_my_feed) {
-
 
920
    //                     $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
-
 
921
    //                     $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_LIKE_MY_FEED, $currentUser->network_id);
-
 
922
 
-
 
923
    //                     if ($emailTemplate) {
968
        return new JsonModel($response);
924
    //                         $arrayCont = [
-
 
925
    //                             'firstname'             => $currentUser->first_name,
-
 
926
    //                             'lastname'              => $currentUser->last_name,
-
 
927
    //                             'other_user_firstname'  => $ownerFeed->first_name,
-
 
928
    //                             'other_user_lastname'   => $ownerFeed->last_name,
Línea -... Línea 929...
-
 
929
    //                             'company_name'          => '',
-
 
930
    //                             'group_name'            => '',
-
 
931
    //                             'content'               => '',
-
 
932
    //                             'code'                  => '',
-
 
933
    //                             'link'                  => $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid], ['force_canonical' => true])
-
 
934
    //                         ];
Línea -... Línea 935...
-
 
935
 
-
 
936
    //                         $email = new QueueEmail($this->adapter);
-
 
937
    //                         $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
-
 
938
    //                     }
-
 
939
    //                 }
-
 
940
    //             }
-
 
941
 
-
 
942
 
-
 
943
 
-
 
944
 
-
 
945
 
-
 
946
 
-
 
947
 
-
 
948
 
-
 
949
    //             $response = [
-
 
950
    //                 'success' => true,
-
 
951
    //                 'data' => [
-
 
952
    //                     'likes' => $likes
-
 
953
    //                 ]
-
 
954
    //             ];
-
 
955
    //         } else {
-
 
956
    //             $response = [
-
 
957
    //                 'success' => false,
-
 
958
    //                 'data' => $likeMapper->getError()
-
 
959
    //             ];
-
 
960
    //         }
-
 
961
    //         return new JsonModel($response);
-
 
962
    //     }
-
 
963
 
-
 
964
    //     $response = [
-
 
965
    //         'success' => false,
-
 
966
    //         'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
967
    //     ];
-
 
968
    //     return new JsonModel($response);
969
    }
969
    // }
970
 
970
 
971
    public function unlikeAction()
971
    // public function unlikeAction()
972
    {
972
    // {
973
        $id = $this->params()->fromRoute('id');
973
    //     $id = $this->params()->fromRoute('id');
974
 
974
 
975
        $request = $this->getRequest();
975
    //     $request = $this->getRequest();
976
        if ($request->isPost()) {
976
    //     if ($request->isPost()) {
977
            $currentUserPlugin = $this->plugin('currentUserPlugin');
977
    //         $currentUserPlugin = $this->plugin('currentUserPlugin');
978
            $currentUser = $currentUserPlugin->getUser();
978
    //         $currentUser = $currentUserPlugin->getUser();
979
 
979
 
980
            $feedMapper = FeedMapper::getInstance($this->adapter);
980
    //         $feedMapper = FeedMapper::getInstance($this->adapter);
981
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
981
    //         $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
982
            if (!$feed) {
982
    //         if (!$feed) {
Línea 983... Línea 983...
983
                $response = [
983
    //             $response = [
984
                    'success' => false,
984
    //                 'success' => false,
985
                    'data' => 'ERROR_POST_NOT_FOUND'
985
    //                 'data' => 'ERROR_POST_NOT_FOUND'
986
                ];
986
    //             ];
987
                return new JsonModel($response);
987
    //             return new JsonModel($response);
988
            }
988
    //         }
Línea 989... Línea 989...
989
 
989
 
990
            $likeMapper = LikeMapper::getInstance($this->adapter);
990
    //         $likeMapper = LikeMapper::getInstance($this->adapter);
991
            $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
991
    //         $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
992
 
992