Example #1
0
 private static function render(Site $site, Response $response, array $blocks)
 {
     $redirectTo = $response->getRedirectTo();
     if ($redirectTo !== null) {
         header("Location: " . $redirectTo, true, 303);
         die;
     }
     $rawContent = $response->getRawContent();
     if ($rawContent !== "") {
         echo $rawContent;
         return;
     }
     require_once EDUCASK_ROOT . "/core/thirdPartyLibraries/twig/lib/Twig/Autoloader.php";
     Twig_Autoloader::register();
     $theme = EDUCASK_ROOT . '/site/themes/' . $site->getTheme();
     str_replace('..', '', $theme);
     if (!is_dir($theme)) {
         $theme = EDUCASK_ROOT . '/site/themes/default';
     }
     $loader = new Twig_Loader_Filesystem(array($theme));
     $baseThemes = glob(EDUCASK_ROOT . '/core/baseThemes/*');
     foreach ($baseThemes as $baseTheme) {
         $name = explode('/', $baseTheme);
         $name = end($name);
         $loader->addPath($baseTheme, $name);
     }
     $viewsDirectories = glob(EDUCASK_ROOT . '/site/modules/*/views');
     foreach ($viewsDirectories as $viewDirectory) {
         $name = explode('/', $viewDirectory);
         $name = $name[count($name) - 2];
         $loader->addPath($viewDirectory, $name);
     }
     $twig = new Twig_Environment($loader, array('debug' => true));
     $twig->addExtension(new Twig_Extension_Debug());
     $twig->addExtension(new TwigExtensions());
     if ($site->isInMaintenanceMode()) {
         if (!PermissionEngine::getInstance()->currentUserCanDo('bypasssMaintenanceMode')) {
             echo $twig->render('maintenance.twig', array('site' => $site));
             return;
         }
     }
     $noticeEngine = NoticeEngine::getInstance();
     $notices = $noticeEngine->getNotices();
     $noticeEngine->removeNotices();
     echo $twig->render('index.twig', array('site' => $site, 'model' => $response->getObjectToPassToView(), 'title' => $response->getPageTitle(), 'blocks' => $blocks, 'notices' => $notices, 'response' => $response));
 }