The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Creating a Scheduled Task: Update User Titles and Ranks
Anybody know how I can go about creating a scheduled task to update user titles and ranks?
Thanks! |
#2
|
||||
|
||||
You can probably just copy one of the other tasks (in /core/includes/cron) and just delete out the middle and put in the same queries from the Update User Titles and Ranks file (/core/admincp/misc.php). Then set up a task and point to that file.
|
#3
|
|||
|
|||
Thanks Lynne for the reply. I'm lost there.
I can't do it at the add new scheduled task area? I have to write my own php? |
#4
|
||||
|
||||
No. You need to write the scheduled task first before you add it.
(You posted in the programming help forum, so I assume you know how to program?) |
#5
|
|||
|
|||
Let's assume I don't.
Would you be able to help? Thanks so much! |
#6
|
||||
|
||||
I'd suggest taking the /cron/digestweekly.php file and renaming it. Then remove the require_once line and the exec_digest(3); line. Then you should be able to fill it in with the stuff from the misc.php file. Have you looked at that file and found the section that updates the titles and ranks?
|
#7
|
|||
|
|||
So does the update user titles and ranks function already get run once-a-week, automatically?(i.e. via digestweekly.php)
I'm no programmer either, but THANK YOU Lynne for your posts! I might be able to cobble something together from all that information. --------------- Added [DATE]1428255496[/DATE] at [TIME]1428255496[/TIME] --------------- I recently installed Paul M's Move inactive users to new usergroup MOD and am looking for a way to keep my user titles accurate each day, after his mod runs nightly. Is this code section below what needs to be copied/pasted into a new php file, for a new cron job? Also, since I only want to run the update user titles and ranks function is there anything else in the code below I need to remove? Code:
// ###################### Start update user ####################### if ($_REQUEST['do'] == 'updateuser') { require_once(DIR . '/includes/functions_infractions.php'); if (empty($vbulletin->GPC['perpage'])) { $vbulletin->GPC['perpage'] = 1000; } echo '<p>' . $vbphrase['updating_user_info'] . '</p>'; $tmp_usergroup_cache = array(); $infractiongroups = array(); $groups = $vbulletin->db->query_read(" SELECT usergroupid, orusergroupid, pointlevel, override FROM " . TABLE_PREFIX . "infractiongroup ORDER BY pointlevel "); while ($group = $vbulletin->db->fetch_array($groups)) { $infractiongroups["$group[usergroupid]"]["$group[pointlevel]"][] = array( 'orusergroupid' => $group['orusergroupid'], 'override' => $group['override'], ); } $users = $db->query_read(" SELECT user.*, usertextfield.rank, IF(user.displaygroupid=0, user.usergroupid, user.displaygroupid) AS displaygroupid FROM " . TABLE_PREFIX . "user AS user LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield USING (userid) WHERE user.userid >= " . $vbulletin->GPC['startat'] . " ORDER BY user.userid LIMIT " . $vbulletin->GPC['perpage'] ); $finishat = $vbulletin->GPC['startat']; while ($user = $db->fetch_array($users)) { $userdm =& datamanager_init('User', $vbulletin, ERRTYPE_CP); $userdm->set_existing($user); cache_permissions($user, false); $userdm->set_usertitle( ($user['customtitle'] ? $user['usertitle'] : ''), false, $vbulletin->usergroupcache["$user[displaygroupid]"], ($user['customtitle'] == 1 OR $user['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canusecustomtitle']) ? true : false, ($user['customtitle'] == 1) ? true : false ); if ($lastpost = $db->query_first("SELECT MAX(dateline) AS dateline FROM " . TABLE_PREFIX . "post WHERE userid = $user[userid]")) { $lastpost['dateline'] = intval($lastpost['dateline']); } else { $lastpost['dateline'] = 0; } $infractioninfo = fetch_infraction_groups($infractiongroups, $user['userid'], $user['ipoints'], $user['usergroupid']); $userdm->set('infractiongroupids', $infractioninfo['infractiongroupids']); $userdm->set('infractiongroupid', $infractioninfo['infractiongroupid']); $userdm->set('posts', $user['posts']); // This will activate the rank update $userdm->set('lastpost', $lastpost['dateline']); $userdm->save(); unset($userdm); echo construct_phrase($vbphrase['processing_x'], $user['userid']) . "<br />\n"; vbflush(); $finishat = ($user['userid'] > $finishat ? $user['userid'] : $finishat); } $finishat++; if ($checkmore = $db->query_first("SELECT userid FROM " . TABLE_PREFIX . "user WHERE userid >= $finishat LIMIT 1")) { print_cp_redirect("misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=updateuser&startat=$finishat&pp=" . $vbulletin->GPC['perpage']); echo "<p><a href=\"misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=updateuser&startat=$finishat&pp=" . $vbulletin->GPC['perpage'] . "\">" . $vbphrase['click_here_to_continue_processing'] . "</a></p>"; } else { define('CP_REDIRECT', 'misc.php'); print_stop_message('updated_user_titles_successfully'); } } // ###################### Finish update user ####################### |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|