AutorÃa | Ultima modificación | Ver Log |
<?php
declare(strict_types=1);
namespace LeadersLinked\Helper;
use Laminas\View\Helper\AbstractHelper;
use Laminas\Db\Adapter\AdapterInterface;
use LeadersLinked\Mapper\ConnectionMapper;
use LeadersLinked\Mapper\QueryMapper;
use LeadersLinked\Mapper\UserMapper;
use LeadersLinked\Model\User;
use Laminas\Db\Sql\Expression;
class PeopleYouMayKnowHelper extends AbstractHelper
{
/**
*
* @var AdapterInterface
*/
private $adapter;
/**
*
* @param AdapterInterface $adapter
*/
public function __construct($adapter)
{
$this->adapter = $adapter;
}
public function __invoke($user_id)
{
$connectionMapper = ConnectionMapper::getInstance($this->adapter);
$first_degree_connections_ids = $connectionMapper->fetchAllConnectionsByUserReturnIds($user_id);
$first_degree_connections_ids = $first_degree_connections_ids ? $first_degree_connections_ids : [0];
$second_degree_connections_ids = $connectionMapper->fetchAllSecondDegreeConnectionsForUserIdReturnIds($user_id);
$second_degree_connections_ids = $second_degree_connections_ids ? $second_degree_connections_ids : [0];
$items = [];
if($first_degree_connections_ids && $second_degree_connections_ids) {
$queryMapper = QueryMapper::getInstance($this->adapter);
$select = $queryMapper->getSql()->select();
$select->columns(['id', 'uuid', 'first_name','last_name', 'image']);
$select->from(['u' => UserMapper::_TABLE]);
$select->where->in('u.id', $second_degree_connections_ids);
$select->where->notIn('u.id', $first_degree_connections_ids);
$select->where->notEqualTo('u.id', $user_id);
$select->where->equalTo('u.status', User::STATUS_ACTIVE);
$select->group('u.id');
$select->order(['last_name','first_name']);
$items = $queryMapper->fetchAll($select);
}
return $this->getView()->render('helpers/people-you-may-know.phtml', ['items' => $items]);
}
}