Skip to content

Commit

Permalink
The messages () method was added to the validation class.
Browse files Browse the repository at this point in the history
  • Loading branch information
ozanuykun committed Apr 22, 2018
1 parent bc8a8a7 commit b7070af
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 2 deletions.
51 changes: 49 additions & 2 deletions Data.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ class Data implements DataInterface
*/
protected $messages = [];

/**
* Keeps user messages
*
* @var array
*/
protected $userMessages = [];

/**
* Keeps index
*
Expand All @@ -59,7 +66,7 @@ class Data implements DataInterface
*/
protected $method;

/**
/**
* Defines rules for control of the grant.
*
* @param string $name
Expand Down Expand Up @@ -125,6 +132,16 @@ public function rules(String $name, Array $config = [], $viewName = '', String $
$this->defaultVariables();
}

/**
* Sets user messages
*
* @param array $settings
*/
public function messages(Array $settings)
{
$this->userMessages = $settings;
}

/**
* It checks the data.
*
Expand Down Expand Up @@ -300,12 +317,42 @@ protected function validIssetArray($key, $data, $check, $name, $viewName)
*/
protected function setMessages($type, $name, $viewName)
{
$message = Lang::select('ViewObjects', 'validation:'.$type, $viewName);
if( $userMessage = ($this->userMessages[$type] ?? NULL) )
{
if( is_array($viewName) )
{
$message = $this->multiReplaceUserMessage($userMessage, $viewName);
}
else
{
$message = $this->singleReplaceUserMessage($userMessage, $viewName);
}
}
else
{
$message = Lang::select('ViewObjects', 'validation:'.$type, $viewName);
}

$this->messages[$this->index] = $message.'<br>'; $this->index++;
$this->error[$name] = $message;
}

/**
* Protected multi replace user message
*/
protected function multiReplaceUserMessage($userMessage, $viewName)
{
return str_replace(array_keys($viewName), array_values($viewName), $userMessage);
}

/**
* Protected single replace user message
*/
protected function singleReplaceUserMessage($userMessage, $viewName)
{
return str_replace('%', $viewName, $userMessage);
}

/**
* Default variables
*
Expand Down
7 changes: 7 additions & 0 deletions DataInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@ public function check(String $submit = NULL) : Bool;
*/
public function rules(String $name, Array $config = [], $viewName = '', String $met = 'post');

/**
* Sets user messages
*
* @param array $settings
*/
public function messages(Array $settings);

/**
* Get error
*
Expand Down

0 comments on commit b7070af

Please sign in to comment.