FriendsOfREDAXO / consent_manager

Stellt ein Opt-In Cookie Banner zur Verfügung
MIT License
57 stars 14 forks source link

Fatal Error wenn Sprog Standard Tags in Cookie Definition genutzt werden #43

Closed TobiasKrais closed 4 years ago

TobiasKrais commented 4 years ago

In Sprog wird für öffnendes/schließendes Tag per Standard "{{ " und " }}" verwendet. Wird dieses Tag in einer Cookie Definition verwendet kommt folgender fatal error:

rex_yaml_parse_exception: Malformed inline YAML string: {{ iwcc_cookies_iwcc_cookie_iwcc }} at line 4 (near "desc: {{ iwcc_cookies_iwcc_cookie_iwcc }}"). File: redaxo/src/core/lib/util/string.php Line: 148

Stacktrace | Function | File | Line | | -------------------------------------------- | ----------------------------------------- | -------- | | rex_string::yamlDecode | redaxo/src/addons/iwcc/lib/iwcc_cache.php | 87 | | iwcc_cache->prepareData | redaxo/src/addons/iwcc/lib/iwcc_cache.php | 32 | | iwcc_cache->writeCache | redaxo/src/addons/iwcc/lib/iwcc_cache.php | 24 | | iwcc_cache::write | redaxo/src/core/lib/extension.php | 45 | | rex_extension::registerPoint | redaxo/src/core/lib/form/form.php | 369 | | rex_form->save | redaxo/src/core/lib/form/form_base.php | 1151 | | rex_form_base->get | redaxo/src/addons/iwcc/pages/cookie.php | 56 | | include | redaxo/src/core/lib/packages/package.php | 245 | | rex_package->includeFile | redaxo/src/core/lib/be/controller.php | 471 | | rex_be_controller::includePath | redaxo/src/core/lib/be/controller.php | 428 | | rex_be_controller::includeCurrentPageSubPath | redaxo/src/addons/iwcc/pages/index.php | 8 | | include | redaxo/src/core/lib/packages/package.php | 245 | | rex_package->includeFile | redaxo/src/core/lib/be/controller.php | 471 | | rex_be_controller::includePath | redaxo/src/core/lib/be/controller.php | 413 | | rex_be_controller::includeCurrentPage | redaxo/src/core/backend.php | 216 | | require | redaxo/src/core/boot.php | 137 | | require | redaxo/index.php | 9 |
System report (REDAXO 5.10.0, PHP 7.3.11-nmm1) | REDAXO | | | ------------: | :--------- | | Version | 5.10.0 | | PHP | | | ------------: | :---------- | | Version | 7.3.11-nmm1 | | OPcache | no | | Xdebug | no | | Database | | | ------------: | :----------- | | Version | MySQL 5.6.44 | | Character set | utf8 | | Server | | | ------------: | :--------- | | OS | Linux | | SAPI | fpm-fcgi | | Webserver | Apache | | Request | | | ------------: | :----------- | | Browser | Firefox/74.0 | | Protocol | HTTP/1.1 | | HTTPS | yes | | Packages | | | -----------------------------------------------: | :---------- | | accessdenied | 1.0.6 | | be_style | 2.10.0 | | be_style/customizer | 2.10.0 | | be_style/redaxo | 2.10.0 | | cookie_consent | 3.0.0-beta3 | | cronjob | 2.7.0 | | d2u_address | 1.1.2 | | d2u_helper | 1.6.2 | | d2u_helper/translation_helper | 1.6.1 | | d2u_history | 1.0.0 | | d2u_jobs | 1.1.0 | | d2u_jobs/hr4you_import | 1.1.0 | | d2u_linkbox | 1.2.3 | | d2u_machinery | 1.3.2 | | d2u_machinery/industry_sectors | 1.3.2 | | d2u_machinery/machine_features_extension | 1.3.2 | | d2u_machinery/machine_steel_processing_extension | 1.3.2 | | d2u_machinery/used_machines | 1.3.2 | | d2u_news | 1.1.2 | | d2u_news/fairs | 1.1.2 | | d2u_partner | 1.0 | | d2u_references | 1.0.7 | | d2u_staff | 1.0.3 | | d2u_videos | 1.0.8 | | emailobfuscator | 3.0.0 | | install | 2.7.0 | | iwcc | 1.0.8 | | media_manager | 2.9.0 | | media_manager_autorewrite | 1.1.0 | | mediapool | 2.8.0 | | metainfo | 2.7.0 | | multinewsletter | 3.2.7 | | phpmailer | 2.8.0 | | search_it | 6.7.0 | | search_it/autocomplete | 6.7.0 | | search_it/documentation | 6.7.0 | | search_it/plaintext | 6.7.0 | | search_it/stats | 6.7.0 | | sprog | 1.2.0 | | structure | 2.10.0 | | structure/content | 2.10.0 | | tinymce4 | 1.2.1 | | uploader | 2.0.5 | | url | 2.0.0-beta3 | | users | 2.6.1 | | ycom | 4.0.1 | | ycom/auth | 4.0.1 | | ycom/docs | 4.0.1 | | ycom/group | 4.0.1 | | ycom/media_auth | 4.0.1 | | yform | 3.3.1 | | yform/docs | 3.3.1 | | yform/email | 3.3.1 | | yform/manager | 3.3.1 | | yrewrite | 2.6 | | yrewrite_scheme | 3.2.1 |
TobiasKrais commented 4 years ago

Das Problem ist, dass die YML Notation und damit der YML Parser mit dem "{{ " und " }}" nicht umgehen kann. Lösungen:

tbaddade commented 4 years ago

Man kann die SProg Platzhalter in doppelte Anführungszeichen setzen. Vielleicht sollte das sogar grundsätzlich erwogen werden, da dies der YML Notation entspricht.

Da Sprog kein Yaml erwartet, müsste das dort passieren wo der Inhalt in die Yaml Datei gelegt wird. Das ist wäre bei PHP nicht anders.

<?php
// nicht korrekt
echo {{ platzhalter }};

// korrekt
echo '{{ platzhalter }}';