Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5776 | Rev 6388 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2466 stevensc 2
 
1 www 3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Controller;
6
 
7
use Laminas\Db\Adapter\AdapterInterface;
8
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
9
use Laminas\Mvc\Controller\AbstractActionController;
10
use Laminas\Log\LoggerInterface;
11
use Laminas\View\Model\ViewModel;
12
use Laminas\View\Model\JsonModel;
13
use LeadersLinked\Model\Page;
14
use LeadersLinked\Mapper\NotificationMapper;
15
use LeadersLinked\Mapper\CompanyMapper;
16
use LeadersLinked\Mapper\CompanyUserMapper;
17
use LeadersLinked\Model\Company;
18
use LeadersLinked\Mapper\PageMapper;
19
use LeadersLinked\Mapper\MessageMapper;
2466 stevensc 20
use LeadersLinked\Mapper\UserMapper;
21
use LeadersLinked\Mapper\UserProfileMapper;
1 www 22
use LeadersLinked\Mapper\CompanyUserRoleMapper;
23
use LeadersLinked\Model\Role;
24
use LeadersLinked\Library\Functions;
2466 stevensc 25
use LeadersLinked\Mapper\ConnectionMapper;
26
use LeadersLinked\Mapper\LocationMapper;
1 www 27
use LeadersLinked\Mapper\PostMapper;
2466 stevensc 28
use LeadersLinked\Mapper\ProfileVisitMapper;
1 www 29
use LeadersLinked\Model\Post;
3138 efrain 30
use LeadersLinked\Mapper\UtilMapper;
3298 efrain 31
use LeadersLinked\Mapper\FeedMapper;
32
use LeadersLinked\Model\Feed;
33
use LeadersLinked\Model\User;
34
use LeadersLinked\Model\Connection;
3674 efrain 35
use LeadersLinked\Mapper\NetworkMapper;
5751 efrain 36
use Laminas\Mvc\I18n\Translator;
1 www 37
 
38
class HomeController extends AbstractActionController
39
{
40
    /**
41
     *
42
     * @var AdapterInterface
43
     */
44
    private $adapter;
2466 stevensc 45
 
46
 
1 www 47
    /**
48
     *
49
     * @var AbstractAdapter
50
     */
51
    private $cache;
2466 stevensc 52
 
1 www 53
    /**
54
     *
55
     * @var  LoggerInterface
56
     */
57
    private $logger;
5751 efrain 58
 
1 www 59
 
2466 stevensc 60
 
1 www 61
    /**
62
     *
63
     * @var array
64
     */
65
    private $config;
2466 stevensc 66
 
1 www 67
    /**
68
     *
69
     * @param AdapterInterface $adapter
70
     * @param AbstractAdapter $cache
71
     * @param LoggerInterface $logger
72
     * @param array $config
73
     */
2466 stevensc 74
    public function __construct($adapter, $cache, $logger,  $config)
1 www 75
    {
76
        $this->adapter      = $adapter;
77
        $this->cache        = $cache;
78
        $this->logger       = $logger;
79
        $this->config       = $config;
80
    }
2466 stevensc 81
 
82
 
83
 
1 www 84
    public function indexAction()
85
    {
86
 
3298 efrain 87
        $currentUserPlugin = $this->plugin('currentUserPlugin');
3302 efrain 88
        if ($currentUserPlugin->hasIdentity()) {
2466 stevensc 89
            return $this->redirect()->toRoute('dashboard');
1 www 90
        } else {
2466 stevensc 91
            return $this->redirect()->toRoute('signin');
1 www 92
        }
93
    }
2466 stevensc 94
 
95
 
96
 
97
 
1 www 98
    public function privacyPolicyAction()
99
    {
3674 efrain 100
        $pageCode = Page::PAGE_CODE_PRIVACY_POLICY;
5699 anderson 101
 
3674 efrain 102
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
103
        $currentNetwork = $currentNetworkPlugin->getNetwork();
5765 efrain 104
 
105
        $currentUserPlugin = $this->plugin('currentUserPlugin');
5699 anderson 106
 
1 www 107
        $pageMapper = PageMapper::getInstance($this->adapter);
3674 efrain 108
        $page = $pageMapper->fetchOneByCodeAndNetworkId($pageCode, $currentNetwork->id);
5699 anderson 109
 
110
        if (!$page) {
3674 efrain 111
            $networkMapper = NetworkMapper::getInstance($this->adapter);
112
            $network = $networkMapper->fetchOneByDefault();
5699 anderson 113
 
3674 efrain 114
            $pageDefault = $pageMapper->fetchOneByCodeAndNetworkId($pageCode, $network->id);
5699 anderson 115
            if ($pageDefault) {
3674 efrain 116
                $page = new Page();
117
                $page->network_id = $currentNetwork->id;
118
                $page->code = $pageDefault->code;
119
                $page->content = $pageDefault->content;
120
                $page->fixed = $pageDefault->fixed;
121
                $page->page_default_id = $pageDefault->id;
122
                $page->title = $pageDefault->title;
123
                $page->status = $pageDefault->status;
124
                $page->type = $pageDefault->type;
125
                $page->url = $pageDefault->url;
5699 anderson 126
 
3674 efrain 127
                $pageMapper->insert($page);
128
            }
129
        }
5765 efrain 130
 
131
        if ($currentUserPlugin->hasIdentity()) {
132
            $this->layout()->setTemplate('layout/layout.phtml');
133
        } else {
134
            $this->layout()->setTemplate('layout/share.phtml');
135
        }
2466 stevensc 136
 
5765 efrain 137
 
1 www 138
        $viewModel = new ViewModel();
139
        $viewModel->setTemplate('leaders-linked/home/privacy-policy.phtml');
140
        $viewModel->setVariable('page', $page);
2466 stevensc 141
        return $viewModel;
1 www 142
    }
2466 stevensc 143
 
1 www 144
    public function cookiesAction()
145
    {
5699 anderson 146
 
3674 efrain 147
        $pageCode = Page::PAGE_CODE_COOKIES;
5699 anderson 148
 
3674 efrain 149
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
150
        $currentNetwork = $currentNetworkPlugin->getNetwork();
5765 efrain 151
 
152
        $currentUserPlugin = $this->plugin('currentUserPlugin');
5699 anderson 153
 
1 www 154
        $pageMapper = PageMapper::getInstance($this->adapter);
3674 efrain 155
        $page = $pageMapper->fetchOneByCodeAndNetworkId($pageCode, $currentNetwork->id);
5699 anderson 156
 
157
        if (!$page) {
3674 efrain 158
            $networkMapper = NetworkMapper::getInstance($this->adapter);
159
            $network = $networkMapper->fetchOneByDefault();
5699 anderson 160
 
3674 efrain 161
            $pageDefault = $pageMapper->fetchOneByCodeAndNetworkId($pageCode, $network->id);
5699 anderson 162
            if ($pageDefault) {
3674 efrain 163
                $page = new Page();
164
                $page->network_id = $currentNetwork->id;
165
                $page->code = $pageDefault->code;
166
                $page->content = $pageDefault->content;
167
                $page->fixed = $pageDefault->fixed;
168
                $page->page_default_id = $pageDefault->id;
169
                $page->title = $pageDefault->title;
170
                $page->status = $pageDefault->status;
171
                $page->type = $pageDefault->type;
172
                $page->url = $pageDefault->url;
5699 anderson 173
 
3674 efrain 174
                $pageMapper->insert($page);
175
            }
176
        }
2466 stevensc 177
 
5699 anderson 178
 
5765 efrain 179
        if ($currentUserPlugin->hasIdentity()) {
180
            $this->layout()->setTemplate('layout/layout.phtml');
181
        } else {
182
            $this->layout()->setTemplate('layout/share.phtml');
183
        }
184
 
1 www 185
        $viewModel = new ViewModel();
186
        $viewModel->setTemplate('leaders-linked/home/cookies.phtml');
187
        $viewModel->setVariable('page', $page);
2466 stevensc 188
        return $viewModel;
1 www 189
    }
2466 stevensc 190
 
1 www 191
    public function professionalismPolicyAction()
192
    {
3674 efrain 193
        $pageCode = Page::PAGE_CODE_PROFESSIONALISM_POLICY;
5699 anderson 194
 
3674 efrain 195
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
196
        $currentNetwork = $currentNetworkPlugin->getNetwork();
5765 efrain 197
 
198
        $currentUserPlugin = $this->plugin('currentUserPlugin');
5699 anderson 199
 
5765 efrain 200
 
1 www 201
        $pageMapper = PageMapper::getInstance($this->adapter);
3674 efrain 202
        $page = $pageMapper->fetchOneByCodeAndNetworkId($pageCode, $currentNetwork->id);
5699 anderson 203
 
204
        if (!$page) {
3674 efrain 205
            $networkMapper = NetworkMapper::getInstance($this->adapter);
206
            $network = $networkMapper->fetchOneByDefault();
5699 anderson 207
 
3674 efrain 208
            $pageDefault = $pageMapper->fetchOneByCodeAndNetworkId($pageCode, $network->id);
5699 anderson 209
            if ($pageDefault) {
3674 efrain 210
                $page = new Page();
211
                $page->network_id = $currentNetwork->id;
212
                $page->code = $pageDefault->code;
213
                $page->content = $pageDefault->content;
214
                $page->fixed = $pageDefault->fixed;
215
                $page->page_default_id = $pageDefault->id;
216
                $page->title = $pageDefault->title;
217
                $page->status = $pageDefault->status;
218
                $page->type = $pageDefault->type;
219
                $page->url = $pageDefault->url;
5699 anderson 220
 
3674 efrain 221
                $pageMapper->insert($page);
222
            }
223
        }
2466 stevensc 224
 
3674 efrain 225
 
5765 efrain 226
        if ($currentUserPlugin->hasIdentity()) {
227
            $this->layout()->setTemplate('layout/layout.phtml');
228
        } else {
229
            $this->layout()->setTemplate('layout/share.phtml');
230
        }
231
 
1 www 232
        $viewModel = new ViewModel();
233
        $viewModel->setTemplate('leaders-linked/home/professionalism-policy');
234
        $viewModel->setVariable('page', $page);
2466 stevensc 235
        return $viewModel;
1 www 236
    }
2466 stevensc 237
 
238
 
1 www 239
    public function termsAndConditionsAction()
240
    {
3674 efrain 241
        $pageCode = Page::PAGE_CODE_TERMS_AND_CONDITIONS;
5699 anderson 242
 
3674 efrain 243
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
244
        $currentNetwork = $currentNetworkPlugin->getNetwork();
5765 efrain 245
 
246
        $currentUserPlugin = $this->plugin('currentUserPlugin');
5699 anderson 247
 
5765 efrain 248
 
1 www 249
        $pageMapper = PageMapper::getInstance($this->adapter);
3674 efrain 250
        $page = $pageMapper->fetchOneByCodeAndNetworkId($pageCode, $currentNetwork->id);
5699 anderson 251
 
252
        if (!$page) {
3674 efrain 253
            $networkMapper = NetworkMapper::getInstance($this->adapter);
254
            $network = $networkMapper->fetchOneByDefault();
5699 anderson 255
 
3674 efrain 256
            $pageDefault = $pageMapper->fetchOneByCodeAndNetworkId($pageCode, $network->id);
5699 anderson 257
            if ($pageDefault) {
3674 efrain 258
                $page = new Page();
259
                $page->network_id = $currentNetwork->id;
260
                $page->code = $pageDefault->code;
261
                $page->content = $pageDefault->content;
262
                $page->fixed = $pageDefault->fixed;
263
                $page->page_default_id = $pageDefault->id;
264
                $page->title = $pageDefault->title;
265
                $page->status = $pageDefault->status;
266
                $page->type = $pageDefault->type;
267
                $page->url = $pageDefault->url;
5699 anderson 268
 
3674 efrain 269
                $pageMapper->insert($page);
270
            }
271
        }
2466 stevensc 272
 
5765 efrain 273
        if ($currentUserPlugin->hasIdentity()) {
274
            $this->layout()->setTemplate('layout/layout.phtml');
275
        } else {
276
            $this->layout()->setTemplate('layout/share.phtml');
277
        }
278
 
1 www 279
        $viewModel = new ViewModel();
280
        $viewModel->setTemplate('leaders-linked/home/terms-and-conditions.phtml');
281
        $viewModel->setVariable('page', $page);
2466 stevensc 282
        return $viewModel;
1 www 283
    }
2466 stevensc 284
 
1 www 285
    public function checkSessionAction()
286
    {
287
 
288
        $request = $this->getRequest();
2466 stevensc 289
        if ($request->isGet()) {
290
 
1 www 291
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2466 stevensc 292
            if (!$currentUserPlugin->hasIdentity()) {
3768 efrain 293
                //$flashMessenger = $this->plugin('FlashMessenger');
294
                //$flashMessenger->addErrorMessage('ERROR_SESSION_NOT_FOUND');
2466 stevensc 295
 
1 www 296
                $response = [
297
                    'success' => false,
298
                    'data' => [
3768 efrain 299
                        'message' =>  '', //ERROR_SESSION_NOT_FOUND',
1 www 300
                        'url' => $this->url()->fromRoute('signout')
301
                    ]
302
                ];
2466 stevensc 303
 
1 www 304
                return new JsonModel($response);
305
            }
2466 stevensc 306
 
1 www 307
            $currentUser = $currentUserPlugin->getUser();
2466 stevensc 308
 
309
 
310
            if ($currentUser->last_activity_on) {
1 www 311
                $last_activity_on = strtotime($currentUser->last_activity_on);
312
            } else {
313
                $last_activity_on = strtotime('-1 day');
314
            }
315
 
316
            $expiry_time = $last_activity_on + $this->config['leaderslinked.security.last_activity_expired'];
317
            if (time() > $expiry_time) {
2466 stevensc 318
                //$flashMessenger = $this->plugin('FlashMessenger');
319
                //$flashMessenger->addErrorMessage('ERROR_SESSION_EXPIRED');
1 www 320
 
321
                $response = [
322
                    'success' => false,
323
                    'data' => [
324
                        'message' => 'ERROR_SESSION_EXPIRED',
325
                        'url' => $this->url()->fromRoute('signout')
326
                    ]
327
                ];
328
            } else {
329
                $notificationMapper = NotificationMapper::getInstance($this->adapter);
330
                $total_notifications = $notificationMapper->fetchUnreadNotificationsCount($currentUser->id);
2466 stevensc 331
 
332
                $messageMapper = MessageMapper::getInstance($this->adapter);
1 www 333
                $total_messages =  $messageMapper->fetchCountUnreadMessagesReceiverId($currentUser->id);
334
                $response = [
335
                    'success' => true,
336
                    'data' => [
337
                        'total_notifications' => $total_notifications,
338
                        'total_messages' => $total_messages
339
                    ]
340
                ];
341
            }
342
        } else {
343
            $response = [
344
                'success' => false,
345
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
346
            ];
347
        }
2466 stevensc 348
 
1 www 349
        return new JsonModel($response);
350
    }
2466 stevensc 351
 
5699 anderson 352
 
353
 
354
 
355
 
4778 efrain 356
    public function incTotalExternalSharedAction()
357
    {
358
 
359
        $request = $this->getRequest();
360
        if ($request->isPost()) {
361
            $currentUserPlugin = $this->plugin('currentUserPlugin');
362
            $currentUser = $currentUserPlugin->getUser();
5699 anderson 363
 
4778 efrain 364
            $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
365
            $currentNetwork = $currentNetworkPlugin->getNetwork();
5699 anderson 366
 
4778 efrain 367
            $code       = $this->params()->fromRoute('code');
368
            $type       = $this->params()->fromRoute('type');
369
            $user       = $this->params()->fromRoute('user');
370
            $timestamp  = intval($this->params()->fromRoute('timestamp'), 10);
371
            $rand       = intval($this->params()->fromRoute('rand'), 10);
372
            $password   = $this->params()->fromRoute('password');
5699 anderson 373
 
374
 
375
 
4778 efrain 376
            $checkpassword = '';
5699 anderson 377
 
378
 
4778 efrain 379
            $userCheck = '';
5699 anderson 380
            if ($user && $timestamp > 0 && $rand > 0 && $password) {
4778 efrain 381
                $userMapper = UserMapper::getInstance($this->adapter);
382
                $userCheck = $userMapper->fetchOneByUuid($user);
5699 anderson 383
                if ($userCheck) {
384
                    $checkpassword  = md5('user-' . $userCheck->uuid . '-' . $type . '-' . $code . '-timestamp-' . $timestamp . '-rand-' . $rand . '-share-key-' . $userCheck->share_key);
4778 efrain 385
                }
386
            }
5699 anderson 387
 
388
            if (empty($password) || $password != $checkpassword) {
4778 efrain 389
                $data = [
390
                    'success' => false,
391
                    'data' => 'ERROR_UNAUTHORIZED'
392
                ];
5699 anderson 393
 
4778 efrain 394
                return new JsonModel($data);
395
            }
5699 anderson 396
 
397
 
398
 
399
 
400
 
401
 
402
 
403
 
404
 
405
            if ($type == 'feed' && $code) {
4778 efrain 406
                $feedMapper =  FeedMapper::getInstance($this->adapter);
407
                $feed = $feedMapper->fetchOneByUuidAnyStatus($code);
5699 anderson 408
 
409
 
410
                if ($feed) {
411
 
412
                    if ($feed->network_id != $currentNetwork->id) {
4778 efrain 413
                        $data = [
414
                            'success' => false,
415
                            'data' =>    'ERROR_UNAUTHORIZED'
416
                        ];
5699 anderson 417
 
4778 efrain 418
                        return new JsonModel($data);
419
                    }
5699 anderson 420
 
421
                    if ($feedMapper->incTotalExternalShared($feed->id)) {
4778 efrain 422
                        $total = $feedMapper->fetchTotalExternalShared($feed->id);
5699 anderson 423
 
4778 efrain 424
                        $this->logger->info('El usuario : ' . trim($currentUser->first_name . ' ' . $currentUser->last_name) . ' (' . $currentUser->email . ') compartio externamente el feed : ' . $feed->title);
5699 anderson 425
 
4778 efrain 426
                        $data = [
427
                            'success' => true,
428
                            'data' => $total,
429
                        ];
5699 anderson 430
 
4778 efrain 431
                        return new JsonModel($data);
432
                    } else {
433
                        $data = [
434
                            'success' => false,
435
                            'data' => $feedMapper->getError()
436
                        ];
5699 anderson 437
 
4778 efrain 438
                        return new JsonModel($data);
439
                    }
440
                } else {
441
                    $data = [
442
                        'success' => false,
443
                        'data' => 'ERROR_FEED_NOT_FOUND',
444
                    ];
5699 anderson 445
 
4778 efrain 446
                    return new JsonModel($data);
447
                }
448
            } else if ($type == 'post' && $code) {
5699 anderson 449
 
4778 efrain 450
                $postMapper = PostMapper::getInstance($this->adapter);
451
                $post = $postMapper->fetchOneByUuid($code);
5699 anderson 452
 
453
                if ($post && $post->status == Post::STATUS_ACTIVE) {
454
 
455
                    if ($post->network_id != $currentNetwork->id) {
4778 efrain 456
                        $data = [
457
                            'success' => false,
458
                            'data' =>    'ERROR_UNAUTHORIZED'
459
                        ];
5699 anderson 460
 
4778 efrain 461
                        return new JsonModel($data);
462
                    }
5699 anderson 463
 
464
 
465
                    if ($postMapper->incTotalExternalShared($post->id)) {
4778 efrain 466
                        $total = $postMapper->fetchTotalExternalShared($post->id);
5699 anderson 467
 
4778 efrain 468
                        $this->logger->info('El usuario : ' . trim($currentUser->first_name . ' ' . $currentUser->last_name) . ' (' . $currentUser->email . ') compartio externamente el post : ' . $post->title);
5699 anderson 469
 
470
 
471
 
4778 efrain 472
                        $data = [
473
                            'success' => true,
474
                            'data' => $total,
475
                        ];
5699 anderson 476
 
4778 efrain 477
                        return new JsonModel($data);
478
                    } else {
479
                        $data = [
480
                            'success' => false,
481
                            'data' => $postMapper->getError()
482
                        ];
5699 anderson 483
 
4778 efrain 484
                        return new JsonModel($data);
485
                    }
486
                } else {
487
                    $data = [
488
                        'success' => false,
489
                        'data' => 'ERROR_POST_NOT_FOUND'
490
                    ];
5699 anderson 491
 
4778 efrain 492
                    return new JsonModel($data);
493
                }
494
            }
495
        } else {
496
            $response = [
497
                'success' => false,
498
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
499
            ];
5699 anderson 500
 
4778 efrain 501
            return new JsonModel($response);
502
        }
503
    }
5699 anderson 504
 
3298 efrain 505
    public function shareAction()
506
    {
507
        $request = $this->getRequest();
508
        if ($request->isGet()) {
509
            $currentUserPlugin = $this->plugin('currentUserPlugin');
510
            $currentUser = $currentUserPlugin->getUser();
5699 anderson 511
 
3364 efrain 512
            $code       = $this->params()->fromRoute('code');
513
            $type       = $this->params()->fromRoute('type');
3379 efrain 514
            $user       = $this->params()->fromRoute('user');
515
            $timestamp  = intval($this->params()->fromRoute('timestamp'), 10);
516
            $rand       = intval($this->params()->fromRoute('rand'), 10);
517
            $password   = $this->params()->fromRoute('password');
5699 anderson 518
 
519
 
520
 
3364 efrain 521
            $checkpassword = '';
5699 anderson 522
 
523
 
3364 efrain 524
            $userCheck = '';
5699 anderson 525
            if ($user && $timestamp > 0 && $rand > 0 && $password) {
3364 efrain 526
                $userMapper = UserMapper::getInstance($this->adapter);
527
                $userCheck = $userMapper->fetchOneByUuid($user);
5699 anderson 528
                if ($userCheck) {
529
                    $checkpassword  = md5('user-' . $userCheck->uuid . '-' . $type . '-' . $code . '-timestamp-' . $timestamp . '-rand-' . $rand . '-share-key-' . $userCheck->share_key);
3364 efrain 530
                }
531
            }
5699 anderson 532
 
533
            if (empty($password) || $password != $checkpassword) {
3364 efrain 534
                $data = [
3349 efrain 535
                    'success' => false,
536
                    'data' => 'ERROR_UNAUTHORIZED'
537
                ];
5699 anderson 538
 
3364 efrain 539
                return new JsonModel($data);
3383 efrain 540
            }
5699 anderson 541
 
4778 efrain 542
            /*
543
            $share_params = [
544
                'type' => $type,
545
                'code' => $code,
546
                'user' => $currentUser->uuid,
547
                'timestamp' => $timestamp,
548
                'rand' => $rand,
549
                'password' => $password,
550
            ];
3364 efrain 551
 
4778 efrain 552
            $share_increment_external_counter_url = $this->url()->fromRoute('share/increment-external-counter', $share_params  , ['force_canonical' => true]);
553
            */
3357 efrain 554
 
5699 anderson 555
 
556
 
557
 
558
 
559
 
560
 
561
            if (strpos(strtolower($_SERVER['REQUEST_SCHEME']), 'https') === false) {
562
                $base_share = 'http://' . $_SERVER['HTTP_HOST'];
3298 efrain 563
            } else {
3355 efrain 564
                $base_share = 'https://' . $_SERVER['HTTP_HOST'];
3298 efrain 565
            }
5699 anderson 566
 
567
 
3374 efrain 568
            /*
3372 efrain 569
            echo '<pre>';
570
            print_r($_SERVER);
571
            echo '</pre>';
3374 efrain 572
            */
5699 anderson 573
 
574
 
3355 efrain 575
            $share_url          = $base_share . $_SERVER['REQUEST_URI'];
576
            $share_image        = $base_share . '/images/ll-logo.png';
3298 efrain 577
            $share_title        = '';
578
            $share_description  = '';
3364 efrain 579
 
5699 anderson 580
 
581
            if ($type == 'feed' && $code) {
3298 efrain 582
                $feedMapper =  FeedMapper::getInstance($this->adapter);
3731 efrain 583
                $feed = $feedMapper->fetchOneByUuidAnyStatus($code);
5699 anderson 584
 
3731 efrain 585
                // if($feed && $feed->status == Feed::STATUS_PUBLISHED) {
5699 anderson 586
 
587
                if ($feed) {
588
 
3731 efrain 589
                    $share_title = $feed->title ? $feed->title : '';
5699 anderson 590
 
591
                    if ($feed->posted_or_shared  == Feed::SHARED) {
592
 
593
 
3453 efrain 594
                        $feed = $feedMapper->fetchOneAnyStatus($feed->shared_feed_id);
5699 anderson 595
                        if ($feed->title) {
596
 
597
                            $share_title = $share_title  .  ' -  ' . $feed->title;
3453 efrain 598
                        }
5699 anderson 599
                    }
600
 
601
 
5776 anderson 602
                    $share_description = $feed->description;
5699 anderson 603
 
3298 efrain 604
                    $image_name = '';
5699 anderson 605
                    if ($feed->file_type == Feed::FILE_TYPE_IMAGE) {
606
 
3298 efrain 607
                        $image_name = $feed->file_name;
5699 anderson 608
                    } else  if ($feed->file_image_preview) {
3298 efrain 609
                        $image_name = $feed->file_image_preview;
610
                    }
5699 anderson 611
 
612
 
613
 
614
                    if ($image_name) {
615
 
3298 efrain 616
                        $source = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid . DIRECTORY_SEPARATOR . $image_name;
5699 anderson 617
 
618
 
619
                        $target_path = 'public' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'feed' . DIRECTORY_SEPARATOR . $feed->uuid;
620
 
621
                        if (!file_exists($target_path)) {
3298 efrain 622
                            mkdir($target_path, 0755, true);
623
                        }
5699 anderson 624
 
625
 
626
 
3298 efrain 627
                        $target = $target_path . DIRECTORY_SEPARATOR . $image_name;
5699 anderson 628
 
629
 
630
 
631
                        if (!file_exists($target)) {
632
 
3298 efrain 633
                            copy($source, $target);
3355 efrain 634
                            $share_image =  $base_share . '/images/feed/' . $feed->uuid . '/' . $image_name;
3298 efrain 635
                        } else {
3355 efrain 636
                            $share_image =  $base_share . '/images/feed/' . $feed->uuid . '/' . $image_name;
3298 efrain 637
                        }
638
                    }
3349 efrain 639
                } else {
5699 anderson 640
 
641
                    if ($currentUserPlugin->hasIdentity()) {
3349 efrain 642
                        $this->layout()->setTemplate('layout/layout.phtml');
643
                    } else {
644
                        $this->layout()->setTemplate('layout/share.phtml');
645
                    }
646
                    $viewModel = new ViewModel();
647
                    $viewModel->setTemplate('leaders-linked/error/404.phtml');
5699 anderson 648
                    return $viewModel;
3298 efrain 649
                }
650
            } else if ($type == 'post' && $code) {
5699 anderson 651
 
3298 efrain 652
                $postMapper = PostMapper::getInstance($this->adapter);
653
                $post = $postMapper->fetchOneByUuid($code);
5699 anderson 654
 
655
                if ($post && $post->status == Post::STATUS_ACTIVE) {
3298 efrain 656
                    $share_title = $post->title;
5777 anderson 657
                    $share_description = $post->description;
5699 anderson 658
 
659
 
660
                    if ($post->image) {
3298 efrain 661
                        $source = $this->config['leaderslinked.fullpath.post'] . $post->uuid . DIRECTORY_SEPARATOR . $post->image;
5699 anderson 662
 
663
 
664
                        $target_path = 'public' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'post' . DIRECTORY_SEPARATOR . $post->uuid;
665
 
666
                        if (!file_exists($target_path)) {
3298 efrain 667
                            mkdir($target_path, 0755, true);
668
                        }
5699 anderson 669
 
670
 
671
 
3298 efrain 672
                        $target = $target_path . DIRECTORY_SEPARATOR . $post->image;
5699 anderson 673
 
674
 
675
 
676
                        if (!file_exists($target)) {
677
 
3298 efrain 678
                            copy($source, $target);
3355 efrain 679
                            $share_image =  $base_share . '/images/post/' . $post->uuid . '/' . $post->image;
3298 efrain 680
                        } else {
3355 efrain 681
                            $share_image =  $base_share . '/images/post/' . $post->uuid . '/' . $post->image;
3298 efrain 682
                        }
683
                    }
3349 efrain 684
                } else {
5699 anderson 685
 
686
                    if ($currentUserPlugin->hasIdentity()) {
3349 efrain 687
                        $this->layout()->setTemplate('layout/layout.phtml');
688
                    } else {
689
                        $this->layout()->setTemplate('layout/share.phtml');
690
                    }
691
                    $viewModel = new ViewModel();
692
                    $viewModel->setTemplate('leaders-linked/error/404.phtml');
5699 anderson 693
                    return $viewModel;
3298 efrain 694
                }
695
            }
5699 anderson 696
 
3382 efrain 697
            /*
3372 efrain 698
            echo '<pre>';
3371 efrain 699
            print_r([ 'share_image' => $share_image,
700
                'share_url' => $share_url,
701
                'share_title' => strip_tags($share_title),
3372 efrain 702
                'share_description' => strip_tags($share_description)]);  echo '</pre>';
703
            exit;
3382 efrain 704
            */
5699 anderson 705
 
706
            if ($currentUserPlugin->hasIdentity()) {
3364 efrain 707
                $currentUser = $currentUserPlugin->getUser();
5699 anderson 708
                if ($userCheck && $userCheck->status == User::STATUS_ACTIVE && $userCheck->id != $currentUser->id) {
3364 efrain 709
 
710
                    $connectionMapper = ConnectionMapper::getInstance($this->adapter);
711
                    $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $userCheck->id);
5699 anderson 712
 
713
                    if ($connection) {
714
 
715
                        if ($connection->status != Connection::STATUS_ACCEPTED) {
3364 efrain 716
                            $connectionMapper->approve($connection);
717
                        }
718
                    } else {
719
                        $connection = new Connection();
720
                        $connection->request_from = $currentUser->id;
721
                        $connection->request_to = $userCheck->id;
722
                        $connection->status = Connection::STATUS_ACCEPTED;
5699 anderson 723
 
3364 efrain 724
                        $connectionMapper->insert($connection);
725
                    }
726
                }
727
 
3383 efrain 728
 
5699 anderson 729
 
730
 
3349 efrain 731
                $this->layout()->setTemplate('layout/layout.phtml');
732
            } else {
3383 efrain 733
                $this->cache->addItem('user_share_invitation', $user);
5699 anderson 734
 
3349 efrain 735
                $this->layout()->setTemplate('layout/share.phtml');
736
            }
3298 efrain 737
            $viewModel = new ViewModel();
738
            $viewModel->setTemplate('leaders-linked/home/share.phtml');
739
            $viewModel->setVariables([
3352 efrain 740
                'share_image' => $share_image,
741
                'share_url' => $share_url,
3356 efrain 742
                'share_title' => strip_tags($share_title),
5777 anderson 743
                'share_description' => strip_tags($share_description),
5699 anderson 744
                // 'share_increment_external_counter_url' => $share_increment_external_counter_url,
3349 efrain 745
 
3298 efrain 746
            ]);
747
 
5699 anderson 748
 
3298 efrain 749
            return $viewModel;
750
        } else {
751
            $response = [
752
                'success' => false,
753
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
754
            ];
5699 anderson 755
 
3298 efrain 756
            return new JsonModel($response);
757
        }
758
    }
5751 efrain 759
 
760
    public function languageAction()
761
    {
762
        $request = $this->getRequest();
763
 
764
        if ($request->isGet()) {
765
 
766
 
767
 
768
            $pathname = dirname(__DIR__);
769
            $filename = $pathname . DIRECTORY_SEPARATOR . 'i18n' . DIRECTORY_SEPARATOR . 'spanish.php';
770
 
771
 
772
            if(file_exists($filename)) {
773
 
774
                $arr =  include $filename;
775
                $arr = array_filter($arr, function($a)  {
776
                    return strpos($a, 'LABEL_') !== false;
777
                }, ARRAY_FILTER_USE_KEY);
778
 
779
 
780
                $data = [];
781
                foreach($arr as $key => $value)
782
                {
783
                    $key = str_replace('LABEL_', 'LANG_', $key);
784
 
785
                    $data[ $key ] = $value;
786
 
787
                }
788
 
789
 
790
 
791
                $response = [
792
                    'success' => true,
793
                    'data' => $data
794
                ];
795
 
796
                return new JsonModel($response);
797
 
798
 
799
            } else {
800
                $response = [
801
                    'success' => false,
802
                    'data' => 'ERROR_METHOD_NOT_ALLOWED'
803
                ];
804
 
805
                return new JsonModel($response);
806
            }
807
 
808
 
809
 
810
 
811
 
812
        } else {
813
            $response = [
814
                'success' => false,
815
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
816
            ];
817
 
818
            return new JsonModel($response);
819
        }
820
 
821
 
822
    }
1 www 823
}