Zur Navigation

Piwik iframe-Einbindung nur mit Popup

1 Littbarski (Gast)

Hallo liebes Forum,

ich habe als relativer Laie nun Piwik installiert, was auch gut geklappt hat. Auch den Datenschutzhinweis habe ich eingefügt. Dort kann der User ja das Häkchen setzen im iframe. Dazu habe ich die Frage: Wie kann ich einstellen, ob dadurch ein Popup ausgelöst wird oder nicht? Ich habe verschiedene Webseiten gesehen, wo manchmal ein Popup erscheint, das sich dann gleich wieder schließt - aber manchmal erfolgt die Änderung des iframe-Texts und der Einstellung gleich direkt im iframe ohne Popup und Aktualisierung der Seite.

Standardmäßig scheint es mit Popup zu sein?

Und: wenn ich JS deaktiviere, bleibt bei mir das Popup aber stehen und schließt sich nicht automatisch.

Danke für jeden Tipp!

Peter

29.01.2016 09:39

2 Jörg Kruse

Auf der Demoseite von Piwik erscheint (sehr kurz) ein leeres Popup, wenn man unter Step 3) bei "You are currently opted in. Click here to opt out." den Haken rausnimmt:

http://piwik.org/docs/privacy/#step-3-include-a-web-analytics-opt-out-feature-on-your-site-using-an-iframe

Zitat von Littbarski
aber manchmal erfolgt die Änderung des iframe-Texts und der Einstellung gleich direkt im iframe ohne Popup und Aktualisierung der Seite.

Ist JavaScript in deinem Browser deaktiviert? wenn nein: kannst du so eine Seite mal verlinken?

Ohne JavaScript gibt es da noch einen Button zum Abspeichern neben der Checkbox

Und: wenn ich JS deaktiviere, bleibt bei mir das Popup aber stehen und schließt sich nicht automatisch.

Ja, das muss man dann selbst schließen. Ohne JavaScript lässt sich ein Popup nicht automatisch schließen

29.01.2016 10:17 | geändert: 29.01.2016 10:24

3 Littbarski (Gast)

Hallo Jörg,

danke für deine schnelle Antwort. Stimmt, gute Idee, mal direkt bei Piwik zu schauen. Wundert mich aber schon, dass da ein Popup erscheint. Es geht ja auch ohne, hier ein paar Beispiele:

https://www.uni-weimar.de/de/fs/impressum/datenschutzerklaerung/
http://www.webedition.org/de/datenschutz.php
http://www.hochschulstart.de/index.php?id=3253
http://web.rgzm.de/ueber-uns/impressum.html

Also sowohl html als auch php Seiten. Ich kann keine Unterschiede erkennen.

Hier ein Beispiel mit Popup:
http://www.hs-furtwangen.de/hilfen/statistische-auswertung-der-besucherzugriffe.html

Es geht mit nicht nur um die Ästhetik, sondern ich habe auch gemerkt, dass es bei meinem Tablet Probleme (Abstürze) gibt, wenn es mit dem Popup funktionieren soll. Und man möchte so einen Piwik-Hinweis natürlich allgemein funktionierend und rechtlich sicher gestalten.

29.01.2016 10:42

4 Jörg Kruse

Der augenfälligste Unterschied ist der, dass dem Formular in dem Iframe ein target="_blank" fehlt sowie der Parameter setCookieInNewWindow=1 in der Ziel-URL

Iframe auf demo.piwik.org:

<form method="post" action="?module=CoreAdminHome&amp;action=optOut&amp;language=en&amp;setCookieInNewWindow=1" target="_blank">

Iframe auf piwik.uni-weimar.de:

<form method="post" action="?module=CoreAdminHome&amp;action=optOut&amp;language=de">

Die Frage ist dann natürlich, wo man das einstellen kann oder ob man die Dateien direkt bearbeiten muss, und wenn zweiteres, ob diese Änderung ausreicht (ich habe grad keine Piwik-Installation zur Hand um das zu überprüfen)

29.01.2016 12:00 | geändert: 29.01.2016 12:01

5 Littbarski (Gast)

Hallö Jörg und danke für den Ansatzpunkt, der in der Tat schon einmal weiterhilft. Leider fand ich diese Zeile bisher in keiner Datei von Piwik, aber vermultich liegt dort die Ursache. Andererseits glaube ich eigentlich eher nicht, dass die Webseiten, die das ohne Popup haben, da wirklich im Code etwas geändert haben.

29.01.2016 13:03

6 Littbarksi (Gast)

Hallo nochmal, Jörg,

ich habe jetzt zwei Stunden nach dieser Stelle in den Dateien gesucht, ohne Erfolg. Weißt du spontan, wo dieses Forumlar und seine Einstellungen bei Piwik gespeichert sind (in welcher Datei=)?

29.01.2016 15:55

7 Jörg Kruse

In der Datei plugins/CoreAdminHome/OptOutManager.php findet sich das setCookieInNewWindow - welches allerdings nicht konfigurierbar ausschaut. Mit einer hartkodiertenÄnderung auf 0 bekäme man das target="_blank" auch nicht weg.

Vielleicht gibt es im Marketplace noch ein Plugin, womit man das Popup wegbekommt?

Mit dem Plugin CustomOptOut scheint man aber wohl nur das CSS bearbeiten zu können...?

29.01.2016 17:51 | geändert: 29.01.2016 17:56

8 Littbarski (Gast)

Hallo, ja stimmt, das ändert nichts, wenn man auf 0 stellt. Das CustomOptOut PLugin nutze ich schon, aber wie gesagt nur fürs Aussehen (CSS).

Ich habe noch die Datei optout.twig als mögliche Quelle entdeckt. Da ich leider kein Entwickler bin, erlaube ich mir, den Code hier reinzukopieren. Hier müsste irgendwo die Ursache sein. Aber natürlich will ich nun auch nicht großartig Piwik manipulieren...ich habe nun sogar schon bei Websiten angefragt, die das ohne Popup hinbekommen. Antwort: Wir haben da gar nix eingestellt :).

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    {% if title %}
        <title>{{ title }}</title>
    {% endif %}
    {% if reloadUrl %}
        <meta http-equiv="refresh" content="0; url={{ reloadUrl }}&amp;nonce={{ nonce }}" />
    {% endif %}

    <script>
        function submitForm(e, form) {
            if (e.preventDefault) { // IE8 and below do not support preventDefault
                e.preventDefault();
            }

            var now = Date.now ? Date.now() : (+(new Date())), // Date.now does not exist in < IE8
                newWindow = window.open(form.action + '&time=' + now);

            setInterval(function () {
                if (newWindow.closed) {
                    window.location.reload();
                }
            }, 1000);

            return false;
        }
    </script>

    {% if stylesheets.external|length > 0 %}
        {% for style in stylesheets.external %}
            <link href="{{ style|raw }}" rel="stylesheet" type="text/css">
        {% endfor %}
    {% endif %}
    {% if stylesheets.inline|length > 0 %}
        <style>
            {% for style in stylesheets.inline %}
            {{ style|raw }}
            {% endfor %}
        </style>
    {% endif %}
</head>
<body>
{% if dntFound %}
    {{ 'CoreAdminHome_OptOutDntFound'|translate }}
{% elseif reloadUrl %}
    {# empty #}
{% else %}
    {# if only showing confirmation (because we're in a new window), we only display the success message if JS is disabled.
     # otherwise we try to close the window immediately.
     #}
    {% if showConfirmOnly %}
    <p>{{ 'CoreAdminHome_OptingYouOut'|translate }}</p>
    <script>window.close();</script>
    <noscript>
    {% endif %}

    {% if not trackVisits %}
        {{ 'CoreAdminHome_OptOutComplete'|translate }}
	    <br/>
        {{ 'CoreAdminHome_OptOutCompleteBis'|translate }}
    {% else %}
        {{ 'CoreAdminHome_YouMayOptOut'|translate }}
        <br/>
        {{ 'CoreAdminHome_YouMayOptOutBis'|translate }}
    {% endif %}

    {% if showConfirmOnly %}</noscript>{% endif %}

    <br/><br/>

    {% if not showConfirmOnly %}
    <form method="post" action="?{{ queryParameters|url_encode|raw }}" target="_blank">
        <input type="hidden" name="nonce" value="{{ nonce }}" />
        <input type="hidden" name="fuzz" value="{{ "now"|date }}" />
        <input onclick="submitForm(event, this.form);" type="checkbox" id="trackVisits" name="trackVisits" {% if trackVisits %}checked="checked"{% endif %} />
        <label for="trackVisits"><strong>
        {% if trackVisits %}
            {{ 'CoreAdminHome_YouAreOptedIn'|translate }} {{ 'CoreAdminHome_ClickHereToOptOut'|translate }}
        {% else %}
            {{ 'CoreAdminHome_YouAreOptedOut'|translate }} {{ 'CoreAdminHome_ClickHereToOptIn'|translate }}
        {% endif %}
        </strong></label>
        <noscript>
            <button type="submit">{{ 'General_Save'|translate }}</button>
        </noscript>
    </form>
    {% endif %}
{% endif %}

{% if javascripts.external|length > 0 %}
    {% for script in javascripts.external %}
        <script type="text/javascript" src="{{ script|raw }}"></script>
    {% endfor %}
{% endif %}
{% if javascripts.inline|length > 0 %}
    <script>
        {% for script in javascripts.inline %}
        {{ script|raw }}
        {% endfor %}
    </script>
{% endif %}
</body>
</html>

29.01.2016 20:30

9 Jörg Kruse

Hier befindet sich das target="_blank":

<form method="post" action="?{{ queryParameters|url_encode|raw }}" target="_blank">

Aber eben auch hartcodiert, d.h. nicht konfigurierbar.

Du kannst das natürlich rausnehmen und in der anderen Datei setCookieInNewWindow auf 0 setzen und probieren, ob es das tut.

Aber natürlich will ich nun auch nicht großartig Piwik manipulieren...

Ja, ich denke, es hat auch seinen Grund, dass es nicht konfigurierbar ist.

ich habe nun sogar schon bei Websiten angefragt, die das ohne Popup hinbekommen. Antwort: Wir haben da gar nix eingestellt :).

Möglicherweise haben die noch eine andere Version installiert?

Ich hätte ja noch vorgeschlagen, mal im Piwik-Forum nachzufragen, aber das hast du ja bereits getan:

http://forum.piwik.org/t/with-or-without-browser-popup-after-change-of-iframe-setting/17768

30.01.2016 13:18 | geändert: 30.01.2016 13:18

10 Littbarski (Gast)

Hallo Jörg,

und danke, dass du dir für meine Fragen Zeit nimmst. Ja, in der Tat hatte ich es zuerst beim Piwik-Forum probiert, aber wie du siehst, ist auf deinem Forum eher mit einer Antwort zu rechnen, als bei dem großen Piwik-Forum...dass nicht einmal irgendein Kommentar kommt (obwohl ich da schon mit mehrerem Nachhaken nerve), wundert mich ein wenig. Gerade auch, wenn das mit dem Popup ja wirklich nicht mehr zeitgemäß ist und auch auf manchen Geräten nicht klappt. Da sind die Abmahnanwälte nicht mehr weit :).

Ich werde es nochmal mit den beiden von dir erwähnten Stellen probieren, ich habe es zwar schon versucht, aber eher schnell nebenher. Einen Versuch gbe ich ihm noch, dann lass ich es.

31.01.2016 12:45