Location: PHPKode > projects > Aukyla Document Management System > plugins/DocumentHandlers/text_html_DocumentHandler.php
<?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;
		}
	}
}

?>
Return current item: Aukyla Document Management System