From 227f665d2d2f2098be712db41ebe369edf21cc10 Mon Sep 17 00:00:00 2001
From: Brandon Olivares <brandon@christslittleflock.org>
Date: Tue, 9 Apr 2013 23:55:26 -0400
Subject: [PATCH] Issue #986574 reported by zywiec - added
 userpoints-meter:max-points token.

---
 userpoints_meter.module |   42 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/userpoints_meter.module b/userpoints_meter.module
index a7b5087..c533557 100644
--- a/userpoints_meter.module
+++ b/userpoints_meter.module
@@ -56,7 +56,7 @@ function userpoints_meter_block_view($delta) {
 
   //collect all settings we need to pass to the theme function
   $points = userpoints_get_current_points($uid, $tid); //get users points
-  $max_points = variable_get('userpoints_meter_max_points_' . $delta, 1000);
+  $max_points = token_replace(variable_get('userpoints_meter_max_points_' . $delta, 1000));
   $size = variable_get('userpoints_meter_size_' . $delta, 250);
   $unit = variable_get('userpoints_meter_unit_name_' . $delta, 'Points');
   $unit_divisor = variable_get('userpoints_meter_unit_' . $delta, 1);
@@ -134,7 +134,7 @@ function userpoints_meter_block_configure($delta) {
 function userpoints_meter_block_save($delta, $edit) {
 
     variable_set('userpoints_meter_size_' . $delta, (int)$edit['userpoints_meter_size_' . $delta]);
-    variable_set('userpoints_meter_max_points_' . $delta, (int)$edit['userpoints_meter_max_points_' . $delta]);
+    variable_set('userpoints_meter_max_points_' . $delta, $edit['userpoints_meter_max_points_' . $delta]);
     variable_set('userpoints_meter_unit_' . $delta, (int)$edit['userpoints_meter_unit_' . $delta]);
     variable_set('userpoints_meter_unit_name_' . $delta, $edit['userpoints_meter_unit_name_' . $delta]);
     variable_set('userpoints_meter_categories_' . $delta, $edit['userpoints_meter_categories_' . $delta]);
@@ -213,3 +213,41 @@ function theme_userpoints_meter_content($variables) {
 
   return $output;
 }
+
+function userpoints_meter_token_info() {
+  return array(
+    'types' => array(
+      'userpoints-meter' => array(
+        'name' => t('Userpoints Meter'),
+      ),
+    ),
+    'tokens' => array(
+      'userpoints-meter' => array(
+        'max-points' => array(
+          'name' => t('Maximum User Points'),
+        ),
+      ),
+    ),
+  );
+}
+
+function userpoints_meter_tokens($type, $tokens) {
+
+  $replacements = array();
+
+  if ($type == 'userpoints-meter') {
+    foreach ($tokens as $name => $original) {
+      switch ($name) {
+        case 'max-points':
+          $query = db_select('userpoints_total', 'upt');
+          $query->addExpression('MAX(upt.points)', 'maximum_points');
+          $result = $query->execute();
+          $max_points = $result->fetchField(0);
+          $replacements[$original] = $max_points;
+        break;
+      }
+    }
+  }
+
+  return $replacements;
+}
-- 
1.7.8.2

