Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: OIL.js Cookie Consent Management

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.204
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #120 am: 14. Juli 2020, 14:38:02
    Das Modul aus Beitrag 1 wurde nochmal überarbeitet. Eingeflossen sind die Korrekturen aus r12827, r12828 & r12829.

    Grüße

    Torsten
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.748
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #121 am: 14. Juli 2020, 15:12:26
    Aufgrund der Erweiterung/Änderung im System-Modul
    - Erfassung eines weiteren GA-Cookies -
    sollte man vielleicht dazusagen, daß man das Modul nach Hochladen der Dateien einmal sichern, deinstallieren und wieder installieren sollte.

    Das Polyfill hätte ich ja conditional eingebaut
    Code: XML  [Auswählen]
    <!--[if lte IE 11]>
    ...
    <![endif]-->
    aber es in die  oil.min.js  zu intergrieren war wohl einfacher.

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.204
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #122 am: 25. Juli 2020, 11:54:02
    Das Modul aus Beitrag 1 wurde nochmal überarbeitet. Eingeflossen sind die Korrekturen aus r12833 & r12834.

    Grüße

    Torsten

    Timm

    • Fördermitglied
    • Beiträge: 6.166
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #123 am: 27. Juli 2020, 10:20:25
    Moin

    Gibt es einen Grund warum die fontawesome Änderungen in der colorbox nur im im tpl_modified gemacht wurden und nicht im tpl_modified_responsive? Oder wurde es vergessen?

    Gruß Timm

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.204
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #124 am: 27. Juli 2020, 10:26:38
    Das Paket passt so wie es ist. Das alte Template tpl_modified enthält kein Font Awesome, daher wurde der Code dafür entfernt.

    Grüße

    Torsten

    Timm

    • Fördermitglied
    • Beiträge: 6.166
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #125 am: 27. Juli 2020, 10:32:12
    Danke für die schnelle Antwort.

    Gruss Timm

    ChristianRothe

    • Mitglied
    • Beiträge: 181
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #126 am: 27. Juli 2020, 17:22:34
    Was ich nicht ganz verstehe: Vom oil.min.js wird die cookieconsent.php im Shoproot aufgerufen, die dann Daten (iabVendorList) im JSON-Format ausgibt. Aber eine solche cookieconsent.php ist weder im aktuellen Download 2.0.5.1 rev 12725 noch in dem Modul aus Beitrag 1 dieses Threads enthalten. Fehlt diese Datei in den Downloads?

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.204
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #127 am: 27. Juli 2020, 18:32:48
    Wie kommst du darauf!? Die iabVendorList kommt über die "/templates/TEMPLATENAME/javascript/extra/cookieconsent.js.php" über:

    Code: PHP  [Auswählen]
      "iabVendorListUrl": "<?php echo decode_htmlentities(xtc_href_link('ajax.php', 'ext=cookie_consent&speed=1&language='.$_SESSION['language_code'], $request_type, false)); ?>",

    In Shopversion 2.0.5.1 ist die OIL.js Lösung noch nicht integriert! Das kommt erst mit 2.0.5.2 oder eben über das Modul aus Beitrag 1.

    Grüße

    Torsten

    ChristianRothe

    • Mitglied
    • Beiträge: 181
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #128 am: 27. Juli 2020, 18:45:24
    Ich komme darauf, weil ich mir über die Console im Browser angeschaut habe, wie die Cookie-Consent-Geschichte in den Demo-Shops läuft. Und dort kommt die Vendorliste eindeutig aus der cookieconsent.php im Root-Verzeichnis des Shops: https://stable.modified-shop.org/cookieconsent.php

    Wir können also festhalten, dass die Implementierung in den Demo-Shops von dem abweicht, was im Modul aus Beitrag 1 zu finden ist. Das ist ein ganz exzellenter Weg, einen technisch neugierigen Anwender zu verwirren.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.204
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #129 am: 27. Juli 2020, 18:46:53
    Die Demoshops brauchst du dir gar nicht anschauen, weil es da ganz anders eingebunden ist, da wir dort sicherstellen müssen, dass das Cookie Consent immer angezeigt wird und nicht abgestellt werden kann, da wir dort Google Analytics eingebunden haben.

    Grüße

    Torsten

    ChristianRothe

    • Mitglied
    • Beiträge: 181
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #130 am: 31. Juli 2020, 17:19:57
    In Zeile 254 von /admin/cookie_consent.php wird der GET-Parameter oID völlig ungefiltert an die Datenbank übergeben: "WHERE ptv.categories_id = '".$_GET['oID']."'". Da sollte man wohl mal besser ein  "WHERE ptv.categories_id = '".(int)$_GET['oID']."'" draus machen.

    ChristianRothe

    • Mitglied
    • Beiträge: 181
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #131 am: 31. Juli 2020, 18:33:15
    Und noch ein kleiner Bug in /admin/includes/modules/system/cookie_consent.php

    In den Zeilen 67 bis 71 heißt es wie folgt (insbesondere auf Zeile 71 achten: $languages[$row['languages_id']] = $row['language_charset'];)

    Code: PHP  [Auswählen]
          // load language-data
          $languages = array();
          $qr = xtc_db_query("SELECT `languages_id`,`language_charset` FROM " . TABLE_LANGUAGES . " WHERE `languages_id` IN (1,2)");
          while ($row = xtc_db_fetch_array($qr)) {
            $languages[$row['languages_id']] = $row['language_charset'];
          }

    Später folgen dann mehrere Aufrufe von decode_utf8. Hier das Beispiel aus Zeile 150:

    Code: PHP  [Auswählen]
    decode_utf8($row['name'][1], $languages[1]['language_charset']),

    $languages[1]['language_charset'] produziert dabei einen "illegal Offset Error". Richtigerweise müsste es nämlich hier $languages[1] heißen, da $languages[1] schon den Wert für das Language Charset enthält und der Array-Key 'language_charset' nicht existent ist.

    Alternativ kann man das Problem fixen, indem man in Zeile 71 schreibt:
    $languages[$row['languages_id']]['language_charset'] = $row['language_charset'];

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.748
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #132 am: 01. August 2020, 17:08:40
    Wenn wir schonmal dabei sind:
    Im System-Modul fehlt die Property sort_order.
    Code: PHP  [Auswählen]
    $this->sort_order = 0;

    weil ansonsten in der /admin/module_export.php in Zeile 368 wegen
    Code: PHP  [Auswählen]
    if (($module->sort_order > 0) && !isset($installed_modules[$module->sort_order])) {

    eine Notice generiert wird.

    Das ist übrigens bei einigen nachträglich gebauten System-Modulen der Fall, oder es wird der Property MODULE_*_SORT_ORDER zugewiesen ist aber nicht definiert.
    Letztes ist alerdings auch in den modified-Standard-Modulen easymarketing und xtbooster der Fall.

    Gruß,
    noRiddle

    *NACHTRAG*
    Ach, und im Kommentar-Kopf der System-Datei steht irrtümlicherweise das
    $Id: cookie_consent.js.php $

    ChristianRothe

    • Mitglied
    • Beiträge: 181
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #133 am: 02. August 2020, 11:27:16
    [...]
    *NACHTRAG*
    Ach, und im Kommentar-Kopf der System-Datei steht irrtümlicherweise das
    $Id: cookie_consent.js.php $

    Ergänzung: $Id: cookie_consent.js.php $ steht ebenso in Header der Ajax-Datei.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.204
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #134 am: 03. August 2020, 12:38:03
    In Zeile 254 von /admin/cookie_consent.php wird der GET-Parameter oID völlig ungefiltert an die Datenbank übergeben: "WHERE ptv.categories_id = '".$_GET['oID']."'". Da sollte man wohl mal besser ein  "WHERE ptv.categories_id = '".(int)$_GET['oID']."'" draus machen.

    Schau dir mal Zeile 70-75 in der "/admin/includes/application_top.php" an:

    Code: PHP  [Auswählen]
    // security inputfilter for GET/POST/COOKIE
    require (DIR_FS_CATALOG.DIR_WS_CLASSES.'inputfilter.php');
    $inputfilter = new Inputfilter();
    $_GET = $inputfilter->validate($_GET);
    $_POST = $inputfilter->validate($_POST);
    $_REQUEST = $inputfilter->validate($_REQUEST);

    Verfolgst du die Funktionen dann weiter (validate -> inputValidate -> validateNumeric), dann landest du bei:

    Code: PHP  [Auswählen]
        public function validateNumeric($value)
        {
            return preg_replace('/[^0-9]/','',$value);
        }

    Sollte ausreichen, aber wir können das auch gerne nochmal zusätzlich mit INT casten für den Fall, dass es jemand in seine Shopversion 1.05 einbauen will. *gg*

    Die anderen Meldungen von euch schauen wir uns auch nochmal an.

    Grüße

    Torsten
    11 Antworten
    2503 Aufrufe
    10. Dezember 2021, 21:55:58 von gdl-joe
    11 Antworten
    3315 Aufrufe
    17. Dezember 2021, 12:40:07 von Pixelknecht
    8 Antworten
    1370 Aufrufe
    16. Oktober 2023, 16:47:54 von Tomcraft
    2 Antworten
    776 Aufrufe
    07. Oktober 2022, 13:16:22 von Viol
               
    anything