100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| /**
 | |
|  * Classes and functions for the template engines.
 | |
|  *
 | |
|  * @author The phpLDAPadmin development team
 | |
|  * @package phpLDAPadmin
 | |
|  */
 | |
| 
 | |
| /**/
 | |
| # To make it easier to debug this script, define these constants, which will add some __METHOD__ location displays to the rendered text.
 | |
| define('DEBUGTMP',0);
 | |
| define('DEBUGTMPSUB',0);
 | |
| 
 | |
| /**
 | |
|  * Abstract Visitor class
 | |
|  *
 | |
|  * @package phpLDAPadmin
 | |
|  * @subpackage Templates
 | |
|  */
 | |
| abstract class Visitor {
 | |
| 	# The server that was used to configure the templates
 | |
| 	protected $server_id;
 | |
| 
 | |
| 	public function __call($method,$args) {
 | |
| 		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
 | |
| 			debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs);
 | |
| 
 | |
| 		if (! in_array($method,array('get','visit','draw')))
 | |
| 			debug_dump_backtrace(sprintf('Incorrect use of method loading [%s]',$method),1);
 | |
| 
 | |
| 		$methods = array();
 | |
| 
 | |
| 		$fnct = array_shift($args);
 | |
| 
 | |
| 		$object = $args[0];
 | |
| 		$class = get_class($object);
 | |
| 
 | |
| 		$call = "$method$fnct$class";
 | |
| 
 | |
| 		array_push($methods,$call);
 | |
| 
 | |
| 		while ($class && ! method_exists($this,$call)) {
 | |
| 			if (defined('DEBUGTMP') && DEBUGTMP)
 | |
| 				printf('<font size=-2><i>Class (%s): Method doesnt exist (%s,%s)</i></font><br />',$class,get_class($this),$call);
 | |
| 
 | |
| 			$class = get_parent_class($class);
 | |
| 			$call = "$method$fnct$class";
 | |
| 			array_push($methods,$call);
 | |
| 		}
 | |
| 
 | |
| 		if (defined('DEBUGTMP') && DEBUGTMP)
 | |
| 			printf('<font size=-2><i>Calling Methods: %s</i></font><br />',implode('|',$methods));
 | |
| 
 | |
| 		if (defined('DEBUGTMP') && DEBUGTMP && method_exists($this,$call))
 | |
| 			printf('<font size=-2>Method Exists: %s::%s (%s)</font><br />',get_class($this),$call,$args);
 | |
| 
 | |
| 		if (method_exists($this,$call)) {
 | |
| 			$r = call_user_func_array(array($this, $call), $args);
 | |
| 
 | |
| 			if (isset($r))
 | |
| 				return $r;
 | |
| 			else
 | |
| 				return;
 | |
| 
 | |
| 		} elseif (DEBUG_ENABLED) {
 | |
| 			debug_log('Doesnt exist param (%s,%s)',1,0,__FILE__,__LINE__,__METHOD__,$method,$fnct);
 | |
| 		}
 | |
| 
 | |
| 		printf('<font size=-2><i>NO Methods: %s</i></font><br />',implode('|',$methods));
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Return the LDAP server ID
 | |
| 	 *
 | |
| 	 * @return int Server ID
 | |
| 	 */
 | |
| 	public function getServerID() {
 | |
| 		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
 | |
| 			debug_log('Entered (%%)',129,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->server_id);
 | |
| 
 | |
| 		if (isset($this->server_id))
 | |
| 			return $this->server_id;
 | |
| 		else
 | |
| 			return null;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Return this LDAP Server object
 | |
| 	 *
 | |
| 	 * @return object DataStore Server
 | |
| 	 */
 | |
| 	protected function getServer() {
 | |
| 		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
 | |
| 			debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs);
 | |
| 
 | |
| 		return $_SESSION[APPCONFIG]->getServer($this->getServerID());
 | |
| 	}
 | |
| }
 | |
| ?>
 |