protected function createControls()
 {
     $artikelliste = $this->controller->kategorie->getArtikel();
     Logging::info('Kategorie enthält ' . count($artikelliste) . ' Artikel');
     foreach ($artikelliste as $artikel) {
         $glossar[strtoupper(substr($artikel->titel, 0, 1))][] = $artikel;
     }
     array_multisort($glossar, SORT_DESC);
     $menuString = '<br><div class="btn-group">';
     foreach ($glossar as $buchstabe => $artikelmenge) {
         $menuString .= '<a href="' . $_SERVER['REQUEST_URI'] . '#' . $buchstabe . '" class="btn btn-default">' . $buchstabe . '</a>';
     }
     $menuString .= '</div><br><br>';
     $menu = new HtmlControl($this, 'menu');
     $menu->setInnerHtml($menuString);
     foreach ($glossar as $buchstabe => $artikelmenge) {
         $anchor = new HtmlControl($this, $buchstabe);
         $anchor->setInnerHtml('<a id="' . $buchstabe . '"></a>');
         $artikelPanel = new CaptionedPanelControl($this, 'buchstabe_' . $buchstabe);
         $artikelPanel->setCaption($buchstabe);
         sort($artikelmenge);
         foreach ($artikelmenge as $artikel) {
             $text = Text::get($artikel->getElementId() . '.intro', $_SESSION['sp_id'])->te_text;
             $artikelText = new HtmlControl($artikelPanel, 'text_' . $artikel->id);
             $artikelText->setInnerHtml('<h4>' . $artikel->titel . '</h4>' . $text . '<br>');
         }
     }
 }
 /**
  * Gibt den Text mit den ersetzten Links zurück
  * @return string
  */
 public function getText()
 {
     $this->text = html_entity_decode($this->text);
     $matches = [];
     // Suchen nach allem, dass in [[ ]] eingeschlossen ist
     preg_match_all('/\\[\\[([\\w\\.\\säöüÄÖÜß]+)\\]\\]/', $this->text, $matches);
     Logging::debug(print_r($matches, true));
     foreach ($matches[1] as $match) {
         $artikel = CmsArtikel::loadByBezeichnung($match, $this->kategorieId);
         if ($artikel == null) {
             Logging::info('Lege Artikel neu an: ' . $match);
             $artikel = new CmsArtikel();
             $artikel->ca_kategorie = $this->kategorieId;
             $artikel->ca_bezeichnung = $match;
             $artikel->ca_aktiv = 1;
             $artikel->ca_autor = Security::getUserId();
             $artikel->save();
             $titel = Text::get($artikel->getElementId() . '.titel');
             $titel->te_text = $match;
             $titel->save();
         }
         $link = EntityLinks::show($artikel);
         $tag = "<a href=\"{$link}\">{$match}</a>";
         $this->text = str_replace('[[' . $match . ']]', $tag, $this->text);
     }
     return $this->text;
 }
 protected function createControls()
 {
     $artikelliste = $this->controller->kategorie->getArtikel();
     Logging::info('Kategorie enthält ' . count($artikelliste) . ' Artikel');
     $i = 1;
     foreach ($artikelliste as $artikel) {
         $text = Text::get($artikel->getElementId() . '.intro', $_SESSION['sp_id'])->te_text;
         $anchor = new HtmlControl($this);
         $anchor->setInnerHtml('<a name="' . $artikel->id . '"></a>');
         $artikelPanel = new CaptionedPanelControl($this, 'artikel_' . $artikel->id);
         $artikelPanel->setCaption($artikel->titel);
         $blogInfos = new HtmlControl($artikelPanel);
         $blogInfos->setInnerHtml('
             <div class="blog-post-tags">
                 <ul class="list-unstyled list-inline blog-info">
                     <li><i class="fa fa-calendar"></i> ' . $artikel->ca_geschrieben_am . '</li>
                     <li><i class="fa fa-pencil"></i> ' . $artikel->autor . '</li>
                 </ul>
             </div>
             ');
         $artikelText = new HtmlControl($artikelPanel, 'text_' . $artikel->id);
         $artikelText->setInnerHtml('
                 <img src="' . $artikel->ca_hauptbild . '" class="blogimage" />
             ' . $text);
         $i++;
     }
 }
 public function setupControls()
 {
     $panel = new CaptionedTabPanelControl($this, $this->id);
     $panel->setCaption($this->caption);
     $sprachen = Model\Sprache::filter(['aktiv' => 1]);
     foreach ($sprachen as $sprache) {
         $tab = $panel->tabs->addTab($sprache->sp_bezeichnung);
         if ($this->text != null) {
             $text = $this->text;
         } else {
             $text = Model\Text::get($this->element, $sprache->id);
             $text = $text->te_text;
         }
         if (!$this->WYSIWYG) {
             $input = new FormControls\InputTextboxControl(null, $this->id . '[' . $sprache->id . ']');
             $input->setValue(htmlentities($text, ENT_QUOTES, 'UTF-8'));
             $content = new DataControls\EditControl($tab, '');
             $content->addRow('angezeigter Text', $input);
         } else {
             $input = new FormControls\InputEditorControl($tab, $this->id . '_' . $sprache->id);
             $input->setName($this->id . '[' . $sprache->id . ']');
             $input->setValue($text);
         }
     }
 }
 public static function saveArray($element, $texte)
 {
     if (is_array($texte)) {
         foreach ($texte as $sprache => $text) {
             $temp = Text::get($element, $sprache);
             $temp->te_text = trim($text);
             $temp->save();
         }
     }
 }
 protected function createControls()
 {
     /**
      * @var CmsArtikel $artikel
      */
     $artikel = $this->controller->artikel;
     $titel = Text::get($artikel->getElementId() . '.titel', $_SESSION['sp_id'])->te_text;
     $text = Text::get($artikel->getElementId() . '.intro', $_SESSION['sp_id'])->te_text;
     $wiki = new CmsArtikelWikiLinks();
     $wiki->setKategorieId(2);
     // TODO
     $wiki->setText($text);
     $text = $wiki->getText();
     if (Application::isAdmin()) {
         $editButton = new ButtonControl($this, 'btnEdit' . $artikel->id);
         $editButton->setCaption('Bearbeiten')->setIcon('pencil')->setLink('Cms', 'editArtikel', ['id' => $artikel->id])->setButtonClass(ButtonControl::BUTTON_WARNING)->setSize(ButtonControl::SIZE_EXTRASMALL)->addCssClass('pull-right');
     }
     // TODO
     if (false) {
         // ($titel != '') {
         $artikelPanel = new CaptionedPanelControl($this, 'artikel_' . $artikel->id);
         $artikelPanel->setCaption($titel);
         if ($artikel->ca_hauptbild == '') {
             $artikelText = new HtmlControl($artikelPanel, 'text_' . $artikel->id);
             $artikelText->setInnerHtml($text);
         } else {
             $artikelText = new HtmlControl($artikelPanel, 'text_' . $artikel->id);
             $artikelText->setInnerHtml('
                 <img src="' . $artikel->ca_hauptbild . '" class="blogimage" />
             ' . $text);
         }
     } else {
         $artikelText = new HtmlControl($this, 'text_' . $artikel->id);
         $artikelText->setInnerHtml($text);
     }
 }
 public function endEditPage()
 {
     $this->page = new Page($this->request->id);
     $this->page->save($this->request);
     if ($this->request->id < 0) {
         $this->page->generatePos();
     }
     Text::saveArray($this->page->getElementId(), $this->request->texte);
     Security::berechtigungenSchreiben($this->page->getSecurityElement(), $this->request->berechtigung);
     $this->flushCache();
     $oldPanel = $this->request->initPanel;
     $this->request->clear();
     $this->request->initPanel = $oldPanel;
     $this->request->id = $this->page->id;
     FlashMessage::success(Strings::GESPEICHERT);
 }
 public function endEditArtikel()
 {
     $this->artikel = new CmsArtikel($this->request->id);
     $this->artikel->save($this->request);
     Text::saveArray($this->artikel->getElementId() . '.titel', $this->request->titel);
     Text::saveArray($this->artikel->getElementId() . '.intro', $this->request->intro);
     Text::saveArray($this->artikel->getElementId() . '.text', $this->request->text);
     $this->request->clear();
     $this->request->kategorie = $this->artikel->ca_kategorie;
     FlashMessage::success(Strings::GESPEICHERT);
 }
 public function install()
 {
     parent::install();
     // Datensätze anlegen
     $site = new Site();
     $site->si_bezeichnung = 'Administration';
     $site->si_name = 'admin';
     $site->si_urlpattern = 'admin.php';
     $site->si_template = 'bootadmin';
     $site->save();
     // Struktur-Eintrag im Menü
     $page = new Page();
     $page->pa_site = $site->id;
     $page->pa_parent = 0;
     $page->pa_bezeichnung = 'Struktur';
     $page->pa_link = 'struktur';
     $page->pa_pos = 0;
     $page->pa_title = 'Struktur';
     $page->pa_module = 'site';
     $page->pa_action = 'useInnerTemplate';
     $page->pa_haschildren = false;
     $page->pa_innertemplate = 'normal';
     $page->save();
     $region = new Region();
     $region->re_page = $page->id;
     $region->re_name = 'main';
     $region->re_module = 'site';
     $region->re_action = 'showSite';
     $region->re_position = 1;
     $region->save();
     Security::berechtigungSchreiben($page->getElementId(), 1, 1);
     Text::saveArray($page->getElementId(), array(1 => 'Struktur'));
     // Benutzer-Eintrag im Menü
     $page = new Page();
     $page->pa_site = $site->id;
     $page->pa_parent = 0;
     $page->pa_bezeichnung = 'Benutzer';
     $page->pa_link = 'benutzer';
     $page->pa_pos = 0;
     $page->pa_title = 'Benutzer';
     $page->pa_module = 'site';
     $page->pa_action = 'useInnerTemplate';
     $page->pa_haschildren = false;
     $page->pa_innertemplate = 'normal';
     $page->save();
     $region = new Region();
     $region->re_page = $page->id;
     $region->re_name = 'main';
     $region->re_module = 'user';
     $region->re_action = 'indexUser';
     $region->re_position = 1;
     $region->save();
     Security::berechtigungSchreiben($page->getElementId(), 1, 1);
     Text::saveArray($page->getElementId(), array(1 => 'Benutzer'));
     // Modul-Eintrag im Menü
     $page = new Page();
     $page->pa_site = $site->id;
     $page->pa_parent = 0;
     $page->pa_bezeichnung = 'Module';
     $page->pa_link = 'module';
     $page->pa_pos = 0;
     $page->pa_title = 'Module';
     $page->pa_module = 'site';
     $page->pa_action = 'useInnerTemplate';
     $page->pa_haschildren = false;
     $page->pa_innertemplate = 'normal';
     $page->save();
     $region = new Region();
     $region->re_page = $page->id;
     $region->re_name = 'main';
     $region->re_module = 'modView';
     $region->re_action = 'showModules';
     $region->re_position = 1;
     $region->save();
     Security::berechtigungSchreiben($page->getElementId(), 1, 1);
     Text::saveArray($page->getElementId(), array(1 => 'Module'));
     // Site-Definition Frontend
     $site = new Site();
     $site->si_bezeichnung = 'Webseite';
     $site->si_name = 'web';
     $site->si_urlpattern = '';
     $site->si_template = 'unify';
     $site->save();
 }
 public function getTitel($lang = -1)
 {
     if ($lang == -1) {
         $lang = $_SESSION['sp_id'];
     }
     return Text::get($this->getElementId() . '.titel', $lang)->te_text;
 }
 /**
  * Erstellt das Text-Objekt aus einem übergebenen
  * SQL Result Array
  * @param $row
  */
 private function loadTextFromRow($row)
 {
     $this->text = new Text();
     $this->text->loadFromRow($row);
     $this->loadedText = $this->text->te_text;
 }