From 4535fdd1b20a19f4535c12494d48fe633a7bc88f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sat, 22 Aug 2009 00:20:40 +0000 Subject: [PATCH] UserPoints rewritten to use only one result (does this break anything?) --- .../web/blocks/class_WebBlockHelper.php | 2 +- inc/classes/main/points/class_UserPoints.php | 59 ++++++++----------- 2 files changed, 26 insertions(+), 35 deletions(-) diff --git a/inc/classes/main/helper/web/blocks/class_WebBlockHelper.php b/inc/classes/main/helper/web/blocks/class_WebBlockHelper.php index 23e99d98..de4771e8 100644 --- a/inc/classes/main/helper/web/blocks/class_WebBlockHelper.php +++ b/inc/classes/main/helper/web/blocks/class_WebBlockHelper.php @@ -140,7 +140,7 @@ class WebBlockHelper extends BaseWebHelper implements HelpableTemplate { $templateInstance = $this->getTemplateInstance(); // Get the template named like this block - $templateInstance->loadCodeTemplate("block_" . $this->getBlockName()); + $templateInstance->loadCodeTemplate('block_' . $this->getBlockName()); // Transfer it to the template instance $templateInstance->assignVariable($this->getBlockName(), $templateInstance->getRawTemplateData()); diff --git a/inc/classes/main/points/class_UserPoints.php b/inc/classes/main/points/class_UserPoints.php index 0e913d4e..a76cf3ca 100644 --- a/inc/classes/main/points/class_UserPoints.php +++ b/inc/classes/main/points/class_UserPoints.php @@ -50,6 +50,22 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo // 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 = ObjectFactory::createObjectByConfiguredName('user_points_db_wrapper_class'); + + // Get result back + $resultInstance = $wrapperInstance->doSelectByCriteria($searchInstance); + + // Set it in this instance + $pointsInstance->setResultInstance(); + // Return instance return $pointsInstance; } @@ -87,21 +103,13 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo // 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); - // 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 @@ -115,24 +123,10 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo * @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); - // 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]; @@ -150,10 +144,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); -- 2.39.2