sg_cookie_optin issueshttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues2020-09-25T12:49:30Zhttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/7The option "..." in the backend modules are not working.2020-09-25T12:49:30ZStefan Galinskistefan@sgalinski.deThe option "..." in the backend modules are not working.3.3.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/19JS Scripts not rewritten if there are no scripts existing in the configuratio...2019-10-28T17:47:51ZStefan Galinskistefan@sgalinski.deJS Scripts not rewritten if there are no scripts existing in the configuration (so old content will be kept)1.8.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/21Can't save optin record in Backend only if multi language2019-10-28T17:47:39ZMichael HübeCan't save optin record in Backend only if multi languageEnviroment:
- TYPO3 8.2.27
- PHP 7.2
On save record JS/CSS files would be created, TCA Hook tries to translate records and ended in following error message:
```
explode() expects parameter 2 to be string, null given
TypeError thrown in...Enviroment:
- TYPO3 8.2.27
- PHP 7.2
On save record JS/CSS files would be created, TCA Hook tries to translate records and ended in following error message:
```
explode() expects parameter 2 to be string, null given
TypeError thrown in file
/var/www/html/public/typo3_src-8.7.27/typo3/sysext/core/Classes/Database/Query/Restriction/FrontendGroupRestriction.php in line 36.
```1.8.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/24explode() expects parameter 2 to be string, null given2019-10-28T17:48:20ZOliver Krammerexplode() expects parameter 2 to be string, null givenEviroment:
* TYPO3 8.7.28
* PHP 7.0
* Multidomain Setup mit mehren root Seiten
Beim Speichern im Backend bekomme ich folgend Fehler:
explode() expects parameter 2 to be string, null given
TypeError thrown in file
/var/www/devwebsite...Eviroment:
* TYPO3 8.7.28
* PHP 7.0
* Multidomain Setup mit mehren root Seiten
Beim Speichern im Backend bekomme ich folgend Fehler:
explode() expects parameter 2 to be string, null given
TypeError thrown in file
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/core/Classes/Database/Query/Restriction/FrontendGroupRestriction.php in line 36.
19 explode(",", NULL)
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/core/Classes/Database/Query/Restriction/FrontendGroupRestriction.php:
00034: public function __construct(array $frontendGroupIds = null)
00035: {
00036: $this->frontendGroupIds = $frontendGroupIds === null ? explode(',', $GLOBALS['TSFE']->gr_list) : $frontendGroupIds;
00037: }
00038:
18 TYPO3\CMS\Core\Database\Query\Restriction\FrontendGroupRestriction::__construct()
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/core/Classes/Utility/GeneralUtility.php:
03966: }
03967: // Create new instance and call constructor with parameters
03968: $instance = new $finalClassName(...$constructorArguments);
03969: // Register new singleton instance
03970: if ($instance instanceof SingletonInterface) {
17 TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance("TYPO3\CMS\Core\Database\Query\Restriction\FrontendGroupRestriction")
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/core/Classes/Database/Query/Restriction/AbstractRestrictionContainer.php:
00099: protected function createRestriction($restrictionClass)
00100: {
00101: return GeneralUtility::makeInstance($restrictionClass);
00102: }
00103: }
16 TYPO3\CMS\Core\Database\Query\Restriction\AbstractRestrictionContainer::createRestriction("TYPO3\CMS\Core\Database\Query\Restriction\FrontendGroupRestriction")
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/core/Classes/Database/Query/Restriction/FrontendRestrictionContainer.php:
00045: {
00046: foreach ($this->defaultRestrictionTypes as $restrictionType) {
00047: $this->add($this->createRestriction($restrictionType));
00048: }
00049: }
15 TYPO3\CMS\Core\Database\Query\Restriction\FrontendRestrictionContainer::__construct()
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/core/Classes/Utility/GeneralUtility.php:
03966: }
03967: // Create new instance and call constructor with parameters
03968: $instance = new $finalClassName(...$constructorArguments);
03969: // Register new singleton instance
03970: if ($instance instanceof SingletonInterface) {
14 TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance("TYPO3\CMS\Core\Database\Query\Restriction\FrontendRestrictionContainer")
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/frontend/Classes/Page/PageRepository.php:
00562: ->getQueryBuilderForTable($table);
00563: $queryBuilder->setRestrictions(
00564: GeneralUtility::makeInstance(FrontendRestrictionContainer::class)
00565: );
00566: $olrow = $queryBuilder->select('*')
13 TYPO3\CMS\Frontend\Page\PageRepository::getRecordOverlay("tx_sgcookieoptin_domain_model_optin", array, 3)
/var/www/devwebsite/web/typo3conf/ext/sg_cookie_optin/Classes/Hook/GenerateFilesAfterTcaSave.php:
00105: if ($languageUid > 0) {
00106: $pageRepository = GeneralUtility::makeInstance(PageRepository::class);
00107: $translatedRecord = $pageRepository->getRecordOverlay(self::TABLE_NAME, $originalRecord, $languageUid);
00108: }
00109:
12 SGalinski\SgCookieOptin\Hook\GenerateFilesAfterTcaSave::processDatamap_afterAllOperations(TYPO3\CMS\Core\DataHandling\DataHandler)
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/DataHandler.php:
01343: foreach ($hookObjectsArr as $hookObj) {
01344: if (method_exists($hookObj, 'processDatamap_afterAllOperations')) {
01345: $hookObj->processDatamap_afterAllOperations($this);
01346: }
01347: }
11 TYPO3\CMS\Core\DataHandling\DataHandler::process_datamap()
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/backend/Classes/Controller/EditDocumentController.php:
00558: // Perform the saving operation with DataHandler:
00559: $tce->process_uploads($_FILES);
00560: $tce->process_datamap();
00561: $tce->process_cmdmap();
00562: // If pages are being edited, we set an instruction about updating the page tree after this operation.
10 TYPO3\CMS\Backend\Controller\EditDocumentController::processData()
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/backend/Classes/Controller/EditDocumentController.php:
02107: // Checks, if a save button has been clicked (or the doSave variable is sent)
02108: if ($this->doProcessData()) {
02109: $this->processData();
02110: }
02111:
9 TYPO3\CMS\Backend\Controller\EditDocumentController::mainAction(TYPO3\CMS\Core\Http\ServerRequest, TYPO3\CMS\Core\Http\Response)
8 call_user_func_array(array, array)
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/backend/Classes/Http/RouteDispatcher.php:
00052: $targetIdentifier = $route->getOption('target');
00053: $target = $this->getCallableFromTarget($targetIdentifier);
00054: return call_user_func_array($target, [$request, $response]);
00055: }
00056:
7 TYPO3\CMS\Backend\Http\RouteDispatcher::dispatch(TYPO3\CMS\Core\Http\ServerRequest, TYPO3\CMS\Core\Http\Response)
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/backend/Classes/Http/RequestHandler.php:
00137: /** @var RouteDispatcher $dispatcher */
00138: $dispatcher = GeneralUtility::makeInstance(RouteDispatcher::class);
00139: return $dispatcher->dispatch($request, $response);
00140: }
00141: }
6 TYPO3\CMS\Backend\Http\RequestHandler::dispatch(TYPO3\CMS\Core\Http\ServerRequest)
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/backend/Classes/Http/RequestHandler.php:
00070: // Check if the router has the available route and dispatch.
00071: try {
00072: return $this->dispatch($request);
00073: } catch (InvalidRequestTokenException $e) {
00074: // When token was invalid redirect to login
5 TYPO3\CMS\Backend\Http\RequestHandler::handleRequest(TYPO3\CMS\Core\Http\ServerRequest)
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/core/Classes/Core/Bootstrap.php:
00317:
00318: // Execute the command which returns a Response object or NULL
00319: $this->response = $requestHandler->handleRequest($request);
00320: return $this;
00321: }
4 TYPO3\CMS\Core\Core\Bootstrap::handleRequest(TYPO3\CMS\Core\Http\ServerRequest)
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/backend/Classes/Http/Application.php:
00090: }
00091:
00092: $this->bootstrap->handleRequest($this->request);
00093:
00094: if ($execute !== null) {
3 TYPO3\CMS\Backend\Http\Application::run()
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/backend/Resources/Private/Php/backend.php:
00022: $classLoader = require __DIR__ . '/../../../../../../vendor/autoload.php';
00023:
00024: (new \TYPO3\CMS\Backend\Http\Application($classLoader))->run();
00025: });
2 {closure}()
/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/backend/Resources/Private/Php/backend.php:
00023:
00024: (new \TYPO3\CMS\Backend\Http\Application($classLoader))->run();
00025: });
1 require("/var/www/devwebsite/vendor/typo3/cms/typo3/sysext/backend/Resources/Private/Php/backend.php")
/var/www/devwebsite/vendor/typo3/cms/typo3/index.php:
00001: <?php
00002:
00003: require __DIR__ . '/sysext/backend/Resources/Private/Php/backend.php';1.8.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/30Create proper footer menu urls for versions below TYPO3 82019-10-30T20:51:11ZStefan Galinskistefan@sgalinski.deCreate proper footer menu urls for versions below TYPO3 8```
foreach ($this->getPagesFromNavigation($data['navigation'], $languageUid) as $pageData) {
try {
if (VersionNumberUtility::convertVersionNumberToInteger(TYPO3_version) >= 8000000) {
$footerLinks[] = [
'url' => $uri...```
foreach ($this->getPagesFromNavigation($data['navigation'], $languageUid) as $pageData) {
try {
if (VersionNumberUtility::convertVersionNumberToInteger(TYPO3_version) >= 8000000) {
$footerLinks[] = [
'url' => $uriBuilder->reset()
->setCreateAbsoluteUri(FALSE)
->setTargetPageUid($pageData['uid'])
->setArguments(['disableOptIn' => TRUE])
->buildFrontendUri(),
'name' => $contentObject->crop($pageData['title'], 20 . '|...|0'),
];
} else {
$footerLinks[] = [
'url' => '/index.php?id=' . $pageData['uid'] . '&disableOptIn=1',
'name' => $pageData['title'],
];
}
} catch (\Error $exception) {
// Occurs on the first creation of the translation.
continue;
}
}
```2.0.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/40Accessibility Tab Keys2020-12-15T13:56:08ZStefan Galinskistefan@sgalinski.deAccessibility Tab KeysYou have to press the Tab key until the very end to edit the dialog, because the tab index is not explicitly set, if necessary you could set the tab index to -1?You have to press the Tab key until the very end to edit the dialog, because the tab index is not explicitly set, if necessary you could set the tab index to -1?3.3.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/41Contrast ratio2020-09-24T21:35:04ZStefan Galinskistefan@sgalinski.deContrast ratioContrast ratio of the default colors is not optimal (but can be changed in the settings).![2769184E-8DA6-479F-9A12-9B30FE880948_fritz](/uploads/759cce7598607f7ce70b14e27529de3f/2769184E-8DA6-479F-9A12-9B30FE880948_fritz.jpg)Contrast ratio of the default colors is not optimal (but can be changed in the settings).![2769184E-8DA6-479F-9A12-9B30FE880948_fritz](/uploads/759cce7598607f7ce70b14e27529de3f/2769184E-8DA6-479F-9A12-9B30FE880948_fritz.jpg)3.3.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/44Multilanguage with multitree2019-12-07T17:29:51ZOliver KrammerMultilanguage with multitreeHi,
We have a Typo3 Site with a multitree. And one subtree has a different Language.
![New_Issue___TYPO3___sg_cookie_optin___GitLab](/uploads/4a0182badd57603a55ad81744a35438e/New_Issue___TYPO3___sg_cookie_optin___GitLab.jpg)
I have s...Hi,
We have a Typo3 Site with a multitree. And one subtree has a different Language.
![New_Issue___TYPO3___sg_cookie_optin___GitLab](/uploads/4a0182badd57603a55ad81744a35438e/New_Issue___TYPO3___sg_cookie_optin___GitLab.jpg)
I have seen that you only check the first rootpage. So the translations for 4-1,4-2,4-3 not work. As quickfix i overwrite the typo3script for the js and css (page.headerData.935 and page.footerData.935).
Is there a other way ?https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/55External Content Protection not working always2020-08-19T12:02:57ZStefan Galinskistefan@sgalinski.deExternal Content Protection not working alwaysExample: Demo site (demo.sgalinski.de) / demo page
All YouTube videos are rendered, because the MutationObserver is not working here. Seems like it must also check childs. Even by doing this, I couldn't get it working. See some test cod...Example: Demo site (demo.sgalinski.de) / demo page
All YouTube videos are rendered, because the MutationObserver is not working here. Seems like it must also check childs. Even by doing this, I couldn't get it working. See some test code. This is extremely slow. You can see it also here: https://www.benediktbeuern.de/wandertouren
```
// Create an observer instance linked to the callback function
iFrameObserver = new MutationObserver(function(mutationsList, observer) {
// Use traditional 'for loops' for IE 11
for (var index in mutationsList) {
var mutation = mutationsList[index];
if (mutation.type !== 'childList' || mutation.addedNodes.length <= 0) {
continue;
}
for (var addedNodeIndex in mutation.addedNodes) {
var addedNode = mutation.addedNodes[addedNodeIndex];
if (addedNode.children.length > 0) {
for (var childIndex in addedNode.children) {
var childNode = addedNode.children[childIndex];
if (childNode.children.length > 0) {
for (var childIndex2 in childNode.children) {
var childNode2 = childNode.children[childIndex2];
if (childNode2.children.length > 0) {
for (var childIndex3 in childNode2.children) {
var childNode3 = childNode2.children[childIndex3];
if (childNode3.children.length > 0) {
for (var childIndex4 in childNode3.children) {
var childNode4 = childNode3.children[childIndex4];
if (childNode4.tagName === 'IFRAME') {
replaceIFrameWithConsent(childNode4);
}
}
} else if (childNode3.tagName === 'IFRAME') {
replaceIFrameWithConsent(childNode3);
}
}
} else if (childNode2.tagName === 'IFRAME') {
replaceIFrameWithConsent(childNode2);
}
}
} else if (childNode.tagName === 'IFRAME') {
replaceIFrameWithConsent(childNode);
}
}
} else if (addedNode.tagName === 'IFRAME') {
replaceIFrameWithConsent(addedNode);
}
}
}
});
// Start observing the target node for configured mutations
iFrameObserver.observe(document, {subtree: true, childList: true});
}
```3.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/56[BUG] JavaScript Errors when Array.prototype was extended2020-02-27T17:38:16ZtheLine[BUG] JavaScript Errors when Array.prototype was extendedWhen `Array.prototype` was extended splitting the `cookieValue` may result into unexpected behavior and may throw a JavaScript Error.
I made a patch-file that will check if the elements are actually in the array:
[array-prototype-fix....When `Array.prototype` was extended splitting the `cookieValue` may result into unexpected behavior and may throw a JavaScript Error.
I made a patch-file that will check if the elements are actually in the array:
[array-prototype-fix.diff](/uploads/61c0e3aff7309dadbb5489e537f62f10/array-prototype-fix.diff)3.0.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/60Explanation tables lack vertical space resulting in weird scrolling behaviour2020-02-27T17:28:40ZTim WagnerExplanation tables lack vertical space resulting in weird scrolling behaviourThe tables used for the explanation of cookie purposes does not have enough vertical space in its container. This results in the tables being scrollable within the scrollable window of the various cookie/script types.
In the attached sc...The tables used for the explanation of cookie purposes does not have enough vertical space in its container. This results in the tables being scrollable within the scrollable window of the various cookie/script types.
In the attached screenshot you can see that the table is scrolled up within its container:
![screenshot](/uploads/548fb81a8d47b87b95266593ce496b7e/image.png)
It is difficult to describe the issue in text, but this feels very strange to use. Test the behaviour on [demo.sgalinski.de](https://demo.sgalinski.de/)3.0.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/61Table columns in the cookie overview have small width if their content is too...2020-02-27T16:15:36ZTim WagnerTable columns in the cookie overview have small width if their content is too shortAs you can see in the screenshot, if the content of the table is very short, the table columns on the right are less wide than the others. This can look a bit strange in the frontend.
![screenshot](/uploads/2549c0ac1f6ac44787811704a8069...As you can see in the screenshot, if the content of the table is very short, the table columns on the right are less wide than the others. This can look a bit strange in the frontend.
![screenshot](/uploads/2549c0ac1f6ac44787811704a806966d/image.png)3.0.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/63Small layout glitch if no configuration is available yet2020-02-27T15:50:54ZStefan Galinskistefan@sgalinski.deSmall layout glitch if no configuration is available yet3.0.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/65Disabled groups (maybe also other stuff) are not respected in the file genera...2020-02-27T15:38:49ZStefan Galinskistefan@sgalinski.deDisabled groups (maybe also other stuff) are not respected in the file generation correctly3.0.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/66Include a configurable whitelist of external content (like for invisible reca...2020-08-25T13:59:08ZStefan Galinskistefan@sgalinski.deInclude a configurable whitelist of external content (like for invisible recaptcha)We should define a global whitelist in general e.g. for recaptcha.We should define a global whitelist in general e.g. for recaptcha.3.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/69IE crash2020-02-27T13:56:11ZStefan Galinskistefan@sgalinski.deIE crash![image](/uploads/035695d71f7d07a0c3a572371691c7b2/image.png)
Reason: The for values are not always the expected ones. Always carefully check if the data type is the wanted one in all loops.![image](/uploads/035695d71f7d07a0c3a572371691c7b2/image.png)
Reason: The for values are not always the expected ones. Always carefully check if the data type is the wanted one in all loops.3.0.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/72External content via iframe does not get inserted in the right place after ac...2020-09-15T08:15:28ZUwe MichelfelderExternal content via iframe does not get inserted in the right place after acceptingIt accours that an iframe which gets loaded after the click on the accept button is inserted on the wrong spot.
Example can be seen here:
https://www.transparency.de/index.php?id=426It accours that an iframe which gets loaded after the click on the accept button is inserted on the wrong spot.
Example can be seen here:
https://www.transparency.de/index.php?id=4263.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/81JS error thrown if no group is defined2020-02-27T13:56:10ZStefan Galinskistefan@sgalinski.deJS error thrown if no group is definedUncaught TypeError: splitedCookieValueEntry.split is not a function
This happens if the protoype of String is overridden.
All for loops should use the following of check the length carefully!
for(let i = 0; i < myArray.length; i++){
Uncaught TypeError: splitedCookieValueEntry.split is not a function
This happens if the protoype of String is overridden.
All for loops should use the following of check the length carefully!
for(let i = 0; i < myArray.length; i++){
3.0.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/82Weird rendering with external content protection2020-08-13T01:10:45ZStefan Galinskistefan@sgalinski.deWeird rendering with external content protectionhttps://www.benediktbeuern.de/wetter-webcam/
![image](/uploads/12870da09ea0523889d3a4e181d8a361/image.png)https://www.benediktbeuern.de/wetter-webcam/
![image](/uploads/12870da09ea0523889d3a4e181d8a361/image.png)3.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/95Add option to disable the t3editor (can cause heavy bugs)2020-04-08T16:53:36ZStefan Galinskistefan@sgalinski.deAdd option to disable the t3editor (can cause heavy bugs)3.0.2Stefan Galinskistefan@sgalinski.deStefan Galinskistefan@sgalinski.dehttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/96The Files aren't generated and the backend is loaded in the same frame after ...2020-04-08T16:54:56ZFabian GalinskiThe Files aren't generated and the backend is loaded in the same frame after saving.There is already a fix for this. See this commit: https://gitlab.sgalinski.de/typo3/sg_cookie_optin
Steps to do:
- Check all TYPO3 versions.
- Check the multilanguage behaviour, if it's still working.There is already a fix for this. See this commit: https://gitlab.sgalinski.de/typo3/sg_cookie_optin
Steps to do:
- Check all TYPO3 versions.
- Check the multilanguage behaviour, if it's still working.3.0.2Fabian GalinskiFabian Galinskihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/102Problems with Subdirectory Installations2020-09-30T18:09:30ZStefan Galinskistefan@sgalinski.deProblems with Subdirectory InstallationsSubdirectory installation (like mydomain.de/somedirectory/fileadmin/...) don't work with the recent version of the cookie optin extension. The path in fileadmin can be changed to fix the issue, but it would be better if this is handled a...Subdirectory installation (like mydomain.de/somedirectory/fileadmin/...) don't work with the recent version of the cookie optin extension. The path in fileadmin can be changed to fix the issue, but it would be better if this is handled automatically. Also the saving of the configuration is only working if the path is calculated correctly.3.2.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/104Compact Layout - Link to open cookie information not changed after click2020-05-08T17:12:03ZStefan Galinskistefan@sgalinski.deCompact Layout - Link to open cookie information not changed after clickThe wrong text is shown for the expanded cookie information (for single groups).The wrong text is shown for the expanded cookie information (for single groups).3.1.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/106Pipe next to "Powered by" is inluded in the link in the larger template2020-05-08T17:12:03ZTim WagnerPipe next to "Powered by" is inluded in the link in the larger template![image](/uploads/6c010ca7365075ab1a63fad7a497bd57/image.png)![image](/uploads/6c010ca7365075ab1a63fad7a497bd57/image.png)3.1.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/110Url of footer links broken, realurl not respected2020-05-15T18:52:57ZKarsten NowakUrl of footer links broken, realurl not respectedIn version 3.x of sg_cookie_optin and TYPO3 8.7, the links in footer section of cookie box are broken if we use realurl for links. The saved url in json files for the language looks like this:
`?id=124&disableOptin=1&L=1`
Now the link ...In version 3.x of sg_cookie_optin and TYPO3 8.7, the links in footer section of cookie box are broken if we use realurl for links. The saved url in json files for the language looks like this:
`?id=124&disableOptin=1&L=1`
Now the link in cookie box becomes an href attribute with exactly this link. We don't use a base url. The generated url is just appended to the current page url. Which results in this url:
`https://www.mydomain/en/my-page/?id=124&disableOptin=1&L=1`
That won't work. I'm not sure whether the problem is in our configuration or not. Has nobody here a similar problem? I can't found an issue for this topic ;-).
I found this line
`$url = $contentObject->getTypoLink_URL($uid, '&disableOptIn=1&L=' . $languageUid);`
in `sg_cookie_optin/Classes/Hook/GenerateFilesAfterTcaSave.php` file. But I'm not sure that is the problem. Maybe the TYPO3 version or realurl version or my realurl configuration.I have a TYPO3 instance 7.6 with sg_cookie_optin 2.x and there are no problems with the urls of the footer-links
Any idea? Can anybody reproduce this error?
For the moment I patched the `sg_cookie_optin/Classes/Hook/GenerateFilesAfterTcaSave.php` and prepending the url with a `/`. But for sure, that's just a dirty workaround to fix the problem temporarly.3.2.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/111After update to 3.1.,1 exception: cannot declare class..." on activating othe...2020-05-15T18:53:27ZKarsten NowakAfter update to 3.1.,1 exception: cannot declare class..." on activating other extension in backendI update sg_cookie_optin to v3.1.1 yesterday with composer update.
Today I want to activate another extension in extensions manager. On activating this extension the backend is broken with following exception:
`Cannot declare class SgC...I update sg_cookie_optin to v3.1.1 yesterday with composer update.
Today I want to activate another extension in extensions manager. On activating this extension the backend is broken with following exception:
`Cannot declare class SgCookieAbstractViewHelper, because the name is already in use`
If I downgrade sg_cookie_optin to 3.0.0 everything is fine. I can activate and deactivate those extension.3.2.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/112Backend Module is hidden after installation2020-05-15T18:45:55ZTim WagnerBackend Module is hidden after installationhttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/114TYPO3 9+ - no chash generation for footer links (the parameter doesn't change...2020-08-13T01:10:30ZStefan Galinskistefan@sgalinski.deTYPO3 9+ - no chash generation for footer links (the parameter doesn't changes page content!)This prevents the parameter from being added to the canonical and hreflang.This prevents the parameter from being added to the canonical and hreflang.3.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/115[BUG] GenerateFilesAfterTcaSave::getLanguages() won't respect SiteConfigurati...2020-08-13T01:10:09ZtheLine[BUG] GenerateFilesAfterTcaSave::getLanguages() won't respect SiteConfiguration (TYPO3 v9)Since TYPO3 v9 introduced `SiteConfiguration` it's possible to enable various languages for different trees.
Now when a language is missing from a tree, that's available in an other tree `GenerateFilesAfterTcaSave` will try to generate ...Since TYPO3 v9 introduced `SiteConfiguration` it's possible to enable various languages for different trees.
Now when a language is missing from a tree, that's available in an other tree `GenerateFilesAfterTcaSave` will try to generate static files for non-available languages and throw an Exception.
My proposed solution:
Use `SiteFinder` to fetch available Languages instead of all languages.
Unfortunately I'm unable to fork this Project to create a Merge Request, so here's a patch file: [bugfix-115.diff](/uploads/0d67f865bef3d56f97d7bbb010eb1542/bugfix-115.diff)3.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/122[BUG] clickEventHandler in Selection Modal2020-08-13T06:50:26ZChristian Richter[BUG] clickEventHandler in Selection ModalI'm currently implementing the cookie optin for a client of mine who is willing to buy one or two lifetime licences, but we found a little bug, which he finds very inconvenient and prevents us from going to production and make the purcha...I'm currently implementing the cookie optin for a client of mine who is willing to buy one or two lifetime licences, but we found a little bug, which he finds very inconvenient and prevents us from going to production and make the purchase.
When (for whatever reason) the first page call goes directly to the privacy page, where the Content Element is included, the selection checkboxes in the modal trigger the content elements checkboxes. I think the behaviour is logical and hope it can be fixed. (video is attached)
Otherwise I really like the plugin and am going to suggest this solution to all of my clients!
![optin-click-bug](/uploads/347af1690987a8ee9ab3510d9d15e259/optin-click-bug.mp4)3.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/133Invalid Resources-Path when TYPO3s Base-Url is a sub directory2021-12-21T14:10:29ZHenrikInvalid Resources-Path when TYPO3s Base-Url is a sub directoryWhen TYPO3s Base URL is a sub directory (not domain-root, eg. domain.de/my-cool-website) the path to the cookieOptIn.(css|js) file is wrong. It will be fetched from /fileadmin/sg_cookie_optin/siteroot-1/cookieOptin.css instead of **/fold...When TYPO3s Base URL is a sub directory (not domain-root, eg. domain.de/my-cool-website) the path to the cookieOptIn.(css|js) file is wrong. It will be fetched from /fileadmin/sg_cookie_optin/siteroot-1/cookieOptin.css instead of **/folder**/fileadmin/sg_cookie_optin/siteroot-1/cookieOptin.css
Error occurs in v9.5
I've solved it by prefix the css/js with the configured Site-Base [Classes/UserFunction/AddCookieOptinJsAndCss.php](/uploads/dc245d0523aa994d58a7caa833bdcbcc/AddCookieOptinJsAndCss.php) but this won't work in older typo3-versions.3.3.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/135Disable the "Powered by" via a checkbox is not working if cookie banner is op...2020-10-07T19:17:24ZThomas JiraskoDisable the "Powered by" via a checkbox is not working if cookie banner is opened by show configuartion (Einstellungen anzeigen)The disable the "Powered by" via a checkbox is not working if the cookie banner is opened by the link "show configuartion" (Einstellungen anzeigen) of a blocked external content element.The disable the "Powered by" via a checkbox is not working if the cookie banner is opened by the link "show configuartion" (Einstellungen anzeigen) of a blocked external content element.3.3.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/137Don't show a blank page if no site route was found2020-11-21T13:44:04ZStefan Galinskistefan@sgalinski.deDon't show a blank page if no site route was found3.3.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/139Footer links not working for translated pages in TYPO3 7.62021-01-17T20:35:21ZKarsten NowakFooter links not working for translated pages in TYPO3 7.6TYPO3 7.6.49, sgalinski Cookie Optin 3.2.8, translated cookieoptin data with link to translated data privacy page.
It doesn't matter realurl is activated or not. I've tried `config.absRefPRefix = auto` and `= /`. No baseUrl is set.
Aft...TYPO3 7.6.49, sgalinski Cookie Optin 3.2.8, translated cookieoptin data with link to translated data privacy page.
It doesn't matter realurl is activated or not. I've tried `config.absRefPRefix = auto` and `= /`. No baseUrl is set.
After saving cookie optin data the links on translated cookie optin are just a link to the homepage with added parameter `?disableOptIn=1`.3.3.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/147SQL-Errors on new records and translations2021-02-04T19:41:51ZEntwickler p2 mediaSQL-Errors on new records and translationsWe use EXT:sg_cookie_optin in different TYPO3 projects with different server environments. After TYPO3 Upgrades and extension updates, we get the following situation:
**Version 3.2.8**
`SQL error: 'Incorrect integer value: '' for colu...We use EXT:sg_cookie_optin in different TYPO3 projects with different server environments. After TYPO3 Upgrades and extension updates, we get the following situation:
**Version 3.2.8**
`SQL error: 'Incorrect integer value: '' for column typo3_database.tx_sgcookieoptin_domain_model_cookie.parent_optin at row 1' (tx_sgcookieoptin_domain_model_cookie:NEW601a8a442d7ab984951541)`
`SQL error: 'Incorrect integer value: '' for column typo3_database.tx_sgcookieoptin_domain_model_script.parent_optin at row 1' (tx_sgcookieoptin_domain_model_cookie:NEW601a8a442d7ab984951541)`
The same is for field "parent_group".
We tested it with:
- TYPO3 9.5.23/.24
- php 7.2
- MariaDB 10.2/.3
- With Strict-Mode and without any SQL-Mode of MariaDB
**Solution**
Set default value via TCA of field parent_group and parent_optin in table tx_sgcookieoptin_domain_model_cookie and tx_sgcookieoptin_domain_model_script.
`$GLOBALS[TCA][tx_sgcookieoptin_domain_model_cookie]['columns'][parent_optin][config][default] = 0`
`$GLOBALS[TCA][tx_sgcookieoptin_domain_model_cookie]['columns'][parent_group][config][default] = 0`
`$GLOBALS[TCA][tx_sgcookieoptin_domain_model_script]['columns'][parent_optin][config][default] = 0`
`$GLOBALS[TCA][tx_sgcookieoptin_domain_model_script]['columns'][parent_group][config][default] = 0`
Please set this config to prevent this error. Their are many changes since TYPO3 9.5.16 in combination with MariaDB. MariaDB needs values. We set in our extensions every time a default value if necessary and set in ext_tables.sql as well.
@see: https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/145https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/152TYPO3-Error in Statistic-Module (Call to undefined method Doctrine\DBAL\Drive...2021-03-01T10:33:02ZHenrikTYPO3-Error in Statistic-Module (Call to undefined method Doctrine\DBAL\Driver\Mysqli\MysqliStatement::fetchAllAssociative())I've updated the ext in my dev-env to v4.0.1 and got an TYPO3-Error when i try to view statistics or consent-management in the backend module.
My System:
- Typo3 10.4.6
- DDEV Env
- webserver_type: nginx-fpm
- Mysql-Version: MySQL 5.5.5...I've updated the ext in my dev-env to v4.0.1 and got an TYPO3-Error when i try to view statistics or consent-management in the backend module.
My System:
- Typo3 10.4.6
- DDEV Env
- webserver_type: nginx-fpm
- Mysql-Version: MySQL 5.5.5-10.2.32-MariaDB-1:10.2.32+maria~bionic-log
- PHP-Version: 7.2.31-1+0~20200514.41+debian10~1.gbpe2a56b
---
**Call to undefined method Doctrine\DBAL\Driver\Mysqli\MysqliStatement::fetchAllAssociative()**
in /var/www/html/public/typo3conf/ext/sg_cookie_optin/Classes/Service/**OptinHistoryService.php** line 266
```php
);
$queryBuilder->addGroupBy('item_type');
$queryBuilder->addGroupBy('item_identifier');
return array_column($queryBuilder->execute()->fetchAllAssociative(), 'item_identifier');
}
/**
* Gets the available versions
```
at SGalinski\SgCookieOptin\Service\OptinHistoryService::getItemIdentifiers(array('pid' => 54))
in /var/www/html/public/typo3conf/ext/sg_cookie_optin/Classes/Controller/**ConsentController.php** line 62
```php
$pageUid = (int) GeneralUtility::_GP('id');
$this->view->assign(
'identifiers', OptinHistoryService::getItemIdentifiers(
[
'pid' => $pageUid
]
));
if ($pageUid) {
```4.0.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/153Accessbility Issues2021-04-26T12:04:06ZStefan Galinskistefan@sgalinski.deAccessbility IssuesAfter calling a page with the optin window overlaying the page, the keyboard focus is not in the
keyboard focus is not in the optin window, but in the page behind it. The
means that you can't enter the optin window without the mouse an...After calling a page with the optin window overlaying the page, the keyboard focus is not in the
keyboard focus is not in the optin window, but in the page behind it. The
means that you can't enter the optin window without the mouse and you can't enter the
cannot enter the page.
The checkboxes in the optin window
cannot be operated by keyboard (e.g. by people who cannot use a
mouse). However, this is required for barrier-free
necessary. Maybe you can make the checkboxes keyboard
keyboard - if necessary, you can (optionally) replace them with the standard browser checkboxes.
checkboxes of the browser.4.1.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/157Remove multiple slashes at the beginning of the generated footer urls2021-03-29T12:06:02ZStefan Galinskistefan@sgalinski.deRemove multiple slashes at the beginning of the generated footer urls```
$url = '/' . $this->removeCHashFromUrl(
$contentObject->getTypoLink_URL($uid, '&disableOptIn=1&L=' . $languageUid)
);
```
Probably a simplye ltrim(/) should do the trick.```
$url = '/' . $this->removeCHashFromUrl(
$contentObject->getTypoLink_URL($uid, '&disableOptIn=1&L=' . $languageUid)
);
```
Probably a simplye ltrim(/) should do the trick.4.1.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/168External Content Consent is missing a cancel/deny button2021-05-04T15:52:13ZStefan Galinskistefan@sgalinski.deExternal Content Consent is missing a cancel/deny button![image](/uploads/62f55d3e44ac97b8c088dbc61b28a60c/image.png)![image](/uploads/62f55d3e44ac97b8c088dbc61b28a60c/image.png)GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/174Cookie banner restyled checkboxes show normal checkboxes as well2021-05-17T15:32:48ZAlexander GreinCookie banner restyled checkboxes show normal checkboxes as well![Bildschirmfoto_2021-05-13_um_10.55.11](/uploads/5b34f6d7683a97f2408e612d64d46f36/Bildschirmfoto_2021-05-13_um_10.55.11.png)![Bildschirmfoto_2021-05-13_um_10.55.11](/uploads/5b34f6d7683a97f2408e612d64d46f36/Bildschirmfoto_2021-05-13_um_10.55.11.png)4.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/175Error on executing command to create files2021-07-13T08:04:04ZKarsten NowakError on executing command to create filesI execute the console command in my terminal to create the needed files:
`typo3cms sg_cookie_optin:generate_static_files 12345`
The files will be generated but in console is an error shown: `Error: Undefined class constant 'SUCCESS' in...I execute the console command in my terminal to create the needed files:
`typo3cms sg_cookie_optin:generate_static_files 12345`
The files will be generated but in console is an error shown: `Error: Undefined class constant 'SUCCESS' in /app/private/typo3conf/ext/sg_cookie_optin/Classes/Command/GenerateStaticFilesCommand.php on line 84`
Used version TYPO3 10.4.16
sg_cookie_optin 4.2.3GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/178Powered by link - Add rel="noopener"2021-07-20T12:13:02ZStefan Galinskistefan@sgalinski.dePowered by link - Add rel="noopener"This helps to solve an issue of the recent lighthouse tests.This helps to solve an issue of the recent lighthouse tests.https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/179JS error in IE 11 (compact layout only)2021-07-20T12:12:47ZStefan Galinskistefan@sgalinski.deJS error in IE 11 (compact layout only)https://www.sennebogen.com/
https://www.sgalinski.de
Nothing happens on any button click.https://www.sennebogen.com/
https://www.sgalinski.de
Nothing happens on any button click.GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/187JavaScript-Error on pages with added array methods2021-12-21T16:01:08ZHenrikJavaScript-Error on pages with added array methodsHi,
on a page with extended Array-Prototype (a "each"-method is added to arrays) i got an JS-Error when accepting anything else than all cookies. I already had this error a few weeks ago after i added a filter-method to arrays, but there...Hi,
on a page with extended Array-Prototype (a "each"-method is added to arrays) i got an JS-Error when accepting anything else than all cookies. I already had this error a few weeks ago after i added a filter-method to arrays, but there i was able to remove that code and thought this error was too specific to report. Here i'm not able to remove the method because the JS code that adds the .each is inaccessible to me.
```
Uncaught TypeError: documentCookies[documentCookieIndex].split is not a function
at Object.deleteCookiesForUnsetGroups (cookieOptin.js:619)
at Object.setCookieWrapper (cookieOptin.js:1635)
at Object.acceptEssentialCookies (cookieOptin.js:1030)
at HTMLButtonElement.<anonymous> (cookieOptin.js:696)
```
This error occurs only on the first click on the button (private window or first page view). After the click and a page reload, the Consent window is not displayed until I delete the LocalStorage items.
I solved the problem by adding an isNaN/parseInt check to the two For loops (the same error also occurs two lines above with the cookieIndex):
```javascript
deleteCookiesForUnsetGroups: function() {
for (var groupIndex in SgCookieOptin.jsonData.cookieGroups) {
if (!SgCookieOptin.jsonData.cookieGroups.hasOwnProperty(groupIndex)) {
continue;
}
var documentCookies = document.cookie.split('; ');
if (!SgCookieOptin.checkIsGroupAccepted(SgCookieOptin.jsonData.cookieGroups[groupIndex].groupName)) {
for (var cookieIndex in SgCookieOptin.jsonData.cookieGroups[groupIndex].cookieData) {
if (isNaN(parseInt(cookieIndex))) continue;
for (var documentCookieIndex in documentCookies) {
if (isNaN(parseInt(documentCookieIndex))) continue;
var cookieName = documentCookies[documentCookieIndex].split('=')[0];
var regExString = SgCookieOptin.jsonData.cookieGroups[groupIndex].cookieData[cookieIndex]
.Name.trim();
if (!regExString) {
continue;
}
var regEx = new RegExp(regExString);
if (regEx.test(cookieName)) {
// delete the cookie
document.cookie = cookieName + '=; path=/; Max-Age=-99999999;';
}
}
}
}
}
},
```4.4.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/188session_only_essential_cookies not working anymore2022-01-11T18:09:30ZStefan Galinskistefan@sgalinski.desession_only_essential_cookies not working anymore4.4.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/191too much recursion2022-01-11T17:50:07ZOliver Krammertoo much recursionHi,
We have sometimes always JS Errors like that:
`InternalError: too much recursion
at saveLastPreferences(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:428:69)
at setCookieWrapper(/fileadmin/sg_cookie_optin/siteroot-5/cooki...Hi,
We have sometimes always JS Errors like that:
`InternalError: too much recursion
at saveLastPreferences(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:428:69)
at setCookieWrapper(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1411:17)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:758:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)
at acceptAllCookies(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:759:17)
at acceptAllExternalContents(/fileadmin/sg_cookie_optin/siteroot-5/cookieOptin.js:1216:18)`
Browser: FF 95
OS: Win 8.1
Any Idea ?
Cheers Oliver4.4.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/192Cookie Optin box is shown even though cookie is set for cookie domain2022-06-01T11:16:35ZKarsten NowakCookie Optin box is shown even though cookie is set for cookie domainWe are using the setting `set_cookie_for_domain` (main domain) in backend. There are 3 another pages with a subdomain and all have the same cookie domain (main domain) set. If I set the cookie in frontend (cookieoptin opens and I confirm...We are using the setting `set_cookie_for_domain` (main domain) in backend. There are 3 another pages with a subdomain and all have the same cookie domain (main domain) set. If I set the cookie in frontend (cookieoptin opens and I confirm essential cookies) on the main page (with the main domain set in set_cookie_for_domain) then I expect that the cookieoptin window is not shown if I go to one of the other pages with a subdomain from that main domain. But this doesn't working. I have to check the cookieoptin stuff again. On every other page.
The domain value in the cookie (set on those another pages) is correctly set to the main domain with a leading `.`.
You can test this live here: https://dgvn.de/
The subdomain pages are:
* https://frieden-sichern.dgvn.de/
* https://menschenrechte-durchsetzen.dgvn.de/
* https://nachhaltig-entwickeln.dgvn.de/
We are using sg-cookie-optin in version 4.2.9 on TYPO3 10.4.21
Issue occurs after an update from sg-cookie-optin version 3.2.8 and TYPO3 8.7. Before the update everything was working with the extra cookie domain set for all pages.4.4.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/193wrong path in cookie-optin data json for subsites2022-03-25T14:04:56Zkaroline steinfattwrong path in cookie-optin data json for subsitesWe have a site (example.com) that has several country sub-sites as separate trees as a country directory under the main domain.
main site:
base: 'https://www.example.com/'
country site (separate tree with own site root):
base: 'https:...We have a site (example.com) that has several country sub-sites as separate trees as a country directory under the main domain.
main site:
base: 'https://www.example.com/'
country site (separate tree with own site root):
base: 'https://www.example.com/it'
We need the cookie banner for some of those country sites, but the backend generates the path to the assets like this:
**cookieOptinData--it_IT.UTF-8--0.json**:
`loadingJavaScript": "https:\/\/www.example.com\/it\/fileadmin\/sg_cookie_optin\/siteroot-272\/analytics-0.js`
How can we get rid of the prefix in the path?4.4.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/198Change varchar fields to TEXT to prevent row size issue2022-01-20T13:50:12ZStefan Galinskistefan@sgalinski.deChange varchar fields to TEXT to prevent row size issuehttps://bugs.mysql.com/bug.php?id=69336
Simply convert the huge varchar fields to TEXT types. This types require much less space for a single row. In MySQL strict, the _optin table can't be created anymore.https://bugs.mysql.com/bug.php?id=69336
Simply convert the huge varchar fields to TEXT types. This types require much less space for a single row. In MySQL strict, the _optin table can't be created anymore.4.4.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/206SQL Error with SQL Mode STRICT_TRANS_TABLES when creating a new privacy record2022-06-02T19:07:31ZRolf KiefhaberSQL Error with SQL Mode STRICT_TRANS_TABLES when creating a new privacy recordIf the SQL Mode STRICT_TRANS_TABLES is set, the following exception occurs when I try to create a new privacy record for a page: `$uid must be positive integer, 0 given`
Update: In addition STRICT_TRANS_TABLES breaks the import with the...If the SQL Mode STRICT_TRANS_TABLES is set, the following exception occurs when I try to create a new privacy record for a page: `$uid must be positive integer, 0 given`
Update: In addition STRICT_TRANS_TABLES breaks the import with the following error: `General error: 1364 Field 'iframe_warning' doesn't have a default value`https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/211activationScriptFile / save_history_webhook doesn't respect overwrite_base_url2022-08-29T14:54:35ZGeorgiactivationScriptFile / save_history_webhook doesn't respect overwrite_base_urlIt must be fixed in the StaticFileGenerationService
This also counts for the "save_history_webhook" setting that must also respect the base URL setting.It must be fixed in the StaticFileGenerationService
This also counts for the "save_history_webhook" setting that must also respect the base URL setting.4.6.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/212wrong cookie path (in subdirectory site)2022-07-06T15:14:02Zkaroline steinfattwrong cookie path (in subdirectory site)This issue is related to [issue 193](https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/193)
We have a site (example.com) that has several country sub-sites as separate trees as a country directory under the main domain.
main ...This issue is related to [issue 193](https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/193)
We have a site (example.com) that has several country sub-sites as separate trees as a country directory under the main domain.
main site: base: 'https://www.example.com/'
country site (separate tree with own site root): base: 'https://www.example.com/it - https://www.example.com/fr etc.'
We use the cookie optin extension to save the consent to analytics cookies.
In all cases the consent cookie gets set to the root path (path /).
But in case of the sub-sites it should be correctly placed in the path of the server root (path /it or /fr).
If all cookies are set into the root site the consent (that might just be valid for a country sub-site) is valid for every site on the server.https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/213Statistics error2022-08-29T14:30:56ZTodea GeorgeStatistics errorHello,
I've updated the extension to latest 4.4.4 and when I try to access Statistics in BE, I get "syntax error, unexpected '='".
Please see attached screenshot.
![sg_cookie-error](/uploads/7da646256c7e8eeafa1d52577f139811/sg_cookie-...Hello,
I've updated the extension to latest 4.4.4 and when I try to access Statistics in BE, I get "syntax error, unexpected '='".
Please see attached screenshot.
![sg_cookie-error](/uploads/7da646256c7e8eeafa1d52577f139811/sg_cookie-error.png)
Thank you4.6.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/214Undefined variable $iFrameGroup in StaticFileGenerationService.php line 8522022-08-29T14:30:16ZAlexander GreinUndefined variable $iFrameGroup in StaticFileGenerationService.php line 852During using the cli command `vendor/bin/typo3 sg_cookie_optin:generate_static_files 1` I get this error:
```
Error!
Warning: Undefined variable $iFrameGroup in /.../private/typo3conf/ext/sg_cookie_optin/Classes/Service/StaticFileGene...During using the cli command `vendor/bin/typo3 sg_cookie_optin:generate_static_files 1` I get this error:
```
Error!
Warning: Undefined variable $iFrameGroup in /.../private/typo3conf/ext/sg_cookie_optin/Classes/Service/StaticFileGenerationService.php line 852
```
The reason is that this variable is not defined if the condition in line 682 `(boolean) $translatedData['iframe_enabled']` is not met.
Maybe changing line 852 to this whould help:
`'iFrameGroup' => $iFrameGroup ?? [],`4.6.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/217Consider overwrite_baseurl in loadingJavascript2022-06-15T08:24:01ZGeorgiConsider overwrite_baseurl in loadingJavascript4.5.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/229EXTERNAL_CONTENT_ELEMENT_SELECTOR improperly used2022-08-29T14:34:01ZGeorgiEXTERNAL_CONTENT_ELEMENT_SELECTOR improperly usedThere is a bug in cookieOptin.js where the constant EXTERNAL_CONTENT_ELEMENT_SELECTOR is not used properlyThere is a bug in cookieOptin.js where the constant EXTERNAL_CONTENT_ELEMENT_SELECTOR is not used properly4.6.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/236Fix PHP 7.0 issues2022-09-09T12:29:40ZGeorgiFix PHP 7.0 issuesThere are still some public const in TemplateService left and possibly in other placesThere are still some public const in TemplateService left and possibly in other places5.0.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/237overwrite_baseurl produces invalid js url2022-12-13T11:47:47ZHenrikoverwrite_baseurl produces invalid js urlsetting a value for overwrite_baseurl (for example https://mydomain.de) produces an invalid URL for the JavaScript-Include, CSS is working as expected.
generated CSS-Code (`Classes/UserFunction/AddCookieOptinJsAndCss.php` at line 110)
`...setting a value for overwrite_baseurl (for example https://mydomain.de) produces an invalid URL for the JavaScript-Include, CSS is working as expected.
generated CSS-Code (`Classes/UserFunction/AddCookieOptinJsAndCss.php` at line 110)
```html
<link rel="preload" as="style" href="https://mydomain.de/fileadmin/sg_cookie_optin/siteroot-1/cookieOptin.css?1663159745" media="all" crossorigin="anonymous">
<link rel="stylesheet" href="https://mydomain.de/fileadmin/sg_cookie_optin/siteroot-1/cookieOptin.css?1663159745" media="all" crossorigin="anonymous">
```
generated JS-Code (`Classes/UserFunction/AddCookieOptinJsAndCss.php` at line 162)
```html
<link rel="preload" as="script" href="https://mydomain.de/" data-ignore="1" crossorigin="anonymous">
<script src="https://mydomain.de/" data-ignore="1" crossorigin="anonymous"></script>
```5.0.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/241Filter for values saved into tx_sgcookieoptin_domain_model_user_preference (i...2022-10-03T21:10:19ZManuel MunzFilter for values saved into tx_sgcookieoptin_domain_model_user_preference (item_identifier column)So it seems someone tried to do SQL injections at one instance where we use the plugin (current 4.6.0 version) via the tx_sgcookieoptin_domain_model_user_preference table.
```
SELECT DISTINCT item_identifier FROM tx_sgcookieoptin_domain...So it seems someone tried to do SQL injections at one instance where we use the plugin (current 4.6.0 version) via the tx_sgcookieoptin_domain_model_user_preference table.
```
SELECT DISTINCT item_identifier FROM tx_sgcookieoptin_domain_model_user_preference;
essential
marketing
statistiken
-1 OR OR 2+205-205-1=0+0+0+1
-1 OR 2+210-210-1=0+0+0+1 --
[hundreds more]
```
In the backend module for statistics then a pie chart is created for every value of item_identifier:
![image](/uploads/5e6f28e18b6d9267fd40ee8ee4e28753/image.jpg)
Note: The first graph is probably for item_identifier = '', not sure if this should ever happen.
A possible solution could be to filter for valid 'Service groups' before inserting them in OptinHistoryService.php5.0.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/249Do not show Fingerprint in test mode2023-02-09T13:34:31ZGeorgiDo not show Fingerprint in test modeThis breaks the test mode functionalityThis breaks the test mode functionality5.1.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/250Fingerprint doesn't respect the dark mode setting2023-02-09T13:34:31ZGeorgiFingerprint doesn't respect the dark mode setting5.1.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/254Change banner_button_accept_essential_text to TEXT2023-08-08T19:37:00ZGeorgiChange banner_button_accept_essential_text to TEXTWe added this in 5.1.0 because of the default valueWe added this in 5.1.0 because of the default value5.3.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/258Enforce exact matching to the cookie name regex2023-02-07T19:41:30ZGeorgiEnforce exact matching to the cookie name regex5.1.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/259Fingerprint must open the cookie optin settings directly and not the banner w...2023-02-07T19:40:58ZGeorgiFingerprint must open the cookie optin settings directly and not the banner when the banner has been enabled5.1.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/260Set a fixed width to the SVG graphics2023-02-09T13:34:58ZGeorgiSet a fixed width to the SVG graphics![image](/uploads/ae70e5d149698955b65a6494ecfd47a4/image.png)
otherwise this happens![image](/uploads/ae70e5d149698955b65a6494ecfd47a4/image.png)
otherwise this happens5.1.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/261The fingerprint icon is not consistent across all web browsers and all platforms2023-08-03T12:13:01ZGeorgiThe fingerprint icon is not consistent across all web browsers and all platforms6.0.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/262Undefined array key warning if extension is installed and not properly set up2023-05-18T10:51:25ZKarsten NowakUndefined array key warning if extension is installed and not properly set upI installed sgalinski-cookie-optin with composer on my local docker machine. If no Extension configuration is done after install, the Arrey key
`$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['sg_cookie_optin']` does not exists. I use TYPO3 1...I installed sgalinski-cookie-optin with composer on my local docker machine. If no Extension configuration is done after install, the Arrey key
`$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['sg_cookie_optin']` does not exists. I use TYPO3 11.5.24 and PHP 8.1. I configuration set once then is ok.
For the moment I patched line 62 in `sg_cookie_optin/Classes/Service/ExtensionSettingsService.php`
`$configuration = $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['sg_cookie_optin'] ?? '';`
That helps.5.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/264> 2: SQL error: 'Field 'iframe_warning' doesn't have a default value'2023-05-18T10:51:02ZStefan Galinskistefan@sgalinski.de> 2: SQL error: 'Field 'iframe_warning' doesn't have a default value'This might be the MySQL Strict mode again. At least this issue should be fixed. Also test for further errors with MySQL Strict that we can fix.This might be the MySQL Strict mode again. At least this issue should be fixed. Also test for further errors with MySQL Strict that we can fix.5.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/265PHP Runtime Deprecation Notice: trim(): Passing null to parameter #1 ($string...2023-05-18T10:50:43ZStefan Galinskistefan@sgalinski.dePHP Runtime Deprecation Notice: trim(): Passing null to parameter #1 ($string) of type string is deprecatedwe are using a licensed version of sg_cookie_optin in our Typo3. I just wanted to report a bug, but I didn’t want to sign in to your gitlab.
There is a problem with the newest version when using PHP 8.1, I fixed the problem on my own...we are using a licensed version of sg_cookie_optin in our Typo3. I just wanted to report a bug, but I didn’t want to sign in to your gitlab.
There is a problem with the newest version when using PHP 8.1, I fixed the problem on my own now.
TYPO3-Version 11.5.24
PHP-Version 8.1.13
Error: PHP Runtime Deprecation Notice: trim(): Passing null to parameter #1 ($string) of type string is deprecated in XXX/typo3conf/ext/sg_cookie_optin/Contrib/mustache/src/Mustache/Tokenizer.php line 109
File: /typo3conf/ext/sg_cookie_optin/Contrib/mustache/src/Mustache/Tokenizer.php
Line: 109
Problem: No Json configuration is written (and the consent wil not be displayerd)
OLD:
if ($delimiters = trim($delimiters)) {
$this->setDelimiters($delimiters);
}
NEW (FIX):
if ($delimiters && $delimiters = trim($delimiters)) {
$this->setDelimiters($delimiters);
}
Hope that helps!5.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/266iFrame Replacement Template Code - Missing Default Template2023-05-24T12:46:04ZStefan Galinskistefan@sgalinski.deiFrame Replacement Template Code - Missing Default Templateseen in TYPO3 10
... currently it can be fetched manually from the tab before.seen in TYPO3 10
... currently it can be fetched manually from the tab before.5.2.0GeorgiGeorgihttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/277Whitelisting of external iFrame content not working if ".*" is used (maybe al...2023-06-17T11:40:14ZThomas JiraskoWhitelisting of external iFrame content not working if ".*" is used (maybe also other syntax)Hi,
in the following website, I cannot get the whitelisting of a specific iFrame external content to work.
Here, I integrated a job widget: https://www.systeno.de/karriere
This is my config in the corresponding textarea "Externe Inhal...Hi,
in the following website, I cannot get the whitelisting of a specific iFrame external content to work.
Here, I integrated a job widget: https://www.systeno.de/karriere
This is my config in the corresponding textarea "Externe Inhalte whitelisten" in tab "Externe Inhalte"
```
^https:\/\/www\.google\.com\/recaptcha\/
^https:\/\/gwh\.jobbase\.io\/.*
^https:\/\/gwh\.onlyfy\.jobs\/.*
```
Why is the iFrame still blocked?
TYPO3: 11.5.25
sg_cookie_optin: 5.2.2
Regards TJhttps://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/279iframe not blocked in TYPO3 12 if only essential cookies are accepted if ifra...2023-08-08T19:15:46ZFabian Schilleriframe not blocked in TYPO3 12 if only essential cookies are accepted if iframeWhitelist is emptyTYPO3 v12.4.3
sgalinski/sg-cookie-optin v.5.2.4
If only the essential cookies are accepted, iframes are still loading and not blocked away like in previous versions. Block external content is enabled in backend (iframe_enabled=1)
Cook...TYPO3 v12.4.3
sgalinski/sg-cookie-optin v.5.2.4
If only the essential cookies are accepted, iframes are still loading and not blocked away like in previous versions. Block external content is enabled in backend (iframe_enabled=1)
Cookie Value: essential:1|preferences:0|analytics:0|marketing:0|iframes:0
As you can see in the screenshot, even if the user hasn't accepted anything, the YouTube iframe is still loading in the background.
![Bildschirm_foto_2023-07-20_um_11.42.22](/uploads/d98ae1bcdfbd51f6fb02430ddd7644ba/Bildschirm_foto_2023-07-20_um_11.42.22.png)
The release of this project is next week on monday. Is there any possible workaround or hope for a quickfix?
Thanks in advance!5.3.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/280Field 'template_html' doesn't have a default value2023-08-08T19:36:49ZStefan Galinskistefan@sgalinski.deField 'template_html' doesn't have a default valueAll text fields must be changed to this:
![image](/uploads/573a514b206d9f32de0d107aa700d085/image.png)
---
I’m having another issue with this plugin. After trying to duplicate the configuration across the site roots using the import/e...All text fields must be changed to this:
![image](/uploads/573a514b206d9f32de0d107aa700d085/image.png)
---
I’m having another issue with this plugin. After trying to duplicate the configuration across the site roots using the import/export function. I get the following error.
An exception occurred while executing 'INSERT INTO `tx_sgcookieoptin_domain_model_optin` (`pid`, `description`, `banner_description`, `essential_description`, `iframe_description`, `iframe_button_load_one_description`, `cookiebanner_whitelist_regex`, `domains_to_delete_cookies_for`, `overwrite_baseurl`, `accept_all_text`, `accept_specific_text`, `accept_essential_text`, `extend_box_link_text`, `extend_box_link_text_close`, `extend_table_link_text`, `extend_table_link_text_close`, `cookie_name_text`, `cookie_provider_text`, `cookie_purpose_text`, `cookie_lifetime_text`, `save_confirmation_text`, `user_hash_text`, `banner_button_accept_text`, `banner_button_settings_text`, `essential_title`, `iframe_title`, `iframe_button_allow_all_text`, `iframe_button_allow_one_text`, `iframe_button_load_one_text`, `iframe_open_settings_text`, `iframe_replacement_background_image`) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [109, "Auf unserer Webseite werden Cookies verwendet. Einige davon werden zwingend ben\u00f6tigt, w\u00e4hrend es uns andere erm\u00f6glichen, Ihre Nutzererfahrung auf unserer Webseite zu verbessern.", "Auf unserer Webseite werden Cookies verwendet. Einige davon werden zwingend ben\u00f6tigt, w\u00e4hrend es uns andere erm\u00f6glichen, Ihre Nutzererfahrung auf unserer Webseite zu verbessern.", "Essenzielle Cookies werden f\u00fcr grundlegende Funktionen der Webseite ben\u00f6tigt. Dadurch ist gew\u00e4hrleistet, dass die Webseite einwandfrei funktioniert.", "Wir verwenden auf unserer Website externe Inhalte, um Ihnen zus\u00e4tzliche Informationen anzubieten.", "", "", "", "", "Alle akzeptieren", "Speichern & schlie\u00dfen", "Nur essenzielle Cookies akzeptieren", "Weitere Informationen anzeigen", "Weitere Informationen verstecken", "Cookie-Informationen anzeigen", "Cookie-Informationen verstecken", "Name", "Anbieter", "Zweck", "Laufzeit", "Cookie-Einstellungen erfolgreich gespeichert", "User-Hash", "Akzeptieren", "Einstellungen", "Essenziell", "Externe Inhalte", "Alle externen Inhalte erlauben", "Einmalig erlauben", "Externen Inhalt laden", "Einstellungen anzeigen", ""]: Field 'template_html' doesn't have a default value5.3.0https://gitlab.sgalinski.de/typo3/sg_cookie_optin/-/issues/287Accessibility > scrollbar hidden2023-11-14T11:44:48ZManuel GschwandtnerAccessibility > scrollbar hiddenHello,
the Scrollbar is hidden in the default Styles `scrollbar-width: none;`.
Having it visible by default or an Option to easily change this behaviour (without editing / changing the Template) would be nice.
Best regards, ManuelHello,
the Scrollbar is hidden in the default Styles `scrollbar-width: none;`.
Having it visible by default or an Option to easily change this behaviour (without editing / changing the Template) would be nice.
Best regards, Manuel