/**
  * Erzeugt ein PDF auf Basis der übergebenen Funktion.
  * @param $module
  * @param $action
  * @param $param
  * @param null $filename falls kein Dateiname angegeben wird, wird das PDF direkt im Browser ausgegeben
  * @throws \Exception
  */
 public static function generate($module, $action, $param, $filename = null, $template = true, $margin = 0)
 {
     $druckinhalt = new WrapperControl(null, 'druck');
     $druckinhalt->setModule($module)->setAction($action)->addParams($param);
     $pdf = new \mPDF('de-DE', 'A4');
     $pdf->SetDisplayMode('fullpage');
     // Zeigt eine ganze Seite an, wenn das PDF in Acrobat geöffnet wird
     if ($margin > 0) {
         $pdf->SetTopMargin($margin);
     }
     $pdf->SetFooter('Seite {PAGENO} / {nb}');
     //file_get_contents('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css') .
     $stylesheet = file_get_contents('templates/print/css/default.css');
     $pdf->WriteHTML($stylesheet, 1);
     if ($template && file_exists('site/Print.template.html')) {
         $vars = ['heading' => Application::getCurrentResponse()->getMetadata()->getHeading()];
         $header = Parser::parse(null, null, $vars, file_get_contents('site/Print.template.html'));
         $pdf->WriteHTML($header, 2);
     }
     $pdf->WriteHTML($druckinhalt->toHtml(), 2);
     if ($filename === null) {
         $pdf->Output($module . $action . '.pdf', 'I');
     } else {
         //$filename = Files::validateFilename($filename);
         $pdf->Output($filename, 'F');
     }
     unset($pdf);
 }
 protected function createControls()
 {
     $this->setPostback('DefaultMod', 'doUsername');
     $wrapper = new WrapperControl($this, 'wrapperIntro');
     $wrapper->setModule('cms')->setAction('show')->addParam('id', 12);
     $panel = new CaptionedPanelControl($this, 'pnl');
     $panel->setCaption('E-Mail-Adresse eingeben');
     $input = new InputTextboxControl(null, 'email');
     $input->addCssClass('required validate-email');
     $edit = new EditControl($panel, 'edt');
     $edit->setEntity(new User());
     $edit->addRow('Ihre Adresse', $input);
     $submit = new ButtonControl($this, 'submit');
     $submit->setCaption('Senden')->setIsSubmit(true)->setAddArrows(false);
 }
 protected function createControls()
 {
     // TODO: Schwachsinn
     if ($_SESSION['loggedin']) {
         if ($this->request->admin) {
             // Admin
             $temp = new WrapperControl($this, 'front');
             $temp->setModule('cms')->setAction('blog')->addParam('id', 1);
         } else {
             $temp = new WrapperControl($this, 'front');
             $temp->setModule('cms')->setAction('blog')->addParam('id', 1);
         }
     } else {
         $temp = new WrapperControl($this, 'front');
         $temp->setModule('cms')->setAction('blog')->addParam('id', 1);
     }
 }
 public function toJavascript()
 {
     if ($this->artikel == null) {
         return '';
     } else {
         return parent::toJavascript();
     }
 }
 /**
  * @inheritdoc
  */
 public function toHtml()
 {
     if ($this->re_module == '' || $this->re_action == '') {
         return null;
     }
     $temp = new WrapperControl(null, $this->re_name);
     $temp->setModule($this->re_module)->setAction($this->re_action);
     $params = explode(';', $this->re_parameter);
     if ($params !== false) {
         foreach ($params as $param) {
             $keyValue = explode('=', $param);
             if ($keyValue !== false && count($keyValue) > 1) {
                 $temp->addParam($keyValue[0], $keyValue[1]);
             }
         }
     }
     return $temp;
 }
 protected function createControls()
 {
     $this->setPostback('cms', 'endEditArtikel', array('id' => $this->controller->artikel->id));
     $panel = new CaptionedPanelControl($this, 'panel');
     $panel->setCaption('Artikel » bearbeiten');
     $lookup = new LookupBoxControl(null, 'ca_kategorie');
     $lookup->setLookupEntity(new Model\CmsKategorie())->setTextfield('ck_bezeichnung')->setValuefield('ck_id')->showNull(0, '-- bitte wählen --')->preSelect($this->controller->artikel->ca_kategorie);
     $edit = new EditControl($panel, 'edit');
     $edit->setEntity($this->controller->artikel)->setHeader('Stammdaten bearbeiten')->addRow('ca_bezeichnung')->addRow('Kategorie', $lookup)->addRow('ca_aktiv')->addRow('ca_geschrieben_am')->addRow('ca_anzeigen_ab_dem')->addRow('ca_anzeigen_bis_zum');
     $button = new ButtonControl($panel, 'button');
     $button->setCaption('Speichern')->setIsSubmit('true');
     $texte = new Controls\TranslatedTextControl($this, 'titel');
     $texte->setCaption('Titel');
     $texte->setElement($this->controller->artikel->getElementId() . '.titel');
     $texte = new Controls\TranslatedTextControl($this, 'intro');
     $texte->setCaption('Text');
     $texte->setElement($this->controller->artikel->getElementId() . '.intro');
     $texte->setWYSIWYG(true);
     // Bilder
     if ($this->request->action != 'newArtikel') {
         $wrapper = new WrapperControl($this, 'wrapGalerie');
         $wrapper->setModule('medien')->setAction('galerie')->addParam('showDrehen', true)->addParam('showSave', true)->addParam('showDelete', true)->addParam('upload', true)->addParam('id', $this->controller->artikel->ca_kollektion);
     }
 }