From: Roland Haeder Date: Mon, 6 Apr 2015 23:19:43 +0000 (+0200) Subject: Moved from shipsimu project. X-Git-Url: https://git.mxchange.org/?p=core.git;a=commitdiff_plain;h=ae3dd106624491939ff32b159c9ae509aaf89fe3 Moved from shipsimu project. Signed-off-by: Roland Häder --- diff --git a/inc/classes/main/filter/verifier/class_BirthdayVerifierFilter.php b/inc/classes/main/filter/verifier/class_BirthdayVerifierFilter.php new file mode 100644 index 00000000..3f332061 --- /dev/null +++ b/inc/classes/main/filter/verifier/class_BirthdayVerifierFilter.php @@ -0,0 +1,117 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class BirthdayVerifierFilter extends BaseShipSimuFilter implements Filterable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this filter class + * + * @return $filterInstance An instance of this filter class + */ + public static final function createBirthdayVerifierFilter () { + // Get a new instance + $filterInstance = new BirthdayVerifierFilter(); + + // Return the instance + return $filterInstance; + } + + /** + * Executes the filter with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + // Execute the parent execute method + parent::execute($requestInstance, $responseInstance); + + // 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 + } +} + +// [EOF] +?>