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