Could you (and anyone else who wants to help out) check this PHP code and confirm it does what I expect it to do, which is to color a badge based on the weeks a member is active in the latest sequence? I did a cut-paste-change from my "days in sequence" PHP prototype script and it would be great if someone could check it.
OK.. this new badge is working OK it seems, will test over time to insure it works properly.
TODO is to get the number of badged changed / awarded and the names of those badges to persist in the alert message. At the moment, there is a small bug in the state management (state management of how to time, persist and clear the changes text) of the updated badges which effects only the details in the alert message text (minor issue).
I forgot to mention that I set all forum members to 8 weeks active in a row (black). This means that that single badge will reset to light gray when a user is not active for a week; but anyone who remains active on a weekly basis, that badge (the Weeks Active in a Row Badge) will remain black.
This helps me test as well, since most members "weeks active in a row badge" will change from black to gray a week from now, if my code logic is working as I think it should.
Trigger on each page hit (in a global init file), as follows:
<?php
...
...
$now = time();
$limit = 60 * 3;
if (isset($_COOKIE['badgeshashtime'])) {
$prior_time = $_COOKIE['badgeshashtime'];
$diff = $now - $prior_time;
} else {
setcookie("badgeshashtime", $now);
setcookie("badgeshash", $hash); // NOT USED YET
$diff = $now;
}
if ($diff > $limit) {
// do the badge update dance
}
...
So basically, all badges are checked and updated updates every 180 seconds or more based on the registered user's browsing habits, which is reasonable (3 minutes).
Since generally the $_COOKIE['badgeshashtime'] is normally set for all normal users with (99.999% have cookies enabled); this generally fires off every 3 minutes (checks) when a registered user in on the site, and of course, if they go have a glass of milk, it will check when they return, unless that are really fast to the frig.