X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fpoints%2Fclass_UserPoints.php;h=428868d80ff28b50f697b4da1696113436d4ef68;hb=9fc7596702ceb1dc9f8bfda402a98b0351159a23;hp=1fb953268b8303693f7af557df7773240311e012;hpb=b9c18d6c24e3be4393bf41005aa4e428a0ea3218;p=core.git diff --git a/inc/classes/main/points/class_UserPoints.php b/inc/classes/main/points/class_UserPoints.php index 1fb95326..428868d8 100644 --- a/inc/classes/main/points/class_UserPoints.php +++ b/inc/classes/main/points/class_UserPoints.php @@ -2,11 +2,11 @@ /** * A class for handling user points which can be real or Internet currency * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core 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 @@ -35,10 +35,6 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); - - // Clean up a little - $this->removeNumberFormaters(); - $this->removeSystemArray(); } /** @@ -47,13 +43,32 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo * @param $userInstance An instance of a user class * @return $pointsInstance An instance of this class */ - public final static function createUserPoints (ManageableAccount $userInstance) { + public static final function createUserPoints (ManageableAccount $userInstance) { // Get a new instance $pointsInstance = new UserPoints(); // Set user instance $pointsInstance->setUserInstance($userInstance); + // Get a critieria instance + $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); + + // Add search criteria + $searchInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $userInstance->getUserId()); + $searchInstance->setLimit(1); + + // Get a wrapper instance + $wrapperInstance = DatabaseWrapperFactory::createWrapperByConfiguredName('user_points_db_wrapper_class'); + + // Get result back + $resultInstance = $wrapperInstance->doSelectByCriteria($searchInstance); + + // Advance to first entry by default + $resultInstance->next(); + + // Set it in this instance + $pointsInstance->setResultInstance($resultInstance); + // Return instance return $pointsInstance; } @@ -78,34 +93,29 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo } /** - * Checks wether the user has the required amount of points left for the specified action + * Checks whether the user has the required amount of points left for the specified action * * @param $action The action or configuration entry plus prefix the user wants to perform - * @return $hasRequired Wether the user has the required points + * @return $hasRequired Whether the user has the required points * @todo Finish loading part of points */ public function ifUserHasRequiredPoints ($action) { // Default is that everyone is poor... ;-) - $hasRequired = false; + $hasRequired = FALSE; // Get the required points entry $requiredPoints = $this->getConfigInstance()->getConfigEntry($action . '_action_points'); - // Now get a search criteria and set the user's name as criteria - $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - $searchInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $this->getUserInstance()->getUserId()); - $searchInstance->setLimit(1); - - // Get a wrapper instance - $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_points_db_wrapper_class'); - - // Get result back - $resultInstance = $wrapperInstance->doSelectByCriteria($searchInstance); + // Rewind always + $this->getResultInstance()->rewind(); // Do we have an entry? - if ($resultInstance->next()) { - // @TODO Load points here - $this->partialStub("Load points here for comparison."); + if ($this->getResultInstance()->next()) { + // Get the entry + $currEntry = $this->getResultInstance()->current(); + + // Has he enought points? + $hasRequired = ($currEntry['points'] >= $requiredPoints); } // END - if // Return the result @@ -118,25 +128,14 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo * @param $amount Amount of points we shall book * @return void */ - function bookPointsDirectly ($amount) { - // Get a critieria instance - $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - - // Add search criteria - $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - $searchInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $this->getUserInstance()->getUserId()); - $searchInstance->setLimit(1); - - // Get a wrapper instance - $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_points_db_wrapper_class'); - - // Get result back - $resultInstance = $wrapperInstance->doSelectByCriteria($searchInstance); + public function bookPointsDirectly ($amount) { + // Rewind always + $this->getResultInstance()->rewind(); // Do we have an entry? - if ($resultInstance->next()) { + if ($this->getResultInstance()->next()) { // Get the entry - $entry = $resultInstance->current(); + $entry = $this->getResultInstance()->current(); // Add the points $amount += $entry[UserPointsDatabaseWrapper::DB_COLUMN_POINTS]; @@ -154,10 +153,7 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo $updateInstance->setWrapperConfigEntry('user_points_db_wrapper_class'); // Remember the update in database result - $resultInstance->add2UpdateQueue($updateInstance); - - // Set it - $this->setResultInstance($resultInstance); + $this->getResultInstance()->add2UpdateQueue($updateInstance); } else { // Set the amount in class $this->setAmount($amount); @@ -170,10 +166,11 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo /** * Adds registration elements to a given dataset instance * - * @param $criteriaInstance An instance of a storeable criteria + * @param $criteriaInstance An instance of a StoreableCriteria class + * @param $requestInstance An instance of a Requestable class * @return void */ - public function addElementsToDataSet (StoreableCriteria $criteriaInstance) { + public function addElementsToDataSet (StoreableCriteria $criteriaInstance, Requestable $requestInstance = NULL) { // Add user id $criteriaInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $this->getUserInstance()->getUserId());