t3g / usercentrics
此扩展将Usercentrics(合规性和同意管理)集成到TYPO3中。
10.0.4
2021-02-19 09:57 UTC
Requires
- php: ^7.2
- ext-json: *
- typo3/cms-core: ^10.4.0
Requires (Dev)
- bk2k/extension-helper: ^1.0
- friendsofphp/php-cs-fixer: ^2.14
- overtrue/phplint: ^1.1
- roave/security-advisories: dev-master
- typo3/testing-framework: ^4.9 || ^5.0 || ^6.3
README
此扩展将Usercentrics(合规性和同意管理)集成到TYPO3。
安装和配置
-
从TER或通过composer下载并安装扩展
- TER: https://extensions.typo3.org/extension/usercentrics
- Composer: composer require t3g/usercentrics
-
在扩展管理器中激活扩展
-
在您想要使用此扩展的每个网站上,包含静态TypoScript设置
-
通过在您的TypoScript设置中设置
plugin.tx_usercentrics.settingsId = <your-id>
来配置您的Usercentrics ID -
配置由Usercentrics处理的JS文件
plugin.tx_usercentrics {
settingsId = {$plugin.tx_usercentrics.settingsId}
jsFiles {
# Path to JS File (required)
10.file = EXT:site/Resources/Public/JavaScriyt/MyScriptFile.js
# Identifier to use in Usercentrics (required)
10.dataProcessingService = My Data Processing Service
20.file = secondFile.js
20.dataProcessingService = My other Data Processing Service
# attributes for the script tag (optional)
20.attributes {
async = async
}
# options for the TYPO3 AssetCollector
# setting priority will render the script in the head instead of the footer section
20.options {
priority = 1
}
}
jsInline {
10.value (
alert(123);
)
10.dataProcessingService = My Data Processing Service
10.attributes {
custom = attribute
}
}
}
请注意,配置的标识符需要与您的Usercentrics配置匹配。
您不需要为脚本标签设置type
或data-usercentrics
属性,扩展将为您处理。
在Fluid中的使用
扩展包含一个自定义视图助手,可用于通过Fluid添加脚本
<usercentrics:script dataProcessingService="identifier123" src="EXT:my_ext/Resources/Public/JavaScript/foo.js" /> <usercentrics:script dataProcessingService="identifier123"> alert('hello world'); </usercentrics:script>
使用PHP集成Usercentrics
由于TYPO3 v10,AssetCollector现在是TYPO3核心API的一部分。要使用PHP添加由Usercentrics管理的脚本,用AssetCollector
调用替换之前的PageRenderer
调用,并确保设置属性type=text/plain
和data-usercentrics=identifier
。
示例
$dataProcessingService = 'My Data Processing Service';
$identifier = \TYPO3\CMS\Core\Utility\StringUtility::getUniqueId($dataProcessingService . '-');
$file = 'EXT:site/Resources/Public/JavaScript/Scripts.js';
$attributes = [
'type' => 'text/plain',
'data-usercentrics' => $dataProcessingService
];
$assetCollector = GeneralUtility::makeInstance(AssetCollector::class);
$assetCollector->addJavaScript($identifier, $file, $attributes);