X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fpoints%2Fclass_UserPoints.php;fp=inc%2Fclasses%2Fmain%2Fpoints%2Fclass_UserPoints.php;h=0000000000000000000000000000000000000000;hp=428868d80ff28b50f697b4da1696113436d4ef68;hb=751f9e6c51f00dba27757b72fc85490e51fd3797;hpb=5203f9bd014ad46fbc7ee54e7223dcd46e14e3b4 diff --git a/inc/classes/main/points/class_UserPoints.php b/inc/classes/main/points/class_UserPoints.php deleted file mode 100644 index 428868d8..00000000 --- a/inc/classes/main/points/class_UserPoints.php +++ /dev/null @@ -1,183 +0,0 @@ - - * @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 UserPoints extends BaseFrameworkSystem implements Registerable, BookablePoints { - /** - * Amount of points - */ - private $amount = 0; - - /** - * Protected constructor - * - * @return void - */ - protected function __construct () { - // Call parent constructor - parent::__construct(__CLASS__); - } - - /** - * Creates an instance of this points class - * - * @param $userInstance An instance of a user class - * @return $pointsInstance An instance of this class - */ - 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; - } - - /** - * Setter for amount - * - * @param $amount Amount of points to store - * @return void - */ - public final function setAmount ($amount) { - $this->amount = (float) $amount; - } - - /** - * Getter for amount - * - * @return $amount Amount of points to store - */ - public final function getAmount () { - return $this->amount; - } - - /** - * 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 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; - - // Get the required points entry - $requiredPoints = $this->getConfigInstance()->getConfigEntry($action . '_action_points'); - - // Rewind always - $this->getResultInstance()->rewind(); - - // Do we have an entry? - if ($this->getResultInstance()->next()) { - // Get the entry - $currEntry = $this->getResultInstance()->current(); - - // Has he enought points? - $hasRequired = ($currEntry['points'] >= $requiredPoints); - } // END - if - - // Return the result - return $hasRequired; - } - - /** - * "Books" the given points amount on the current user's account - * - * @param $amount Amount of points we shall book - * @return void - */ - public function bookPointsDirectly ($amount) { - // Rewind always - $this->getResultInstance()->rewind(); - - // Do we have an entry? - if ($this->getResultInstance()->next()) { - // Get the entry - $entry = $this->getResultInstance()->current(); - - // Add the points - $amount += $entry[UserPointsDatabaseWrapper::DB_COLUMN_POINTS]; - - // Now get another criteria - $updateInstance = ObjectFactory::createObjectByConfiguredName('update_criteria_class'); - - // And add our both entries - $updateInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS, $amount); - - // Add the search criteria for searching for the right entry - $updateInstance->setSearchInstance($searchInstance); - - // Set wrapper class name - $updateInstance->setWrapperConfigEntry('user_points_db_wrapper_class'); - - // Remember the update in database result - $this->getResultInstance()->add2UpdateQueue($updateInstance); - } else { - // Set the amount in class - $this->setAmount($amount); - - // Create the new entry - $wrapperInstance->insertUserPoints($this); - } - } - - /** - * Adds registration elements to a given dataset instance - * - * @param $criteriaInstance An instance of a StoreableCriteria class - * @param $requestInstance An instance of a Requestable class - * @return void - */ - public function addElementsToDataSet (StoreableCriteria $criteriaInstance, Requestable $requestInstance = NULL) { - // Add user id - $criteriaInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $this->getUserInstance()->getUserId()); - - // Add amount - $criteriaInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS, $this->getAmount()); - } -} - -// [EOF] -?>