Rev 4283 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?php
namespace LeadersLinked\Helper;
use Laminas\View\Helper\AbstractHelper;
use Laminas\Db\Adapter\AdapterInterface;
use LeadersLinked\Mapper\UserMapper;
use LeadersLinked\Model\UserType;
use LeadersLinked\Mapper\ConnectionMapper;
use LeadersLinked\Mapper\LocationMapper;
use LeadersLinked\Mapper\ProfileVisitMapper;
use LeadersLinked\Model\SelfEvaluationFormUser;
use LeadersLinked\Mapper\SelfEvaluationFormUserMapper;
use LeadersLinked\Mapper\QueryMapper;
use Laminas\Db\Sql\Expression;
use LeadersLinked\Mapper\SelfEvaluationFormMapper;
use LeadersLinked\Model\SelfEvaluationForm;
use LeadersLinked\Mapper\NetworkMapper;
use LeadersLinked\Model\Network;
use LeadersLinked\Mapper\CompanyMapper;
use LeadersLinked\Mapper\CompanyUserMapper;
use LeadersLinked\Model\CompanyUser;
class MenuHelper extends AbstractHelper
{
/**
*
* @var AdapterInterface
*/
private $adapter;
/**
*
* @var array
*/
private $config;
/**
*
* @param AdapterInterface $adapter
* @param array $config
*/
public function __construct($adapter, $config)
{
$this->adapter = $adapter;
$this->config = $config;
}
/**
*
* @param int $user_id
* @return string
*/
public function __invoke($user_id)
{
$userMapper = UserMapper::getInstance($this->adapter);
$user = $userMapper->fetchOne($user_id);
if($user) {
$networkMapper = NetworkMapper::getInstance($this->adapter);
$network = $networkMapper->fetchOne($user->network_id);
if($network->default == Network::DEFAULT_YES) {
if($network->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {
$pages = getAclMenuDefaultNetworkConnectionUser2User();
} else {
$pages = getAclMenuDefaultNetworkConnectionAll2All();
}
} else {
if($network->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {
$pages = getAclMenuNonDefaulNetworkConnectionUser2User();
} else {
$pages = getAclMenuNonDefaultNetworkConnectionAll2All();
}
}
/*
$queryMapper = QueryMapper::getInstance($this->adapter);
$select = $queryMapper->getSql()->select();
$select->columns(['total' => new Expression('COUNT(*)')]);
$select->from(['u' => SelfEvaluationFormUserMapper::_TABLE]);
$select->join(['f' => SelfEvaluationFormMapper::_TABLE], 'u.form_id = f.id');
$select->where->equalTo('u.user_i', $user_id);
$select->where->equalTo('f.status', SelfEvaluationForm::STATUS_ACTIVE);
$record = $queryMapper->fetchOne($select);
$access_for_self_evaluation = $record['total'] > 0;
*/
$user_uuid = $user->uuid;
$fullname = trim($user->first_name . ' ' . $user->last_name);
$profileVisitMapper = ProfileVisitMapper::getInstance($this->adapter);
$visits = $profileVisitMapper->getTotalByVisitedId($user->id);
$connectionMapper = ConnectionMapper::getInstance($this->adapter);
$connections = $connectionMapper->fetchTotalConnectionByUser($user->id);
if($user->location_id) {
$locationMapper = LocationMapper::getInstance($this->adapter);
$location = $locationMapper->fetchOne($user->location_id);
$country = $location->country;
} else {
$country = '';
}
$userMapper = UserMapper::getInstance($this->adapter);
$user = $userMapper->fetchOne($user_id);
if($user && $user->usertype_id == UserType::ADMIN) {
$link_admin = '/backend/signin-admin';
} else {
$link_admin = '';
}
$link_company = '';
if($network->default != Network::DEFAULT_YES) {
$companyMapper = CompanyMapper::getInstance($this->adapter);
$company = $companyMapper->fetchDefaultForNetworkByNetworkId($network->id);
if($company) {
$companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
$companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($company->id, $user->id);
if($companyUser) {
if($companyUser && $companyUser->status == CompanyUser::STATUS_ACCEPTED && $companyUser->backend == CompanyUser::BACKEND_YES ) {
$link_company = ['route' => 'backend/signin-company', 'id' => $company->uuid ];
}
}
}
}
} else {
$user_uuid= '';
$fullname = '';
$country = '';
$visits = 0;
$connections = 0;
$link_admin = '';
$link_company = '';
}
$data = [
'user_uuid' => $user_uuid,
'fullname' => $fullname,
'country' => $country,
'visits' => $visits,
'connections' => $connections,
'link_admin' => $link_admin,
'link_company' => $link_company,
'pages' => $pages
];
return $this->getView()->render('helpers/menu.phtml', $data);
}
}