public function get()
 {
     // $attributes = $this->getAttributes();
     // if ( isset($attributes['theme']) ) $theme = in_array($attributes['theme'], $this->available_themes) ? $attributes['theme'] : "default";
     // else $theme = "default";
     $theme = "default";
     $template = new TemplateBootstrap("dash", $theme);
     if (DISPATCHER_USE_REWRITE) {
         $test_link = DISPATCHER_BASEURL . 'test/';
         $about_link = DISPATCHER_BASEURL . 'about/';
     } else {
         $test_link = DISPATCHER_BASEURL . '?service=test';
         $about_link = DISPATCHER_BASEURL . '?service=about';
     }
     $template->setTitle("Comodojo dispatcher")->setBrand("comodojo::dispatcher");
     $template->addMenu("right")->addMenuItem("Test", $test_link, "right")->addMenuItem("About", $about_link, "right");
     $template->setContent('<h1>Framework functional tests</h1><p class="lead"><span class="glyphicon glyphicon-arrow-left"></span>&nbsp;&nbsp;Select a test case from the left menu to start.</p>');
     $template->addScript(DISPATCHER_BASEURL . "vendor/comodojo/dispatcher.servicebundle.test/resources/js/dispatcher.test.js?" . microtime());
     $template->addScript(DISPATCHER_BASEURL . "vendor/comodojo/dispatcher.servicebundle.test/resources/js/dispatcher.working.mode.js.php?rw=" . (DISPATCHER_USE_REWRITE ? '1' : '0') . '&' . microtime());
     return $template->serialize();
 }
 private function toHtml($parser, $configuration, $project, $version, $project_data, $projects, $versions)
 {
     $template = new TemplateBootstrap("dash", "default");
     // setup template
     $template->setTitle($configuration['description'])->setBrand($configuration['sitename']);
     $template->addCss(DISPATCHER_BASEURL . 'vendor/comodojo/dispatcher.servicebundle.gitdoc/resources/css/gitdoc.css');
     $template->addScript(DISPATCHER_BASEURL . 'vendor/comodojo/dispatcher.servicebundle.gitdoc/resources/js/gitdoc.js');
     $template->addMenu("right")->addMenu("left")->addMenu("side");
     foreach ($configuration["links"] as $name => $link) {
         $template->addMenuItem($name, $link, "right");
     }
     foreach ($projects as $pr) {
         $menuitems = array();
         foreach ($versions[$pr] as $ver) {
             $menuitems[$ver] = DISPATCHER_BASEURL . $pr . '/' . $ver . '/';
         }
         $template->addMenuItem($pr, '#', "left", $menuitems);
     }
     // go parser
     if ($version == "live") {
         $path = $project_data["live"]["path"];
         $time = $project_data["live"]["time"];
         $senderName = $project_data["live"]["senderName"];
         $senderHtml = null;
         $senderAvatar = null;
         $compare = $project_data["live"]["compare"];
     } else {
         if ($version == $project_data["latest"]["version"]) {
             $path = $project_data["latest"]["path"];
             $time = $project_data["latest"]["time"];
             $senderName = $project_data["latest"]["senderName"];
             $senderHtml = $project_data["latest"]["senderHtml"];
             $senderAvatar = $project_data["latest"]["senderAvatar"];
             $compare = null;
         } else {
             $path = $project_data["archive"][$version]["path"];
             $time = $project_data["archive"][$version]["time"];
             $senderName = $project_data["archive"][$version]["senderName"];
             $senderHtml = $project_data["archive"][$version]["senderHtml"];
             $senderAvatar = $project_data["archive"][$version]["senderAvatar"];
             $compare = null;
         }
     }
     $header = $this->headerBlock($project, $version, $senderName, $time, $senderAvatar, $senderHtml, $compare);
     $footer = $this->footerBlock($project_data['html_url']);
     $content = $parser->implodeChapters($path)->toHtml();
     $index = $parser->getIndex();
     foreach ($index as $chapter) {
         $template->addMenuItem($chapter["name"], $chapter["ref"], "side", $chapter["paragraphs"]);
     }
     $template->setContent(($configuration['showHeader'] ? $header : '') . $content . ($configuration['showFooter'] ? $footer : ''));
     return $template->serialize();
 }