Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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