if (isset($_GET['page'])) { $page = $_GET['page']; } $page = basename($page); } // Recherche du module ... if (Extend::getAction($action) == false && !file_exists($root . 'action' . DS . $action . '.php')) { $action = 'syscore'; $page = 'nomod'; } // Etape 3, vérification des droits d'accès if (!isset($_SESSION['user'])) { $_SESSION['user'] = false; } $tpl->assign('_user', $_SESSION['user']); if ($_SESSION['user']) { $sections = $pdo->prepare('SELECT * FROM user_sections LEFT JOIN sections ON us_section = section_id WHERE us_user = ?'); $sections->bindValue(1, $_SESSION['user']['user_id']); $sections->execute(); $_SESSION['user']['sections'] = array(); while ($line = $sections->fetch()) { $_SESSION['user']['sections'][$line['section_id']] = $line; } } modsecu($action, $page, $_GET); needAcl(getAclLevel($action, $page), $action, $page, $_GET); // Etape 4 lancement du module modexec($action, $page); modexec('syscore', 'moderror'); quit(); }
/** * Créé un item de menu * * @param type $item tableau d'items * @param type $level niveau du menu * @return string HTML */ function mkmenuItem($item, $level = 0) { $txt = ""; if (isset($item['sub'])) { $stxt = ''; $txt = '<li class="dropdown"> <a href="#" data-toggle="dropdown" class="dropdown-toggle">' . $item['label'] . ' <b class="caret"></b></a> <ul class="dropdown-menu">'; foreach ($item['sub'] as $sub) { $stxt .= mkmenuItem($sub, $level + 1); } if (strlen($stxt) == 0) { return ""; } $txt .= $stxt; $txt .= '</ul></li>'; } else { $opts = array(); $action = 'index'; $page = 'index'; if (is_string($item['url'])) { $action = $item['url']; } else { if (isset($item['url']['action'])) { $action = $item['url']['action']; } if (isset($item['url']['page'])) { $page = $item['url']['page']; } $opts = $item['url']; unset($opts['action']); unset($opts['page']); } $url = mkurl($action, $page, $opts); $need = getAclLevel($action, $page); $acl = hasAcl($need, $action, $page, $opts); if ($acl) { $txt = '<li><a href="' . $url . '">' . $item['label'] . '</a></li>'; } } return $txt; }