TYPO3 11.5.16:如何分离文本内容元素的标题与正文?
解决方案:TYPO3中单独提取文本内容元素的标题与正文
针对你的需求,有几种可靠的方式实现从单个文本内容元素中分别提取标题和正文,以下是具体方案:
方案一:使用VHS扩展(推荐)
VHS是TYPO3生态中广泛使用的实用扩展,提供了丰富的视图助手工具,其中v:html.extract可以直接通过CSS选择器提取HTML内容:
- 安装VHS扩展:在TYPO3后台的扩展管理器中搜索并安装
vhs扩展 - 在流体模板中提取内容:
- 提取标题(匹配
<h2>标签内容):{contentXY -> v:html.extract(selector: 'h2')->f:format.raw()} - 提取正文(匹配
<p>标签内容):{contentXY -> v:html.extract(selector: 'p')->f:format.raw()}
- 提取标题(匹配
方案二:自定义流体视图助手(无需额外扩展)
如果不想安装第三方扩展,可以自己编写一个简单的视图助手来解析HTML:
- 创建视图助手类:在你的自定义扩展的
Classes/ViewHelpers目录下新建ExtractHtmlViewHelper.php:<?php namespace YourVendor\YourExtension\ViewHelpers; use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; use Symfony\Component\DomCrawler\Crawler; class ExtractHtmlViewHelper extends AbstractViewHelper { public function initializeArguments() { $this->registerArgument('selector', 'string', 'CSS选择器', true); } public function render() { $html = $this->renderChildren(); $crawler = new Crawler($html); $elements = $crawler->filter($this->arguments['selector']); return $elements->count() ? $elements->html() : ''; } } - 在模板中使用自定义视图助手:
- 提取标题:
{contentXY -> yourvendor.extractHtml(selector: 'h2')->f:format.raw()} - 提取正文:
{contentXY -> yourvendor.extractHtml(selector: 'p')->f:format.raw()}
- 提取标题:
方案三:通过TypoScript处理
也可以在TypoScript层面完成内容提取,适合需要在全局统一处理的场景:
提取标题
lib.contentTitle = CONTENT lib.contentTitle < styles.content.get lib.contentTitle { renderObj = COA renderObj { 10 = TEXT 10 { value = {field:bodytext} parseFunc =< lib.parseFunc_RTE regex = /<h2[^>]*>(.*?)<\/h2>/is regex.replace = $1 } } }
模板中调用:
{lib.contentTitle -> f:format.raw()}
提取正文
lib.contentBody = CONTENT lib.contentBody < styles.content.get lib.contentBody { renderObj = COA renderObj { 10 = TEXT 10 { value = {field:bodytext} parseFunc =< lib.parseFunc_RTE regex = /<header[^>]*>.*?<\/header>(.*)/is regex.replace = $1 } } }
模板中调用:
{lib.contentBody -> f:format.raw()}
注意事项
- 确保文本内容元素的HTML结构固定(比如标题始终用
<h2>、正文在<p>标签内),避免提取失效 - 优先选择VHS扩展或自定义视图助手的DOM解析方式,比正则表达式更稳定,能应对HTML结构的微小变化
内容的提问来源于stack exchange,提问作者SIMTEC Software Solutions
相关产品推荐
相关产品推荐

