Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2  
Old 06-30-2001, 11:25 PM
Wayne Luke's Avatar
Wayne Luke Wayne Luke is offline
Senior Member
 
Join Date: Jan 2002
Location: Southern California
Posts: 1,694
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Business needs have dictated that I not pursue the Karma hack for my own purposes.

Instead we are developing a new system that will be used as a form of electronic currency in our forum for our members. As such it is not a user rating related feature anymore. Now SitePoint members will earn points (SitePoints, if you will) for contributing to the community. As time goes on they will be able to turn these points in for added member bonuses and discounts on products.

As such, I won't be persuing a simple "Karma" hack anymore. However here is the code that was used for the previous version of the hack. I converted this to PHP after looking at the PERL version written for UBB.

PHP Code:
<?php

require("global.php");
  
$permissions=getpermissions($bbuserid,$bbusergroupid);
  if (
$permissions[canreply]!=1) {
    eval(
"echo dovars(\"".gettemplate("karma_nopermission")."\");");
    exit;
  }

// ############################### Start Karma ###############################
if ($action=="karma") {
  
//Make sure a user can't give karma on their own posts.
  
if ($posterid==$bbuserid) {
    
$points=$DB_site->query_first("Select karma from user where userid=$bbuserid");
    
$karmicavg=$DB_site->query_first("SELECT SUM(rank) as netrank from karma where postid=$postid");
    
$karmicbal=$karmicavg[netrank];
    
$karma=$points[karma];
    if (
$karmicbal>0) {
      
$karmicmsg="Your Karma on this post is positive.";
    } elseif (
$karmicbal<0) {
      
$karmicmsg="Your Karma on this post is negative.";
    } elseif (
$karmicbal==|| $karmicbal==NULL) {
      
$karmicmsg="There is no Karma on this post.";
    }
    eval(
"echo dovars(\"".gettemplate("karma_show")."\");");
    exit;
  }
  
// Make Sure Karma is only given once per post.
  
$karmaexists=$DB_site->query_first("Select count(*) as count from karma where userid=$bbuserid and postid=$postid");
  if (
$karmaexists[count]<>0) {
    eval(
"echo dovars(\"".gettemplate("karma_exists")."\");");
    exit;
  }

  
$userinfo=$DB_site->query_first("SELECT user.userid,post.userid as posterid,user.username as username
                                   FROM user LEFT JOIN post ON (user.userid = post.userid)
                                   WHERE post.postid=
$postid");
  
$postname=$userinfo[username];
  
$posterid=$userinfo[posterid];
  
$userid=$bbuserid;
  eval(
"echo dovars(\"".gettemplate("karma")."\");");
  exit;
}

// ############################### Update Karma ###############################
if ($action=="alter") {
 if (
$comments=="No Comment") {
   
$comments="";
 }

 
$posterinfo=$DB_site->query_first("SELECT karma from user where userid=$posterid");
 
$karma=$posterinfo[karma];
 
$userinfo=$DB_site->query_first("SELECT posts from user where userid=$userid");
 
$posts=$userinfo[posts];
 if (
$posts 1499)
   { 
$karmaaward=15; }
 elseif (
$posts 199)
   { 
$karmaaward=floor($posts/100); }
 else
   { 
$karmaaward=1; }

 
$rank=0;
 if (
$adjust=="praise")
   {
$karma += $karmaaward;$rank += $karmaaward;}
 else
   {
$karma -= $karmaaward;$rank -= $karmaaward;}
 if (
$karma $maxkarma)
   {
$karma $maxkarma;}
 if (
$karma $minkarma)
   {
$karma $minkarma;}
 
$DB_site->query("UPDATE user SET karma=$karma where userid=$posterid");
 
$DB_site->query("INSERT INTO karma (postid,userid,rank,comments,posterid) VALUES ($postid,$userid,$rank,'".addslashes($comments)."',$posterid)");
 
//$DB_site->query("INSERT INTO karma (postid,userid,rank) VALUES ($postid,$userid,$rank)");
 
eval("echo dovars(\"".gettemplate("karma_close")."\");");
 exit;
}

// ############################### Karma Help###############################
if ($action="help") {
    eval(
"echo dovars(\"".gettemplate("karma_help")."\");");
    exit;
  }

// ############################### View Comments ###############################
if ($action=="comments") {
  exit;
}
?>
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:12 AM.


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.08426 seconds
  • Memory Usage 2,703KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (15)post_thanks_box
  • (15)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (15)post_thanks_postbit_info
  • (15)postbit
  • (10)postbit_onlinestatus
  • (15)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete