Browse Source

added before and after date filters

Signed-off-by: Dayle Rees <thepunkfan@gmail.com>
Dayle Rees 12 years ago
parent
commit
533112e2f5
2 changed files with 56 additions and 0 deletions
  1. 2 0
      application/language/en/validation.php
  2. 54 0
      laravel/validator.php

+ 2 - 0
application/language/en/validation.php

@@ -59,6 +59,8 @@ return array(
 	),
 	"unique"         => "The :attribute has already been taken.",
 	"url"            => "The :attribute format is invalid.",
+	"before"		 => "The :attribute field must contain a date before :date.",
+	"after"		 	=> "The :attribute field must contain a date after :date.",
 
 	/*
 	|--------------------------------------------------------------------------

+ 54 - 0
laravel/validator.php

@@ -646,6 +646,32 @@ class Validator {
 		return false;
 	}
 
+	/**
+	 * Validate the date is before a given date.
+	 *
+	 * @param  string  $attribute
+	 * @param  mixed   $value
+	 * @param  array   $parameters
+	 * @return bool
+	 */
+	protected function validate_before($attribute, $value, $parameters)
+	{
+		return (strtotime($value) < strtotime($parameters[0]));
+	}	
+
+	/**
+	 * Validate the date is after a given date.
+	 *
+	 * @param  string  $attribute
+	 * @param  mixed   $value
+	 * @param  array   $parameters
+	 * @return bool
+	 */
+	protected function validate_after($attribute, $value, $parameters)
+	{
+		return (strtotime($value) > strtotime($parameters[0]));
+	}		
+
 	/**
 	 * Get the proper error message for an attribute and rule.
 	 *
@@ -877,6 +903,34 @@ class Validator {
 		return str_replace(':other', $parameters[0], $message);
 	}
 
+	/**
+	 * Replace all place-holders for the before rule.
+	 *
+	 * @param  string  $message
+	 * @param  string  $attribute
+	 * @param  string  $rule
+	 * @param  array   $parameters
+	 * @return string
+	 */
+	protected function replace_before($message, $attribute, $rule, $parameters)
+	{
+		return str_replace(':date', $parameters[0], $message);
+	}
+
+	/**
+	 * Replace all place-holders for the after rule.
+	 *
+	 * @param  string  $message
+	 * @param  string  $attribute
+	 * @param  string  $rule
+	 * @param  array   $parameters
+	 * @return string
+	 */
+	protected function replace_after($message, $attribute, $rule, $parameters)
+	{
+		return str_replace(':date', $parameters[0], $message);
+	}	
+
 	/**
 	 * Get the displayable name for a given attribute.
 	 *