Location: PHPKode > projects > OpenRat CMS > openrat/textClasses/DocumentElement.class.php
<?php

/**
 * Dokument-Objekt.<br>
 * Diese Objekt verk�rpert das Root-Objekt in einem DOM-Baum.<br>
 * <br>
 * Dieses Objekt kann Text parsen und seine Unterobjekte selbst erzeugen.<br>
 * 
 * @author Jan Dankert, $Author$
 * @version $Revision$
 * @package openrat.text
 */
class DocumentElement extends AbstractElement
{
	var $linkedObjectIds = array();
	var $page;
	
	/**
	 * Fu�noten.
	 *
	 * @var Array
	 */
	var $footnotes       = array();

	var $encodeHtml = false;

	/**
	 * Ein Text wird geparst.<br>
	 * <br>
	 * Zerlegt den Text zeilenweise und erzeugt die Unterobjekte.<br>
	 * 
	 * @param Ein- oder mehrzeiliger roher Text
	 * @param Art des Parsens, Default=Wiki
	 */
	function parse( $text, $type='wiki' )
	{
		$parserClass = ucfirst(strtolower($type)).'Parser';
		$parser = new $parserClass();
		
		$this->children = $parser->parse( $text );
		$this->linkedObjectIds = $parser->linkedObjectIds;
	}




	
	/**
	 * Rendering des Dokumentes.<br>
	 * Die Art und Weise des Renderns ist in Abh�ngigkeit zum
	 * �bergebenen Mime-Type.
	 *
	 * @param String $mimeType Mime-Type, z.B. "text/html"
	 * @return String
	 */
	function render( $mimeType )
	{
		
		switch( $mimeType )
		{
			case 'text/html':
				$this->type = 'html';
				break;
			case 'text/plain':
				$this->type = 'text';
				break;
			case 'application/pdf':
				$this->type = 'pdf';
				break;
			case 'application/html-dom':
				$this->type = 'htmlDom';
				break;
			case 'application/x-latex':
				$this->type = 'latex';
				break;
			case 'text/xhtml':
				$this->type = 'xhtml';
				break;
			case 'application/docbook+xml':
				$this->type = 'docBook';
				break;
			default:
				$this->type = 'html';
		}
		
		$rendererClass = ucfirst($this->type).'Renderer';
		
		$renderer = new $rendererClass();
		$renderer->children        = $this->children;
		$renderer->page            = $this->page;
		$renderer->linkedObjectIds = $this->linkedObjectIds;
		$renderer->encodeHtml      = $this->encodeHtml;
			
		return $renderer->render();
	}
}

?>
Return current item: OpenRat CMS