+//-----------------------------------------------------------------------------
+// Filter Functions
+//-----------------------------------------------------------------------------
+
+// Filter for adding login bonus to the user's account
+function FILTER_ADD_LOGIN_BONUS () {
+ // Is the user data valid?
+ if (!isMember()) {
+ // Do only run for logged in members
+ debug_report_bug(__FUNCTION__, __LINE__, 'Please only run this filter for logged in users.');
+ } // END - if
+
+ // Bonus is not given by default ;-)
+ $bonus = false;
+ if ((isExtensionInstalledAndNewer('sql_patches', '0.2.8')) && (isBonusRallyeActive()) && (getConfig('bonus_login_yn') == 'Y')) {
+ // Update last login if far enougth away
+ // @TODO This query isn't right, it will only update if the user was for a longer time away!
+ SQL_QUERY_ESC('UPDATE
+ `{?_MYSQL_PREFIX?}_user_data`
+SET
+ `last_login`=UNIX_TIMESTAMP()
+WHERE
+ `userid`=%s AND
+ `last_login` < (UNIX_TIMESTAMP() - {?login_timeout?})
+LIMIT 1',
+ array(
+ getMemberId()
+ ), __FUNCTION__, __LINE__
+ );
+
+ // Updated entry?
+ $bonus = (SQL_AFFECTEDROWS() == 1);
+ } // END - if
+
+ if (($bonus === true) && (getRequestParameter('mode') == 'bonus')) {
+ // Output message with added points
+ $GLOBALS['message'] .= '<div class="tiny">{--MEMBER_BONUS_LOGIN_BONUS_ADDED--}</div>';
+ } elseif (isExtensionActive('bonus')) {
+ // No login bonus added!
+ $GLOBALS['message'] .= '<div class="notice">{--MEMBER_BONUS_LOGIN_BONUS_NOT_ADDED--}</div>';
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Wrapper Functions
+//-----------------------------------------------------------------------------
+
+// Determines wether the "bonus rallye" is active
+function isBonusRallyeActive () {
+ // Do we have cache?
+ if (!isset($GLOBALS['bonus_rallye_active'])) {
+ // Just determine it
+ $GLOBALS['bonus_rallye_active'] = (getConfig('bonus_active') == 'Y');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS['bonus_rallye_active'];
+}
+
+// Determines wether the "bonus new_member_notify" is active
+function isBonusNewMemberNotifyEnabled () {
+ // Do we have cache?
+ if (!isset($GLOBALS['bonus_new_member_notify_active'])) {
+ // Just determine it
+ $GLOBALS['bonus_new_member_notify_active'] = (getConfig('bonus_new_member_notify') == 'Y');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS['bonus_new_member_notify_active'];
+}
+
+// Getter for bonus_timeout
+function getBonusTimeout () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('bonus_timeout');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// [EOF]