* @copyright 2004 by http://wombat.exit0.net * @package wombatSite * @subpackage extension */ /** * base class for all site specific extensions * * @version 1.1.0 * @package wombatSite * @subpackage extension */ abstract class wbExtension { /** * name of this page * * @var string $_page */ protected $_page = null; /** * basic directory * * @var string $_baseDir */ protected $_baseDir = null; /** * request variables * * @var array $_request */ protected $_request = array(); /** * page parameter * * @var array $_params */ protected $_params = array( 'tmplDir' => '' ); /** * default values for request variables * * @var array $_requestDefaults * @see $_request */ protected $_requestDefaults = array(); /** * patTemplate object * @var patTemplate $_tmpl */ protected $_tmpl = null; /** * set the selected page * * @param string @page name of the page * @return boolean $result true on success */ public function setPage( $page ) { $this->_page = $page; return true; } /** * set root directory * * @param string @dir * @return boolean $result true on success */ public function setRoot( $dir ) { $this->_baseDir = $dir; return true; } /** * set request variables * * @param array $request * @return boolean $result true on success */ public function setRequest( &$request ) { $this->_request = array_merge( $this->_requestDefaults, $request ); return true; } /** * set additional page paramameter * * @param array $params associative list of parameter * @return boolean $result true on success */ public function setParams( $params ) { $this->_params = array_merge( $this->_params, $params ); return true; } /** * set additional page paramameter * * @access private * @param array $params associative list of parameter * @return boolean $result true on success */ public function getParam( $name ) { if( isset( $this->_params[$name] ) ) { return $this->_params[$name]; } return NULL; } /** * checkReload * * @return boolean $result true on reload */ protected function _checkReload() { $sess =& wbFactory::singleton( 'patSession' ); // create checksum from request vars $req = $this->_request; ksort( $req ); $req = serialize( $req ); $newChecksum = md5( $req ); // get saved checksum $checksum = $sess->get( 'wbExtension_reload' ); if( $newChecksum == $checksum ) { return true; } $sess->set( 'wbExtension_reload', $newChecksum ); return false; } /** * load templates * - wrapper for patTemplate-readTemplateFromInput() * * @param string $name name of template file, without trailing '.tmpl' * @return boolean $result true on success */ protected function _loadTemplates( $name ) { if( !$this->_tmpl ) { $this->_tmpl =& wbFactory::singleton( 'patTemplate' ); } $this->_tmpl->readTemplatesFromInput( $this->_params['tmpldir'] . '/' . $name . '.tmpl' ); return true; } } ?>