Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Dynamischer Tagesgutschein ala Klammino

  1. #1
    Moderator
    Registriert seit
    07.07.2006
    Beiträge
    1.374

    Dynamischer Tagesgutschein ala Klammino

    Huhu und erstmal schönen Sonntag euch allen.

    Habe mal wieder eine Idee was es noch nicht gibt im VMS.

    Es geht mir erstmal um die Machbareit, und zwar ein dynamischer Tagesgutschein wie es ihn bei Klammino gibt.

    Erklärung: Zu einem zufälligen Zeitpunkt zwischen 8 und 20 Uhr ist der Gutschein für einen festgelten Zeitraum (1-3 Stunden) aktiv, ohne das ich da handanlegen muss. Dazu kommt ein zufälliger Wert zwischen 10 k und 100 k, dieser wird noch an AP oder Zinspunkte gebunden.

    Also einen GS erstellen per Hand geht ja mit üblichen Addons, ihn an AP oder Zinspunkte zu binden geht auch recht einfach nach dem Prinzip der AktivGutscheine.

    Wie kann man nun aber die Automatisierung machen, das er sich wie oben selbst erstellt, daran scheitert gerade mein Voerstellungvermögen.

    Also lasst und doch gemeinsam versuchen etwas hinzubiegen.

    MfG

  2. #2
    Du könntest alle Werte über einen Cron einfügen was sonst per Hand im Admin passiert.

    Gültig bis - geht ja bei den meisten Gutscheinaddons ja auch
    Charmante-Lose / Mini-Zocker / ColaCodes4Lose
    Du brauchst Webspace für dein VMS--> PN

  3. #3
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Ich denke, so ein "spzielles" Addon sollte jede Seite ganz individuell erstellen & gestalten.

    Einmal schon deswegen, da es von anderen Addons abhängt, also Aktivpunkte & bisher verwendetes Gutscheinaddon. Es macht wenig Sinn, solche Dinge ein 2. mal einzubauen, wenn sie denn schon vorhanden sind.

    Und dann wäre es sehr langweilig, wenn aufeinmal jede VMS1 Seite ein solches Addon hat, was zw. 8 und 20 Uhr einen Gutschein für 3 Stunden generiert und den auf der Unterseite xyz bekannt macht. Allein schon deshalb, weil die Faker & Gutschein-Sammler dann schnell ein Skript haben, was diese Gutsheine automatisiert einlöst etc.


    Man könnte ja die Art des Bekanntsmachens des Gutscheins variieren,
    bspw. nur in der Chatbox,
    nur per E-Mail an User, die schon XYZ AP erreicht haben (),
    über seiteninterne News,
    über Massen-PN,
    oder den Code um 8 Uhr veröffentlichen, aber nicht sagen, wann er gilt (User müssen es stündlich probieren, können aber dann in der Chatbox anderen bescheid sagen, gibt aber nur begrenzt Gutscheine, daher will ja jeder unter den 1. sein),
    uvm....

    So ein Addon kann man kaum ohne beträchtlichen & an sich unnötigen Zusatzaufwand für alle VMS1 Seiten generell schreiben.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  4. #4
    Moderator
    Registriert seit
    07.07.2006
    Beiträge
    1.374
    Ok, einfach ist es nicht, habe aber einen Ansatz der mir reichen würde, wenn den realisierbar, zumal dieser Ansatz auch anderwertig nutzbar wäre, z.b. für die FakeKontrolle.

    Ich lege einen Cron an, dieser läuft dann 2mal täglich, Zeiten lassen sich ja einstellen damit es wie Zufall erscheint.

    Das entscheidende ist, was der Cron machen soll.

    Der Cron müsste entweder in der Lage sein eine Datei zu erstellen/löschen oder aber den Inhalt einer Datei komplett zu ändern.

    Ok, Denkansatz 2, die Lösung, der Cron macht nur in der DB eine 0 oder 1, Gutschein also aktiv oder nicht aktiv, eigentlich simpel, das kann jeder von uns selbst umsetzten und da nicht alle das gleiche haben sollen lassen wir den Code für sowas mal weg an dieser Stelle.


    Also soweit könnte es doch recht einfach werden. Leider nur nicht mehr sinvoll für den Faketest, hier wäre das automatische ändern/erstellen/löschen notwendig.

    MfG

  5. #5
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Zitat Zitat von Masterphil Beitrag anzeigen
    ...

    Ich lege einen Cron an, dieser läuft dann 2mal täglich, Zeiten lassen sich ja einstellen damit es wie Zufall erscheint.
    ...
    Oder ein Cron der 1x täglich läuft, bspw. 0 Uhr, und die Zeitspanne für den Tag bestimmt und in der DB speichert.

    Also was mit
    Code:
    time()+rand()
    Solche "Einzelwerte" lassen sich gut in vms_seitenkonfig speichern, die wird eh bei jedem Aufruf ausgelesen. Im Gutscheinaddon dann halt noch iwo ein
    Code:
    if time() <>= gespeicherter wert
    , sofern der Code für den Gutschein benutzt wird, den man ja evtl. "Hardcoded" festlegt (sowas wie: "Tagesgutschein").
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  6. #6
    Moderator
    Registriert seit
    07.07.2006
    Beiträge
    1.374
    So, ich hole das Thema schonmal wieder hoch da ich es nun definitiv für Autolose umsetzten will.

    Habe nochmal überlegt, gehen wir davon aus es ist bereits ein Addon eingebaut

    Dieses ist wiefolgt aufgebaut:
    gid,empf,lose,sender,zeit,wahrscheinlichkeit,benut zbar,gname,eingel


    Nun gehen wir ganz einfach vor, nur einmal den Cron ausführen, dieser speichert die zufällige Zeit (zeit) ab und den Wert (lose), beides nach Zufall, die Zeit muss dabei Tagsüber sein und natürlich für den aktuellen Tag sein.

    Code für GS muss natürlich auch generiert und gespeichert werden (gid)

    Der Rest ist wie im eigenen Adonn umzusetzten bzw. wegzulassen

    Auser der Sender, dieser nämlich ist der Indikator, also if Sender = TGS

    Ausführungen des Codes für den TGS im GutscheinAddon.

    Sicherung und Ausgabe, eine Datei in dieser wird die gespeicherte Zeit geprüft und sobald 3 stunden davor (Beispiel) erreicht sind wird der Code angezeigt vom Sender TGS (Weitere Absicherung für andere GS)


    So, bis hierhin denke ich haut theoretisch alles vom Prinzip her hin, oder was meint ihr ? Habe nochmal einiges krübeln müssen aber so in etwa muss es auch Klammino umgesetzt haben.


    Also, denkt ihr das dies könte was werden so ?


    Schönen abend euch noch.

    MfG

  7. #7
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Grundsätzlich gut, müsste man halt sicher sein, dass nicht ein User (der sich bspw. "TGS" nennt), iwie den Wert, den du als Indikator für das Feld Sender benutzen willst, auch erzeugen kann.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  8. #8
    Moderator
    Registriert seit
    07.07.2006
    Beiträge
    1.374
    Zitat Zitat von jpwfour Beitrag anzeigen
    Grundsätzlich gut, müsste man halt sicher sein, dass nicht ein User (der sich bspw. "TGS" nennt), iwie den Wert, den du als Indikator für das Feld Sender benutzen willst, auch erzeugen kann.
    Ok, da hast du natürlich Recht, habe nochmal in die DB-Struktur geschaut und das Feld Sender ist sowieso int, also nehmen wir einfach die Zahl 1 welche ja kein einziger User als ID hat. Somit ist dieses Problem auch schonmal gelöst.

    MfG

  9. #9
    Moderator
    Registriert seit
    07.07.2006
    Beiträge
    1.374
    Bin nun etwas weiter mit dem ganzen hier, habe das Gutschein Addon von Skandal besorgt welches Mindest AP schon drinhat.

    Damit lassen sich manuel schon ohne Probs Tagesgutscheine machen, man muss halt nur online gehen dafür um ihn zu erstellen.

    Nun also direkt weiter zur Automatierung, das erste Problem habe ich auch gelöst, wie mit CronjobAnbietern verschiedene AusfrufZeiten machen, einfach merhere Jobs einrichten sodass auf den Monat verteil sagen wir 5-10 Jobs laufen natürlich jeden Tag nur einer und dann halt jeweils zu einer definierten Zeit. In jeder Job erhält eine eigene Datei zum Aufrufen mit festem Wert, Zeit wird per Befehl aus dem GS Addon genommen, auch alle anderen wichtigen Werte.

    Die Theorie steht somit, die manuellen Tests waren erfolgreich mit dem Addon von Skandal, wenn die Automatiserung halbwegs funzt schreibe ich nochmal hier, es sei denn jemand hat eine einfachere/bessere Idee.

    MfG

  10. #10
    Neuer Benutzer
    Registriert seit
    08.10.2015
    Beiträge
    1
    Das ist der orginal Cron zum tageszufallgutschein von klammino... liebe grüße Anika Admin von klammino

    PHP-Code:
    <?

    @require_once ('../functions.lib.php');

    db_connect();

    function 
    gutcode () {
          return (
    strtoupper (create_code (16)));
    }

    mt_srand((double)microtime()*1000000);

     
    $stunde date("G"); 
     
     
    $config mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig"));
     
     
    // Startuhrzeit ermitteln -> Cronaufruf 1x zwischen max und min Startstunde
     
    if($stunde > ($config['gutschein_ende']+$config['gutschein_dauer']) or $stunde $config['gutschein_start']) {
     
         
    $gutschein_stunde =  round(mt_rand($config['gutschein_start'],$config['gutschein_ende']));
         
         
    db_query("UPDATE ".$db_prefix."_seitenkonfig SET gutschein_code = '', gutschein_code_start = ".$gutschein_stunde." ");
     }
     
     
    // wenn Startstunde erreicht -> Gutschein erstellen
     
    if($stunde == $config['gutschein_code_start']) {
         
         
    $gutschein_wert round(mt_rand($config['gutschein_min'],$config['gutschein_max']));
         
    $min_tagespunkte round($gutschein_wert $config['gutschein_ap_proz'] / 100);
         
    $code gutcode ();
         
         
    db_query("UPDATE ".$db_prefix."_seitenkonfig SET gutschein_code = '".$code."' ");
         
    db_query("INSERT INTO `".$db_prefix."_gutscheine` (`code`,`uid`,`time`,`gueltigkeit`,`fuer`,`menge`,`uebrig`,`prouser`,`betrag`,`loseart`,`min_tagespkt`) VALUES ('".$code."','0','".time()."','".(time()+($config['gutschein_dauer']*3600))."','all','200', '200', '1', '".$gutschein_wert."', 'bonus', '".$min_tagespunkte."')");
     }

    db_query("UPDATE ".$db_prefix."_semicron SET laufzeit=".time().", sollzeit=".time()." WHERE datei='lib/crons/tageszufallsgutschein.php'");

    db_close();
    ?>

    functions.lib.php
    PHP-Code:
    // Zufallscode generieren

    function create_code($code_laenge) {

        
    srand((double)microtime()*1000000);

        
    $created_code '';

        
    $zeichen="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";

        for (
    $i=0;$i<$code_laenge;$i++) {

            
    $n=rand() % strlen($zeichen);

            
    $created_code .=substr($zeichen$n1);

        }

        return 
    $created_code;



    admin pageconfig
    PHP-Code:
    db_query("UPDATE ".$db_prefix."_seitenkonfig SET wartung='"..... 
    // da kommt das mit rein
    PHP-Code:
    gutschein_start '".$_POST['gutschein_start']."'gutschein_ende '".$_POST['gutschein_ende']."'gutschein_dauer '".$_POST['gutschein_dauer']."'gutschein_min '".$_POST['gutschein_min']."'gutschein_max '".$_POST['gutschein_max']."'gutschein_ap_proz '".$_POST['gutschein_ap_proz']."'gutschein_code '".$_POST['gutschein_code']."'gutschein_code_start '".$_POST['gutschein_code_start']."' 
    // das wo Ihr wollt in der Datei
    PHP-Code:
    <tr bgcolor="#c0c0c0">
    <td align="left" colspan="2"><b>Einstellungen "Tageszufallsgutschein"</b></i></td>
    </td>
    </tr>
    <tr bgcolor="#f0f0f0">
    <td align="left"><b>frühester Start</b></td>
    <td align="left">&nbsp;<input type="Text" name="gutschein_start" value="<?=$interface['gutschein_start'];?>"> Stunde (Ganzahlen)</td>
    </tr>
    <tr bgcolor="#f0f0f0">
    <td align="left"><b>spätester Start</b></td>
    <td align="left">&nbsp;<input type="Text" name="gutschein_ende" value="<?=$interface['gutschein_ende'];?>"> Stunde (Ganzahlen)</td>
    </tr>
    <tr bgcolor="#f0f0f0">
    <td align="left"><b>Gültigkeitsdauer</b></td>
    <td align="left">&nbsp;<input type="Text" name="gutschein_dauer" value="<?=$interface['gutschein_dauer'];?>"> Stunden (Punkt statt Komma)</td>
    </tr>
    <tr bgcolor="#f0f0f0">
    <td align="left"><b>min. Wert</b></td>
    <td align="left">&nbsp;<input type="Text" name="gutschein_min" value="<?=$interface['gutschein_min'];?>"> Bonuslose (Punkt statt Komma)</td>
    </tr>
    <tr bgcolor="#f0f0f0">
    <td align="left"><b>max. Wert</b></td>
    <td align="left">&nbsp;<input type="Text" name="gutschein_max" value="<?=$interface['gutschein_max'];?>"> Bonuslose (Punkt statt Komma)</td>
    </tr>
    <tr bgcolor="#f0f0f0">
    <td align="left"><b>Prozent vom Wert als Tagespkt</b></td>
    <td align="left">&nbsp;<input type="Text" name="gutschein_ap_proz" value="<?=$interface['gutschein_ap_proz'];?>"> Prozent (Punkt statt Komma)</td>
    </tr>
    <tr bgcolor="#f0f0f0">
    <td align="left"><b>aktueller Gutscheincode</b></td>
    <td align="left">&nbsp;<input type="Text" name="gutschein_code" value="<?=$interface['gutschein_code'];?>"> automatisch generiert</td>
    </tr>
    <tr bgcolor="#f0f0f0">
    <td align="left"><b>aktueller Gutschein-Start</b></td>
    <td align="left">&nbsp;<input type="Text" name="gutschein_code_start" value="<?=$interface['gutschein_code_start'];?>"> automatisch generiert</td>
    </tr>
    eine datei erstellen in content/konto/tagesgutschein.php
    // da kommt rein
    PHP-Code:
    <?

    userstatus
    (); // <--- kommt auf eure vms version an kann auch raus

    if($pageconfig['gutschein_code'] != "") {
        
    $gutschein mysql_fetch_array(db_query("SELECT gueltigkeit,code,betrag,min_tagespkt FROM ".$db_prefix."_gutscheine WHERE code = '".$pageconfig['gutschein_code']."' LIMIT 1"));
    }

    $zinspunkte mysql_fetch_array(db_query("SELECT zinspunkte_heute FROM ".$db_prefix."_kontodaten WHERE uid='".$_SESSION['uid']."' LIMIT 1"));

    ?>
    <?head
    ("Tagesgutschein");?>
    Hier findest du jeden Tag einen Zufallsgutschein.<br />
    Der Gutschein startet irgendwann <b>zwischen <?=$pageconfig['gutschein_start'];?> Uhr und <?=$pageconfig['gutschein_ende'];?> Uhr</b>
    mit einer <b>G&uuml;ltigkeitsdauer von <?=number_format($pageconfig['gutschein_dauer'],0,",",".");?> Stunden</b>.<br />
    Um den Gutschein einl&ouml;sen zu k&ouml;nnen, brauchst du eine bestimmte Mindestanzahl an Zinspunkten.<br />
    <center><b>Deine heutigen Zinspunkte</b>: <?=number_format($zinspunkte["zinspunkte_heute"],2,",",".");?></center>
    <?foot();?>

    <?head("");?>

    <?
    if($pageconfig['gutschein_code'] == "") {
        echo 
    "Heute gab es noch keinen Gutschein. Schau doch sp&auml;ter nochmal vorbei.<br><br>";
    } elseif (
    $gutschein["gueltigkeit"] < time()) {
        echo 
    "Du hast den heutigen Gutschein leider verpasst. Schau doch morgen wieder vorbei, vielleicht hast du dann mehr Gl&uuml;ck!<br><br>";
    } else {
        echo 
    '
            <table align="center" border="0" width="90%" cellpadding="2" cellspacing="2">
                <tr>
                    <td width="55%">Heutiger Zufallsgutschein<br><br></td>
                    <td><b>'
    .$gutschein["code"].'</b><br><br></td>
                </tr>
                <tr>
                    <td width="55%">Wert<br><br></td>
                    <td><b>'
    .number_format($gutschein["betrag"],2,",",".").' Bonuslose</b><br><br></td>
                </tr>
                <tr>
                    <td width="55%">mind. Zinspunkte<br>(siehe oben)</td>
                    <td><b>'
    .number_format($gutschein["min_tagespkt"],0,",",".").' Punkte</b><br><br></td>
                </tr>
            </table>'
    ;
    }
    ?>

    <?foot();?>

    // link ins menü für die user setzen
    PHP-Code:
    <li><a href="?content=/konto/tagesgutschein">&raquo;&nbsp;Tagesgutschein</a></li

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Problem mit dynamischer Klickralley
    Von ben174 im Forum Support zum VMSone
    Antworten: 2
    Letzter Beitrag: 12.05.2008, 12:00
  2. Problem mit Dynamischer Klickrally
    Von premium im Forum Support zum VMSone
    Antworten: 1
    Letzter Beitrag: 07.06.2007, 15:22
  3. problem mit dynamischer ref-rally
    Von dude32 im Forum Support zu Addons & Erweiterungen
    Antworten: 4
    Letzter Beitrag: 24.02.2007, 17:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •