Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6749 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Helper;
6
 
7
use Laminas\View\Helper\AbstractHelper;
8
use Laminas\Db\Adapter\AdapterInterface;
6849 efrain 9
 
1 www 10
use Laminas\Log\LoggerInterface;
11
use Laminas\Authentication\AuthenticationService;
12
use LeadersLinked\Mapper\UserMapper;
13
use LeadersLinked\Library\Functions;
14
use LeadersLinked\Plugin\CurrentUserPlugin;
15
use Laminas\Paginator\Adapter\DbSelect;
16
use LeadersLinked\Mapper\QueryMapper;
17
use LeadersLinked\Mapper\ProfileVisitMapper;
18
use LeadersLinked\Model\User;
19
use Laminas\Db\Sql\Expression;
20
 
21
class PeopleViewedProfileHelper extends AbstractHelper
22
{
23
 
24
    /**
25
     *
26
     * @var AdapterInterface
27
     */
28
    private $adapter;
29
 
30
 
31
    /**
32
     *
33
     * @param AdapterInterface $adapter
34
     */
35
    public function __construct($adapter)
36
    {
37
        $this->adapter      = $adapter;
38
    }
39
 
40
    public function __invoke($user_profile_id)
41
    {
42
        $items = [];
43
 
44
        $mapper = QueryMapper::getInstance($this->adapter);
45
        $select = $mapper->getSql()->select(ProfileVisitMapper::_TABLE);
46
        $select->columns(['user_id' => new Expression('DISTINCT(visitor_id)')]);
47
        $select->where->equalTo('user_profile_id', $user_profile_id);
48
        $records = $mapper->fetchAll($select);
49
 
50
        if($records) {
51
            $user_ids = [];
52
            foreach($records as $record)
53
            {
54
                array_push($user_ids, $record['user_id']);
55
            }
56
 
57
            $mapper = QueryMapper::getInstance($this->adapter);
58
            $select = $mapper->getSql()->select( UserMapper::_TABLE);
59
            $select->columns(['id', 'uuid', 'first_name', 'last_name', 'image']);
60
            $select->where->in('id', $user_ids);
61
            $select->where->equalTo('status',User::STATUS_ACTIVE);
62
            $select->order(['last_name ASC', 'first_name ASC']);
63
 
64
            //echo $select->getSqlString($this->adapter->platform); exit;
65
 
66
            $items = $mapper->fetchAll($select);
67
        }
68
 
69
 
70
 
71
        return $this->getView()->render('helpers/people-viewed-profile.phtml', ['items' => $items]);
72
    }
73
}
74