File modules/wikiparser/model/DocumentElement.class.php

Last commit: Mon Sep 21 22:48:59 2020 +0200	Jan Dankert	Complexe refactoring: Moving all generation logic from the model (Value,Page,File) to generators classes.
1 <?php 2 3 namespace wikiparser\model; 4 5 use Art; 6 use Ein; 7 use wikiparser\model\AbstractElement; 8 9 /** 10 * Dokument-Objekt.<br> 11 * Diese Objekt verk�rpert das Root-Objekt in einem DOM-Baum.<br> 12 * <br> 13 * Dieses Objekt kann Text parsen und seine Unterobjekte selbst erzeugen.<br> 14 * 15 * @author Jan Dankert, $Author$ 16 * @version $Revision$ 17 * @package openrat.text 18 */ 19 class DocumentElement extends AbstractElement 20 { 21 var $linkedObjectIds = array(); 22 var $page; 23 24 /** 25 * Fu�noten. 26 * 27 * @var Array 28 */ 29 var $footnotes = array(); 30 31 var $encodeHtml = false; 32 33 /** 34 * @var \cms\generator\PageContext 35 */ 36 public $pageContext; 37 38 /** 39 * Ein Text wird geparst.<br> 40 * <br> 41 * Zerlegt den Text zeilenweise und erzeugt die Unterobjekte.<br> 42 * 43 * @param Ein- oder mehrzeiliger roher Text 44 * @param Art des Parsens, Default=Wiki 45 */ 46 function parse($text, $type = 'wiki') 47 { 48 $parserClass = 'wikiparser\parser\\'.ucfirst(strtolower($type)) . 'Parser'; 49 $parser = new $parserClass(); 50 51 $this->children = $parser->parse($text); 52 $this->linkedObjectIds = $parser->linkedObjectIds; 53 } 54 55 56 /** 57 * Rendering des Dokumentes.<br> 58 * Die Art und Weise des Renderns ist in Abh�ngigkeit zum 59 * �bergebenen Mime-Type. 60 * 61 * @param String $mimeType Mime-Type, z.B. "text/html" 62 * @return String 63 */ 64 function render($mimeType) 65 { 66 67 switch ($mimeType) { 68 case 'text/html': 69 $this->type = 'html'; 70 break; 71 case 'text/plain': 72 $this->type = 'text'; 73 break; 74 case 'application/pdf': 75 $this->type = 'pdf'; 76 break; 77 case 'application/html-dom': 78 $this->type = 'htmlDom'; 79 break; 80 case 'application/x-latex': 81 $this->type = 'latex'; 82 break; 83 case 'text/xhtml': 84 $this->type = 'xhtml'; 85 break; 86 case 'application/docbook+xml': 87 $this->type = 'docBook'; 88 break; 89 default: 90 $this->type = 'html'; 91 } 92 93 $rendererClass = 'wikiparser\renderer\\'.ucfirst($this->type) . 'Renderer'; 94 95 $renderer = new $rendererClass(); 96 $renderer->children = $this->children; 97 $renderer->page = $this->page; 98 $renderer->pageContext = $this->pageContext; 99 $renderer->linkedObjectIds = $this->linkedObjectIds; 100 $renderer->encodeHtml = $this->encodeHtml; 101 102 return $renderer->render(); 103 } 104 } 105 106 ?>
Download modules/wikiparser/model/DocumentElement.class.php
History Mon, 21 Sep 2020 22:48:59 +0200 Jan Dankert Complexe refactoring: Moving all generation logic from the model (Value,Page,File) to generators classes. Sat, 22 Feb 2020 22:55:37 +0100 Jan Dankert Fix: Using namespaces. Sat, 22 Feb 2020 22:45:05 +0100 Jan Dankert Refactoring: Enable Autoloading, Fix namespace structure.