Rev 4842 | Rev 5751 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?phpdeclare(strict_types=1);namespace LeadersLinked\Controller;use Laminas\Db\Adapter\AdapterInterface;use Laminas\Cache\Storage\Adapter\AbstractAdapter;use Laminas\Mvc\Controller\AbstractActionController;use Laminas\Log\LoggerInterface;use Laminas\View\Model\ViewModel;use Laminas\View\Model\JsonModel;use LeadersLinked\Mapper\PostMapper;use LeadersLinked\Mapper\FeedMapper;use LeadersLinked\Model\Feed;use LeadersLinked\Mapper\LocationMapper;use LeadersLinked\Mapper\UserMapper;use LeadersLinked\Mapper\NotificationMapper;use LeadersLinked\Mapper\UserProfileMapper;use LeadersLinked\Mapper\ProfileVisitMapper;use LeadersLinked\Mapper\ConnectionMapper;use LeadersLinked\Form\Feed\CreateForm;use LeadersLinked\Form\Feed\ShareForm;use LeadersLinked\Model\Network;use LeadersLinked\Library\Functions;class DashboardController extends AbstractActionController{/**** @var AdapterInterface*/private $adapter;/**** @var AbstractAdapter*/private $cache;/**** @var LoggerInterface*/private $logger;/**** @param AdapterInterface $adapter* @param AbstractAdapter $cache* @param LoggerInterface $logger* @param array $config*/public function __construct($adapter, $cache , $logger, $config){$this->adapter = $adapter;$this->cache = $cache;$this->logger = $logger;$this->config = $config;}public function indexAction(){$currentUserPlugin = $this->plugin('currentUserPlugin');$currentUser = $currentUserPlugin->getUser();$currentNetworkPlugin = $this->plugin('currentNetworkPlugin');$currentNetwork = $currentNetworkPlugin->getNetwork();$userMapper = UserMapper::getInstance($this->adapter);$user = $userMapper->fetchOne($currentUser->id);$request = $this->getRequest();if($request->isGet()) {$headers = $request->getHeaders();$isJson = false;if($headers->has('Accept')) {$accept = $headers->get('Accept');$prioritized = $accept->getPrioritized();foreach($prioritized as $key => $value) {$raw = trim($value->getRaw());if(!$isJson) {$isJson = strpos($raw, 'json');}}}if($isJson) {$profileVisitMapper = ProfileVisitMapper::getInstance($this->adapter);//$visits = $profileVisitMapper->getTotalByVisitedId($currentUser->id);$visits = $profileVisitMapper->getTotalByVisitedIdGroupVisitorId($currentUser->id);if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {$connectionMapper = ConnectionMapper::getInstance($this->adapter);$connections = $connectionMapper->fetchTotalConnectionByUser($currentUser->id);} else {if($currentNetwork->default == Network::DEFAULT_YES) {$connections = $userMapper->fetchCountActiveByDefaultNetworkId($currentNetwork->id);} else {$connections = $userMapper->fetchCountActiveByOtherNetworkId($currentNetwork->id);}}if($user->location_id) {$locationMapper = LocationMapper::getInstance($this->adapter);$location = $locationMapper->fetchOne($user->location_id);$country = $location->country;} else {$country = '';}$image_size = $this->config['leaderslinked.image_sizes.feed_image_upload'];return new JsonModel(['user_uuid' => $user->uuid,'image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]),'fullname' => trim($user->first_name . ' ' . $user->last_name),'country' => $country,'visits' => $visits,'connections' => $connections,'image_size' => $image_size,]);} else {$feed_uuid = $this->params()->fromRoute('feed');if($feed_uuid) {$feedMapper = FeedMapper::getInstance($this->adapter);$feed = $feedMapper->fetchOneByUuidAnyStatus($feed_uuid);} else {$feed = '';}$profileVisitMapper = ProfileVisitMapper::getInstance($this->adapter);// $visits = $profileVisitMapper->getTotalByVisitedId($currentUser->id);$visits = $profileVisitMapper->getTotalByVisitedIdGroupVisitorId($currentUser->id);if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {$connectionMapper = ConnectionMapper::getInstance($this->adapter);$connections = $connectionMapper->fetchTotalConnectionByUser($currentUser->id);} else {if($currentNetwork->default == Network::DEFAULT_YES) {$connections = $userMapper->fetchCountActiveByDefaultNetworkId($currentNetwork->id);} else {$connections = $userMapper->fetchCountActiveByOtherNetworkId($currentNetwork->id);}$connections--;}if($user->location_id) {$locationMapper = LocationMapper::getInstance($this->adapter);$location = $locationMapper->fetchOne($user->location_id);$country = $location->country;} else {$country = '';}$userProfileMapper = UserProfileMapper::getInstance($this->adapter);$userProfile = $userProfileMapper->fetchOnePublicByUserId($currentUser->id);$image_size = $this->config['leaderslinked.image_sizes.feed_image_upload'];$formFeed = new CreateForm();$formShare = new ShareForm();if($feed) {$link_timeline = $this->url()->fromRoute('feed/timeline', ['id' => $currentUser->uuid, 'type' => 'user', 'feed' => $feed->uuid]);} else {$link_timeline = $this->url()->fromRoute('feed/timeline', ['id' => $currentUser->uuid, 'type' => 'user']);}$this->layout()->setTemplate('layout/layout.phtml');$viewModel = new ViewModel();$viewModel->setVariables(['user_uuid' => $user->uuid,'image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]),'fullname' => trim($user->first_name . ' ' . $user->last_name),'description' => empty($userProfile->description) ? '' : trim($userProfile->description) ,'country' => $country,'visits' => $visits,'connections' => $connections,'feed' => '','link_timeline' => $link_timeline,'formFeed' => $formFeed,'formShare' => $formShare,'image_size' => $image_size,]);$viewModel->setTemplate('leaders-linked/dashboard/index.phtml');return $viewModel ;}}return new JsonModel(['success' => false,'data' => 'ERROR_METHOD_NOT_ALLOWED']);}public function dashboard2Action(){$currentUserPlugin = $this->plugin('currentUserPlugin');$currentUser = $currentUserPlugin->getUser();$userMapper = UserMapper::getInstance($this->adapter);$user = $userMapper->fetchOne($currentUser->id);$request = $this->getRequest();if($request->isGet()) {$headers = $request->getHeaders();$isJson = false;if($headers->has('Accept')) {$accept = $headers->get('Accept');$prioritized = $accept->getPrioritized();foreach($prioritized as $key => $value) {$raw = trim($value->getRaw());if(!$isJson) {$isJson = strpos($raw, 'json');}}}if($isJson) {$profileVisitMapper = ProfileVisitMapper::getInstance($this->adapter);$visits = $profileVisitMapper->getTotalByVisitedId($currentUser->id);$connectionMapper = ConnectionMapper::getInstance($this->adapter);$connections = $connectionMapper->fetchTotalConnectionByUser($currentUser->id);if($user->location_id) {$locationMapper = LocationMapper::getInstance($this->adapter);$location = $locationMapper->fetchOne($user->location_id);$country = $location->country;} else {$country = '';}$image_size = $this->config['leaderslinked.image_sizes.feed_image_upload'];return new JsonModel(['user_uuid' => $user->uuid,'image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]),'fullname' => trim($user->first_name . ' ' . $user->last_name),'country' => $country,'visits' => $visits,'connections' => $connections,'image_size' => $image_size,]);} else {$feed_uuid = $this->params()->fromRoute('feed');if($feed_uuid) {$feedMapper = FeedMapper::getInstance($this->adapter);$feed = $feedMapper->fetchOneByUuid($feed_uuid);if($feed && $feed->type == Feed::TYPE_UPDATE && $feed->user_id == $currentUser->id && $feed->status == Feed::STATUS_PUBLISHED) {$notificationMapper = NotificationMapper::getInstance($this->adapter);$notificationMapper->markAllNotificationsAsReadByUserIdAndFeedId($currentUser->id, $feed->id);} else {$feed_uuid = '';}} else {$feed_uuid = '';}$profileVisitMapper = ProfileVisitMapper::getInstance($this->adapter);$visits = $profileVisitMapper->getTotalByVisitedId($currentUser->id);$connectionMapper = ConnectionMapper::getInstance($this->adapter);$connections = $connectionMapper->fetchTotalConnectionByUser($currentUser->id);if($user->location_id) {$locationMapper = LocationMapper::getInstance($this->adapter);$location = $locationMapper->fetchOne($user->location_id);$country = $location->country;} else {$country = '';}$userProfileMapper = UserProfileMapper::getInstance($this->adapter);$userProfile = $userProfileMapper->fetchOnePublicByUserId($currentUser->id);$image_size = $this->config['leaderslinked.image_sizes.feed_image_upload'];$formFeed = new CreateForm();$formShare = new ShareForm();$this->layout()->setTemplate('layout/layout.phtml');$viewModel = new ViewModel();$viewModel->setVariables(['user_uuid' => $user->uuid,'image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]),'fullname' => trim($user->first_name . ' ' . $user->last_name),'description' => empty($userProfile->description) ? '' : trim($userProfile->description) ,'country' => $country,'visits' => $visits,'connections' => $connections,'feed' => $feed_uuid,'formFeed' => $formFeed,'formShare' => $formShare,'image_size' => $image_size,]);$viewModel->setTemplate('leaders-linked/dashboard/dashboard2.phtml');return $viewModel ;}}return new JsonModel(['success' => false,'data' => 'ERROR_METHOD_NOT_ALLOWED']);}}