Example #1
0
 /**
  * @param bool $override
  *
  * @return string
  */
 public static function method($override = FALSE)
 {
     $request = static::current();
     if (is_bool($override)) {
         $method = Kohana_Arr::get($_SERVER, 'HTTP_X_HTTP_METHOD_OVERRIDE', $request->method());
     } else {
         $method = $override;
     }
     FALSE === $override or $request->method($method);
     return $method;
 }
Example #2
0
 /**
  * @param null $key
  * @param null $default
  * @param null $removeKeyPrefix
  *
  * @return array|mixed
  */
 public function data($key = NULL, $default = NULL, $removeKeyPrefix = NULL)
 {
     $data = parent::data();
     if (NULL !== $key && !Kohana_Arr::is_array($key)) {
         return Kohana_Arr::get($data, $key, $default);
     }
     if (NULL === $key) {
         $key = array_keys($data);
     }
     $result = [];
     foreach ($key as $_key) {
         $newKey = NULL !== $removeKeyPrefix && strpos($_key, $removeKeyPrefix) === 0 ? substr($_key, strlen($removeKeyPrefix)) : $_key;
         $result[$newKey] = Kohana_Arr::get($data, $_key, $default);
     }
     return $result;
 }
Example #3
0
 /**
  * Возвращает слово во множестевенном/единственном числе на основании $n
  *
  * @param int         $n
  * @param string      $one
  * @param null|string $two
  * @param null|string $five
  *
  * @return string
  */
 public static function plural($n, $one, $two = NULL, $five = NULL)
 {
     if (is_array($one)) {
         $values = [Kohana_Arr::get($one, 0)];
         $values[1] = Kohana_Arr::get($one, 1, $values[0]);
         $values[2] = Kohana_Arr::get($one, 2, $values[1]);
     } else {
         $values = [$one];
         $values[1] = NULL !== $two ? $two : $one;
         $values[2] = NULL !== $five ? $five : $values[1];
     }
     $idx = $n % 10 == 1 && $n % 100 != 11 ? 0 : ($n % 10 >= 2 && $n % 10 <= 4 && ($n % 100 < 10 || $n % 100 >= 20) ? 1 : 2);
     return $values[$idx];
 }
Example #4
0
 function __construct($name, $data = NULL, $defaults = NULL)
 {
     $this->initial_value_is_set = FALSE;
     $this->defaults_is_set = FALSE;
     if (is_array($name)) {
         $data = $name;
         $name = Kohana_Arr::get($data, self::KEY_NAME);
         if (!$name) {
             throw new Kohana_Exception('Field :name not defined', [':name' => self::KEY_NAME]);
         }
     }
     $this->_name = $name;
     $this->_strict_hidden = TRUE;
     $this->setDefaults($defaults);
     $this->fillData($data);
 }
Example #5
0
 /**
  * @param mixed  $value
  * @param array  $validationRules
  * @param string $file Validation errors file (default: validation)
  *
  * @return mixed
  * @throws Validation_Exception
  */
 protected function validateValue($value, array $validationRules = NULL, $file = NULL)
 {
     $validationRules = Helpers_Arr::merge([['not_empty']], NULL === $validationRules ? [] : $validationRules);
     $validation = Validation::factory(['key' => $value])->rules('key', $validationRules);
     if (!$validation->check()) {
         if (NULL === $file) {
             $file = 'validation';
         }
         $errors = Kohana_Arr::flatten($validation->errors($file));
         throw new Validation_Exception($validation, Kohana_Arr::get($errors, 'key', 'Undefined validation error'));
     }
     return $value;
 }