Modul ab gewissen Userpunkten freigeben?

Begonnen von exciting, 13 Mai 2007, 16:16:23

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

exciting

hallo gibt es eine möglichkeit, daß man z.b. ein modul, in dem fall enthält es nen iframe, ein user nur sehen kann, wenn er z.b. 200 userpunkte hat?
evtl. mit neuer gruppe z.b., hab hier auch ne thread dazu gefunden, aber der war noch für das vkp2.1.

vielleicht könnt ja jemand helfen, danke :)


StegRene

Ohne den Code dazu schreiben zu können, denke ich sollte es mit einer Abfrage der Userpunkte in der Modul-Datei eigentlich gehen, in der Art:

If userpunkte > xx then

[Modulcode]

else

[ende der Datei]

----> also so in der Art ;)

JoergK

Zitat von: exciting am 13 Mai 2007, 16:16:23
hallo gibt es eine möglichkeit, daß man z.b. ein modul, in dem fall enthält es nen iframe, ein user nur sehen kann, wenn er z.b. 200 userpunkte hat?

Möglich ist fast alles  ;D

Versuch's mal mit diesem (ungetestetem) Code:
<?php

if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

// Right blocks: On = 1, Off = 0
$index 1;

include(
"header.php");

if (
MX_IS_USER) {

    
// Get usergroup and userpoints from database
    
$user_info mxGetUserData();
    
$user_id = (int)$user_info['uid'];

    
$result sql_query("select punkte from ${prefix}_userpoints where uid='$user_id'");
    list(
$user_points) = sql_fetch_row($result);

    if ((
$user_points >= 200) || MX_IS_ADMIN)) {
        echo 
'<iframe src="URL zur anzuzeigenden Seite" name="FrameName" width="100%" height="500" align="center" scrolling="yes" marginheight="0" marginwidth="0" frameborder="0" framespacing="0"></iframe>';
    } else {
        
OpenTableAl()
        echo 
'<center>Du hast zu wenig Userpunkte, um den Inhalt zu sehen.</center>';
        
CloseTableAl()
    }

} else {
    
OpenTableAl()
    echo 
'<center>Du musst registriert und eingelogged sein, um den Inhalt zu sehen.</center>';
    
CloseTableAl()
}

include(
"footer.php");

?>

Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

exciting

paar ; und ) fehler ausgebessert und es läuft :)

vielen vielen dank :)

<?php

if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

// Right blocks: On = 1, Off = 0
$index 1;

include(
"header.php");

if (
MX_IS_USER) {

    
// Get usergroup and userpoints from database
    
$user_info mxGetUserData();
    
$user_id = (int)$user_info['uid'];

    
$result sql_query("select punkte from $mx12345_userpoints where uid='$user_id'");
    list(
$user_points) = sql_fetch_row($result);

    if ((
$user_points >= 200) || MX_IS_ADMIN) {
        echo 
"<iframe src=\"www.seite.de/modulname\" name=\"FrameName\" width=\"100%\" height=\"500\" align=\"center\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" frameborder=\"0\" framespacing=\"0\"></iframe>";
    } else {
        
OpenTableAl();
        echo 
"<center>Du hast zu wenig Userpunkte, um dieses Feature zu nutzen.</center>";
        
CloseTableAl();
    }

} else {
    
OpenTableAl();
    echo 
"<center>Du musst registriert und eingelogged sein, um den Inhalt zu sehen.</center>";
    
CloseTableAl();
}

include(
"footer.php");

?>


ideal aber net zwingend notwendig wär halt jetzt noch daß beim aufruf die userpunkte aktualisiert werden.

StegRene

 :thumbup:

Den Code klau ich mir dann doch auch gleich mal, wenn auch erstmal nur auf Halde ;)

JoergK

Zitat von: exciting am 13 Mai 2007, 21:11:07
paar ; und ) fehler ausgebessert und es läuft :)

Sorry für die Fehler, hatte es nur auf die schnelle zusammen gecoded.  :red:

Zitat
ideal aber net zwingend notwendig wär halt jetzt noch daß beim aufruf die userpunkte aktualisiert werden.

Mit einer kleinen Erweiterung des Codes geht natürlich auch das. Hier der komplette Code:

<?php

if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

// Right blocks: On = 1, Off = 0
$index 1;

include(
"header.php");

if (
MX_IS_USER) {

    
// Get usergroup and userpoints from database
    
$user_info mxGetUserData();
    
$user_id = (int)$user_info['uid'];

    if (@
file_exists("modules/Your_Account/userpoints.php")){
        if (!
defined("mxYALoaded")) define("mxYALoaded"1);
        
$uname $user_info['uname'];
        
mxGetLangfile("Your_Account");
        include_once(
"modules/Your_Account/userpoints.php");
    }
    
    
$result sql_query("select punkte from ${prefix}_userpoints where uid='$user_id'");
    list(
$user_points) = sql_fetch_row($result);

    if ((
$user_points >= 200) || MX_IS_ADMIN) {
        echo 
'<iframe src="URL zur anzuzeigenden Seite" name="FrameName" width="100%" height="500" align="center" scrolling="yes" marginheight="0" marginwidth="0" frameborder="0" framespacing="0"></iframe>';
    } else {
        
OpenTableAl();
        echo 
'<center>Du hast zu wenig Userpunkte, um den Inhalt zu sehen.</center>';
        
CloseTableAl();
    }

} else {
    
OpenTableAl();
    echo 
'<center>Du musst registriert und eingelogged sein, um den Inhalt zu sehen.</center>';
    
CloseTableAl();
}

include(
"footer.php");

?>
Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

exciting

vielen dank :)

brauchst dich doch net entschuldigen :)
is echt super, daß jeman den code hier postet :)

ideal wär jetzt noich, wenn der user sieht, wieviele userpunkte er gerade hat :)

wär das noch möglich?


danke :)

exciting

manchmal seh ich den wald wohl vor lauter bäumen net *g*
muss ja nur $punkte ausgeben :)

exciting

aber irgendwie mag er die >= abfrage net

hab noch bissle modifiziert und abfrage eingebaut:

ein testuser bekommt dann folgendes:

Sie haben zu wenig Userpunkte, um dieses Feature zu nutzen. Sammeln Sie Userpunkte, indem Sie sich aktiv an der Community beteiligen! Z.b. im Forum, senden Sie News, tragen Sie Reviews ein usw. Sie haben 16 Userpunkte Sie brauchen 10 Userpunkte. Es fehlen noch -6 Userpunkte

code sieht so aus momentan bei mir:


<?php

if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

// Right blocks: On = 1, Off = 0
$index 0;

include(
"header.php");

$mindestwert 10;
if (
MX_IS_USER) {

    
// Get usergroup and userpoints from database
    
$user_info mxGetUserData();
    
$user_id = (int)$user_info['uid'];

    if (@
file_exists("modules/Your_Account/userpoints.php")){
        if (!
defined("mxYALoaded")) define("mxYALoaded"1);
        
$uname $user_info['uname'];
        
mxGetLangfile("Your_Account");
        include_once(
"modules/Your_Account/userpoints.php");
    }

    
$result sql_query("select punkte from $mx12345_userpoints where uid='$user_id'");
    list(
$user_points) = sql_fetch_row($result);

    
$rechnung $mindestwert-$punkte;

    if ((
$user_points >= $mindestwert) || MX_IS_ADMIN) {

$userA mxGetUserData();
$username $userA[uname];

echo 
"<table align=center width=80% height=300><tr><td align=center heigt=200>" _WM_HALLO $username</td></tr><tr><tr><td align=center>
_WM_TEXT "
</td><tr><td align=center><a href=\"http://www.seite.de/modul/index.php \">Zum Modul</a></td></tr></td>"
;


    } else {
        
OpenTableAl();
        echo 
"<center>" _WM_POINTS "</center><br>";
        echo 
"<center>" _WM_HAVEPOINTS $punkte " _WM_HAVEPOINTS2 "</center>";
        echo 
"<center>" _WM_MINPOINTS $mindestwert " _WM_FEHLPOINTS $rechnung "_WM_FEHLPOINTS2 "</center>";
        
CloseTableAl();
    }

} else {
    
OpenTableAl();
    echo 
"<center>Du musst registriert und eingelogged sein, um den Inhalt zu sehen.</center>";
    
CloseTableAl();
}

include(
"footer.php");

?>



scheint als stimmt was net bei der >= abfrage.

exciting

ah

if (($user_points >= $mindestwert) || MX_IS_ADMIN) {
gehört umgeändert in
if (($punkte >= $mindestwert) || MX_IS_ADMIN) {