<?php /** * This file is part of MySQLDumper released under the GNU/GPL 2 license * http://www.mysqldumper.net * * @package MySQLDumper * @subpackage Config * @version SVN: $Rev$ * @author $Author$ */ /** * Config Validator * * Model to validate configuration values set in config form * * @package MySQLDumper * @subpackage Config */ class Application_Model_Config_FormValidator { /** * Config data to validate * @var array */ private $_configData = array(); /** * Construct * * @param array $configData The data to validate */ public function __construct($configData) { // unset values we only used for form handling unset( $configData['general']['selectedTab'], $configData['general']['param'] ); $this->_configData = $configData; } /** * Validate config data * * Checks database connection params. * If connection is successfull the values are saved to the config file. * * @param Zend_View $view The view of the form for adding messages */ public function validate(Zend_View $view) { $saveConfig = false; $config = Msd_Configuration::getInstance(); $translator = Msd_Language::getInstance()->getTranslator(); $db = Msd_Db::getAdapter($this->_configData['dbuser']); try { $db->getServerInfo(); $saveConfig = true; } catch (Msd_Exception $e) { $msg = $translator->_('L_ERROR').' (' . $e->getCode().') '; $msg .= $e->getMessage(); $view->popUpMessage()->addMessage( 'db-access-error', 'L_ERROR', $msg, array( 'modal' => true, 'dialogClass' => 'error', ) ); } if ($saveConfig) { $config->save( $config->get('dynamic.configFile'), $this->_configData ); $view->popUpMessage()->addMessage( 'save-config', 'L_NOTICE', array('L_SAVE_SUCCESS', $config->get('dynamic.configFile')), array( 'modal' => true, 'dialogClass' => 'notice' ) ); } } }