input.php/output.php: modul ein- und ausgabe, um html/scripte bei consent nachzuladen
module.js: lädt html/scripte des moduls bei consent ohne reload nach
input.php/output.php: modul ein- und ausgabe, um html/scripte bei consent nachzuladen
module.js: lädt html/scripte des moduls bei consent ohne reload nach
<?php | |
$mform = new mform(); | |
$cookies = []; | |
$qry = 'SELECT uid,service_name FROM '.rex::getTable('iwcc_cookie').' WHERE clang_id = '.rex_clang::getCurrentId(); | |
foreach (rex_sql::factory()->getArray($qry) as $v) { | |
if ($v['uid'] == 'iwcc') continue; | |
$cookies[$v['uid']] = $v['service_name']; | |
} | |
$mform->addSelectField(1); | |
$mform->setOptions($cookies); | |
$mform->setSize(1); | |
$mform->setLabel('Dienst'); | |
$mform->addTextAreaField(2, ['label' => 'HTML/JS das bei Consent geladen wird']); | |
$mform->addCheckboxField(5, [1 => 'Seitenreload nötig']); | |
$mform->addTextAreaField(3, ['label' => 'Platzhaltertext']); | |
$mform->addMediaField(1, ['label' => 'Platzhalterbild']); | |
echo $mform->show(); |
jQuery(function ($) { | |
'use strict'; | |
$('.iwcc-module').each(function () { | |
var $this = $(this), | |
uid = $this.data('uid'); | |
$(document).on('iwcc-saved', function (e) { | |
var consents = JSON.parse(e.originalEvent.detail); | |
consents.forEach(function (v) { | |
if (v === uid) { | |
$this.html(window.atob($this.data('payload'))); | |
} | |
}); | |
}); | |
}); | |
}); |
<?php | |
$serviceName = ''; | |
$cookieUid = 'REX_VALUE[1]'; | |
$needsReload = (bool)'REX_VALUE[5]' ? '-reload' : ''; | |
$consented = false; | |
$placeholderImage = ''; | |
$placeholderText = ''; | |
$iwcc = new iwcc_frontend(); | |
$iwcc->setDomain($_SERVER['HTTP_HOST']); | |
// "globale" platzhalter aus dem addon setzen | |
if (isset($iwcc->cookies[$cookieUid])) { | |
$placeholderImage = $iwcc->cookies[$cookieUid]['placeholder_image']; | |
$placeholderText = $iwcc->cookies[$cookieUid]['placeholder_text']; | |
} | |
if (isset($_COOKIE['iwcc'])) { | |
$cookieData = json_decode($_COOKIE['iwcc'], true); | |
foreach ($cookieData['consents'] as $consent) { | |
if ($cookieUid == $consent) { | |
$consented = true; | |
break; | |
} | |
} | |
} | |
?> | |
<?php if (rex::isFrontend()): ?> | |
<?php if ($consented): ?> | |
<div class="iwcc-module" data-uid="<?= $cookieUid ?>"> | |
REX_VALUE[2 output=html] | |
</div> | |
<?php else: ?> | |
<div class="iwcc-module" data-payload="<?= base64_encode('REX_VALUE[2 output=html]') ?>" data-uid="<?= $cookieUid ?>"> | |
<div class="iwcc-module__placeholder"> | |
<div class="iwcc-module__placeholder-image"> | |
<img src="/media/<?= ('REX_MEDIA[1]' ? 'REX_MEDIA[1]' : $placeholderImage) ?>" alt=""> | |
</div> | |
<div class="iwcc-module__placeholder-text"> | |
<div class="iwcc-module__placeholder-text-background"> | |
<?= nl2br('REX_VALUE[3 output=html]' ? 'REX_VALUE[3 output=html]' : $placeholderText) ?> | |
<div class="iwcc-show-box<?= $needsReload ?>"><b>Datenschutz-Einstellungen anpassen</b></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<?php endif ?> | |
<?php else: ?> | |
<label><?= $serviceName ?></label> | |
<textarea readonly disabled style="width:100%;" id="iwcc-module-textarea-REX_SLICE_ID">REX_VALUE[2 output=html]</textarea> | |
<?php endif ?> |