Checkbox und Button nacheinander schalten

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
mhz
Posts: 676
Joined: Tue Jun 25, 2013 8:46 pm
Location: Heusenstamm, Hessen
Contact:

Checkbox und Button nacheinander schalten

Post by mhz » Fri Nov 02, 2018 11:32 pm

Hallo zusammen,
ausgehend von privacy_XH mit den beiden "Buttons", also der Checkbox und dem anklickbaren Button würde ich das auch auf dieser Seite gerne realisieren.
z.B.: https://herrmann-hesse-schule.de/index. ... aterialien
Zuerst muss der Besucher das Häkchen setzen, bevor er weitergeleitet werden kann. Gut wäre außerdem, wenn der Name aus Memberpages irgendwo gespeichert werden könnte.
Gibt es dafür eine Lösung?
Mit diesen ./viewtopic.php?f=16&t=12731&p=59988&hi ... eld#p59988 Tipps komme ich leider nicht weiter.

Gruß Michael
Michael Zajusch (mhz)-- Mein Tutorial für CMSimple_XH. Früher

mhz
Posts: 676
Joined: Tue Jun 25, 2013 8:46 pm
Location: Heusenstamm, Hessen
Contact:

Re: Checkbox und Button nacheinander schalten

Post by mhz » Sat Nov 03, 2018 8:10 am

Ich habe mal in den userfuncs versucht das zu realisieren. Dazu nahm ich den Aufruf von privacy und änderte die Namen 'privacy' gegen 'checkbox'.

Code: Select all

/**===================================
 * Checkbox und danach anklickbarer Button
 *====================================*/
 function checkbox()
     if (!isset($_COOKIE['checkbox_agreed'])) {
        return '<form id="checkbox" name="checkbox" action="" method="POST">'
            . $ptx['message']
            . tag('input type="checkbox" id="checkbox_agree" name="checkbox_agree"')
            . '<label for="checkbox_agree">' . $ptx['checkbox'] . '</label>'
            . tag('input type="submit" class="submit" name="checkbox_submit" value="'
                  . $ptx['button'] . '"')
            . '</form>'
            . '<script type="text/javascript">/* <![CDATA[ */'
            . 'if (typeof navigator.cookieEnabled != "undefined" && !navigator.cookieEnabled)'
            . ' document.forms.checkbox.style.display="none"'
            . '/* ]]> */</script>';
    }
Nach dem Hochladen kam dann diese Fehlermeldung mit whitescreen:
syntax error, unexpected 'if' (T_IF), expecting '{' in /home/www/hhs/cmsimple/userfuncs.php on line 7
Wäre ja auch zu einfach und schön gewesen.
Michael Zajusch (mhz)-- Mein Tutorial für CMSimple_XH. Früher

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Checkbox und Button nacheinander schalten

Post by cmb » Sat Nov 03, 2018 10:20 am

mhz wrote:
Fri Nov 02, 2018 11:32 pm
z.B.: https://herrmann-hesse-schule.de/index. ... aterialien
Zuerst muss der Besucher das Häkchen setzen, bevor er weitergeleitet werden kann. Gut wäre außerdem, wenn der Name aus Memberpages irgendwo gespeichert werden könnte.
Gibt es dafür eine Lösung?
Hm, mir ist nicht ganz klar was genau gewünscht ist. Soll die genannte Seite später nur für angemeldete User sichtbar sein? Soll nach dem setzen des Häkchens und dem Drücken des Schalters auf eine andere Seite weiter geleitet werden, oder soll die selbe Seite mit anderem Inhalt angezeigt werden? Soll gar Häkchen+Button als automatisches Memberpages-Login fungieren? Soll das Anhaken+Buttondrücken irgendwo protokolliert werden („User xyz hat zugestimmt“)?

Wenn es nur darum geht, dass ein bereits per Memberpages angemeldeter User noch einmal ausdrücklich bestätigen soll, dass „er sich daran hält“, dann könnte man diese Information in der Benutzer-Sitzung speichern, und auf Seiten, die er nur sehen soll, wenn er zuvor zugestimmt hat, dies dann prüfen. Also mal schnell und ungetestet (bin auf dem Sprung), folgende userfuncs.php:

Code: Select all

<?php

/**===================================
 * Checkbox und danach anklickbarer Button
 *====================================*/
function checkbox()
{
    if (isset($_POST['checkbox_submit'], $_POST['checkbox_agree'])) {
        $_SESSION['checkbox_agreed'] = true;
    }
    if (!isset($_SESSION['checkbox_agreed'])) {
        return '<form id="checkbox" name="checkbox" action="" method="POST">'
        . 'Ich habe diese Informationen zur Kenntnis genommen'
        . '<input type="checkbox" id="checkbox_agree" name="checkbox_agree">'
        . '<label for="checkbox_agree">und werde mich daran halten.</label>'
        . '<button type="submit" class="submit" name="checkbox_submit">'
        . 'Ich bin Lehrer/in und arbeite in Klassen mit Inklusion.<br>'
        . '<strong> Ich halte mich daran, dass ich diese Materialien <br>'
        . 'nur für unterrichtliche Zwecke der HHS nutze.</strong>'
        . '</button>'
        . '</form>';
    }
}

function checkbox_agreed()
{
    if (isset($_SESSION['checkbox_agreed'])) {
        return;
    }
    header('Location:' . CMSIMPLE_URL . '?IB-Materialien');
    exit;
}
Auf der verlinkten Seite dann den {{{checkbox}}} Aufruf platzieren, und auf allen zu schützenden Seiten den {{{checkbox_agreed}}} Aufruf.
Christoph M. Becker – Plugins for CMSimple_XH

mhz
Posts: 676
Joined: Tue Jun 25, 2013 8:46 pm
Location: Heusenstamm, Hessen
Contact:

Re: Checkbox und Button nacheinander schalten

Post by mhz » Sun Nov 04, 2018 3:54 pm

Ich habe userfuncs erstellt und ins Verzeichnis hochgeladen.
Den Aufruf {{{checkbox}}} als >div> auf der Seite platziert.
Danach passierte dann folgendes: 1. Die Speichernfunktion funktionierte nur genau 1x.
Wenn ich jetzt etwas ändern mag, z.B. den 2. Aufruf auf der nächsten Seite speichern möchte, geht das nicht. Stattdessen werde ich automatisch ausgeloggt und nach den nächsten Einloggen sehe ich, dass keine weitere Änderung gespeichert wurde.
Michael Zajusch (mhz)-- Mein Tutorial für CMSimple_XH. Früher

mhz
Posts: 676
Joined: Tue Jun 25, 2013 8:46 pm
Location: Heusenstamm, Hessen
Contact:

Re: Checkbox und Button nacheinander schalten

Post by mhz » Sun Nov 04, 2018 4:22 pm

Also habe ich eine frühere content.htm (vor der Einfügung der Pluginaufrufe) zurückgeschrieben.
Dann habe ich als erstes {{{checkbox_agreed}}} auf der anzuspringenden Seite eingefügt und danach erst {{{checkbox}}} auf der "Startseite".
Michael Zajusch (mhz)-- Mein Tutorial für CMSimple_XH. Früher

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Checkbox und Button nacheinander schalten

Post by cmb » Tue Nov 06, 2018 4:51 pm

mhz wrote:
Sun Nov 04, 2018 4:22 pm
Also habe ich eine frühere content.htm (vor der Einfügung der Pluginaufrufe) zurückgeschrieben.
Dann habe ich als erstes {{{checkbox_agreed}}} auf der anzuspringenden Seite eingefügt und danach erst {{{checkbox}}} auf der "Startseite".
Und funktioniert es so wie gewünscht?
Christoph M. Becker – Plugins for CMSimple_XH

mhz
Posts: 676
Joined: Tue Jun 25, 2013 8:46 pm
Location: Heusenstamm, Hessen
Contact:

Re: Checkbox und Button nacheinander schalten

Post by mhz » Tue Nov 06, 2018 9:09 pm

Dann habe ich als erstes {{{checkbox_agreed}}} auf der anzuspringenden Seite eingefügt und danach erst {{{checkbox}}} auf der "Startseite". Die content.htm wird wieder gespeichert. Es gibt keine Fehlermeldung diesbezüglich. Die Plugin-Aufrufe sind auch weiterhin auf den Seiten zu finden.

Funktioniert es? - Ja und nein.
Ja, der Klick auf den Button alleine bewirkt Nichts; erst wenn vorher die Checkbox geklickt wurde, also das Häkchen gesetzt wurde, passiert beim Klick auf den Button, dass beide verschwinden.
Nein: Allerdings kein Sprung zur gewünschten nächsten Seite, die den entsprechenden {{{checkbox_agreed}}} - Aufruf hat. Dann ist aber auch schon Ende. Aber noch was passiert. Button und Checkbox verschwinden. Sie tauchen erst wieder auf, nachdem der Browser komplett neu gestartet wurde.

Dann habe ich gedacht, dass ich bei
header('Location:' . CMSIMPLE_URL . '?IB-Materialien');
das CMSIMPLE_URL durch die richtige URL ersetzen sollte. Das brachte zunächst keine Fehlermeldung, aber auch keinen Erfolg. Die Fehlermeldung (white-screen) erschien erst in dem Moment, als ich https:// URL noch einfügte.

Soweit bin ich jetzt.
Michael Zajusch (mhz)-- Mein Tutorial für CMSimple_XH. Früher

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Checkbox und Button nacheinander schalten

Post by cmb » Tue Nov 06, 2018 10:27 pm

mhz wrote:
Tue Nov 06, 2018 9:09 pm
Allerdings kein Sprung zur gewünschten nächsten Seite, die den entsprechenden {{{checkbox_agreed}}} - Aufruf hat.
Das ist bislang auch so vorgesehen, weil ich nicht wusste, ob es immer eine bestimmte Seite ist, oder ob {{{checkbox_agreed}}} vielleicht auf mehreren Seiten genutzt werden soll. Lässt sich aber leicht nachbessern:

Code: Select all

    if (isset($_POST['checkbox_submit'], $_POST['checkbox_agree'])) {
        $_SESSION['checkbox_agreed'] = true;
        header('Location: ' . CMSIMPLE_URL . '?NAME_DER_SEITE'); // diese und die nächste Zeile ergänzen
        exit;                                                    // NAME_DER_SEITE durch den Seitennamen ersetzen
    }
mhz wrote:
Tue Nov 06, 2018 9:09 pm
Aber noch was passiert. Button und Checkbox verschwinden. Sie tauchen erst wieder auf, nachdem der Browser komplett neu gestartet wurde.
Das ist beabsichtigt. Hat der User erst einmal bestätigt, dann braucht er das während der aktuellen Sitzung nicht noch einmal zu tun. Also im Prinzip das gleiche Verhalten wie bei Privacy_XH.
mhz wrote:
Tue Nov 06, 2018 9:09 pm
Dann habe ich gedacht, dass ich bei
header('Location:' . CMSIMPLE_URL . '?IB-Materialien');
das CMSIMPLE_URL durch die richtige URL ersetzen sollte. Das brachte zunächst keine Fehlermeldung, aber auch keinen Erfolg. Die Fehlermeldung (white-screen) erschien erst in dem Moment, als ich https:// URL noch einfügte.
Das CMSIMPLE_URL soll genauso bleiben wie im Code angegeben. Es ist eine Konstante, die immer die Basis-URL der aktuellen CMSimple_XH Sprache enthält (bei dir also https://herrmann-hesse-schule.de/).Willst du die gewünschte URL selbst eintragen (was eigentlich nicht nötig sein sollte), dann musst du das CMSIMPLE_URL durch 'https://herrmann-hesse-schule.de/' ersetzen (beachte die Anführungszeichen; ohne diese kommt es zu einem Fehler).
Christoph M. Becker – Plugins for CMSimple_XH

mhz
Posts: 676
Joined: Tue Jun 25, 2013 8:46 pm
Location: Heusenstamm, Hessen
Contact:

Re: Checkbox und Button nacheinander schalten

Post by mhz » Tue Nov 06, 2018 10:46 pm

{{{checkbox_agreed}}} soll auf mehreren Seiten eingesetzt werden. Ich hatte als Beispiel nur die eine bisher angegeben.
Michael Zajusch (mhz)-- Mein Tutorial für CMSimple_XH. Früher

mhz
Posts: 676
Joined: Tue Jun 25, 2013 8:46 pm
Location: Heusenstamm, Hessen
Contact:

Re: Checkbox und Button nacheinander schalten

Post by mhz » Tue Nov 06, 2018 10:56 pm

Neueste Änderungen vorgenommen, mit nur der einen konkreten Seite, aber diese wird nicht angesprungen.
Michael Zajusch (mhz)-- Mein Tutorial für CMSimple_XH. Früher

Post Reply