value pairs for airtime.conf protected static $_properties; // Constant form field names for passing errors back to the front-end const GENERAL_PORT = "generalPort", GENERAL_HOST = "generalHost"; const CORS_URL = "corsUrl"; static $cors_url; // Message and error fields to return to the front-end static $message = null; static $errors = array(); function __construct($settings) { self::$_properties = array( "api_key" => $this->generateRandomString(), "base_url" => $settings[self::GENERAL_HOST], "base_port" => $settings[self::GENERAL_PORT], "cors_url" => $settings[self::CORS_URL] ); self::$cors_url = $settings[self::CORS_URL]; } /** * @return array associative array containing a display message and fields with errors */ function runSetup() { // TODO Do we need to validate these settings? if (count(self::$errors) <= 0) { $this->writeToTemp(); } if (strlen(self::$cors_url) == 0) { } else { $this->setupCorsUrl(); } return array( "message" => self::$message, "errors" => self::$errors ); } /** * If the user entered a CORS Url then add it to the system preferences * TODO Make sure we check for existing CORS URLs and display them on initial form */ function setupCorsUrl() { try { $_SERVER['AIRTIME_CONF'] = AIRTIME_CONF_TEMP_PATH; Propel::init(CONFIG_PATH . "airtime-conf-production.php"); $con = Propel::getConnection(); } catch(Exception $e) { self::$message = "Failed to insert Cors URL; database isn't configured properly!"; self::$errors[] = self::CORS_URL; return; } $this->runCorsUrlQuery($con); } function runCorsUrlQuery($con) { try { Application_Model_Preference::SetAllowedCorsUrls(self::$cors_url); Propel::close(); //unset($_SERVER['AIRTIME_CONF']); } catch (Exception $e) { self::$message = "Failed to insert " . self::$cors_url . " into cc_pref" . $e; self::$errors[] = self::CORS_URL; } } }