Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

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