Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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