[ 'remove' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/remove.svg' ), 'edit' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/edit.svg' ), 'device' => file_get_contents( __PUBLIC__.'/src/static/menu-side/device.svg' ), 'permission' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/permission.svg') ], 'p_theme' => $_SESSION['WAREHOUSE']['theme'] ]; /* [3] Store functions =========================================================*/ $twig->addFunction(new \Twig_Function('f_clusters', function(){ $request = new Request('clusterDefault/getAll', [ 'class' => 1 ]); $answer = $request->dispatch(); // si erreur, on affiche rien par défaut if( $answer->error->get() != Err::Success ) return []; return $answer->get('clusters'); })); $twig->addFunction(new \Twig_Function('f_nbmachines', function($id_cluster){ $machineReq = new Request('clusterDefault/getMembers', [ 'id_cluster' => (int) $id_cluster, 'class' => 1 ]); $machineRes = $machineReq->dispatch(); // si erreur, on affiche rien par défaut if( $machineRes->error->get() != Err::Success ) return []; return count($machineRes->get('members')); })); $twig->addFunction(new \Twig_Function('f_permissions', function(){ $permReq = new Request('clusterDefault/getPermissions', []); $permRes = $permReq->dispatch(); // si erreur, on affiche rien par défaut if( $permRes->error->get() != Err::Success ) return []; return $permRes->get('permissions'); })); $twig->addFunction(new \Twig_Function('f_userclusters', function($id_cluster, $id_permission){ $ucReq = new Request('clusterDefault/getAuthenticatedClusters', [ 'id_target' => $id_cluster, 'id_action' => $id_permission ]); $ucRes = $ucReq->dispatch(); // si erreur, on affiche rien par défaut if( $ucRes->error->get() != Err::Success ) return []; return $ucRes->get('clusters'); })); $twig->addFilter(new \Twig_Filter('translate', function($word, $lang){ $word = strtolower($word); if( $lang === 'fr' ){ switch($word){ case 'start': return 'démarrer'; break; case 'stop': return 'arrêter'; break; case 'signal': return 'signaler'; break; case 'lock': return 'bloquer'; break; case 'unlock': return 'débloquer'; break; default: return 'inconnu'; break; } }else return 'inconnu'; })); /* [4] Build the whole stuff =========================================================*/ return $twig->render('group/permission.twig', [ 'p_icon' => $variables['p_icon'], 'p_theme' => $variables['p_theme'] ]); } } ?>