Gummipunkt für XForum Beitrag ?

Begonnen von Butschy, 16 August 2002, 23:59:09

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Butschy

hi Nuker
ich hab das PHP Nuke 5.6 und hab das Splattforum durch das XForum ersetzt
leider werden bei den Gummipunkten (v1.3) keine Beiträge aus dem Forum gezählt :-(
wie verschaffe ich mir da abhilfe ?

gruss Butschy

p.s. desweiteren werden die punkte die sonst verteilt werden nicht automatisch gezählt, ich muss im adminbereich immer auf "GP Manuel berechnen" klicken damit die Punkte übertragen werden, soll das so sein ?

Butschy

sorry *schiiiiiiieb*

keiner wo weiß ?

Ronwaste

bitte leute helft mir ich muss das wissen... bitte bitte bitte ich habe zwar schon ne spur aber der liest das nicht aus xmb_posts aus bitte helft mir

<?php

/************************************************************************/
/* PHP-NUKE: Gummipunkte System                                         */
/* ============================                                         */
/*                                                                      */
/* Gives your User Points for there work                                */
/*                                                                      */
/* Copyright (c) 2002 by Sebastian Maier (sebastian.m@ier.info)         */
/* http://www.m@ier.info                                                */
/*                                                                                                         */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License.       */
/************************************************************************/



function gpdb($gummipunkte, $username) {
global $prefix, $dbi, $user, $cookie;

      if ($username=="") {
         die();

      }
      $check = sql_query("select * from $prefix"._gummipunkte." where uname='$username'", $dbi);
      $checkit = sql_num_rows($check);
      
      if($checkit==0){
         $gpi = sql_query("INSERT INTO $prefix"._gummipunkte." (uname,punkte) VALUES ('$username','$gummipunkte')", $dbi);
      }
      if($checkit==1){
         $gpi = sql_query("update $prefix"._gummipunkte." set punkte='$gummipunkte' WHERE uname='$username'", $dbi);
      }
}

function gpcount($uname) {
   $cpunkte = gpcpunkte($uname);
   $ppunkte = gpppunkte($uname);
   $newpunkte = $cpunkte + $ppunkte;
   gpdb($newpunkte, $uname);
   return $newpunkte;

}


function gpcpunkte($uname) {
   global $prefix, $dbi, $gummipunkte, $user_prefix;
   $getuid = sql_query("select uid from $user_prefix"._users." where uname='$uname'", $dbi);
   list($uid) = sql_fetch_row($getuid, $dbi);

   $result = sql_query("select tid from $prefix"._comments." where name='$uname'", $dbi);
   $kommentare = sql_num_rows($result);
   $result = sql_query("select sid from $prefix"._stories." where informant='$uname'", $dbi);
   $artikel = sql_num_rows($result);
   $result = sql_query("select post_id from $prefix"._xmb_posts." where author='$uid'", $dbi);
   $posts = sql_num_rows($result);
   $result = sql_query("select lid from $prefix"._links_links." where submitter='$uname'", $dbi);
   $links = sql_num_rows($result);
   $result = sql_query("select lid from $prefix"._downloads_downloads." where submitter='$uname'", $dbi);
   $downloads = sql_num_rows($result);
   $gummipunkte=($artikel*10)+($kommentare*5)+($posts*1)+($links*3)+($downloads*3);
   return $gummipunkte;
}

function gpppunkte($uname) {
global $prefix, $dbi;

   $getppunkte = sql_query("select ppunkte from $prefix"._gummipunkte." where uname='$uname'", $dbi);
   list($ppunkte) = sql_fetch_row($getppunkte, $dbi);
   return $ppunkte;
}

function topgp() {
global $cat, $language, $prefix, $dbi, $topg;
require_once("includes/gpconfig.php");
   $result = sql_query("select * from $prefix"._gummipunkte." WHERE active='0' ORDER by punkte DESC", $dbi);
   $numrows = sql_num_rows($result);
      if ($numrows == 0) {
         return;
      }
      else {
         $list = "<font size=\"2\"><b><center>Top $topg</center></b><br><div align=\"left\">";
         $i=1;
         if($topg > $numrows) {
                      $topg = $numrows;
         }
            while($i <= $topg) {         
               list($uname,$punkte) = sql_fetch_row($result, $dbi);
                  $name = $uname;
                  $list .="<b>$i.</b> <a href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name</a>, $punkte Punkte</b><br>";
                  $i++;
         
            }
            $list .="</div>";
      }
      return $list;
}


function gpdbedit($username, $punkte) {
global $prefix, $dbi;

   $check = sql_query("select * from $prefix"._gummipunkte." where uname='$username'", $dbi);
   $checkit = sql_num_rows($check);
   list($ppunkte) = sql_fetch_row($check, $dbi);

      if($checkit==1){
            $newpunkte = ($ppunkte + $punkte);
            $gpi = sql_query("update $prefix"._gummipunkte." set ppunkte='$newpunkte' WHERE uname='$username'", $dbi);
      }
      else {

         $return = "$username ist nicht angelegt!";

         return $return;

      }
}

?>

eigentlich sollte es so gehen aber dann bekomme ich einen fehler angezeigt kann mir jemand helfen?

tequila

Hier liegt Dein Schwein begraben:



function gpcpunkte($uname) {
global $prefix, $dbi, $gummipunkte, $user_prefix;
$getuid = sql_query("select uid from $user_prefix"._users." where uname='$uname'", $dbi);
list($uid) = sql_fetch_row($getuid, $dbi);

$result = sql_query("select tid from $prefix"._comments." where name='$uname'", $dbi);
$kommentare = sql_num_rows($result);
$result = sql_query("select sid from $prefix"._stories." where informant='$uname'", $dbi);
$artikel = sql_num_rows($result);
$result = sql_query("select post_id from $prefix"._xmb_posts." where author='$uid'", $dbi);
$posts = sql_num_rows($result);
$result = sql_query("select lid from $prefix"._links_links." where submitter='$uname'", $dbi);
$links = sql_num_rows($result);
$result = sql_query("select lid from $prefix"._downloads_downloads." where submitter='$uname'", $dbi);
$downloads = sql_num_rows($result);
$gummipunkte=($artikel*10)+($kommentare*5)+($posts*1)+($links*3)+($downloa ds*3);
return $gummipunkte;
}



und zwar an folgenden Stellen:

1. Du suchst in der Tabelle (bin zwar nicht mehr ganz so fit im alten XForum, die Tabellen-Struktur war aber diesbezüglich identisch ...) nach einer "post_id", die es nicht gibt. Die heißt nur "pid", außerdem ist die "uid", die Du als Suchkriterium für "author" benutzt nur eine Zahl, kein Name. Da muß an Stelle von $uid $username stehen (oder irgend eine Variable, die den entsprechenden Usernamen übergibt).

2. IN der Tabelle "xmb_posts" stehen nur die Antworten auf Beiträge, Beiträge selber stehen in der Tabelle "xmb_threads", d.h. Du mußt auch noch diese Tabelle mit den gleichen Kriterien durchsuchen lassen.
Hier gibt es natürlich keine Post-ID (pid), die heißt hier Thread-ID (tid) ... nicht vergessen zu ändern nach dem kopieren ;)

Sprich:
Dein Quellcode muß irgendwie so aussehen:



function gpcpunkte($uname) {
global $prefix, $dbi, $gummipunkte, $user_prefix;
# Brauchst Du das hier überhaupt?
#$getuid = sql_query("select uid from $user_prefix"._users." where uname='$uname'", $dbi);
#list($uid) = sql_fetch_row($getuid, $dbi);

$result = sql_query("select tid from $prefix"._comments." where name='$uname'", $dbi);
$kommentare = sql_num_rows($result);
$result = sql_query("select sid from $prefix"._stories." where informant='$uname'", $dbi);
$artikel = sql_num_rows($result);
#
$result = sql_query("select pid from $prefix"._xmb_posts." where author='$username'", $dbi);
$posts = sql_num_rows($result);
$result = sql_query("select tid from $prefix"._xmb_threads." where author='$username'", $dbi);
$threads = sql_num_rows($result);
#
$result = sql_query("select lid from $prefix"._links_links." where submitter='$uname'", $dbi);
$links = sql_num_rows($result);
$result = sql_query("select lid from $prefix"._downloads_downloads." where submitter='$uname'", $dbi);
$downloads = sql_num_rows($result);
$gummipunkte=($artikel*10)+($kommentare*5)+($posts*1)+($threads*1)+($links*3)+($downloa ds*3);
return $gummipunkte;
}



Damit ist auf jeden Fall schonmal was ausgebügelt, was nicht gehen kann. Ob das jetzt alles ist, keine Ahnung.
Ich selber nutzt weder das XForum noch diese Gummipunkte, d.h. ich übernehme keine Garantie, das das alles war ... war eben nur auf das Forum bezogen alles, was ich jetzt auf die Schnelle gefunden haben beim durchlesen ....

Ronwaste

DANKE HASE.... Ich habe es zwar selber geschafft aber genau das was du gesagt hast da lag der fehler :-)) ich stehe in deiner schuld!!!!!

Matze

Wie würde das aussehen für das phpbb ? Will die Gummipunkte ans phpbb anpassen

Thx für n Tip

[Editiert am 7/11/2002 von Matze]

Ronwaste

ich kenne mich net aus mit denem board aber du musst in der mysql datenbank nachsehen unter welcher db deine posts abgespeichert werden, dann musst du sehen wie das forum das mit den usern händelt bzw mit den autoren.. und danach passt du dann den eintrag an...

Matze

das war mir klar dass ich sehen muss wie... dacht nur jemand hat das schonmal gemacht

Also ich habe die gp conf geaendert wie hier steht, doch zaehlt er bei mir nichts dazu. Was hab ich vergessen? Ich habe die GPs als Modul und bin von BB auf Xforum rueber. XForum laeft super, aber ohne Punkte System.

Ich hab den Fehler gefunden, war ein wenig bloed wie immer halt. die variable username gibts ja bei mir nich, so geaendert auf uname und funzt, Danke an Euch trotzdem. Ciao ciao