Modul - Newsletter Dialog

Hallo liebe Community,

ich schreibe gerade ein Modul, welches nach x Sekunden bzw. nach x mal andere Seite aufgerufen ein Dialog aufmacht und auf unseren Newsletter aufmerksam macht. Ich scheiter gerade an den Cookies. Ich suche eine Möglichkeit meinen PHP-Code auszuführen, bevor oxid eben irgendwas ausgeben kann. Mein Problem ist, dass die Cookies gar nicht gesetzt werden. Hab ich das mit dem extend falsch verstanden? Oder gibt es da eine schlauere Lösung?

In der metadata.php habe ich:


$aModule = array(
...
'extend' => array(
        'oxviewconfig' => 'pfad/zu/cookiesetter',
    ),
...
)

in cookiesetter steht folgendes:

class cookiesetter extends cookiesetter_parent {
    function __construct() {
        if (isset($_COOKIE[reminder::getCookieEnddate()])) {
            $_COOKIE[reminder::getCookieLeftClicks()] = $_COOKIE[reminder::getCookieLeftClicks()] - 1;
        }
        else {
            $time = time();

            $duration = $time + ((int)reminder::getDuration()) * 3600;
            setcookie(reminder::getCookieEnddate(), true, $duration);
            $_COOKIE[reminder::getCookieEnddate()] = true;

            setcookie(reminder::getCookieLeftClicks(), (int)reminder::getClicks(), $duration);
            $_COOKIE[reminder::getCookieLeftClicks()] = (int)reminder::getClicks();

            setcookie(reminder::getCookieLeftSeconds(), $time + ((int)reminder::getSeconds()), $duration);
            $_COOKIE[reminder::getCookieLeftSeconds()] = $time + ((int)reminder::getSeconds());
        }
        
        parent::__construct();
    }
}

ich habe jeweils immer setcookie und $_COOKIE gesetzt, weils angeblich ein Problem mit Smarty gibt: http://stackoverflow.com/questions/8190788/how-to-set-cookie-in-smarty-template-with-php

Oder gibts schon sowas und ich habs nicht gefunden?^^

Frohe Weihnachten an euch alle.

Hallo Lowiec :slight_smile:

dafür gibt es doch extra die OXID Framework Methoden [B]setOxCookie()[/B] und [B]getOxCookie()[/B] um Cookies zu setzen und auszulesen.

Dir auch frohe Weihnachten.

Viele Grüße
indianer3c

Ich hoffe ihr hattet alle nen guten Rutsch!

Ich glaube ich habe mich falsch ausgedrückt. Das Problem ist eher, dass mein Code nicht ausgeführt wird. Wie kann ich das anstellen, dass ich die Cookies setzen kann? offensichtlich wird das extend falsch interpretiert. Cookies müssen ja vor jeder Ausgabe gesetzt werden. Wüsste jemand wie das geht?

Danke für den Tipp mit setOxCookie und getOxCookie.