Meine Seite hat jetzt auch eine Abfrage, ob Cookies angelegt werden dürfen oder nicht. Es wird nicht nur einfach informiert, dass es geschieht oder nach dem Bestätigen geschehen wird. Der Besucher hat auch die Wahl, ob er mit oder ohne Cookies die Seite besuchen möchte. Ich überlege noch ein Belohnungssystem, für Besucher, die die Anzeigen anzeigen lassen (...was für ein komischer Satz...).
Besuchern die Seite zu verwehren halte ich für falsch. Belohnungen sind besser als Strafen.
Hier eine Plain-JavaScript Lösung, bei der man die Ausführung von AdSense oder Analytics per Event triggern kann. Wenn es einmal bestätigt wurde, merkt sich der Browser die Einstellung und behält das Verhalten bei. Es wird im localStorage gespeichert und dort kann man die Auswahl auch wieder löschen.
Vielleicht hilft das ja jemanden :-)
<div id="cookiequestion">
<style type="text/css">
#cookiequestion{
position: fixed;
text-align: center;
font-weight: bold;
left: 0;
bottom: 0;
border: 2px solid #BBB;
background-color: #DDD;
padding: 10px;
border-radius: 5px;
width: 100%;
}
</style>
<script type="text/javascript">
function cookieclose(val){
var storage = window.localStorage;
if(val && val > 0){
storage.setItem("cookiequestion_val", val);
}
else {
val = storage.getItem("cookiequestion_val");
}
if(val && val > 0){
document.getElementById("cookiequestion").style.display="none";
if(val > 1) {
var event = new Event('cookiequestion_clicked', {value: val, overlay: document.getElementById("cookiequestion")});
document.dispatchEvent(event);
//or do other things here
}
}
};
cookieclose(0);
</script>
<p>
Erlauben von Tracking/Cookies?
</p>
<p>
<button onclick="cookieclose(2);">
ja
</button>
<button onclick="cookieclose(1);">
nein
</button>
</p>
</div>
Don't Be Smart!
Es gibt viele echt super smarte Lösungen. Nur sind viele davon leider so smart, dass man sich echt lange damit beschäftigen muss, um überhaupt zu verstehen warum diese smart sind. Ich habe selbst solche geschrieben und viele davon gesehen.
Leider ist die Laufzeit meistens kein so wichtiger Faktor, als dass man für ein paar wenige ms in kauf nehmen sollte, dass man 2 Tage braucht, um 3 Zeilen Code anzupassen und fehlerfrei wieder zum laufen zu bekommen. Simpler Code ist schneller und einfacher zu warten und oft kommt mit der Einfachheit
auch die Performance.
Don't Be Smart! Keep It Simple!
und
Keep It Simple! Keep It Fast!
Um die meisten Probleme zu lösen muss man nicht besonders smart sein. Man muss das Problem nur so lange auf seine Grundlagen herunterbrechen bis es simple wird. Denn zu Meist erscheint ein Problem nur kompliziert und am Ende ist es genau so ein normales und primitives Problem, wie alle anderen auch. Bei Problemen, bei denen das nicht funktioniert sind oft im Ansatz schon falsch oder basieren auf einem anderen nicht verstandenen Problem, das genauer erforscht werden sollte.
Das ganze bezieht sich auf "Clever is the enemy of clear" aus 11 Rules All Programmers Should Live By von John Sonmez
Im normal Fall wird die SEO-URL einer statischen Seite über den Namen/description gebildet. Ändert man nun den Namen der Seite, ändert sich auch der Link und damit könnten vorhandene eingetragene Links plötzlich nicht mehr funktionieren.
Um das zu verhindern, ist es praktisch der Namen für die SEO-URL unabhängig vom Namen erzeugen zu können. Da helfen die SEO Einstellungen im Punkt "SEO-Urls Shopseiten Template". Wir brauchen noch ein Freitextfeld mit dem DB-Spaltennamen "seourl". Nun ändern wir das Template:
{if $site.attributes.core.seourl}{$site.attributes.core.seourl}{else}{$site.description}{/if}
Wenn also dort im neuen Feld etwas angegeben ist, wird dieses verwendet und ansonsten weiterhin der Name. Das hat den Vorteil, dass man nur die Seite anpassen muss, die man umbenennen möchte und nicht jede.