コード例 #1
0
ファイル: application.php プロジェクト: cepharum/txf
 /**
  * Compiles URL addressing current script of current application.
  *
  * @param array|false $parameters set of parameters to pass in query, false
  *        to drop all current parameters (e.g. on creating GET form),
  *        provide special parameter '*' in array to start fresh set of parameters
  * @param mixed $selector first of multiple optional selectors to include
  * @return string URL of addressed script including optional parameters
  */
 public function selfURL($parameters = array(), $selector = null)
 {
     $selectors = func_get_args();
     $selectors = array_slice($selectors, 1);
     if (!count($selectors)) {
         $selectors = application::current()->selectors;
     }
     /*
      * merge current script's input parameters with provided one
      */
     if ($parameters === false) {
         $parameters = array();
     } else {
         // find all non-persistent input parameters of current script
         $currentVolatileParameters = array();
         if (!array_key_exists('*', $parameters)) {
             $get = input::source(input::SOURCE_ACTUAL_GET);
             foreach ($get->listNames() as $name) {
                 if (data::isKeyword($name) && !input::isPersistent($name)) {
                     $currentVolatileParameters[$name] = $get->getValue($name);
                 }
             }
         }
         unset($parameters['*']);
         // merge volatile input with given parameters, but drop all those
         // finally set NULL (to support removal per $parameters)
         $parameters = array_filter(array_merge($currentVolatileParameters, $parameters), function ($item) {
             return $item !== null;
         });
     }
     /*
      * utilize scriptURL() for referring to current script
      */
     array_unshift($selectors, $parameters);
     array_unshift($selectors, $this->script);
     return call_user_func_array(array(&$this, 'scriptURL'), $selectors);
 }
コード例 #2
0
ファイル: html_form.php プロジェクト: cepharum/txf
 /**
  * Detects if current input of script is considered containing input for
  * current form.
  *
  * @param boolean $keepFormIdInInput set true to keep any valid ID of form in input of current script
  * @return boolean true if form has actual input, false otherwise
  */
 public function hasInput($keepFormIdInInput = false)
 {
     if ($this->_hasInput === null) {
         $this->_hasInput = false;
         try {
             $idName = $this->idName();
             $source = input::source($this->usePost ? input::SOURCE_ACTUAL_POST : input::SOURCE_ACTUAL_GET);
             if ($source->hasValue($idName)) {
                 $value = $source->getValue($idName);
                 if ($value == $this->idValue()) {
                     if (!$keepFormIdInInput) {
                         $source->dropValue($idName);
                     }
                     $this->_hasInput = true;
                 }
             }
         } catch (\InvalidArgumentException $e) {
         }
     }
     return $this->_hasInput;
 }