Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6056 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6001 efrain 1
<?php
2
/**
3
 *
4
 * Controlador: Mis Perfiles
5
 *
6
 */
7
declare(strict_types=1);
8
 
9
namespace LeadersLinked\Controller;
10
 
11
use Laminas\Db\Adapter\AdapterInterface;
12
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
13
use Laminas\Mvc\Controller\AbstractActionController;
14
use Laminas\Log\LoggerInterface;
15
use Laminas\View\Model\ViewModel;
16
use Laminas\View\Model\JsonModel;
17
use LeadersLinked\Mapper\CompanyLocationMapper;
18
use LeadersLinked\Mapper\CompanyFollowerMapper;
19
use LeadersLinked\Mapper\CompanyUserMapper;
20
use LeadersLinked\Mapper\CompanyMapper;
21
use LeadersLinked\Mapper\IndustryMapper;
22
use LeadersLinked\Mapper\CompanySizeMapper;
23
use LeadersLinked\Model\CompanyFollower;
24
use LeadersLinked\Mapper\UserBlockedMapper;
25
use LeadersLinked\Mapper\UserMapper;
26
use LeadersLinked\Model\Company;
27
use LeadersLinked\Model\CompanyUser;
28
use LeadersLinked\Mapper\QueryMapper;
29
use LeadersLinked\Mapper\NotificationMapper;
30
use LeadersLinked\Model\Network;
31
use LeadersLinked\Mapper\KnowledgeAreaCategoryMapper;
32
use LeadersLinked\Mapper\KnowledgeAreaCategoryUserMapper;
33
use LeadersLinked\Model\KnowledgeAreaCategory;
34
 
35
class KnowledgeAreaController extends AbstractActionController
36
{
37
    /**
38
     *
39
     * @var AdapterInterface
40
     */
41
    private $adapter;
42
 
43
 
44
    /**
45
     *
46
     * @var AbstractAdapter
47
     */
48
    private $cache;
49
 
50
    /**
51
     *
52
     * @var  LoggerInterface
53
     */
54
    private $logger;
55
 
56
 
57
    /**
58
     *
59
     * @var array
60
     */
61
    private $config;
62
 
63
    /**
64
     *
65
     * @param AdapterInterface $adapter
66
     * @param AbstractAdapter $cache
67
     * @param LoggerInterface $logger
68
     * @param array $config
69
     */
70
    public function __construct($adapter, $cache , $logger,  $config)
71
    {
72
        $this->adapter      = $adapter;
73
        $this->cache        = $cache;
74
        $this->logger       = $logger;
75
        $this->config       = $config;
76
 
77
    }
78
 
79
    /**
80
     *
81
     * Generación del listado de perfiles
82
     * {@inheritDoc}
83
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
84
     */
85
    public function indexAction()
86
    {
87
        $currentUserPlugin = $this->plugin('currentUserPlugin');
88
        $currentUser = $currentUserPlugin->getUser();
89
 
90
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
91
        $currentNetwork = $currentNetworkPlugin->getNetwork();
92
 
93
        $request = $this->getRequest();
94
        if($request->isGet()) {
95
 
96
            $category_ids = [];
97
 
98
 
99
            $categories = [];
100
 
101
 
102
            $knowledgeAreaCategoryUserMapper = KnowledgeAreaCategoryUserMapper::getInstance($this->adapter);
103
            $records =  $knowledgeAreaCategoryUserMapper->fetchAllByUserId($currentUser->id);
104
            foreach($records as $record)
105
            {
106
                array_push($category_ids, $record->category_id);
107
            }
108
 
109
            $knowledgeAreaCategoryMapper = KnowledgeAreaCategoryMapper::getInstance($this->adapter);
110
 
111
            if( $category_ids) {
112
                $records =  $knowledgeAreaCategoryMapper->fetchAllByIds($category_ids);
113
                foreach($records as $record)
114
                {
115
                    if($record->status == KnowledgeAreaCategory::STATUS_ACTIVE) {
116
 
117
                        $categories[ $record->id  ] = [
118
                           'uuid' => $record->uuid,
119
                           'name' => $record->name,
120
                        ];
121
 
122
                    }
123
                }
124
            }
125
 
126
            $records =  $knowledgeAreaCategoryMapper->fetchAllPublicByNetworkId($currentNetwork->id);
127
            foreach($records as $record)
128
            {
129
                if($record->status == KnowledgeAreaCategory::STATUS_ACTIVE) {
130
 
131
                    if(!isset($categories[ $record->id ])) {
132
 
133
                        $categories[ $record->id  ] = [
134
                            'uuid' => $record->uuid,
135
                            'name' => $record->name,
136
                        ];
137
                    }
138
 
139
                }
140
            }
141
 
142
 
143
            $categories = array_values($categories);
144
            usort($categories, function($a, $b) {
145
               return $a['name'] <=> $b['name'];
146
            });
147
 
148
 
149
 
150
 
151
            $this->layout()->setTemplate('layout/layout.phtml');
152
            $viewModel = new ViewModel();
153
            $viewModel->setTemplate('leaders-linked/knowledge-area/index.phtml');
154
            $viewModel->setVariables([
155
                'categories' => $categories
156
            ]);
157
            return $viewModel ;
158
 
159
 
160
        } else {
161
            return new JsonModel([
162
                'success' => false,
163
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
164
            ]);
165
        }
166
    }
167
 
168
 
169
 
170
}