Version: 1.0

Type: Class

Category: HTML

License: GNU General Public License

Description: Allows you to build pages from templates containing PHP (can be nested). Requires phplib's template class (template.inc) (normally installed by default I think). Some people may disagree with this class' existence, saying that the reason for templates is to separate HTML from PHP and keep HTML/frontend people out of coders' hair. Not for me. Since I do both design/HTML and PHP aspects of my project, the major benefit of templates has been a central point of control for the UI. This class means that I can modularise elements like 'search for a user' (which contain PHP) and re-use them in different pages. Since I'm working on a portal, it has the added bonus of elegantly facilitating user-customised UIs, where users could choose what elements appear where on their interface.



<?php
# File		: Module.php
# Version	: 1.0
# Written	: Nick Doyle, 1/7/2002
# Description	: Extension of the Template class to allow PHP code in templates 
#		  (which I'm calling 'modules', extension '.iphp' following the standard of templates having extension '.ihtml')
#		  Note that if you have template variable-like strings in your php e.g. {CONTENT} this may get parsed/substituted,
#		  depending on how you're doing things

require_once( 'template.php');

class Module extends Template {

		# Override the pparse function to evaluate the parsed code as php instead
		# Evaulation is left till last and performed at print-out time, so the code is only sent to PHP to evaluate once
	function pparse( $target, $handle, $append = false) {
		eval( '?>' . $this->parse( $target, $handle, $append)); 
		return false;
	}

}

?>