X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=application%2Fship-simu%2Fmain%2Fuser%2Fextended%2Fclass_ShipSimuMember.php;h=5efdf8de819c0408b30593e7b309e98ef3f30d0a;hp=acbdb62e70dea3479889e584256ba22dd740fd8e;hb=2b7c3e43b2fe0f3c5ae0455d13fa7743b638049f;hpb=6ea93981ed22f96c996122c3e0e2171a39927b1c diff --git a/application/ship-simu/main/user/extended/class_ShipSimuMember.php b/application/ship-simu/main/user/extended/class_ShipSimuMember.php index acbdb62..5efdf8d 100644 --- a/application/ship-simu/main/user/extended/class_ShipSimuMember.php +++ b/application/ship-simu/main/user/extended/class_ShipSimuMember.php @@ -4,7 +4,7 @@ * * @author Roland Haeder * @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 * @@ -21,7 +21,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class ShipSimuMember extends ShipSimuBaseUser implements ManageableMember { +class ShipSimuMember extends ShipSimuBaseUser implements ManageableMember, BookableAccount { /** * Protected constructor * @@ -48,7 +48,7 @@ class ShipSimuMember extends ShipSimuBaseUser implements ManageableMember { /** * Creates an instance of this user class by a provided username. This - * factory method will check if the username is already taken and if not + * factory method will check if username is already taken and if not * so it will throw an exception. * * @param $userName Username we need a class instance for @@ -62,11 +62,11 @@ class ShipSimuMember extends ShipSimuBaseUser implements ManageableMember { // Set the username $userInstance->setUserName($userName); - // Check if the username exists - if (!$userInstance->ifUsernameExists()) { + // Check if username exists + if ($userInstance->ifUsernameExists() === false) { // Throw an exception here throw new UsernameMissingException(array($userInstance, $userName), self::EXCEPTION_USERNAME_NOT_FOUND); - } + } // END - if // Return the instance return $userInstance; @@ -74,7 +74,7 @@ class ShipSimuMember extends ShipSimuBaseUser implements ManageableMember { /** * Creates an instance of this user class by a provided email address. This - * factory method will not check if the email address is there. + * factory method will not check if email address is there. * * @param $email Email address of the user * @return $userInstance An instance of this user class @@ -145,22 +145,58 @@ class ShipSimuMember extends ShipSimuBaseUser implements ManageableMember { $updateInstance = ObjectFactory::createObjectByConfiguredName('update_criteria_class'); // And add our both entries - $updateInstance->addCriteria('last_activity', date("Y-m-d H:i:s", time())); - $updateInstance->addCriteria('last_action', $lastAction); + $updateInstance->addCriteria("last_activity", date("Y-m-d H:i:s", time())); + $updateInstance->addCriteria("last_action", $lastAction); // Add the search criteria for searching for the right entry $updateInstance->setSearchInstance($searchInstance); + // Set wrapper class name + $updateInstance->setWrapperConfigEntry('user_db_wrapper_class'); + // Remember the update in database result $this->getResultInstance()->add2UpdateQueue($updateInstance); } + /** + * Books the given 'amount' in the request instance on the users "points + * account" + * + * @param $requestInstance An instance of a Requestable class + * @return void + */ + public function bookAmountDirectly (Requestable $requestInstance) { + // Get the points class from registry + $pointsInstance = Registry::getRegistry()->getInstance('points'); + + // Is the points instance null? + if (is_null($pointsInstance)) { + // Then get a new one + $pointsInstance = ObjectFactory::createObjectByConfiguredName('user_points_class', array($this)); + + // And store it in registry + Registry::getRegistry()->addInstance('points', $pointsInstance); + } // END - if + + // Get the amount + $amount = $requestInstance->getRequestElement('amount'); + + // Call the method for booking points + $pointsInstance->bookPointsDirectly($amount); + } + /** * Flushs all pending updates to the database layer * * @return void */ public function flushPendingUpdates () { + // Is the object valid? + if (!$this->getResultInstance() instanceof SearchableResult) { + // Abort here + return; + } // END - if + // Do we have data to update? if ($this->getResultInstance()->ifDataNeedsFlush()) { // Get a database wrapper