AutorÃa | Ultima modificación | Ver Log |
<?phpdeclare(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]);}}