Quote:
Originally Posted by Cadellin
Great mod but two requests:
1. To be able to give an award to all members of a usergroup at the time of awarding.
|
I have cron mobule that works almost like you want. It will give award to member of usergroup if member was in usergroup more 300 days(for example).
Add php script to the folder inculdes/cron/
Then in Scheduled Tasks Manager create task to perform this script at 6:00 am each day. It must be perform only 1 time per day.
Also you must create column with name
daysin in
user tab in MySQL database.
You must know usergroup IDs, that members you want to reward. You can see it in Usergroup Manager in Admin Pannel.
You must know reward ID that you want to reward users. You can see it in MySQL database in awarad Tab(don't remember name of tab exactly) My award has id 5 ($medal_id=5)
daysin >= 300 it means after how many days user will get award
PHP Code:
<?php
error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db))
{
log_cron_action('FAILED: vbulletin->db is not an object', $nextitem);
exit;
}
$db=$vbulletin->db;
$db->query_write("DELETE FROM award_user WHERE award_id=5");
//ID of usergroups, members of that usergroups that you want to reward
$db->query_write("
UPDATE user SET daysin = daysin + 1
WHERE usergroupid !=6
AND (membergroupids LIKE '%74%' OR membergroupids LIKE '%19%')
");
//users will get awards after 300 days of membership, except administrator usergroup(id=6)
$users = $db->query_read("
SELECT `userid`,`joindate`,`posts`
FROM `user`
WHERE usergroupid !=6
AND daysin >= 300
");
while ($user = $db->fetch_array($users))
{
$medal_id=5;
$db->query_write("
INSERT INTO award_user
VALUES (NULL ,".$medal_id.",".$user['userid'].",'More 300 days membership', UNIX_TIMESTAMP() )");
}
log_cron_action('Awards update complete', $nextitem);
?>
i hope it will help