Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 16324 Rev 16701
Línea 36... Línea 36...
36
use Laminas\Paginator\Adapter\DbSelect;
36
use Laminas\Paginator\Adapter\DbSelect;
37
use Laminas\Paginator\Paginator;
37
use Laminas\Paginator\Paginator;
38
use LeadersLinked\Mapper\UserMapper;
38
use LeadersLinked\Mapper\UserMapper;
39
use LeadersLinked\Library\Functions;
39
use LeadersLinked\Library\Functions;
40
use LeadersLinked\Model\Company;
40
use LeadersLinked\Model\Company;
41
use LeadersLinked\Model\UserType;
-
 
Línea 42... Línea 41...
42
 
41
 
43
use LeadersLinked\Mapper\TopicMapper;
42
use LeadersLinked\Mapper\TopicMapper;
44
use LeadersLinked\Model\HighPerformanceTeamsGroupsMembers;
43
use LeadersLinked\Model\HighPerformanceTeamsGroupsMembers;
45
use LeadersLinked\Model\HighPerformanceTeamsGroups;
44
use LeadersLinked\Model\HighPerformanceTeamsGroups;
46
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMembersMapper;
45
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMembersMapper;
47
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMapper;
46
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMapper;
48
use LeadersLinked\Mapper\UtilMapper;
47
use LeadersLinked\Mapper\FastSurveyMapper;
-
 
48
use LeadersLinked\Model\FastSurvey;
Línea 49... Línea 49...
49
use LeadersLinked\Mapper\NetworkMapper;
49
use LeadersLinked\Form\FastSurvey\FastSurveyForm;
50
 
50
 
51
class FeedController extends AbstractActionController
51
class FeedController extends AbstractActionController
52
{
52
{
Línea 176... Línea 176...
176
            $dataPost = $request->getPost()->toArray();
176
            $dataPost = $request->getPost()->toArray();
177
            $form = new CommentForm();
177
            $form = new CommentForm();
178
            $form->setData($dataPost);
178
            $form->setData($dataPost);
Línea 179... Línea 179...
179
 
179
 
180
            if ($form->isValid()) {
-
 
181
                $utilMapper = UtilMapper::getInstance($this->adapter);
180
            if ($form->isValid()) {
Línea 182... Línea 181...
182
                $now = $utilMapper->getDatebaseNow();
181
                $now = $feedMapper->getDatebaseNow();
183
 
182
 
Línea 184... Línea 183...
184
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
183
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
Línea 283... Línea 282...
283
            $dataPost = $request->getPost()->toArray();
282
            $dataPost = $request->getPost()->toArray();
284
            $form = new CommentAnswerForm();
283
            $form = new CommentAnswerForm();
285
            $form->setData($dataPost);
284
            $form->setData($dataPost);
Línea 286... Línea 285...
286
 
285
 
287
            if ($form->isValid()) {
-
 
288
 
-
 
289
                $utilMapper = UtilMapper::getInstance($this->adapter);
286
            if ($form->isValid()) {
Línea 290... Línea 287...
290
                $now = $utilMapper->getDatebaseNow();
287
                $now = $feedMapper->getDatebaseNow();
291
 
288
 
Línea 292... Línea 289...
292
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
289
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
Línea 491... Línea 488...
491
        return new JsonModel($response);
488
        return new JsonModel($response);
492
    }
489
    }
Línea 493... Línea 490...
493
 
490
 
494
    public function addAction()
491
    public function addAction()
495
    {
-
 
496
        $utilMapper = UtilMapper::getInstance($this->adapter);
-
 
-
 
492
    {
Línea 497... Línea 493...
497
        $now = $utilMapper->getDatebaseNow();
493
        
498
 
494
 
-
 
495
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
496
        $currentUser = $currentUserPlugin->getUser();
-
 
497
        
-
 
498
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
499
        $currentNetwork = $currentNetworkPlugin->getNetwork();
499
        $currentUserPlugin = $this->plugin('currentUserPlugin');
500
        
500
        $currentUser = $currentUserPlugin->getUser();
501
        
501
        $currentCompany = $currentUserPlugin->getCompany();
502
        $currentCompany = $currentUserPlugin->getCompany();
Línea 502... Línea 503...
502
        $myt_id =  $this->params()->fromRoute('myt_id');
503
        $myt_id =  $this->params()->fromRoute('myt_id');
503
        $hptg_uuid =  $this->params()->fromRoute('hptg_id');
504
        $hptg_uuid =  $this->params()->fromRoute('hptg_id');
Línea 504... Línea 505...
504
 
505
 
-
 
506
        $request = $this->getRequest();
505
        $request = $this->getRequest();
507
        if ($request->isPost()) {
-
 
508
 
506
        if ($request->isPost()) {
509
 
507
 
510
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
-
 
511
            $feed_content_type = empty($dataPost['feed_content_type']) ? '' :  $dataPost['feed_content_type'];
508
 
512
            
509
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
513
            
510
 
514
            if( $feed_content_type == Feed::FILE_TYPE_FAST_SURVEY) {
511
            $form = new CreateFeedForm($this->adapter);
515
                
-
 
516
                $form = new FastSurveyForm();
512
 
517
                $form->setData($dataPost);
513
            $form->setData($dataPost);
518
                
514
 
519
                if ($form->isValid()) {
-
 
520
                    
-
 
521
                    $dataPost = (array) $form->getData();
515
            if ($form->isValid()) {
522
                    
516
 
523
                    $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
524
                    $companyUser = $companyUserMapper->fetchOwnerByCompanyId($currentCompany->id);
517
 
525
                    $now = $companyUserMapper->getDatebaseNow();
518
                $companyMapper = CompanyMapper::getInstance($this->adapter);
526
                    
-
 
527
                    
-
 
528
                    $hydrator = new ObjectPropertyHydrator();
-
 
529
                    $fastSurvey = new FastSurvey();
519
                $company = $companyMapper->fetchOne($currentCompany->id);
530
                    $hydrator->hydrate($dataPost, $fastSurvey);
520
 
-
 
521
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
531
                    
-
 
532
                    $fastSurvey->network_id = $currentNetwork->id;
522
                $owner = $companyUserMapper->fetchOwnerByCompanyId($company->id);
533
                    $fastSurvey->company_id = $currentCompany->id;
-
 
534
                    $fastSurvey->user_id = $companyUser->id;
523
 
535
                    $fastSurvey->status = FastSurvey::STATUS_ACTIVE;
-
 
536
                    
-
 
537
                    $fastSurveyMapper = FastSurveyMapper::getInstance($this->adapter);
524
                $dataPost['priority'] =  isset($dataPost['priority']) ? Feed::PRIORITY_URGENT  : '';
538
                    $result = $fastSurveyMapper->insert($fastSurvey);
-
 
539
                    if ($result) {
-
 
540
                        $feed = new Feed();
-
 
541
                        $feed->company_id = $currentCompany->id;
-
 
542
                        $feed->network_id = $currentNetwork->id;
-
 
543
                        $feed->user_id = $companyUser->id;
525
 
544
                        $feed->fast_survey_id = $fastSurvey->id;
-
 
545
                        $feed->type = Feed::TYPE_COMPANY;
-
 
546
                        $feed->file_type = Feed::FILE_TYPE_FAST_SURVEY;
-
 
547
                        $feed->posted_or_shared = Feed::POSTED;
-
 
548
                        $feed->status = Feed::STATUS_PUBLISHED;
526
 
549
                        $feed->title = '';
-
 
550
                        $feed->description = '';
-
 
551
                        $feed->total_comments   = 0;
527
                $hydrator = new ObjectPropertyHydrator();
552
                        $feed->total_shared     = 0;
-
 
553
                        $feed->shared_with      = Feed::SHARE_WITH_CONNECTIONS;
528
                $feed = new Feed();
554
                        
-
 
555
                        $feedMapper = FeedMapper::getInstance($this->adapter);
529
                $hydrator->hydrate($dataPost, $feed);
556
                        $feedMapper->insert($feed);
530
                if ($hptg_uuid) {
557
                        
-
 
558
                        $this->logger->info('Se agrego la encuesta rápida : ' . $fastSurvey->question, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
-
 
559
                        
531
 
560
                        $response = [
532
 
561
                            'success'   => true,
533
 
562
                            'data'   => $this->renderFeed($feed->id, $now)
534
                    $highPerformanceTeamsGroupsMapper = HighPerformanceTeamsGroupsMapper::getInstance($this->adapter);
563
                        ];
535
                    $highPerformanceTeamsGroups = $highPerformanceTeamsGroupsMapper->fetchOneByUuid($hptg_uuid);
564
                        
536
 
565
                        
537
                    if (!$highPerformanceTeamsGroups) {
-
 
538
                        $data = [
-
 
539
                            'success' => false,
566
                    } else {
540
                            'data' => 'ERROR_RECORD_NOT_FOUND'
567
                        $response = [
541
                        ];
568
                            'success' => false,
542
 
-
 
543
                        return new JsonModel($data);
569
                            'data' => $fastSurveyMapper->getError()
544
                    }
570
                        ];
545
 
571
                    }
-
 
572
                    
-
 
573
                    return new JsonModel($response);
546
                    if ($highPerformanceTeamsGroups->status != HighPerformanceTeamsGroups::STATUS_ACTIVE) {
574
                } else {
547
 
575
                    $messages = [];
548
                        return new JsonModel([
576
                    $form_messages = (array) $form->getMessages();
-
 
577
                    foreach ($form_messages as $fieldname => $field_messages) {
-
 
578
                        
-
 
579
                        $messages[$fieldname] = array_values($field_messages);
-
 
580
                    }
-
 
581
                    
-
 
582
                    return new JsonModel([
-
 
583
                        'success' => false,
-
 
584
                        'data' => $messages
-
 
585
                    ]);
-
 
586
                }
-
 
587
            }  else {
-
 
588
           
-
 
589
            
-
 
590
            
-
 
591
                
-
 
592
                $form = new CreateFeedForm($this->adapter);
-
 
593
    
-
 
594
                $form->setData($dataPost);
-
 
595
    
-
 
596
                if ($form->isValid()) {
-
 
597
    
-
 
598
    
-
 
599
                    $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
600
                    $now = $companyMapper->getDatebaseNow();
-
 
601
                    
-
 
602
                    
-
 
603
                    $company = $companyMapper->fetchOne($currentCompany->id);
-
 
604
    
-
 
605
                    $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
606
                    $owner = $companyUserMapper->fetchOwnerByCompanyId($company->id);
-
 
607
    
-
 
608
                    $dataPost['priority'] =  isset($dataPost['priority']) ? Feed::PRIORITY_URGENT  : '';
-
 
609
    
-
 
610
    
-
 
611
                    $hydrator = new ObjectPropertyHydrator();
-
 
612
                    $feed = new Feed();
549
                            'success' => false,
613
                    $hydrator->hydrate($dataPost, $feed);
550
                            'data' => 'ERROR_UNAUTHORIZED'
614
                    if ($hptg_uuid) {
-
 
615
    
551
                        ]);
616
    
-
 
617
    
-
 
618
                        $highPerformanceTeamsGroupsMapper = HighPerformanceTeamsGroupsMapper::getInstance($this->adapter);
552
                    }
619
                        $highPerformanceTeamsGroups = $highPerformanceTeamsGroupsMapper->fetchOneByUuid($hptg_uuid);
-
 
620
    
-
 
621
                        if (!$highPerformanceTeamsGroups) {
553
 
622
                            $data = [
554
                    $highPerformanceTeamsGroupsMemberMapper = HighPerformanceTeamsGroupsMembersMapper::getInstance($this->adapter);
623
                                'success' => false,
-
 
624
                                'data' => 'ERROR_RECORD_NOT_FOUND'
-
 
625
                            ];
555
                    $highPerformanceTeamsGroupsMember = $highPerformanceTeamsGroupsMemberMapper->fetchOneByGroupIdAndUserId($highPerformanceTeamsGroups->id, $currentUser->id);
626
    
556
                    if ($highPerformanceTeamsGroupsMember) {
627
                            return new JsonModel($data);
557
                        if ($highPerformanceTeamsGroupsMember->status == HighPerformanceTeamsGroupsMembers::STATUS_ACCEPTED || $highPerformanceTeamsGroupsMember->status == HighPerformanceTeamsGroupsMembers::STATUS_ADDED_BY_ADMIN) {
628
                        }
558
                            $id =  $highPerformanceTeamsGroups->id;
629
    
559
                        } else {
630
                        if ($highPerformanceTeamsGroups->status != HighPerformanceTeamsGroups::STATUS_ACTIVE) {
560
 
631
    
561
                            return new JsonModel([
-
 
562
                                'success' => false,
632
                            return new JsonModel([
563
                                'data' => 'ERROR_UNAUTHORIZED'
633
                                'success' => false,
-
 
634
                                'data' => 'ERROR_UNAUTHORIZED'
564
                            ]);
635
                            ]);
-
 
636
                        }
565
                        }
637
    
566
                    } else {
638
                        $highPerformanceTeamsGroupsMemberMapper = HighPerformanceTeamsGroupsMembersMapper::getInstance($this->adapter);
567
 
-
 
568
                        return new JsonModel([
-
 
-
 
639
                        $highPerformanceTeamsGroupsMember = $highPerformanceTeamsGroupsMemberMapper->fetchOneByGroupIdAndUserId($highPerformanceTeamsGroups->id, $currentUser->id);
569
                            'success' => false,
640
                        if ($highPerformanceTeamsGroupsMember) {
570
                            'data' => 'ERROR_RECORD_NOT_FOUND'
641
                            if ($highPerformanceTeamsGroupsMember->status == HighPerformanceTeamsGroupsMembers::STATUS_ACCEPTED || $highPerformanceTeamsGroupsMember->status == HighPerformanceTeamsGroupsMembers::STATUS_ADDED_BY_ADMIN) {
571
                        ]);
642
                                $id =  $highPerformanceTeamsGroups->id;
572
                    }
643
                            } else {
573
                    $topic_uuid =  $this->params()->fromRoute('topic_id');
644
    
574
                    if ($topic_uuid) {
645
                                return new JsonModel([
-
 
646
                                    'success' => false,
575
                        $topicMapper = TopicMapper::getInstance($this->adapter);
647
                                    'data' => 'ERROR_UNAUTHORIZED'
576
                        $topic = $topicMapper->fetchOneByUuid($topic_uuid);
648
                                ]);
577
                        if ($topic) {
649
                            }
578
                            $feed->topic_id = $topic->id;
650
                        } else {
579
                        } else {
651
    
580
                            return new JsonModel([
-
 
581
                                'success' => false,
-
 
582
                                'data' => 'ERROR_RECORD_NOT_FOUND'
-
 
583
                            ]);
652
                            return new JsonModel([
584
                        }
-
 
585
                    }
-
 
586
 
-
 
587
 
-
 
588
                    $feed->network_id       = $currentUser->network_id;
-
 
589
                    $feed->company_id       = $currentCompany->id;
-
 
590
                    $feed->group_id         = null;
-
 
591
                    $feed->high_performance_group_id = $id;
653
                                'success' => false,
592
                    $feed->user_id          = $currentUser->id;
654
                                'data' => 'ERROR_RECORD_NOT_FOUND'
593
                    $feed->type             = Feed::TYPE_HPTG;
655
                            ]);
594
                    $feed->posted_or_shared = Feed::POSTED;
-
 
595
                    $feed->shared_with      = Feed::SHARE_WITH_CONNECTIONS;
-
 
596
                } else if ($myt_id) {
-
 
597
                    $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
598
                    $myt  = $feedMapper->fetchOneByUuid($myt_id);
-
 
599
                    $feed->network_id       = $currentUser->network_id;
-
 
600
                    $feed->company_id       = $currentCompany->id;
-
 
601
                    $feed->group_id         = null;
-
 
602
                    $feed->user_id          = $owner->user_id;
-
 
603
                    $feed->myt_id           = $myt->id;
-
 
604
                    $feed->related_feed     = $myt->id;
-
 
605
                    $feed->type             = Feed::TYPE_MYT_ANSWER;
-
 
606
                    $feed->posted_or_shared = Feed::POSTED;
-
 
607
                    $feed->shared_with      = Feed::SHARE_WITH_PUBLIC;
-
 
608
                } else {
-
 
609
                    $feed->network_id       = $currentUser->network_id;
-
 
610
                    $feed->company_id       = $currentCompany->id;
-
 
611
                    $feed->group_id         = null;
-
 
612
                    $feed->user_id          = $owner->user_id;
-
 
613
                    $feed->type             = Feed::TYPE_COMPANY;
-
 
614
                    $feed->posted_or_shared = Feed::POSTED;
-
 
615
                    $feed->shared_with      = Feed::SHARE_WITH_CONNECTIONS;
-
 
616
                }
-
 
617
 
-
 
618
 
-
 
619
 
-
 
620
 
-
 
621
                $feed->total_comments   = 0;
-
 
622
                $feed->total_shared     = 0;
-
 
623
 
-
 
624
 
-
 
625
                $files = $this->getRequest()->getFiles()->toArray();
-
 
626
                $file_type = '';
-
 
627
                if (isset($files['file']) && empty($files['file']['error'])) {
-
 
628
                    $feed_tmp_filename  = $files['file']['tmp_name'];
-
 
629
                    $feed_filename      = $this->normalizeString($files['file']['name']);
-
 
630
 
-
 
631
                    $mime_type = mime_content_type($feed_tmp_filename);
-
 
632
                    if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
-
 
633
                        $file_type = Feed::FILE_TYPE_IMAGE;
-
 
634
                    } else if ($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
-
 
635
                        $file_type = Feed::FILE_TYPE_VIDEO;
-
 
636
                    } else if ($mime_type == 'application/pdf') {
-
 
637
                        $file_type = Feed::FILE_TYPE_DOCUMENT;
-
 
638
                    }
-
 
639
                }
-
 
640
 
-
 
641
 
-
 
642
                $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
643
                $result = $feedMapper->insert($feed);
-
 
644
 
-
 
645
 
-
 
646
                if ($result) {
-
 
647
 
-
 
648
                    $feed = $feedMapper->fetchOne($feed->id);
-
 
649
 
-
 
650
                    if ($file_type == Feed::FILE_TYPE_DOCUMENT) {
-
 
651
                        try {
-
 
652
                            $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
-
 
653
                            if (!file_exists($target_path)) {
-
 
654
                                mkdir($target_path, 0755);
656
                        }
655
                            }
-
 
656
 
657
                        $topic_uuid =  $this->params()->fromRoute('topic_id');
657
                            $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
-
 
658
                            $result = move_uploaded_file($feed_tmp_filename, $full_filename);
-
 
659
                            if ($result) {
658
                        if ($topic_uuid) {
-
 
659
                            $topicMapper = TopicMapper::getInstance($this->adapter);
-
 
660
                            $topic = $topicMapper->fetchOneByUuid($topic_uuid);
660
 
661
                            if ($topic) {
-
 
662
                                $feed->topic_id = $topic->id;
661
                                $feed->file_type = $file_type;
663
                            } else {
662
                                $feed->file_name = basename($feed_filename);
-
 
663
                                $feedMapper->update($feed);
-
 
664
                            } else {
664
                                return new JsonModel([
-
 
665
                                    'success' => false,
-
 
666
                                    'data' => 'ERROR_RECORD_NOT_FOUND'
-
 
667
                                ]);
-
 
668
                            }
-
 
669
                        }
-
 
670
    
-
 
671
    
-
 
672
                        $feed->network_id       = $currentUser->network_id;
-
 
673
                        $feed->company_id       = $currentCompany->id;
-
 
674
                        $feed->group_id         = null;
-
 
675
                        $feed->high_performance_group_id = $id;
-
 
676
                        $feed->user_id          = $currentUser->id;
-
 
677
                        $feed->type             = Feed::TYPE_HPTG;
-
 
678
                        $feed->posted_or_shared = Feed::POSTED;
-
 
679
                        $feed->shared_with      = Feed::SHARE_WITH_CONNECTIONS;
-
 
680
                    } else if ($myt_id) {
-
 
681
                        $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
682
                        $myt  = $feedMapper->fetchOneByUuid($myt_id);
-
 
683
                        $feed->network_id       = $currentUser->network_id;
-
 
684
                        $feed->company_id       = $currentCompany->id;
-
 
685
                        $feed->group_id         = null;
-
 
686
                        $feed->user_id          = $owner->user_id;
-
 
687
                        $feed->myt_id           = $myt->id;
-
 
688
                        $feed->related_feed     = $myt->id;
-
 
689
                        $feed->type             = Feed::TYPE_MYT_ANSWER;
-
 
690
                        $feed->posted_or_shared = Feed::POSTED;
-
 
691
                        $feed->shared_with      = Feed::SHARE_WITH_PUBLIC;
-
 
692
                    } else {
-
 
693
                        $feed->network_id       = $currentUser->network_id;
-
 
694
                        $feed->company_id       = $currentCompany->id;
665
                                error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
695
                        $feed->group_id         = null;
-
 
696
                        $feed->user_id          = $owner->user_id;
-
 
697
                        $feed->type             = Feed::TYPE_COMPANY;
-
 
698
                        $feed->posted_or_shared = Feed::POSTED;
-
 
699
                        $feed->shared_with      = Feed::SHARE_WITH_CONNECTIONS;
666
                            }
700
                    }
667
                        } catch (\Throwable $e) {
701
    
-
 
702
    
-
 
703
    
668
                            error_log($e->getTraceAsString());
704
    
669
                        }
705
                    $feed->total_comments   = 0;
670
                    }
706
                    $feed->total_shared     = 0;
671
                    if ($file_type == Feed::FILE_TYPE_IMAGE) {
707
    
672
                        try {
-
 
673
                            $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
708
    
674
                            if (!file_exists($target_path)) {
709
                    $files = $this->getRequest()->getFiles()->toArray();
675
                                mkdir($target_path, 0755);
-
 
676
                            }
710
                    $file_type = '';
677
 
711
                    if (isset($files['file']) && empty($files['file']['error'])) {
678
                            list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.feed_image_size']);
712
                        $feed_tmp_filename  = $files['file']['tmp_name'];
679
 
713
                        $feed_filename      = $this->normalizeString($files['file']['name']);
680
                            $feed_filename = substr($feed_filename, 0, strrpos($feed_filename, '.'))  . '.png';
714
    
681
                            $crop_to_dimensions = false;
-
 
682
                            if (Image::uploadImage($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height, $crop_to_dimensions)) {
715
                        $mime_type = mime_content_type($feed_tmp_filename);
683
                                $feed->file_type = $file_type;
716
                        if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
684
                                $feed->file_name = basename($feed_filename);
717
                            $file_type = Feed::FILE_TYPE_IMAGE;
685
                                $feedMapper->update($feed);
718
                        } else if ($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
-
 
719
                            $file_type = Feed::FILE_TYPE_VIDEO;
-
 
720
                        } else if ($mime_type == 'application/pdf') {
-
 
721
                            $file_type = Feed::FILE_TYPE_DOCUMENT;
-
 
722
                        }
-
 
723
                    }
-
 
724
    
-
 
725
    
-
 
726
                    $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
727
                    $result = $feedMapper->insert($feed);
-
 
728
    
686
                            }
729
    
687
                        } catch (\Throwable $e) {
730
                    if ($result) {
688
                            error_log($e->getTraceAsString());
731
    
689
                        }
732
                        $feed = $feedMapper->fetchOne($feed->id);
690
                    }
733
    
-
 
734
                        if ($file_type == Feed::FILE_TYPE_DOCUMENT) {
-
 
735
                            try {
-
 
736
                                $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
-
 
737
                                if (!file_exists($target_path)) {
-
 
738
                                    mkdir($target_path, 0755);
-
 
739
                                }
-
 
740
    
-
 
741
                                $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
-
 
742
                                $result = move_uploaded_file($feed_tmp_filename, $full_filename);
-
 
743
                                if ($result) {
-
 
744
    
-
 
745
                                    $feed->file_type = $file_type;
-
 
746
                                    $feed->file_name = basename($feed_filename);
-
 
747
                                    $feedMapper->update($feed);
691
                    if ($file_type == Feed::FILE_TYPE_VIDEO) {
748
                                } else {
-
 
749
                                    error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
-
 
750
                                }
-
 
751
                            } catch (\Throwable $e) {
-
 
752
                                error_log($e->getTraceAsString());
-
 
753
                            }
-
 
754
                        }
-
 
755
                        if ($file_type == Feed::FILE_TYPE_IMAGE) {
692
                        try {
756
                            try {
-
 
757
                                $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
-
 
758
                                if (!file_exists($target_path)) {
-
 
759
                                    mkdir($target_path, 0755);
-
 
760
                                }
-
 
761
    
-
 
762
                                list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.feed_image_size']);
-
 
763
    
-
 
764
                                $feed_filename = substr($feed_filename, 0, strrpos($feed_filename, '.'))  . '.png';
-
 
765
                                $crop_to_dimensions = false;
-
 
766
                                if (Image::uploadImage($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height, $crop_to_dimensions)) {
-
 
767
                                    $feed->file_type = $file_type;
-
 
768
                                    $feed->file_name = basename($feed_filename);
-
 
769
                                    $feedMapper->update($feed);
-
 
770
                                }
-
 
771
                            } catch (\Throwable $e) {
-
 
772
                                error_log($e->getTraceAsString());
-
 
773
                            }
-
 
774
                        }
-
 
775
                        if ($file_type == Feed::FILE_TYPE_VIDEO) {
-
 
776
                            try {
693
                            $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
777
                                $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
694
                            if (!file_exists($target_path)) {
778
                                if (!file_exists($target_path)) {
695
                                mkdir($target_path, 0755);
779
                                    mkdir($target_path, 0755);
696
                            }
780
                                }
697
 
781
    
698
                            $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
782
                                $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
699
 
783
    
700
                            $result = move_uploaded_file($feed_tmp_filename, $full_filename);
784
                                $result = move_uploaded_file($feed_tmp_filename, $full_filename);
701
                            if ($result) {
785
                                if ($result) {
702
 
786
    
703
                                $size = $this->config['leaderslinked.image_sizes.feed_image_size'];
787
                                    $size = $this->config['leaderslinked.image_sizes.feed_image_size'];
704
                                $getFromSecound = 2;
788
                                    $getFromSecound = 2;
705
 
789
    
706
                                //extracción del cover
790
                                    //extracción del cover
707
                                $generateFileName = substr($feed_filename, 0, strrpos($feed_filename, '.'));
791
                                    $generateFileName = substr($feed_filename, 0, strrpos($feed_filename, '.'));
708
                                $generateFile =  $target_path  . DIRECTORY_SEPARATOR . $generateFileName .  '.png';
792
                                    $generateFile =  $target_path  . DIRECTORY_SEPARATOR . $generateFileName .  '.png';
709
                                $cmd            = "/usr/bin/ffmpeg -i $full_filename -an -ss $getFromSecound -s $size $generateFile";
793
                                    $cmd            = "/usr/bin/ffmpeg -i $full_filename -an -ss $getFromSecound -s $size $generateFile";
710
                                exec($cmd);
794
                                    exec($cmd);
711
 
795
    
712
 
796
    
713
                                $feed->file_type = $file_type;
797
                                    $feed->file_type = $file_type;
714
                                $feed->file_name = basename($feed_filename);
798
                                    $feed->file_name = basename($feed_filename);
715
                                $feed->file_image_preview = basename($generateFile);
799
                                    $feed->file_image_preview = basename($generateFile);
716
                                $feedMapper->update($feed);
800
                                    $feedMapper->update($feed);
717
 
801
    
718
                                $videoConvert = new VideoConvert();
802
                                    $videoConvert = new VideoConvert();
719
                                $videoConvert->filename = $full_filename;
803
                                    $videoConvert->filename = $full_filename;
720
                                $videoConvert->type = VideoConvert::TYPE_FEED;
804
                                    $videoConvert->type = VideoConvert::TYPE_FEED;
-
 
805
    
-
 
806
                                    $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
-
 
807
                                    $videoConvertMapper->insert($videoConvert);
721
 
808
                                } else {
722
                                $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
-
 
723
                                $videoConvertMapper->insert($videoConvert);
-
 
724
                            } else {
809
                                    error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
-
 
810
                                }
-
 
811
                            } catch (\Throwable $e) {
-
 
812
                                error_log($e->getTraceAsString());
-
 
813
                            }
-
 
814
                        }
-
 
815
    
-
 
816
    
-
 
817
                        $response = [
-
 
818
                            'success'   => true,
-
 
819
                            'data'   => $this->renderFeed($feed->id, $now)
-
 
820
                        ];
725
                                error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
821
                    } else {
726
                            }
-
 
727
                        } catch (\Throwable $e) {
-
 
728
                            error_log($e->getTraceAsString());
-
 
729
                        }
-
 
730
                    }
-
 
731
 
-
 
732
 
822
                        $response = [
-
 
823
                            'success'   => false,
-
 
824
                            'data'   => $feedMapper->getError()
-
 
825
                        ];
-
 
826
                    }
-
 
827
                } else {
-
 
828
                    $messages = [];
733
                    $response = [
829
                    $form_messages = (array) $form->getMessages();
734
                        'success'   => true,
830
                    foreach ($form_messages  as $fieldname => $field_messages) {
735
                        'data'   => $this->renderFeed($feed->id, $now)
831
                        $messages[$fieldname] = array_values($field_messages);
736
                    ];
832
                    }
737
                } else {
833
    
738
                    $response = [
-
 
739
                        'success'   => false,
-
 
740
                        'data'   => $feedMapper->getError()
-
 
741
                    ];
-
 
742
                }
-
 
743
            } else {
-
 
744
                $messages = [];
-
 
745
                $form_messages = (array) $form->getMessages();
-
 
746
                foreach ($form_messages  as $fieldname => $field_messages) {
-
 
747
                    $messages[$fieldname] = array_values($field_messages);
-
 
748
                }
-
 
749
 
834
                    $response = [
750
                $response = [
835
                        'success'   => false,
751
                    'success'   => false,
836
                        'data'   => $messages
752
                    'data'   => $messages
837
                    ];
753
                ];
838
                }
Línea 764... Línea 849...
764
 
849
 
765
 
850
 
Línea 766... Línea -...
766
    public function timelineAction()
-
 
767
    {
-
 
-
 
851
    public function timelineAction()
-
 
852
    {
Línea 768... Línea 853...
768
 
853
 
769
        $utilMapper = UtilMapper::getInstance($this->adapter);
854
      
770
        $now = $utilMapper->getDatebaseNow();
855
       
Línea 791... Línea 876...
791
 
876
 
Línea 792... Línea 877...
792
            if ($hptg_uuid) {
877
            if ($hptg_uuid) {
-
 
878
 
-
 
879
 
793
 
880
                $highPerformanceTeamsGroupsMapper = HighPerformanceTeamsGroupsMapper::getInstance($this->adapter);
Línea 794... Línea 881...
794
 
881
                $now = $highPerformanceTeamsGroupsMapper->getDatebaseNow();
795
                $highPerformanceTeamsGroupsMapper = HighPerformanceTeamsGroupsMapper::getInstance($this->adapter);
882
                
796
                $highPerformanceTeamsGroups = $highPerformanceTeamsGroupsMapper->fetchOneByUuid($hptg_uuid);
883
                $highPerformanceTeamsGroups = $highPerformanceTeamsGroupsMapper->fetchOneByUuid($hptg_uuid);
Línea 865... Línea 952...
865
                        'data' => 'ERROR_RECORD_NOT_FOUND'
952
                        'data' => 'ERROR_RECORD_NOT_FOUND'
866
                    ]);
953
                    ]);
867
                }
954
                }
868
            } else if ($myt_id) {
955
            } else if ($myt_id) {
869
                $feedMapper = FeedMapper::getInstance($this->adapter);
956
                $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
957
                $now = $feedMapper->getDatebaseNow();
-
 
958
                
870
                $myt  = $feedMapper->fetchOneByUuid($myt_id);
959
                $myt  = $feedMapper->fetchOneByUuid($myt_id);
871
                $queryMapper = QueryMapper::getInstance($this->adapter);
960
                $queryMapper = QueryMapper::getInstance($this->adapter);
872
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
961
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
873
                $select->columns(['id']);
962
                $select->columns(['id']);
874
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
963
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
Línea 877... Línea 966...
877
                $select->where->and->equalTo('type', Feed::TYPE_MYT_ANSWER);
966
                $select->where->and->equalTo('type', Feed::TYPE_MYT_ANSWER);
878
                $select->order('added_on desc');
967
                $select->order('added_on desc');
879
            } else {
968
            } else {
Línea 880... Línea 969...
880
 
969
 
-
 
970
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
971
                $now = $queryMapper->getDatebaseNow();
881
                $queryMapper = QueryMapper::getInstance($this->adapter);
972
                
882
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
973
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
883
                $select->columns(['id']);
974
                $select->columns(['id']);
884
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
975
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
885
                $select->where->equalTo('company_id', $currentCompany->id);
976
                $select->where->equalTo('company_id', $currentCompany->id);
886
                $select->where->and->equalTo('type', Feed::TYPE_COMPANY);
977
                $select->where->and->equalTo('type', Feed::TYPE_COMPANY);
-
 
978
                $select->order('added_on desc');
-
 
979
                
-
 
980
                //echo $select->getSqlString($this->adapter->platform); exit;
887
                $select->order('added_on desc');
981
                
Línea 888... Línea 982...
888
            }
982
            }
Línea 928... Línea 1022...
928
        return new JsonModel($response);
1022
        return new JsonModel($response);
929
    }
1023
    }
Línea 930... Línea 1024...
930
 
1024
 
931
    public function oneFeedAction()
1025
    public function oneFeedAction()
932
    {
-
 
933
        $utilMapper = UtilMapper::getInstance($this->adapter);
-
 
-
 
1026
    {
-
 
1027
       
Línea 934... Línea 1028...
934
        $now = $utilMapper->getDatebaseNow();
1028
       
935
 
1029
 
936
 
1030
 
Línea 953... Línea 1047...
953
                return new JsonModel($data);
1047
                return new JsonModel($data);
954
            }
1048
            }
Línea 955... Línea 1049...
955
 
1049
 
956
            $items = [];
1050
            $items = [];
-
 
1051
            $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
1052
            $now = $feedMapper->getDatebaseNow();
957
            $feedMapper = FeedMapper::getInstance($this->adapter);
1053
            
Línea 958... Línea 1054...
958
            $feed  = $feedMapper->fetchOneByUuid($feed_uuid);
1054
            $feed  = $feedMapper->fetchOneByUuid($feed_uuid);
959
 
1055
 
960
            if (!$feed) {
1056
            if (!$feed) {
Línea 1142... Línea 1238...
1142
 
1238
 
1143
 
1239
 
1144
        $item = [
1240
        $item = [
1145
            'feed_unique' => uniqid(),
-
 
1146
            'feed_uuid' => $feed->uuid,
1241
            'feed_unique' => uniqid(),
1147
            'feed_delete_url' =>  $this->url()->fromRoute('feeds/delete',  $params),
-
 
1148
            'feed_content_type' => $feed->file_type ? $feed->file_type : '',
1242
            'feed_uuid' => $feed->uuid,
1149
            'feed_delete_url' => $this->url()->fromRoute('feeds/delete',  $params),
1243
            'feed_content_type' => $feed->file_type ? $feed->file_type : '',
1150
            'owner_url' =>  'https://' . $network->main_hostname . '/company/view/' . $company->uuid,
1244
            'owner_url' =>  'https://' . $network->main_hostname . '/company/view/' . $company->uuid,
1151
            'owner_image' => $this->url()->fromRoute('storage', ['code' => $company->uuid, 'type' => 'company', 'filename' => $company->image]),
1245
            'owner_image' => $this->url()->fromRoute('storage', ['code' => $company->uuid, 'type' => 'company', 'filename' => $company->image]),
-
 
1246
            'owner_name' => $company->name,
Línea -... Línea 1247...
-
 
1247
        ];
-
 
1248
        
1152
            'owner_name' => $company->name,
1249
 
1153
        ];
1250
        
Línea 1154... Línea -...
1154
 
-
 
-
 
1251
        
1155
        $userMapper = UserMapper::getInstance($this->adapter);
1252
        $userMapper = UserMapper::getInstance($this->adapter);
1156
        $user = $userMapper->fetchOne($feed->user_id);
1253
        $user = $userMapper->fetchOne($feed->user_id);
-
 
1254
 
-
 
1255
 
-
 
1256
        
-
 
1257
        $item['owner_shared'] = $feed->total_shared;
-
 
1258
        $item['owner_comments'] = $feed->total_comments;
-
 
1259
        
-
 
1260
        
-
 
1261
        if($feed->file_type == Feed::FILE_TYPE_FAST_SURVEY) {
-
 
1262
            $fastSurveyMapper = FastSurveyMapper::getInstance($this->adapter);
-
 
1263
            $fastSurvey = $fastSurveyMapper->fetchOne($feed->fast_survey_id);
-
 
1264
            
-
 
1265
            $owner_description = [
-
 
1266
                'question' => $fastSurvey->question,
-
 
1267
                'number_of_answers' => $fastSurvey->number_of_answers,
-
 
1268
                'answer1' => $fastSurvey->answer1,
-
 
1269
                'answer2' => $fastSurvey->answer2,
-
 
1270
                'answer3' => $fastSurvey->answer3,
-
 
1271
                'answer4' => $fastSurvey->answer4,
-
 
1272
                'answer5' => $fastSurvey->answer5,
-
 
1273
                'result_type' => $fastSurvey->result_type,
-
 
1274
                
-
 
1275
            ]; 
-
 
1276
             
-
 
1277
            if($fastSurvey->expire_on > $now) {
-
 
1278
                
-
 
1279
                
-
 
1280
                
-
 
1281
                $owner_description['active'] = 1;
-
 
1282
                $owner_description['time_remaining'] =  Functions::getDateDiff($now, $fastSurvey->expire_on);
-
 
1283
                
-
 
1284
            } else {
-
 
1285
                if($fastSurvey->result_type == FastSurvey::RESULT_TYPE_PUBLIC) {
-
 
1286
                    $owner_description['votes1'] = $fastSurvey->votes1;
-
 
1287
                    $owner_description['votes2'] = $fastSurvey->votes2;
-
 
1288
                    $owner_description['votes3'] = $fastSurvey->votes3;
-
 
1289
                    $owner_description['votes4'] = $fastSurvey->votes4;
-
 
1290
                    $owner_description['votes5'] = $fastSurvey->votes5;
-
 
1291
                }
-
 
1292
                
-
 
1293
                
-
 
1294
                $owner_description['active'] = 0;
-
 
1295
                $owner_description['time_remaining'] = 0;
-
 
1296
            }
-
 
1297
            
-
 
1298
            
-
 
1299
            $item['owner_description'] =  $owner_description;
-
 
1300
            
-
 
1301
            
Línea 1157... Línea 1302...
1157
 
1302
            $item['feed_delete_url'] = '';
Línea 1158... Línea 1303...
1158
 
1303
        } else {
Línea 1172... Línea 1317...
1172
        if ($feed->file_type == Feed::FILE_TYPE_VIDEO) {
1317
        if ($feed->file_type == Feed::FILE_TYPE_VIDEO) {
1173
            $item['owner_file_image_preview'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_image_preview]);
1318
            $item['owner_file_image_preview'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_image_preview]);
1174
            $item['owner_file_video'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_name]);
1319
            $item['owner_file_video'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_name]);
1175
        }
1320
        }
Línea -... Línea 1321...
-
 
1321
 
-
 
1322
        if($feed->file_type == Feed::FILE_TYPE_FAST_SURVEY) {
-
 
1323
            $item['comment_add_url'] = '';
-
 
1324
            $item['comments'] = [];
1176
 
1325
        } else {
1177
        $commentMapper = CommentMapper::getInstance($this->adapter);
1326
            $commentMapper = CommentMapper::getInstance($this->adapter);
1178
        $records = $commentMapper->fetchAllPublishedByFeedId($feed->id);
1327
            $records = $commentMapper->fetchAllPublishedByFeedId($feed->id);
1179
 
1328
    
1180
 
1329
    
1181
        $comments = [];
1330
            $comments = [];
1182
        $comment_count = 0;
1331
            $comment_count = 0;
1183
        foreach ($records as $record) {
1332
            foreach ($records as $record) {
1184
            $user = $userMapper->fetchOne($record->user_id);
1333
                $user = $userMapper->fetchOne($record->user_id);
1185
 
1334
    
1186
            $comment = [];
1335
                $comment = [];
1187
            $comment['unique'] = uniqid();
1336
                $comment['unique'] = uniqid();
1188
            $comment_count++;
1337
                $comment_count++;
1189
            $comment['comment_index'] = $comment_count;
-
 
1190
            $user = $userMapper->fetchOne($record->user_id);
-
 
1191
            if ($user->id == $owner->user_id) {
-
 
1192
                $comment['user_image'] = $this->url()->fromRoute('storage', ['type' => 'company',  'code' => $company->uuid, 'filename' =>  $company->image]);
-
 
1193
                $comment['user_url'] =  'https://' . $network->main_hostname . '/company/view/' . $company->uuid;
-
 
1194
                $comment['user_name'] = $company->name;
-
 
1195
            } else {
-
 
1196
                $comment['user_image'] = $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image]);
-
 
1197
                $comment['user_url'] = 'https://' . $network->main_hostname . '/profile/view/' . $user->uuid;
-
 
1198
                $comment['user_name'] = $user->first_name . ' ' . $user->last_name;
-
 
1199
            }
-
 
1200
            $comment['link_delete'] = $this->url()->fromRoute('feeds/comments/delete', ['id' => $feed->uuid, 'comment' => $record->uuid]);
-
 
1201
            $comment['link_answer_add'] = $this->url()->fromRoute('feeds/comments/answer', ['id' => $feed->uuid, 'comment' => $record->uuid]);
-
 
1202
            $comment['time_elapsed'] = Functions::timeAgo($record->added_on, $now);
-
 
1203
            $comment['comment'] = $record->comment;
-
 
1204
 
-
 
1205
            $records2 = $commentMapper->fetchAllPublishedByCommentId($record->id);
-
 
1206
            $answers = [];
-
 
1207
            $contador = 0;
-
 
1208
            foreach ($records2 as $record2) {
1338
                $comment['comment_index'] = $comment_count;
1209
                $user = $userMapper->fetchOne($record2->user_id);
-
 
1210
 
-
 
1211
 
-
 
1212
                $answer = [];
-
 
1213
                $answer['unique'] = uniqid();
-
 
1214
 
-
 
1215
 
-
 
1216
                $user = $userMapper->fetchOne($record2->user_id);
1339
                $user = $userMapper->fetchOne($record->user_id);
1217
                if ($user->id == $owner->user_id) {
1340
                if ($user->id == $owner->user_id) {
1218
                    $answer['user_image'] = $this->url()->fromRoute('storage', ['type' => 'company',  'code' => $company->uuid, 'filename' =>  $company->image]);
1341
                    $comment['user_image'] = $this->url()->fromRoute('storage', ['type' => 'company',  'code' => $company->uuid, 'filename' =>  $company->image]);
1219
                    $answer['user_url'] =  'https://' . $network->main_hostname . '/company/view/' . $company->uuid;
1342
                    $comment['user_url'] =  'https://' . $network->main_hostname . '/company/view/' . $company->uuid;
1220
                    $answer['user_name'] = $company->name;
1343
                    $comment['user_name'] = $company->name;
1221
                } else {
1344
                } else {
1222
                    $answer['user_image'] = $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image]);
1345
                    $comment['user_image'] = $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image]);
1223
                    $answer['user_url'] = 'https://' . $network->main_hostname . '/profile/view/' . $user->uuid;
1346
                    $comment['user_url'] = 'https://' . $network->main_hostname . '/profile/view/' . $user->uuid;
1224
                    $answer['user_name'] = $user->first_name . ' ' . $user->last_name;
1347
                    $comment['user_name'] = $user->first_name . ' ' . $user->last_name;
-
 
1348
                }
-
 
1349
                $comment['link_delete'] = $this->url()->fromRoute('feeds/comments/delete', ['id' => $feed->uuid, 'comment' => $record->uuid]);
-
 
1350
                $comment['link_answer_add'] = $this->url()->fromRoute('feeds/comments/answer', ['id' => $feed->uuid, 'comment' => $record->uuid]);
-
 
1351
                $comment['time_elapsed'] = Functions::timeAgo($record->added_on, $now);
-
 
1352
                $comment['comment'] = $record->comment;
-
 
1353
    
-
 
1354
                $records2 = $commentMapper->fetchAllPublishedByCommentId($record->id);
-
 
1355
                $answers = [];
-
 
1356
                $contador = 0;
-
 
1357
                foreach ($records2 as $record2) {
-
 
1358
                    $user = $userMapper->fetchOne($record2->user_id);
-
 
1359
    
-
 
1360
    
-
 
1361
                    $answer = [];
-
 
1362
                    $answer['unique'] = uniqid();
-
 
1363
    
-
 
1364
    
-
 
1365
                    $user = $userMapper->fetchOne($record2->user_id);
-
 
1366
                    if ($user->id == $owner->user_id) {
-
 
1367
                        $answer['user_image'] = $this->url()->fromRoute('storage', ['type' => 'company',  'code' => $company->uuid, 'filename' =>  $company->image]);
-
 
1368
                        $answer['user_url'] =  'https://' . $network->main_hostname . '/company/view/' . $company->uuid;
-
 
1369
                        $answer['user_name'] = $company->name;
-
 
1370
                    } else {
-
 
1371
                        $answer['user_image'] = $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image]);
-
 
1372
                        $answer['user_url'] = 'https://' . $network->main_hostname . '/profile/view/' . $user->uuid;
-
 
1373
                        $answer['user_name'] = $user->first_name . ' ' . $user->last_name;
1225
                }
1374
                    }
1226
                $answer['link_delete'] = $this->url()->fromRoute('feeds/comments/delete', ['id' => $feed->uuid, 'comment' => $record2->uuid]);
1375
                    $answer['link_delete'] = $this->url()->fromRoute('feeds/comments/delete', ['id' => $feed->uuid, 'comment' => $record2->uuid]);
1227
                $answer['time_elapsed'] = Functions::timeAgo($record2->added_on, $now);
1376
                    $answer['time_elapsed'] = Functions::timeAgo($record2->added_on, $now);
1228
                $answer['comment'] = $record2->comment;
1377
                    $answer['comment'] = $record2->comment;
1229
 
1378
    
1230
                $records2 = $commentMapper->fetchAllPublishedByCommentId($record2->id);
1379
                    $records2 = $commentMapper->fetchAllPublishedByCommentId($record2->id);
1231
 
1380
    
1232
                $contador++;
1381
                    $contador++;
1233
                array_push($answers, $answer);
1382
                    array_push($answers, $answer);
1234
            }
1383
                }
1235
            $comment['number_answers'] = $contador;
1384
                $comment['number_answers'] = $contador;
1236
            $comment['answers'] = $answers;
1385
                $comment['answers'] = $answers;
-
 
1386
                array_push($comments, $comment);
-
 
1387
            }
-
 
1388
            $item['comment_add_url'] = $this->url()->fromRoute('feeds/comments', ['id' => $feed->uuid]);
1237
            array_push($comments, $comment);
1389
            $item['comments'] = $comments;
1238
        }
-
 
1239
        $item['comment_add_url'] = $this->url()->fromRoute('feeds/comments', ['id' => $feed->uuid]);
-
 
1240
        $item['comments'] = $comments;
1390
        }
-
 
1391
        
-
 
1392
        //echo '<pre>';
-
 
1393
       // print_r($item);
-
 
1394
        //echo '</pre>';
Línea 1241... Línea 1395...
1241
 
1395
        //exit;
1242
 
1396