<?php
/*
text_html_DocumentHandler.php, handler for HTML 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('DocumentHandler.php');
require_once('GUI.php');
require_once('Locale.php');
require_once('Search.php');
require_once('String.php');
require_once('URI.php');
require_once('XHTML.php');
class text_html_DocumentHandler extends DocumentHandler
{
public static function view(Container $parent, $uri)
{
$contents = '';
$bodyopen = false;
$htmlDocument = URI::fileGetContents($uri);
if($htmlDocument === false)
{
new Paragraph($parent, i18n('Sorry, the document could not be opened.'));
return;
}
new HTMLWidget($parent, $htmlDocument);
}
public static function supportsIndexing()
{
return true;
}
public static function index($documentId, $uri)
{
parent::index($documentId, $uri);
$doc = new DOMDocument();
if((URI::permissions($uri) & PERMISSION_READ) == 0 ||
@$doc->loadHTMLFile($uri) == false)
{
return;
}
self::indexNode($documentId, $doc->firstChild);
}
private static function indexNode($documentId, $node)
{
while($node)
{
if($node instanceof DOMText)
{
$search = Search::instance();
$search->indexText($documentId, $node->nodeValue, 1);
}
else
{
self::indexNode($documentId, $node->firstChild);
}
$node = $node->nextSibling;
}
}
}
?>