如何将当前页面标题自动插入TYPO3模板?
实际上,题目就是全部问题 我只想修改模板,以便自动显示当前页面标题(我正在使用html模板,所以我只需要一点打字脚本就可以从数据库中获取页面标题)如何将当前页面标题自动插入TYPO3模板?,typo3,typoscript,Typo3,Typoscript,实际上,题目就是全部问题 我只想修改模板,以便自动显示当前页面标题(我正在使用html模板,所以我只需要一点打字脚本就可以从数据库中获取页面标题) 我希望这是可能的。这很简单。我假设您使用的是TemplaVoilá,因为如果您不使用,则应该使用:-D 首先,在模板中添加一些带有虚拟页面标题的HTML。给它一个ID属性,这样它就很容易映射。比如: <h1 id="page-title">Page Title Here</h1> 这意味着“在模板中占用映射到lib.page
我希望这是可能的。这很简单。我假设您使用的是TemplaVoilá,因为如果您不使用,则应该使用:-D 首先,在模板中添加一些带有虚拟页面标题的HTML。给它一个ID属性,这样它就很容易映射。比如:
<h1 id="page-title">Page Title Here</h1>
这意味着“在模板中占用映射到lib.pagetitle
的空间。在该空间中创建一个TEXT
类型的内容对象。然后用页面的标题填充该内容对象。”
保存打字稿模板。现在你完成了
乍一看,这可能听起来很复杂,的确如此,但这个系统的优点是它具有惊人的灵活性。动态插入文本只是一个开始。(也称为“TSRef”)有所有的细节——查找“getText”以获得一种风格,这是使打字脚本模板中的“page:title”调用下降到页面标题中的函数
TSRef是你的朋友。我在办公桌上放了一份打印版——如果你想打字,那是你的歌册。lib.page\u title=CONTENT
lib.page_title = CONTENT
lib.page_title {
table = pages
select {
where = uid = 2
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = title
wrap = <h1 class="page_title">|</h1>
}
20 = TEXT
20 {
field = subtitle
stdWrap.required = 1
stdWrap.wrap = <h5>|</h5>
}
}
}
lib.page\u标题{
表=页
挑选{
其中=uid=2
}
renderObj=COA
伦德罗布{
10=文本
10 {
字段=标题
包裹=|
}
20=文本
20 {
字段=副标题
stdWrap.required=1
stdWrap.wrap=|
}
}
}
调用lib.page_title其中要使用以下行呈现打字脚本
<f:cObject typoscriptObjectPath='lib.page_title' />
我希望这有帮助 如果您想使用
流体
专用解决方案,请安装VHS
扩展插件,您完全可以不使用任何打字脚本
,如下所示:
标记示例:
<v:page.header.title title="NULL" whitespaceString="' '" setIndexedDocTitle="1">
<!-- tag content - may be ignored! -->
</v:page.header.title>
内联示例:
{v:page.header.title(title:'NULL',whitespaceString:'',setIndexedActitle:1)}
您可以通过以下键入脚本来设置当前页面标题:
lib.pagetitle = TEXT
lib.pagetitle.data = page : title
然后使用typoscriptObjectPath将此对象用于页面,如下所示:
<f:cObject typoscriptObjectPath="lib.pagetitle"/>
要获取当前页面标题,请执行以下操作:
lib.pagetitle = TEXT
lib.pagetitle.field=title
元数据:
当我们浏览移动兼容网站时,在标题标签后放置meta是非常重要的
为了防止IE9中的怪癖模式,我需要在每个HTML页面的顶部添加以下行:
您可以通过将disableheadercode=1添加到打字稿中,自己编写整个页眉,也可以通过将元标记直接添加到页眉标记中进行修改:
page.headTag = <head><meta http-equiv="X-UA-Compatible" content="IE=edge" />
httpEquivalent:(由于TYPO3 4.7)如果设置为1,则在meta标记中使用http Equivalent属性,而不是“name”属性。默认值:0
有关TYPO3的更多信息,请访问我的博客
如果要在流体页面模板中使用此选项,还可以简单使用:
{data.title}
访问页面标题 我更喜欢vhs解决方案:
{v:page.info(field:'title')}
这个问题已经很老了,但我还是想补充一些我从未在这里读过的东西 TYPO3提供了许多关于标题的内容,而且它也可以完全独立地呈现标题。尽管如此,TYPO3的所有优秀选项或多或少都会被单独的解决方案所禁用 因此,首先直接回答这个问题:
默认页面标题可以像这样被覆盖
config.pageTitle.stdWrap.override.cObject < lib.pagetitle
现在还有一些背景,我认为某些单独的标题可能不是最好的解决方案:
- TYPO3通常会在标题中添加一些细节,这些细节很有用,并且不需要单独合并这些新内容
- 脚本和样式表是有组织的,甚至可以通过打字脚本进行压缩和合并。如果遵循某些语法,它甚至会注意像jquery这样的库只包含一次
- TYPO3在TypoScript中有许多功能,其中可以定义与页眉相关的所有内容,还可以决定是否可能永远不将脚本包含在页眉中,而是包含在页面源的底部
- 可以定义元标记(并由扩展或子模板覆盖)
config
-选项的最新文档的当前链接:
谢谢你的精彩教程!我试图在TSRef中找到这样一个函数,但我没有(目前也找不到getText),所以我会继续搜索:)是的,在TSRef中很难找到特定的东西。我曾试图包括一个直接链接到getText,但不让我b/c我是新来的。它就在这一页上:我保留了一份打印件,上面有我自己的关键字和标记。老派,我知道,但它管用!
{data.title}
{v:page.info(field:'title')}
config.pageTitle.stdWrap.override.cObject < lib.pagetitle
page = PAGE
page {
typeNum = 0
config.pageTitle.stdWrap.override.cObject < lib.pagetitle_1
...
}
anotherPage = PAGE
anotherPage {
typeNum = 1
config.pageTitle.stdWrap.override.cObject < lib.pagetitle_2
...
}
lib.pagetitle = COA
lib.pagetitle {
10 = TEXT
10 {
// subtitle: used as field for title tag
value.field = subtitle // title
if.isFalse.data = GP:tx_news_pi1|news
}
20 = RECORDS
20 {
if.isTrue.data = GP:tx_news_pi1|news
dontCheckPid = 1
tables = tx_news_domain_model_news
source.data = GP:tx_news_pi1|news
source.intval = 1
conf.tx_news_domain_model_news = TEXT
conf.tx_news_domain_model_news {
field = title
htmlSpecialChars = 1
}
}
}