Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3639 | Rev 4244 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php

use LeadersLinked\Model\UserType;
use LeadersLinked\Model\User;

$currentUser            = $this->currentUserHelper();

$logoForNavbar = $this->networkNavbarHelper();

if( $currentUser->hasIdentity() ) {

$session_user_id        = $currentUser->getUserId();
$session_usertype_id    = $currentUser->getUserTypeId();
$user = $currentUser->getUser();

$link_admin = $session_usertype_id == UserType::ADMIN ? 1 : 0;


$link_impersonate = $user->is_super_user == User::IS_SUPER_USER_YES ? 1 : 0;


$container = $this->navigation('menuNavigation')->getContainer();

$acl = $this->viewModel()->getCurrent()->getVariable('acl');



$menu = [];
foreach($container as $page) {

    if(!$page || !$page->getRoute() || !$acl->isAllowed($session_usertype_id , $page->getRoute())) {
        continue;
    }



    $option = [
        'label' => $page->getLabel(),
        'href' => $page->getHref(),
        'img' => $page->getClass(),
        'childs' => [],
    ];    
    
    
    $childs = $page->getPages();
    if($childs) {
        foreach($childs as $child) {
            if(!$acl->isAllowed($session_usertype_id ,  $child->getRoute())) {
                      continue;
            }
            
            

            
            
            
            $childs_level2 = [];
            
            
            $childsLevel2 = $child->getPages();
            

            

            
            if($childsLevel2) {
                foreach($childsLevel2 as $childLevel2) {
                    if(!$acl->isAllowed($session_usertype_id ,  $childLevel2->getRoute())) {
                        continue;
                    }
                    
                    array_push($childs_level2, [
                        'label' => $childLevel2->getLabel(),
                        'href' => $childLevel2->getHref(),
                        
                    ]);
                }
                
               
            }
            
            
            array_push($option['childs'], [
                'label' => $child->getLabel(),
                'href' => $child->getHref(),
                'childs' => $childs_level2,
            ]);
            
        }
    }                           
    
    array_push($menu, $option);
}

/*
echo '<pre>';
print_r($menu);
echo '</pre>';
exit;
*/

$menu = json_encode($menu);

$image = $this->url('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image ]);



$isChatPage = $this->viewModel()->getCurrent()->getVariable('is_chat');
$routeCheckSession = $this->url('check-session');
$currentUser    = $this->currentUserHelper();
$js = <<<JS
const navbarVars={
  menu: '$menu',
  isChatPage: '$isChatPage' === '1',
  routeCheckSession: '$routeCheckSession',
  linkAdmin : '$link_admin' === '1',
  linkImpersonate : '$link_impersonate' === '1',
  image: '$image',
  fullName: '$fullname',
  country: '$country',
  visits: '$visits',
  connections: '$connections',
  logoForNavbar: '$logoForNavbar',
}

//TODO is_chat
JS;
$this->inlineScript()->appendScript($js);
$this->inlineScript()->appendFile('/react-bundles/navbar/navbarBundle.js');

echo <<<EOT
<div id="react_navbar"></div>
<div id="react_navbar_2"></div>
EOT;
} else {
    
}