--- a/busui/owa/modules/base/sitesEditSettings.php +++ b/busui/owa/modules/base/sitesEditSettings.php @@ -1,1 +1,99 @@ - + + * @copyright Copyright © 2006 Peter Adams + * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 + * @category owa + * @package owa + * @version $Revision$ + * @since owa 1.0.0 + */ + +class owa_sitesEditSettingsController extends owa_adminController { + + function __construct($params) { + + parent::__construct($params); + $this->setRequiredCapability('edit_sites'); + $this->setNonceRequired(); + + // validations + + // check that user_id is present + $v1 = owa_coreAPI::validationFactory('required'); + $v1->setValues($this->getParam('siteId')); + $this->setValidation('siteId', $v1); + + // Check site exists + $v2 = owa_coreAPI::validationFactory('entityExists'); + $v2->setConfig('entity', 'base.site'); + $v2->setConfig('column', 'site_id'); + $v2->setValues($this->getParam('siteId')); + $v2->setErrorMessage($this->getMsg(3208)); + $this->setValidation('siteId', $v2); + } + + function action() { + + $site_id = $this->getParam( 'siteId' ); + $site = owa_coreAPI::entityFactory( 'base.site' ); + $site->load( $site->generateId( $site_id ) ); + $settings = $site->get( 'settings' ); + + if ( ! is_array($settings) ) { + + $settings = array(); + } + + $new_settings = $this->getParam( 'config' ); + + if ($new_settings) { + $site->set('settings', array_merge( $settings, $new_settings ) ); + + $ret = $site->update(); + + if ($ret) { + $this->setStatusCode( 3201 ); + } + + $this->set('siteId', $site_id); + $this->set('edit', true); + $this->setRedirectAction( 'base.sitesProfile' ); + } + } + + function errorAction() { + + $this->setView('base.options'); + $this->setSubview('base.sitesProfile'); + $this->set('error_code', 3311); + $site_id = $this->getParam( 'siteId' ); + $site = owa_coreAPI::entityFactory( 'base.site' ); + $site->load( $site->generateId( $site_id ) ); + $this->set('site', $site); + $this->set('config', $this->params); + } +} + +?>