* @copyright 2004 by http://wombat.exit0.net * @package wombatSite * @subpackage install */ /** * make tool like unix-make * * helper class to install and maintain site * * @version 1.0.1 * @package wombatSite * @subpackage install */ class wbMake { /** * known targets * @access private * @var array $_targets */ var $_targets = array( 'install' => array( 'SystemPermission', 'SitePermission', 'VarDir', 'Menu', ), 'site' => array( 'SitePermission', 'VarDir', 'Menu', ), 'var' => array( 'VarDir' ), 'menu' => array( 'Menu', ), 'admin' => array( 'ImageTools', 'Menu', 'AdminMenu', 'ConfigPermission' ), 'img' => array( 'ImageTools', ), 'flushcache' => array( 'ClearCache', ), ); /** * messages * @access protected * @var array $messages */ var $_messages = array(); /** * failed target * @access protected * @var string $failed */ var $_failed = false; /** * bring birth! * * @access public * @return boolean $result true on success */ function __construct() { } /** * php4 constructor wrapper * * @access public * @see __construct() */ function wbMake() { $this->__construct(); } /** * make emulation * * @access public * @param array $target target list * @return boolean true on success, false if any target has failed (or patError object on error!) */ function make( $target = null ) { if( !is_array( $target ) ) { $target = array( $target ); } foreach( $target as $t ) { $maker =& wbFactory::singleton( 'wbMaker_' . $t ); if( patErrorManager::isError( $maker ) ) { return $make; } $res = $maker->make(); if( patErrorManager::isError( $res ) ) { return $res; } array_push( $this->_messages, $maker->getInfo() ); if( !$res ) { $this->_failed = $target; return false; } } return false; } /** * get name of failed maker * * @access public * @return string $name or false if no maker has failed */ function getFailed() { return $this->_failed; } /** * receive messages from all used makers * * @access oublic * @return arraay $messgers */ function getMsg() { return $this->_messages; } } ?>