public function testGetInstance()
 {
     static::assertSame(Template::getInstance(), Template::getInstance());
     static::assertSame(Template::load('test', true), Template::getInstance());
     //not the same because $makeSingleton = false
     static::assertNotSame(Template::load('bootadmin', false), Template::getInstance());
     //not the same because of reloading
     static::assertNotSame(Template::getInstance(), Template::load('bootadmin', true));
 }
 public function toHtml()
 {
     $path = Configuration::get('site.url');
     $iconPath = Template::getInstance()->imgDirectory;
     $script = Configuration::get('site.scriptUrl');
     $this->unterordner = new Kollektion();
     $this->unterordner = $this->unterordner->filter(['parent' => $this->ordner]);
     $this->dateien = new Medien();
     $this->dateien = $this->dateien->filter(['kollektion' => $this->ordner]);
     $div = Html::create('div')->addAttribute('id', $this->id);
     $table = Html::create('table')->css('table')->css('table-striped')->css('table-hover')->addTo($div);
     // HEADER
     $thead = Html::create('thead')->addTo($table);
     $tr = Html::create('tr')->addTo($thead);
     $th = Html::create('th')->addTo($tr)->addInnerHtml('Titel');
     $th = Html::create('th')->addTo($tr)->addInnerHtml('Dateiname');
     $th = Html::create('th')->addTo($tr)->addInnerHtml('Größe');
     $th = Html::create('th')->addTo($tr)->addCssClass('icon')->addInnerHtml(' ');
     // BODY
     $tbody = Html::create('tbody')->addTo($table);
     // Ebene nach oben
     if ($this->ordnerObj != null && $this->ordnerObj->ko_parent > 0 && $this->showUp) {
         $tr = Html::create('tr')->addTo($tbody);
         $td = Html::create('td')->addTo($tr)->addInnerHtml('<a class="nfs-ajax" data-target="' . $this->ajaxTarget . '" href="' . $script . '/medien/showKollektion/id/' . $this->ordnerObj->ko_parent . '"><img src="' . $iconPath . '/icons/folder_up.png" /> zurück...</a>');
         $td = Html::create('td')->addTo($tr)->addInnerHtml('');
         $td = Html::create('td')->addTo($tr)->addInnerHtml('');
         $td = Html::create('td')->addTo($tr)->addInnerHtml('');
     } elseif ($this->ordnerObj != null && $this->showUp) {
         $tr = Html::create('tr')->addTo($tbody);
         $td = Html::create('td')->addTo($tr)->addInnerHtml('<a class="nfs-ajax" data-target="' . $this->ajaxTarget . '" href="' . $script . '/medien/showKollektion"><img src="' . $iconPath . '/icons/folder_up.png" /> zurück...</a>');
         $td = Html::create('td')->addTo($tr)->addInnerHtml('');
         $td = Html::create('td')->addTo($tr)->addInnerHtml('');
         $td = Html::create('td')->addTo($tr)->addInnerHtml('');
     }
     foreach ($this->unterordner as $akt) {
         $tr = Html::create('tr')->addTo($tbody);
         $td = Html::create('td')->addTo($tr)->addInnerHtml('<a class="nfs-ajax" data-target="' . $this->ajaxTarget . '" href="' . $script . '/medien/showKollektion/id/' . $akt->id . '"><img src="' . $iconPath . '/files/folder.png" /> ' . $akt->ko_bezeichnung . "</a> <a href=\"" . $script . "/medien/editKollektion/id/" . $akt->id . "\">[Edit]</a>");
         $td = Html::create('td')->addTo($tr)->addInnerHtml('');
         $td = Html::create('td')->addTo($tr)->addInnerHtml('');
         $td = Html::create('td')->addTo($tr)->addCssClass('icons')->addInnerHtml('<a class="nfs-ajax" data-target="' . $this->ajaxTarget . '" href="' . $script . '/medien/deleteKollektion/id/' . $akt->id . '"><img src="' . $iconPath . '/icons/delete.png" /></a>');
     }
     foreach ($this->dateien as $akt) {
         $tr = Html::create('tr')->addTo($tbody);
         // TODO: Bilder und andere Dokumente unterscheiden
         $td = Html::create('td')->addTo($tr)->addInnerHtml('<a class="magnigic-popup" href="' . $path . '/medien/' . $akt->me_kollektion . '/' . $akt->me_dateiname . '"><img src="' . $iconPath . '/files/' . $akt->me_erweiterung . '.png" /> ' . $akt->me_titel . "</a>&nbsp;&nbsp;&nbsp; <a href=\"" . $script . "/medien/editMedien/id/" . $akt->id . "\">[Edit]</a>");
         $td = Html::create('td')->addTo($tr)->addInnerHtml($akt->me_dateiname);
         $td = Html::create('td')->addTo($tr)->addInnerHtml(intval($akt->me_groesse / 1024) . ' KB');
         $td = Html::create('td')->addTo($tr)->addCssClass('icons')->addInnerHtml('<a href="' . $script . '/medien/deleteMedien/id/' . $akt->id . '"><img src="' . $iconPath . '/icons/delete.png" /></a> ');
     }
     $script = Html::create('script')->addInnerHtml("\n            \$('.magnific-popup').magnificPopup({\n                type: 'image'\n            });\n          ");
     return $table->render() . $script->render();
 }
 /**
  * @param $outerTemplate
  */
 public function __construct($outerTemplate = '')
 {
     if ($outerTemplate != '') {
         $templateToUse = Template::load($outerTemplate);
     } else {
         $templateToUse = Template::getInstance();
     }
     // Default Templates
     $this->readTemplatesInPath('site/templates');
     // Theme Templates
     //if (file_exists($templateToUse->getTemplateDirectory())) {
     //    $this->readTemplatesInPath($templateToUse->getTemplateDirectory());
     //}
 }