connect(REDIS_SERVER, REDIS_PORT); if (defined('REDIS_PASS') && REDIS_PASS) $redis->auth(REDIS_PASS); if (defined('REDIS_PREFIX') && REDIS_PREFIX) $redis->setOption(Redis::OPT_PREFIX, REDIS_PREFIX); if (defined('REDIS_DB') && REDIS_DB) $redis->select(REDIS_DB); $GLOBALS['redis'] = $redis; } catch (Exception $e) { $GLOBALS['redis'] = false; } } else $GLOBALS['redis'] = false; } function callHook($url) { $queryString = array(); if (!$url[0]) { $component = 'home'; $action = 'index'; } else { $urlArray = $url; $component = $urlArray[0]; array_shift($urlArray); $params = $urlArray; if (isset($urlArray[0])) { $action = $urlArray[0]; array_shift($urlArray); } else $action = 'index'; // Default Action $queryString = $urlArray; } if (!file_exists(ROOT . DS . 'pages' . DS . $component . DS . 'controller.php')) { $component = 'err'; $action = 'notfound'; $queryString = array($url); } $componentName = ucfirst($component); $dispatch = new $componentName($component, $action, false); if (!$dispatch->maySeeThisPage()) { $componentName = 'err'; $action = 'notallowed'; $dispatch = new $componentName('err', $action, true); } else $dispatch = new $componentName($component, $action, true, $queryString); if (method_exists($componentName, $action)) $response = call_user_func_array(array($dispatch, $action), $queryString); else if (method_exists($componentName, 'catchAll')) $response = call_user_func_array(array($dispatch, 'catchAll'), array($params)); else { $dispatch = new Err('err', 'notfound', false); $response = call_user_func_array(array($dispatch, 'notfound'), array($params)); } if(is_string($response)) return $response; else return $dispatch->renderPagecontent(); } function getMenu() { //first let's find all possible menu items $arr = array(); if ($handle = opendir(ROOT . DS . 'pages')) { while (false !== ($file = readdir($handle))) { if (file_exists(ROOT . DS . 'pages' . DS . $file.DS.'controller.php') && class_exists($file)) { $instance = new $file($file, 'index', false); $instance->setMenu(); $instance->setSubmenu(); if($instance->maySeeThisPage()===true) { $menu_text = $instance->menu_text; $menu_priority = $instance->menu_priority; if($menu_text) { while($arr[$menu_priority]) $menu_priority++; $arr[$menu_priority] = array('text'=>$menu_text,'image'=>$instance->menu_image, 'url'=>$file,'menu_classes'=>$instance->menu_classes,'submenu'=>$instance->submenu); } } } } closedir($handle); } //sort the menu ksort($arr); $arr = array_values($arr); return $arr; }