/**
* A verifier filter for birthday data
*
- * @author Roland Haeder <webmaster@ship-simu.org>
+ * @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Ship-Simu Developer Team
* @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
+ * @link http://www.shipsimu.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* @return $filterInstance An instance of this filter class
*/
- public final static function createBirthdayVerifierFilter () {
+ public static final function createBirthdayVerifierFilter () {
// Get a new instance
$filterInstance = new BirthdayVerifierFilter();
* @param $requestInstance An instance of a class with an Requestable interface
* @param $responseInstance An instance of a class with an Responseable interface
* @return void
- * @todo 0% done
*/
public function execute (Requestable $requestInstance, Responseable $responseInstance) {
// Execute the parent execute method
parent::execute($requestInstance, $responseInstance);
- // Implement this!
- $requestInstance->debugInstance();
- $this->partialStub("Please implement this method.");
+ // Day of birth set?
+ if (!$requestInstance->isRequestElementSet('birth_day')) {
+ // Day of birth isn't set
+ $requestInstance->requestIsValid(false);
+
+ // Add a message to the response
+ $responseInstance->addFatalMessage('day_of_birth_unset');
+ } // END - if
+
+ // Month of birth set?
+ if (!$requestInstance->isRequestElementSet('birth_month')) {
+ // Month of birth isn't set
+ $requestInstance->requestIsValid(false);
+
+ // Add a message to the response
+ $responseInstance->addFatalMessage('month_of_birth_unset');
+ } // END - if
+
+ // Year of birth set?
+ if (!$requestInstance->isRequestElementSet('birth_year')) {
+ // Year of birth isn't set
+ $requestInstance->requestIsValid(false);
+
+ // Add a message to the response
+ $responseInstance->addFatalMessage('year_of_birth_unset');
+ } // END - if
+
+ // Is the request still valid?
+ if (!$requestInstance->isRequestValid()) {
+ // Abort here
+ throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+ } // END - if
+
+ // Now comes the final check
+ $birthCheck = mktime(
+ 0,
+ 0,
+ 0,
+ $requestInstance->getRequestElement('birth_day'),
+ $requestInstance->getRequestElement('birth_month'),
+ $requestInstance->getRequestElement('birth_year')
+ );
+
+ // Is there a number or such? (we don't care about the value itself here)
+ if (empty($birthCheck)) {
+ // Validation has failed
+ $requestInstance->requestIsValid(false);
+
+ // Add a message to the response
+ $responseInstance->addFatalMessage('birthday_invalid');
+
+ // Abort here
+ throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+ } // END - if
}
}