Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

<?php

declare(strict_types=1);

namespace LeadersLinked\Helper;

use Laminas\View\Helper\AbstractHelper;
use Laminas\Db\Adapter\AdapterInterface;

use Laminas\Log\LoggerInterface;
use Laminas\Authentication\AuthenticationService;
use LeadersLinked\Mapper\UserMapper;
use LeadersLinked\Library\Functions;
use LeadersLinked\Plugin\CurrentUserPlugin;
use Laminas\Paginator\Adapter\DbSelect;
use LeadersLinked\Mapper\QueryMapper;
use LeadersLinked\Mapper\ProfileVisitMapper;
use LeadersLinked\Mapper\CompanyFollowerMapper;
use LeadersLinked\Model\User;

class  CompanyFollowerHelper extends AbstractHelper
{
    
    /**
     *
     * @var AdapterInterface
     */
    private $adapter;
    
    
    /**
     *
     * @param AdapterInterface $adapter
     */
    public function __construct($adapter)
    {
        $this->adapter      = $adapter;
    }
    
    public function __invoke($company_id)
    {   
        $companyFollowerMapper = CompanyFollowerMapper::getInstance($this->adapter);
        $records = $companyFollowerMapper->fetchAllByCompanyId($company_id);
        
        $ids = [];
        foreach($records as $record) 
        {
            if(!in_array($record->follower_id, $ids)) {
                array_push($ids, $record->follower_id);
            }
        }
        
        $items = [];
        if($ids) {
        
            $mapper = QueryMapper::getInstance($this->adapter);
            $select = $mapper->getSql()->select(UserMapper::_TABLE);
            $select->columns(['uuid','first_name', 'last_name', 'image']);
            $select->where->in('id',$ids);
            $select->where->equalTo('status',User::STATUS_ACTIVE);
            $select->order(['last_name','first_name']);
            
            //echo $select->getSqlString($this->adapter->platform); 
            
            $items = $mapper->fetchAll($select);
        }
        return $this->getView()->render('helpers/company-followers.phtml', ['items' => $items]);
    }
}