TYPO3是一个用PHP编写的开源企业Web内容管理系统(CMS)。它通常与MySQL数据库结合使用,可在许多Unix和Windows系统上运行。
TYPO3 11.5.4 我想向页面添加纯 HTML 内容元素,例如: h1#testheader { 字体粗细:粗体; } 打字3 11.5.4 我想向页面添加纯 HTML 内容元素,例如: <style type="text/css"> h1#testheader { font-weight: bold; } </style> <h1 id="testheader"> Header </h1> (只是作为一个简化的例子) 但是渲染输出是: <style type="text/css"> h1#testheader { font-weight: bold; } </style> Header 我认为这种风格是允许的,因为我设置了: lib.parseFunc.allowTags = ...,style,... lib.parseFunc_RTE.allowTags = ...,style,... 但它不起作用。 设置 lib.parseFunc.htmlSanitize = 0 有帮助,但是有没有更好的东西可以在纯 HTML 内容元素中允许 <style>? 编辑: 查看数据库条目,html 标签未编码,因此没有“<" or ">”而不是“<" and ">”,因此这不是 RTE 的问题。 经过更多研究(再次投入数小时),我得出的结论是,唯一的方法是扩展 HTMLSanitizer。 此解决方案使用了以下来源: https://punkt.de/de/blog/2021/htmlsanitizer-in-typo3.html https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/9.5.x/Important-94484-IntroduceHTMLSanitizer.html https://gist.github.com/ohader/2239dab247e18d23e677fd1b816f4fd5 允许 <style>、<script> 和 <iframe> 的完整解决方案如下所示。 我仍然无法允许<font>采用这种方法! 它是在本地站点包(gpcf_theme)中实现的,并使用了composer。 将 <style>、<script> 和 <iframe> 添加到 lib.parseFunc.allowTags = ... style, ..., iframe, script, ... 在站点包的 TypoScript 部分。 style 似乎是标准的,并且已经是此列表的一部分。 本地站点包的路径为: local_packages/gpcf_theme 带有指向它的符号链接: public/typo3conf/ext/gpcf_theme -> ../../../local_packages/gpcf_theme 这些是重要的文件更改: local_packages/gpcf_theme/composer.json: { "name": "oheil/gpcf_theme", ... "autoload": { "psr-4": { "Oheil\\GpcfTheme\\": "Classes/" } }, ... } local_packages/gpcf_theme/ext_localconf.php: <?php defined('TYPO3_MODE') || die(); ... $GLOBALS['TYPO3_CONF_VARS']['SYS']['htmlSanitizer']['default'] = \Oheil\GpcfTheme\MyDefaultBuilder::class; ... local_packages/gpcf_theme/Classes/MyDefaultBuilder.php <?php namespace Oheil\GpcfTheme; use TYPO3\CMS\Core\Html\DefaultSanitizerBuilder; use TYPO3\HtmlSanitizer\Behavior; use TYPO3\HtmlSanitizer\Behavior\Attr; use TYPO3\HtmlSanitizer\Behavior\Tag; class MyDefaultBuilder extends \TYPO3\CMS\Core\Html\DefaultSanitizerBuilder { protected function createBehavior(): \TYPO3\HtmlSanitizer\Behavior { // https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/9.5.x/Important-94484-IntroduceHTMLSanitizer.html return parent::createBehavior() ->withName('common') ->withTags( (new Tag( 'style', Tag::ALLOW_CHILDREN + Behavior::ENCODE_INVALID_TAG ))->addAttrs( (new Attr('type')), ...$this->globalAttrs ), (new Tag( 'iframe', Tag::ALLOW_CHILDREN ))->addAttrs( ...array_merge( $this->globalAttrs, [$this->srcAttr], $this->createAttrs('scrolling', 'marginwidth', 'marginheight', 'frameborder', 'vspace', 'hspace', 'height', 'width') ) ), (new Tag( 'script', Tag::ALLOW_CHILDREN ))->addAttrs( ...array_merge( $this->globalAttrs, [$this->srcAttr] ) ), // more tags... ); } } 在这些更改之后,当然您需要清除 TYPO3 缓存并且(此处不确定)您需要执行以下操作: composer remove "oheil/gpcf_theme" composer require "oheil/gpcf_theme" 以上内容现在有效,但我仍然很高兴任何专家能够就问题所在或可以做得更好(也许更容易)提供更多见解? 为什么这对 <font> 不起作用? 示例: <font class="font713099">Some Text</font>
我按照如何用我自己的领域扩展 femanager 的示例...... (https://docs.typo3.org/p/in2code/femanager/7.3/en-us/Features/NewFields/Index.html) 我需要添加一个选择字段,其中...
typo3 扩展后端模块 templateRootPaths
我想在我的扩展中扩展重定向模块,特别是模板路径,但它不起作用: module.tx_redirects { 看法 { 模板根路径{ 0 = ...
我在我的流体模板中使用这个条件: ....做一点事 ...
为什么 styles.content.getRight 不起作用?
我正在尝试创建一个简单的typo3模板。模板如下所示: 我正在尝试创建一个简单的typo3 模板。模板如下所示: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>T3 TEST BLAH</title> <link rel="stylesheet" href=""> </head> <body> <!-- ###DOCUMENT_BODY### --> <h1>Webpage</h1> <div id="right"> <h2>RIGHT:</h2> <!-- ###CONTENT_SIDEBAR### --> <!-- ###CONTENT_SIDEBAR### --> </div> <div id="content"> <!-- ###CONTENT### --> <!-- ###CONTENT### --> </div> <!-- ###DOCUMENT_BODY### --> </body> </html> 我的打字稿是这样的: page = PAGE page.10 = TEMPLATE page.10{ template = FILE template.file = fileadmin/template.html workOnSubpart = DOCUMENT_BODY subparts{ CONTENT_SIDEBAR < styles.content.getRight CONTENT < styles.content.get } } 我得到的只是 styles.content.get 的内容,而不是 styles.content.getRight (或 getLeft)的内容。我做错了什么? 您可以尝试以下几件事: 首先确保“右”栏有内容。 然后你可以尝试一下是否有效 CONTENT_SIDEBAR < styles.content.get 查看子部分是否被识别。 我看到的另一个问题是你需要在子部分标记之间添加一些内容(不知道这是否已修复) - 所以尝试编写 <!-- ###CONTENT_SIDEBAR### --> test <!-- ###CONTENT_SIDEBAR### --> HTH, 苏珊 styles.content.getRight 已被删除 fluid_styled_content: https://docs.typo3.org/typo3cms/extensions/fluid_styled_content/7.6/Installation/Upgrading/ 因为您没有子部分 "CONTENT_SIDEBAR",请尝试使用 "RIGHT" 就像您的子部分 id 一样。 您的模板有效,子部分也有效,CONTENT_SIDEBAR不是RIGHT。 确保您在 TypoScript 模板中包含正确的 CSS Styled Content (css_styled_content) 并清除了缓存。 确保子部分的注释之间有一些虚拟代码(无论什么),例如: <!-- ###CONTENT_SIDEBAR### start--> Foo <!-- ###CONTENT_SIDEBAR### end--> 如果您还没有也不想在那里插入任何内容,最好使用 marker 而不是 subpart,例如: <body> <!-- ###DOCUMENT_BODY### --> <h1>Webpage</h1> <div id="right"> <h2>RIGHT:</h2> ###CONTENT_SIDEBAR### </div> <div id="content"> ###CONTENT### </div> <!-- ###DOCUMENT_BODY### --> </body> 和TS: page > page = PAGE page { 10 = TEMPLATE 10 { template = FILE template.file = fileadmin/template.html workOnSubpart = DOCUMENT_BODY marks { CONTENT < styles.content.get CONTENT_SIDEBAR < styles.content.getRight } } } 最后使用 TypoScript 分析器检查某些扩展或附加 TS 是否不会覆盖 CONTENT_SIDEBAR 和/或 styles.content.getRight。 最后的建议可能很奇怪,但请确保将内容元素放入有效列中并且没有隐藏或禁用。 您现在必须将 getRight 替换为相应 colpos 上的选择,因为 T3v7: CONTENT_SIDEBAR < styles.content.get CONTENT_SIDEBAR.select.where = colPos = 2
我通过TCA/overwrite/tt_content.php添加了一个额外的background_image字段 因此,在每个 tt_content 元素中,应渲染背景图像(如果可用)。 在 TypoScript-Setup 中我添加了以下内容: 库。
TYPO3在流体模板中获取页面资源第一个父页面的媒体图像文件url
我尝试在流体模板中输出当前页面父页面的页面属性选项卡“资源”媒体关系中引用的第一个图像。 我已经得到了父页面的...
我按照文档成功在powermail中设置了动态接收器功能 现在我想将动态电子邮件添加到回复邮件中(例如“您的联系人是:maxmuster@muste...
Typo3 8.7.10 Flexform itemsProcFunc,自定义控制器函数,存储库为 NULL
在我的 Typo3 插件中,我想让管理员能够从下拉列表中选择一些项目,其内容存储在“设施”数据库中,使用存储库“FacilitiesReposito...
在 TYPO3 6.1.7 上使用扩展构建器构建的 extbase 扩展中,我没有通过 Typoscript 设置任何 storagePid。 但我在插件中设置了“记录存储页面”: 我希望它...
TYPO3:如何在后端模块中使用pagetree中的存储pid?
我使用 Extension Builder 创建了一个扩展,并在 Web 部分下包含了一个后端模块。在生成的代码中,有两个存储 pid 常量:一个用于插件,一个用于
当所有语言都配置为语言段作为基础时,TYPO3 会重定向有关基础/导致 404
当所有语言都使用语言段配置为基本 /de/、/en/ 等时,如何在 TYPO3 v9 重定向模块中配置有关基本 / 的重定向? 我的问题是重定向...
我怎样才能通过打字稿从此代码中获得相同的结果 控制器 公共函数 feedAction(): ResponseInterface { $articles = $this->getArticles(); $this->view->assign('arti...
TYPO3 EXT:表单整理器 EmailToRecipient 未读取我配置的发件人地址
打字3 11 我用助手配置了一个表单。 YAML 文件照常存储在 fileadmin 中。该表单包含名字(标识符“text-1”)、姓氏(标识符“text-2”)和电子邮件(
TYPO3 升级到版本 13 后,自定义扩展中渲染后端视图的问题
从版本 12 升级到 13 后,我在 Typo3(后端扩展)中遇到正确渲染视图的问题。 在变更日志中,我看到有关已删除的已弃用方法和潜在的新方法的信息
如果在前端使用未预见的 GET 参数调用未缓存的页面,并且该参数已从外部源的链接附加到 URL,例如跟踪参数或其他...
是否有可能在 TCA 中使用某种爆炸? 我所拥有的是一个如下所示的数据库字段: 10;20;30;40-80 现在最好有某种爆炸来使用新的输入字段或
在其中一个操作中,我的控制器应该返回一个大的 zip 文件,我之前通过curl 从云存储加载该文件。它可以完美地处理 50MB 左右的较小文件,但会抛出 500 错误...
假设我们有 2 个 TYPO3 扩展,每个扩展都包含一个 Extbase 插件,并且每个扩展都提供路由器 YAML 配置: # myext_aaa 的路由配置,其中包含 Extbase 插件“Checkout&...