Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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