/** * Initializes $this->globalParams, $this->signal & $this->signalReceiver, $this->action, $this->view. Called by run(). * @return void * @throws NBadRequestException if action name is not valid */ private function initGlobalParameters() { // init $this->globalParams $this->globalParams = array(); $selfParams = array(); $params = $this->request->getParameters(); if ($this->isAjax()) { $params += $this->request->getPost(); } foreach ($params as $key => $value) { if (!preg_match('#^((?:[a-z0-9_]+-)*)((?!\d+\z)[a-z0-9_]+)\z#i', $key, $matches)) { continue; } elseif (!$matches[1]) { $selfParams[$key] = $value; } else { $this->globalParams[substr($matches[1], 0, -1)][$matches[2]] = $value; } } // init & validate $this->action & $this->view $this->changeAction(isset($selfParams[self::ACTION_KEY]) ? $selfParams[self::ACTION_KEY] : self::DEFAULT_ACTION); // init $this->signalReceiver and key 'signal' in appropriate params array $this->signalReceiver = $this->getUniqueId(); if (isset($selfParams[self::SIGNAL_KEY])) { $param = $selfParams[self::SIGNAL_KEY]; if (!is_string($param)) { $this->error('Signal name is not string.'); } $pos = strrpos($param, '-'); if ($pos) { $this->signalReceiver = substr($param, 0, $pos); $this->signal = substr($param, $pos + 1); } else { $this->signalReceiver = $this->getUniqueId(); $this->signal = $param; } if ($this->signal == NULL) { // intentionally == $this->signal = NULL; } } $this->loadState($selfParams); }
/** * Initializes $this->globalParams, $this->signal & $this->signalReceiver, $this->action, $this->view. Called by run(). * @return void * @throws NBadRequestException if action name is not valid */ private function initGlobalParameters() { // init $this->globalParams $this->globalParams = array(); $selfParams = array(); $params = $this->request->getParameters(); if ($this->isAjax()) { $params += $this->request->getPost(); } foreach ($params as $key => $value) { $a = strlen($key) > 2 ? strrpos($key, self::NAME_SEPARATOR, -2) : FALSE; if (!$a) { $selfParams[$key] = $value; } else { $this->globalParams[substr($key, 0, $a)][substr($key, $a + 1)] = $value; } } // init & validate $this->action & $this->view $this->changeAction(isset($selfParams[self::ACTION_KEY]) ? $selfParams[self::ACTION_KEY] : self::DEFAULT_ACTION); // init $this->signalReceiver and key 'signal' in appropriate params array $this->signalReceiver = $this->getUniqueId(); if (!empty($selfParams[self::SIGNAL_KEY])) { $param = $selfParams[self::SIGNAL_KEY]; $pos = strrpos($param, '-'); if ($pos) { $this->signalReceiver = substr($param, 0, $pos); $this->signal = substr($param, $pos + 1); } else { $this->signalReceiver = $this->getUniqueId(); $this->signal = $param; } if ($this->signal == NULL) { // intentionally == $this->signal = NULL; } } $this->loadState($selfParams); }