. * * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, * California 94120-7775, or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * * @copyright 2008-2009, KnowledgeTree Inc. * @license GNU General Public License version 3 * @author KnowledgeTree Team * @package Migrater * @version Version 0.1 */ class migrateDatabase extends Step { /** * Reference to Database object * * @author KnowledgeTree Team * @access public * @var object */ public $_dbhandler = null; /** * Reference to Database object * * @author KnowledgeTree Team * @access public * @var object */ public $_util = null; /** * Database type * * @author KnowledgeTree Team * @access private * @var array */ private $dtype = ''; /** * Database types * * @author KnowledgeTree Team * @access private * @var array */ private $dtypes = array(); /** * Database host * * @author KnowledgeTree Team * @access private * @var string */ private $dhost = ''; /** * Database port * * @author KnowledgeTree Team * @access private * @var string */ private $dport = ''; /** * Database name * * @author KnowledgeTree Team * @access private * @var string */ private $dname = ''; /** * Database root username * * @author KnowledgeTree Team * @access private * @var string */ private $duname = ''; /** * Database root password * * @author KnowledgeTree Team * @access private * @var string */ private $dpassword = ''; /** * Database dms username * * @author KnowledgeTree Team * @access private * @var string */ private $dmsname = ''; /** * Database dms password * * @author KnowledgeTree Team * @access private * @var string */ private $dmspassword = ''; /** * Default dms user username * * @author KnowledgeTree Team * @access private * @var boolean */ private $dmsusername = ''; /** * Default dms user password * * @author KnowledgeTree Team * @access private * @var boolean */ private $dmsuserpassword = ''; /** * Location of database binaries. * * @author KnowledgeTree Team * @access private * @var string */ private $mysqlDir; // TODO:multiple databases /** * Name of database binary. * * @author KnowledgeTree Team * @access private * @var string */ private $dbbinary = ''; // TODO:multiple databases /** * Database table prefix * * @author KnowledgeTree Team * @access private * @var string */ private $tprefix = ''; /** * Flag to drop database * * @author KnowledgeTree Team * @access private * @var boolean */ private $ddrop = false; /** * List of errors encountered * * @author KnowledgeTree Team * @access public * @var array */ public $error = array(); /** * List of errors used in template * * @author KnowledgeTree Team * @access public * @var array */ public $templateErrors = array('dmspassword', 'dmsuserpassword', 'con', 'dname', 'dtype', 'duname', 'dpassword'); /** * Flag to store class information in session * * @author KnowledgeTree Team * @access public * @var array */ public $storeInSession = true; /** * Flag if step needs to be migrated * * @author KnowledgeTree Team * @access public * @var array */ protected $runMigrate = true; /** * Flag if step needs to run silently * * @author KnowledgeTree Team * @access public * @var array */ protected $silent = true; /** * Constructs database object * * @author KnowledgeTree Team * @access public * @param none */ public function __construct() { $this->temp_variables = array("step_name"=>"database", "silent"=>$this->silent); $this->_dbhandler = new dbUtil(); $this->_util = new MigrateUtil(); if(WINDOWS_OS) $this->mysqlDir = MYSQL_BIN; } /** * Main control of database setup * * @author KnowledgeTree Team * @param none * @access public * @return string */ public function doStep() { $this->initErrors(); $this->setDetails(); // Set any posted variables if(!$this->inStep("database")) { return 'landing'; } if($this->next()) { return 'next'; } else if($this->previous()) { return 'previous'; } return 'landing'; } /** * Store options * * @author KnowledgeTree Team * @params object SimpleXmlObject * @access private * @return void */ private function setDetails() { $this->temp_variables['dhost'] = $this->getPostSafe('dhost'); $this->temp_variables['dport'] = $this->getPostSafe('dport'); $this->temp_variables['duname'] = $this->getPostSafe('duname'); $this->temp_variables['dpassword'] = $this->getPostSafe('dpassword'); $this->temp_variables['dbbinary'] = $this->getPostSafe('dbbinary'); } /** * Safer way to return post data * * @author KnowledgeTree Team * @params SimpleXmlObject $simplexml * @access public * @return void */ public function getPostSafe($key) { return isset($_POST[$key]) ? $_POST[$key] : ""; } /** * Stores varibles used by template * * @author KnowledgeTree Team * @params none * @access public * @return array */ public function getStepVars() { return $this->temp_variables; } /** * Returns database errors * * @author KnowledgeTree Team * @access public * @params none * @return array */ public function getErrors() { return $this->error; } /** * Initialize errors to false * * @author KnowledgeTree Team * @param none * @access private * @return boolean */ private function initErrors() { foreach ($this->templateErrors as $e) { $this->error[$e] = false; } } } ?>