Plugin Privacy mit Button erneut öffnen
Plugin Privacy mit Button erneut öffnen
Hallo zusammen,
wie ist es möglich mit einem Button erneut die Cookie Meldung aufzurufen ?
Etwa so wie bei https://www.getraenke-hoffmann.de/ unten links der Button.
wie ist es möglich mit einem Button erneut die Cookie Meldung aufzurufen ?
Etwa so wie bei https://www.getraenke-hoffmann.de/ unten links der Button.
aka smaxle | plugin_XH 1.7
Re: Plugin Privacy mit Button erneut öffnen
Dazu müsste das gesetzte Cookie "privacy_agreed" gelöscht werden und die Seite neu geladen werden. Also ein dritter Button mit dieser Funktion. Wie das technisch umgesetzt werden müsste, weiß ich leider nicht. Da bräuchten wir Christoph oder jemanden mit PHP-Kenntnissen.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“ Ludwig's XH-Templates for MultiPage & OnePage
Re: Plugin Privacy mit Button erneut öffnen
Interessante Möglichkeit. Folgendes habe ich gefunden und im Template versucht. Leider macht es nicht das gewünschte.
https://stackoverflow.com/questions/318 ... rrent-page
https://stackoverflow.com/questions/318 ... rrent-page
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.
Re: Plugin Privacy mit Button erneut öffnen
Naja, eigentlich ist es ja nicht ganz so schwierig.
im Template wo der Button hin soll machst Du
in der index.php
machst Du eine neue Funktion
Damit der Button sein Zweck erfüllt erweiterst Du die privacy funktion in der index.php
Damit die viewAction funktioniert musst Du die MainController.php erweitern
und wenn Du willst, das die Button auch die vorige Auswahl beibehalten, kann man die privacy.php noch anpassen.
Viel Spaß!
im Template wo der Button hin soll machst Du
Code: Select all
<?=privacy_button()?>
machst Du eine neue Funktion
Code: Select all
function privacy_button() {
$o = '<form id="privacy_button" name="privacybtn" method="post">
<div class="privacy_submit">
<button type="submit" class="submit" name="privacy_view" value="view">NEW</button>
</div>
</form>';
return $o;
}
Code: Select all
function privacy()
{
if (XH_ADM) {
return;
}
if (isset($_POST['privacy_view'])) {
if ($_POST['privacy_view'] === 'view') {
ob_start();
(new Privacy\MainController)->viewAction();
return ob_get_clean();
}
}
$action = isset($_POST['privacy_agree']) ? 'submitAction' : 'defaultAction';
ob_start();
(new Privacy\MainController)->$action();
return ob_get_clean();
}
Code: Select all
class MainController
{
public function viewAction()
{
global $plugin_tx;
$view = new View('privacy');
$view->message = new HtmlString($plugin_tx['privacy']['message']);
$view->render();
}
/**
* @return void
*/
public function defaultAction()
...
Viel Spaß!
Re: Plugin Privacy mit Button erneut öffnen
@ knollsen,
Danke hat wunderbar geklappt. Chapeau
Danke hat wunderbar geklappt. Chapeau
aka smaxle | plugin_XH 1.7
Re: Plugin Privacy mit Button erneut öffnen
Hallo,
leider funktioniert es nicht überall.
Alleine schon, wenn man das befolgt:
im Template wo der Button hin soll machst Du
Code: Alles auswählen
<?=privacy_button()?>
und egal wohin man diesen Ausdruck setzt, kommt der Debug-Modus und die Seite steht still. Nur das Löschen führt wieder zur korrekten Ansicht der Internetseite.
Ob es nun an einem Plugin oder am Template liegt ist mir nicht klar und wüsste auch nicht wie man das lösen könnte.
War für mich ein reiner Test, aber negativ.
leider funktioniert es nicht überall.
Alleine schon, wenn man das befolgt:
im Template wo der Button hin soll machst Du
Code: Alles auswählen
<?=privacy_button()?>
und egal wohin man diesen Ausdruck setzt, kommt der Debug-Modus und die Seite steht still. Nur das Löschen führt wieder zur korrekten Ansicht der Internetseite.
Ob es nun an einem Plugin oder am Template liegt ist mir nicht klar und wüsste auch nicht wie man das lösen könnte.
War für mich ein reiner Test, aber negativ.
Re: Plugin Privacy mit Button erneut öffnen
Du musst alle Änderungen / Erweiterungen, die knollsen beschreibt, machen.
Wenn du nur die Funktion aufrufst, ohne, dass es diese gibt, dann gibt das einen PHP-Fehler.
Gruß Olaf, Plugins for CMSimple_XH
Ich habe schon lange den Verdacht, dass so viele so eifrig auf Gender, Trans und Queer machen:
Weil sie für das Fachliche ganz einfach zu doof sind.
Ich habe schon lange den Verdacht, dass so viele so eifrig auf Gender, Trans und Queer machen:
Weil sie für das Fachliche ganz einfach zu doof sind.
Re: Plugin Privacy mit Button erneut öffnen
Hallo olape,
danke. Fehler von mir, Laienverständnis.
Also alles in die jeweilige Datei kompiert und auf den Server geladen und aufgerufen: Seite bringt keinen Fehler ist aber schneeweiß.
Wahrscheinlich wieder etwas laienhaft gearbeitet oder ?
Hier zur Info:
index.php sieht so aus
<?php
if (is_readable('./cmsimple/userprelude.php')) {
include './cmsimple/userprelude.php';
}
include('./cmsimple/cms.php');
function privacy_button() {
$o = '<form id="privacy_button" name="privacybtn" method="post">
<div class="privacy_submit">
<button type="submit" class="submit" name="privacy_view" value="view">NEW</button>
</div>
</form>';
return $o;
}
function privacy()
{
if (XH_ADM) {
return;
}
if (isset($_POST['privacy_view'])) {
if ($_POST['privacy_view'] === 'view') {
ob_start();
(new Privacy\MainController)->viewAction();
return ob_get_clean();
}
}
$action = isset($_POST['privacy_agree']) ? 'submitAction' : 'defaultAction';
ob_start();
(new Privacy\MainController)->$action();
return ob_get_clean();
}
und die MainController.php schaut so aus:
<?php
/**
* Copyright (C) Christoph M. Becker
*
* This file is part of Privacy_XH.
*
* Privacy_XH is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Privacy_XH is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Privacy_XH. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Privacy;
class MainController
{
/**
* @return void
*/
public function defaultAction()
{
global $plugin_tx;
if (!isset($_COOKIE['privacy_agreed'])) {
$view = new View('privacy');
$view->message = new HtmlString($plugin_tx['privacy']['message']);
$view->render();
}
}
/**
* @return void
*/
public function submitAction()
{
if ($_POST['privacy_agree'] === 'yes') {
setcookie('privacy_agreed', 'yes', $this->getExpirationTime(), CMSIMPLE_ROOT);
} else {
setcookie('privacy_agreed', 'no', 0, CMSIMPLE_ROOT);
}
header('Location: ' . $this->getLocationURL(), true, 303);
exit;
}
/**
* @return int
*/
private function getExpirationTime()
{
global $plugin_cf;
return !empty($plugin_cf['privacy']['duration'])
? time() + 24 * 60 * 60 * $plugin_cf['privacy']['duration']
: 0;
}
/**
* @return string
*/
private function getLocationURL()
{
$url = CMSIMPLE_URL;
if ($_SERVER['QUERY_STRING'] != '') {
$url .= "?{$_SERVER['QUERY_STRING']}";
}
return $url;
}
}
class MainController
{
public function viewAction()
{
global $plugin_tx;
$view = new View('privacy');
$view->message = new HtmlString($plugin_tx['privacy']['message']);
$view->render();
}
/**
* @return void
*/
public function defaultAction()
Die Funkion selbst habe ich iim footer eingefügt.
danke. Fehler von mir, Laienverständnis.
Also alles in die jeweilige Datei kompiert und auf den Server geladen und aufgerufen: Seite bringt keinen Fehler ist aber schneeweiß.
Wahrscheinlich wieder etwas laienhaft gearbeitet oder ?
Hier zur Info:
index.php sieht so aus
<?php
if (is_readable('./cmsimple/userprelude.php')) {
include './cmsimple/userprelude.php';
}
include('./cmsimple/cms.php');
function privacy_button() {
$o = '<form id="privacy_button" name="privacybtn" method="post">
<div class="privacy_submit">
<button type="submit" class="submit" name="privacy_view" value="view">NEW</button>
</div>
</form>';
return $o;
}
function privacy()
{
if (XH_ADM) {
return;
}
if (isset($_POST['privacy_view'])) {
if ($_POST['privacy_view'] === 'view') {
ob_start();
(new Privacy\MainController)->viewAction();
return ob_get_clean();
}
}
$action = isset($_POST['privacy_agree']) ? 'submitAction' : 'defaultAction';
ob_start();
(new Privacy\MainController)->$action();
return ob_get_clean();
}
und die MainController.php schaut so aus:
<?php
/**
* Copyright (C) Christoph M. Becker
*
* This file is part of Privacy_XH.
*
* Privacy_XH is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Privacy_XH is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Privacy_XH. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Privacy;
class MainController
{
/**
* @return void
*/
public function defaultAction()
{
global $plugin_tx;
if (!isset($_COOKIE['privacy_agreed'])) {
$view = new View('privacy');
$view->message = new HtmlString($plugin_tx['privacy']['message']);
$view->render();
}
}
/**
* @return void
*/
public function submitAction()
{
if ($_POST['privacy_agree'] === 'yes') {
setcookie('privacy_agreed', 'yes', $this->getExpirationTime(), CMSIMPLE_ROOT);
} else {
setcookie('privacy_agreed', 'no', 0, CMSIMPLE_ROOT);
}
header('Location: ' . $this->getLocationURL(), true, 303);
exit;
}
/**
* @return int
*/
private function getExpirationTime()
{
global $plugin_cf;
return !empty($plugin_cf['privacy']['duration'])
? time() + 24 * 60 * 60 * $plugin_cf['privacy']['duration']
: 0;
}
/**
* @return string
*/
private function getLocationURL()
{
$url = CMSIMPLE_URL;
if ($_SERVER['QUERY_STRING'] != '') {
$url .= "?{$_SERVER['QUERY_STRING']}";
}
return $url;
}
}
class MainController
{
public function viewAction()
{
global $plugin_tx;
$view = new View('privacy');
$view->message = new HtmlString($plugin_tx['privacy']['message']);
$view->render();
}
/**
* @return void
*/
public function defaultAction()
Die Funkion selbst habe ich iim footer eingefügt.
Re: Plugin Privacy mit Button erneut öffnen
laienhaft oder nicht, das kann ich von hier aus nicht beurteilen, eine weiße Seite heißt in aller Regel Serverfehler 500
Die Beschreibung von knollsen ist vielleicht auch etwas kurz gehalten.
Aber ich vermute, auch bei index.php meint er die index.php des Plugins (Privacy_XH), nicht die von CMSimple_XH.
Und aufpassen, eine Funktion kommt dazu, eine ist schon vorhanden und muss nur entsprechend erweitert werden.
Und immer wichtig, einen Editor verwenden, der UTF8 kann.
Gruß Olaf, Plugins for CMSimple_XH
Ich habe schon lange den Verdacht, dass so viele so eifrig auf Gender, Trans und Queer machen:
Weil sie für das Fachliche ganz einfach zu doof sind.
Ich habe schon lange den Verdacht, dass so viele so eifrig auf Gender, Trans und Queer machen:
Weil sie für das Fachliche ganz einfach zu doof sind.
Re: Plugin Privacy mit Button erneut öffnen
Ich arbeite grundsätzlich mit notepad ++ und das funktioniert auch einwandfrei.
Erklärung eines Fachmannes oder Entwickler seines Programmes geht bei seinen Beschreibungen meist davon aus, dass jeder sich auskennt mit dem was gemeint ist.
Ein Laie tut sich da schwer ...