<?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>");
}
}
?>