getParam('start', null), $request->getParam('end', null), $request->getParam('timezone', null) ); } /** * Construct the base station URL. * * @param bool $secured whether or not to use HTTPS * * @return string the station URL */ public static function getStationUrl($secured = true) { $CC_CONFIG = Config::getConfig(); $baseUrl = $CC_CONFIG['baseUrl']; $baseDir = $CC_CONFIG['baseDir']; $basePort = $CC_CONFIG['basePort']; $forceSSL = $CC_CONFIG['forceSSL']; $configProtocol = $CC_CONFIG['protocol']; if (empty($baseDir)) { $baseDir = '/'; } if ($baseDir[0] != '/') { $baseDir = '/' . $baseDir; } if (substr($baseDir, -1) != '/') { $baseDir = $baseDir . '/'; } // Set in reverse order of preference. ForceSSL configuration takes absolute preference, then // the protocol set in config. If neither are set, the port is used to determine the scheme $scheme = 'http'; if ($secured && $basePort == '443') { $scheme = 'https'; } if (!empty($configProtocol)) { $scheme = $configProtocol; } if ($forceSSL) { $scheme = 'https'; } $portStr = ''; if (($scheme == 'http' && $basePort !== '80') || ($scheme == 'https' && $basePort !== '443')) { $portStr = ":{$basePort}"; } return "{$scheme}://{$baseUrl}{$portStr}{$baseDir}"; } /** * Execute a cURL POST. * * @param string $url the URL to POST to * @param string[] $userPwd array of user args of the form ['user', 'pwd'] * @param array $formData array of form data kwargs * * @return mixed the cURL result */ public static function doPost($url, $userPwd, $formData) { $params = ''; foreach ($formData as $key => $value) { $params .= $key . '=' . $value . '&'; } rtrim($params, '&'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_USERPWD, implode(':', $userPwd)); $result = curl_exec($ch); curl_close($ch); return $result; } } class ZendActionHttpException extends Exception { /** * @param int $statusCode * @param string $message * @param int $code * @param Exception $previous * * @throws Zend_Controller_Response_Exception */ public function __construct( Zend_Controller_Action $action, $statusCode, $message, $code = 0, Exception $previous = null ) { Logging::error('Error in action ' . $action->getRequest()->getActionName() . " with status code {$statusCode}: {$message}"); $action->getResponse() ->setHttpResponseCode($statusCode) ->appendBody($message); parent::__construct($message, $code, $previous); } }