Location: PHPKode > projects > Aukyla Platform > plugins/DocumentHandlers/application_vnd_sun_xml_writer_DocumentHandler.php
<?php
/*
     application_vnd_sun_xml_writer_DocumentHandler.php, handler for
     OpenOffice.org Writer documents
     Copyright (C) 2004 Arend van Beelen, Auton Rijnsburg

     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the Free
     Software Foundation; either version 2 of the License, or (at your option)
     any later version.

     This program is distributed in the hope that it will be useful, but WITHOUT
     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
     more details.

     You should have received a copy of the GNU General Public License along
     with this program; if not, write to the Free Software Foundation, Inc.,
     59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

     For any questions, comments or whatever, you may mail me at: hide@address.com
*/

require_once('Config.php');
require_once('Document.php');
require_once('DocumentHandler.php');
require_once('OpenOffice.php');
require_once('String.php');
require_once('URI.php');

/**
 * @brief Implements a handler for the OpenOffice.org Writer document format.
 */
class application_vnd_sun_xml_writer_DocumentHandler extends DocumentHandler
{
	/**
	 * Shows an OpenOffice.org Writer file.
	 */
	public static function view(Container $parent, $uri)
	{
		$tmpdir = URI::uniquePath('tmp://', 'DocumentViewer');
		URI::mkdir($tmpdir);
		$tmpuri = "$tmpdir/content.html";
		OpenOffice::convertSXW2XHTML($uri, $tmpuri);
		//new DocumentViewer($parent, $tmpuri, 'text/html');
		$lines = URI::file($tmpuri);
		if($lines === false)
		{
			$lines = array();
		}
		$contents = '';
		$inBody = false;
		foreach($lines as $line)
		{
			if($inBody == false)
			{
				if(strstr($line, '<body>') !== false)
				{
					$inBody = true;
					if(strstr($line, '</body>') !== false)
					{
						$inBody = false;
						$line = String::substringBefore($line, '</body>');
					}
					$contents .= String::substringAfter($line, '<body>');
				}
			}
			else
			{
				if(strstr($line, '</body>') !== false)
				{
					$inBody = false;
					$contents .= String::substringBefore($line, '</body>');
				}
				else if(ctype_space($line) != true)
				{
					$contents .= $line;
				}
			}
		}
		new RawWidget($parent, "<htmlblock xmlns=\"http://www.w3.org/1999/xhtml\">$contents</htmlblock>");
	}
}

?>
Return current item: Aukyla Platform