Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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