vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Wluke, buddy - what happened to the karma hack? (https://vborg.vbsupport.ru/showthread.php?t=21668)

intellected 06-30-2001 10:47 PM

What happened to the karma hack, really? The community is just dying for one (lots of people want it). How is the development going? What is happening? Will you release it at all? Will it be included in 2.1? That would be great - preferably called "user rating", since most people are not familiar with the term "karma"...

I don't mind waiting, but I DO mind wondering - I'm a curious individual, you see. Oh, pretty, pretty pleeease give us an update on how it's going!

Wayne Luke 07-01-2001 12:25 AM

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;
}
?>


intellected 07-01-2001 12:35 AM

Capitalist swine! :D

heh - I'm glad we had it cleared up, though.
Well, I guess it won't be hard to implement on your own - I guess I have to do it myself - tinker a bit with this perl code and the stars hack, I guess.

Steve Machol 07-01-2001 01:26 AM

[QUOTE]Originally posted by intellected
Capitalist swine! :D

Tic Tac 07-01-2001 02:21 AM

so can someone else do the karma hack and make it available for vB 2.0x ? if someone else could look at that php code and change it (if needed) and throw it into a zip and readme then distribute it as a hack.. that would be great!

Tic Tac

intellected 07-01-2001 11:39 AM

I'm not a PHP guru at all (just a few months of training) but a karma hack really cannot be THAT hard. I'll give it a shot. I'll develop it for my own site, but will do my best to make it easy to implement on others.

Assassin 989 07-06-2001 08:22 PM

Can dis work for VB?Just curious....

Wayne Luke 07-06-2001 08:40 PM

Quote:

Originally posted by Assassin 989
Can dis work for VB?Just curious....
The code above was written for vBUlletin 1.1.4

YouDunnoMe197 07-13-2001 04:17 AM

Quote:

Originally posted by wluke


The code above was written for vBUlletin 1.1.4

Would it be possible to tailor that for a 2.0.1 vb? I'd really appreciate it since we're upgrading from a ubb with the karma hack, and we don't want the moderators to lose any power over reprimanding the members outside of their forum. If not, I understand, if so, I'd appreciate it.

Btw, where would you enter that code at, and in which file?

Thank you again:)

Wayne Luke 07-13-2001 06:07 AM

It could be editted for vB 2.0.1 but I have already stated that I don't have time to do it and my own "rewards" program is much mroe than a Karma hack and probably won't be released to the public.

This does require a database table and a few templates as well. The code above goes in its own file. This is different from the UBB hack though because it doesn't ban users and it is available to all members not just moderators.


All times are GMT. The time now is 08:39 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.02489 seconds
  • Memory Usage 1,772KB
  • 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
  • (1)bbcode_php_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete