vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Requests/Questions (Unpaid) (https://vborg.vbsupport.ru/forumdisplay.php?f=112)
-   -   ## Little PHP Assistance ## (https://vborg.vbsupport.ru/showthread.php?t=103491)

Mr Chad 12-21-2005 11:02 PM

## Little PHP Assistance ##
 
Ok well i have this when a special link is clicked it runs a php file that has this
PHP Code:

$sql "UPDATE " TABLE_PREFIX "user SET `vote_status`=1 WHERE `userid`=".$db->sql_prepare($vbulletin->userinfo['userid']);
$sqlr $db->query_write($sql); 

I also have a cron job that sets vote_status to 0 every 12 hours
all i need is somthing that will temp promote any user with vote_status=1 to a special user group, and it checks this every 12 hours to.

Chris M 12-21-2005 11:10 PM

In the php file that is clicked on add:
PHP Code:

//check the user isn't an admin, supermod or mod! (add more groups if necessary)
if (!(is_member_of($vbulletin->userinfo, array(5,6,7)))) {
$db->query_write("UPDATE " TABLE_PREFIX "user SET usergroupid = 'y' WHERE userid = ' . $vbulletin->userinfo['userid'] . '");


In your cron file:
PHP Code:

$vbulletin->db->query_write("UPDATE " TABLE_PREFIX "user SET usergroupid = 'z' WHERE usergroupid = 'y'"); 

Chris

Mr Chad 12-21-2005 11:11 PM

how can i make it for just registered members as the default group.

Chris M 12-21-2005 11:12 PM

PHP Code:

if ($vbulletin->userinfo['vote_status'] == "1") {
// do stuff


Chris

Mr Chad 12-21-2005 11:30 PM

Chris your code make my vote_status not needed.

PHP Code:

//check the user isn't an admin, supermod or mod! (add more groups if necessary)
if (!(is_member_of($vbulletin->userinfo, array(5,6,7)))) {
$db->query_write("UPDATE " TABLE_PREFIX "user SET usergroupid = 'y' WHERE userid = ' . $vbulletin->userinfo['userid'] . '");


How do i just make it do it to the people that are just registered users (ID = 2)

Chris M 12-21-2005 11:31 PM

Change:
PHP Code:

if (!(is_member_of($vbulletin->userinfo, array(5,6,7)))) { 

to:
PHP Code:

if ((is_member_of($vbulletin->userinfo2)) && (!(is_member_of($vbulletin->userinfo, array(5,6,7))))) { 

Chris

Mr Chad 12-21-2005 11:35 PM

Thanks that did the trick.

Mr Chad 12-23-2005 04:08 AM

Ok i need help on another thing:

ok i can pull the total amount of members like this
PHP Code:

// get forum members
$querya="SELECT COUNT(*) AS users, MAX(userid) AS max FROM " $TABLE_PREFIX "user WHERE usergroupid!=4";
$numa mysql_query_eval($querya,$link);
$numb mysql_fetch_array($numa);
$numbermembers=number_format($numb['users']);
mysql_free_result($numa); 

Anyone know how to pull the member with the highist userid and grab their user name?

Marco van Herwaarden 12-23-2005 05:50 AM

You would need a seperate query for that.

Mr Chad 12-23-2005 07:51 AM

Quote:

Originally Posted by MarcoH64
You would need a seperate query for that.

how would i set it up tho? to get text i do SELECT what?

Marco van Herwaarden 12-23-2005 08:11 AM

[sql]SELECT username FROM user ORDER BY posts DESC LIMIT 1;[/sql]

Mr Chad 12-24-2005 12:57 AM

never mind did it ^^

PHP Code:

//get latest ecdownload
$queryf"SELECT name AS newdownload FROM " $TABLE_PREFIX "dl_files ORDER BY id DESC LIMIT 1"
$latestdownloada mysql_query_eval($queryf,$link);
$latestdownloadb mysql_fetch_array($latestdownloada);
$latestdownload$latestdownloadb['newdownload'];
mysql_free_result($latestdownloada); 

Is there a way to get currently online? only useing the database?
PHP Code:

//get total online
$queryh"SELECT COUNT(*) AS online FROM " $TABLE_PREFIX "session"
$onlinea mysql_query_eval($queryh,$link);
$onlineb mysql_fetch_array($onlinea);
$onlinenumber_format($onlineb['online']);
mysql_free_result($onlinea); 

it gets a huge number... any way to fix this?



anyone?

Marco van Herwaarden 12-24-2005 07:50 AM

You will have to limit to the rows with a dateline later then the current time minus cookie timeout.

Mr Chad 12-24-2005 05:32 PM

Quote:

Originally Posted by MarcoH64
You will have to limit to the rows with a dateline later then the current time minus cookie timeout.

wow, im over my head.

Marco van Herwaarden 12-24-2005 07:50 PM

To put it more simple. Rows are added to the session table all the time. The table gets cleaned again once an hour (i think by default) by a scheduled task.

A user is 'online' however if his last action (page load) was less the the cookie timeout ago. So if the cookie timeout is set to 900 (seconds, 15 minutes, default), then you only want to rows from the session table of the last 900 seconds.

Mr Chad 12-24-2005 10:30 PM

yea but the time it shows in the table is a huge number like 8 digits

How would i make it just count the rows with userid > 0

Marco van Herwaarden 12-25-2005 07:31 AM

PHP Code:

$queryh"SELECT COUNT(*) AS online FROM " $TABLE_PREFIX "session WHERE userid > 0 AND lastactivity > " . (TIMENOW $vbulletin->options['cookietimeout'])"; 



All times are GMT. The time now is 03:54 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01086 seconds
  • Memory Usage 1,777KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (11)bbcode_php_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (17)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete