Das ist so ja auch richtig. Die Points werden nach den Vorgaben im Adminbereich errechnet.
Um Bonus oder Strafpunkte zu vergeben musst du ein Fremdmodul nutzen.
bau es dir doch schnell selber..
habe das für nuke 5.5 gemacht...
in 10 minuten war ich fertig..
.. mußt nur noch eine tabelle in die sql einfügen wo drinsteht
uname und Punkte ...
.. jetzt mußt du an der stelle wo die userpunkte berechnet werden (vermute in der index.php vom Your Account) .. einfach noch die tabelle mit auslesen ..
Aber das sollte ja kein Problem sein :D
habe gerade mal geschaut .. beim neuen MX wird das im Modul Your _account/userpoints.php errechnet..
Also als erstes mußt du eine Tabelle anlegen in der Mysql
z.b.: das hier:
CREATE TABLE mx_extrapu (
informant varchar(20) NOT NULL default '0',
punkte int(5) NOT NULL default '0'
) TYPE=MyISAM;
dann öfnest du die datei modules/Your _account/userpoints.php und fügst das in zeile 124 dazu:
$result= sql_query("select punkte from ${prefix}_extrapu where informant='".mxAddSlashesForSQL($uname)."'");
list($extrapoints)=sql_fetch_row($result);
$userpoints = $userpoints +$etrapoints;
Dann gehst z.B. mit phpmyadmin in die Datenbank ..
schaust unter mx_extrapu
und schreibst z.B. bei informant admin rein und bei punkte 300 (oder -300) .. und dann schaust mal ob sich da was tut nach 1 minute ..
ob der admin dann 300 userpunkte mehr hat..
Ich weiß nicht ob das so funktioniert..
ist mehr oder weniger aus dem Kopf raus..
Da ich eigentlih nur mit nuke 5.5 arbeite,
kenne icch mich net so gut aus mit dem neuen mx ..
:redhead: :redhead:
[Editiert am 17/12/2003 von soxin]
achso.. bitte posten ob es ging :D
alle Angaben beziehen sich auf VkpMx 2.1 Ich habs mir in der Zwischenzeit schon selber gemacht:
Zuerst mal in der Datenbank:
Tabelle mx_bonuspoints:
uname | punkte
im SQL also:
#
# Tabellenstruktur für Tabelle `mx_bonuspoints`
#
CREATE TABLE `mx_bonuspoints` (
`uname` varchar(25) NOT NULL default '0',
`punkte` int(11) NOT NULL default '0',
PRIMARY KEY (`uname`)
) TYPE=MyISAM;
Beispielinhalt:
max | 20
-> Benutzername "max" kriegt 20 Nutzerpnukte dazu.
#
# Daten für Tabelle `mx_bonuspoints`
#
INSERT INTO `mx_bonuspoints` VALUES ('max', 20);
Abänderung in der Datei modules/your_account/userpoints.php:
Zusätzlich wird die Nutzerpunktespalte immer angezeigt, nicht nur wenn die Punktezahl größer als 1 ist (auch Punktezahlen im Minusbereich werden somit angezeigt)
<?php // $Id: userpoints.php,v 1.5 2003/11/08 14:07:48 EllselAn Exp $
/**********************************************************************/
/* vkpMx 2.0 Content Management System Platform */
/* ================================================================== */
/* Copyright (C) 2003 by the vkpMx & pragmaMx Developer Team */
/* email: team@pragmamx.org */
/* homepage: http://www.maax-design.de */
/* further sites: http://www.pragmaMx.org, http;//guggemahier.de, */
/* http://www.marx-city.de, http://www.genutec-studios.de, */
/* http://www.shiba-design.de, http://www.power-maax.de */
/* ================================================================== */
/* The vkpMx is distributed free of charge by maax-design.de. */
/* The use of this system is allowed until copyright information */
/* is shown perspicuous visible and correcty on all system pages. */
/* Sales, rent out and the use of single code parts from this */
/* system must be allowed by maax-design.de. */
/**********************************************************************/
/*
Including BonusPoints Edit by maxG
*/
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
# Link zur Anzeige der Info ueber die Userpoints
# Leerstring, um den Link nicht anzuzeigen
$userpointsfaq = "<a href=\"modules.php?name=FAQ&file=index&myfaq=yes&id_cat=5&categories=UserPunkte\">"._USERPUNKTE."</a>";
include("modules/Your_Account/config.php");
if ($useuserpoints && $uname) {
$hasuserpoints = "";
# uid ermitteln
if (empty($uid)) {
$resultx=sql_query("select uid from ${user_prefix}_users where uname='$uname'");
list($uid) = sql_fetch_row($resultx);
}
$uid = intval($uid);
$exusers = explode (",", $excludedusers);
$exusers[] = $GLOBALS['anonymous'];
$exusers[] = "Anonymous";
foreach ($exusers as $key => $val) {
if (strtolower($uname) == strtolower(trim($val))){
$userishided = 1;
sql_query("delete from ${prefix}_userpoints where uid = '$uid' ");
break;
}
}
if (empty($userishided)){
$result=sql_query("SHOW TABLES;");
while(list($tablename)=sql_fetch_row($result)){
$tables[] = $tablename;
}
$userpoints=0;
if (!empty($points_downloads1) && in_array("${prefix}_downloads_downloads", $tables)) {# DownloadS
$result = sql_query("select count(lid) from ${prefix}_downloads_downloads where submitter='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_downloads1);
}
if (!empty($points_downloads2) && in_array("${prefix}_downloads_votedata", $tables)) {# Download Bewertungen
$result = sql_query("select count(ratingdbid) from ${prefix}_downloads_votedata where ratinguser='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_downloads2);
}
if (!empty($points_links1) && in_array("${prefix}_links_links", $tables)) {# Links
$result = sql_query("select count(lid) from ${prefix}_links_links where submitter='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_links1);
}
if (!empty($points_links2) && in_array("${prefix}_links_votedata", $tables)) {# Link Bewertungen
$result = sql_query("select count(ratingdbid) from ${prefix}_links_votedata where ratinguser='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_links2);
}
if (!empty($points_umfragen) && in_array("${prefix}_pollcomments", $tables)) {# Umfragekommentare
$result = sql_query("select count(tid) from ${prefix}_pollcomments where name='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_umfragen);
}
if (!empty($points_artikel) && in_array("${prefix}_stories", $tables)) {# Artikel
$result = sql_query("select count(sid) from ${prefix}_stories where informant='".mxAddSlashesForSQL($uname)."' AND `time` <= now()");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_artikel);
}
if (!empty($points_kommentare) && in_array("${prefix}_comments", $tables)) {# Artikel Kommentare
$result = sql_query("select count(tid) from ${prefix}_comments where name='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_kommentare);
}
if (!empty($points_gb1) && in_array("${prefix}_userguest", $tables)) {# User Gaestebuch eigene Eintraege
$result=sql_query("select count(gid) from ${prefix}_userguest where touser='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_gb1);
}
if (!empty($points_gb2) && in_array("${prefix}_userguest", $tables)) {# User Gaestebuch eintragen
$result=sql_query("select count(gid) from ${prefix}_userguest where wer='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_gb2);
}
if (@file_exists('modules/eBoard/settings.php')) {
include('modules/eBoard/settings.php');
if (!empty($points_fthreads) && in_array($table_threads, $tables)) {# Forumsbeitraege !!!! eBoard !!!!
$result= sql_query("select count(tid) from ".$table_threads." where author='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_fthreads);
}
if (!empty($points_fposts) && in_array($table_posts, $tables)) {# Forumsbeitraege !!!! eBoard !!!!
$result= sql_query("select count(pid) from ".$table_posts." where author='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_fposts);
}
}
if (!empty($points_kalender) && in_array("${prefix}_events", $tables)) {# Kalenderbeitraege
$result = sql_query("select count(eid) from ${prefix}_events where informant='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_kalender);
}
if (!empty($points_bilder1) && in_array("${prefix}_gallery_pictures", $tables)) {# Bilder eintragen
$result= sql_query("select count(pid) from ${prefix}_gallery_pictures where submitter='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_bilder1);
}
if (!empty($points_bilder2) && in_array("${prefix}_gallery_comments", $tables)) {# Bilder Kommentar
$result= sql_query("select count(pid) from ${prefix}_gallery_comments where name='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$userpoints = $userpoints + ($points * $points_bilder2);
}
if (in_array("${prefix}_bonuspoints", $tables)) {# Bonuspunkte
$result= sql_query("select punkte from ${prefix}_bonuspoints where uname='".mxAddSlashesForSQL($uname)."'");
list($points) = sql_fetch_row($result);
$bonuspoints = $points;
$userpoints = $userpoints + ($points * 1);
}
if($uid>1){
$result= sql_query("select uid, punkte from ${prefix}_userpoints where uid='$uid'");
list($checkit, $punkte) = sql_fetch_row($result);
if(empty($checkit)) {
sql_query("insert into ${prefix}_userpoints (uid, punkte) VALUES($uid, $userpoints) ");
}
else {
if ($punkte != $userpoints) { // nur aendern, wenn alt und neu unterschiedlich
sql_query("update ${prefix}_userpoints set punkte = '$userpoints' where uid = '$uid' ");
}
}
/* Minuspunkte und Punktestand 0 werden jetzt auch angezeigt
Edited by maxG
*/
if($userpoints>1 and $userpoints<(-1)) $userpoints=0;
$hasuserpoints = "<b>".$userpoints."</b> ". _YA_HASPOINTS;
}
else{
if (date("H") == 11) { // nicht immer ausfuehren
sql_query("DELETE FROM ${prefix}_userpoints WHERE uid <= 1");
}
}
}
}
?>
Nun muss man nur bei gewünschten Bonuspunkten neue Einträge in der Bonuspoints-Tabelle machen. Viel Spaß und vielen Dank an soxin :thumbup: :thumbup:
Zitat Darkboy schrieb:
Um Bonus oder Strafpunkte zu vergeben musst du ein Fremdmodul nutzen.
@darkboy:
1. es gibt für sowas keine gescheit brauchbaren Fremdmodule
2. antworte doch einfach besser gar nicht oder frag jemanden, der nicht so blöööde Antworten gibt!
Mfg
Max
[Editiert am 17/12/2003 von MaxG]
@ future, darkboy, jubilee
SORRY, ich hatte es etwas falsch verstanden.Ich kann meinen Beitrag gerne editieren, wenn ihr wollt.
zurück zum eigentlichen Thema:
@nils
.../modules.php?name=Top#POINT
Bringt
"Sorry, Modul nicht aktiv"
Bei dir bringt es keinen Fehler, weil Admins auch inaktive Module sehen können, aber bei mir als normalem Nutzer (test3) bringt es eine Fehlöermeldung.
Wenn du willst dass ich es mir anschauen kann:
vkpMx Admin -> Module
weiter unten müsste dann
Top
zu finden sein.
Dann auf das leere grüne Blatt klicken (mittleres Symbol der 3 Symbole am rechten Rand), das Modul ist jetzt aktiv.
Lösungsmöglichkeiten des Problems
Zitatkeine angezeigten Userpunkte
1) Hast du in den Einstellungen (vkpmx Admin -> Benutzer Konfiguration)
"Userpoints verwenden" auf JA gestellt?
Wenn NEIN, bitte auf JA stellen
2) hast du die Tabelle in der Datenbank erstellt?
wenn nein:
Zuerst musst du in PhpMyAdmin (NICHT VkpMx Admin-Oberfläche)
den SQL-Befehl
(hier im Beispiel ist der Tabellenprefix auf mx [Standarteinstellung] gestellt)
CREATE TABLE `mx_bonuspoints` (
`uname` varchar(25) NOT NULL default '0',
`punkte` int(11) NOT NULL default '0',
PRIMARY KEY (`uname`)
) TYPE=MyISAM;
ausführen
3)
dann kannst du es in der DB manuell durch hinzufügen von Username und Punkteabweichung in die Tabelle Bonuspunkte verteilen
[zur Info: endgültige Nutzerpunktzahl=Automatisch berechnete Nutzerpunkte(durch Forumbeiträge,...) + Punkteabweichung(Wert in Tabelle mx_bonuspoints)]
Wenn das Script bei einem Nutzer keinen Wert in der Tabelle mx_bonuspoints findet, wird nur der automatisch berechnete Wert genommen.
Ich werde irgendwann noch ein Script für den vkpMx Admin-Bereich schreiben, welches die Vergabe einfacher ermöglicht.
Mfg
Max