如何将当前页面标题自动插入TYPO3模板?

如何将当前页面标题自动插入TYPO3模板?,typo3,typoscript,Typo3,Typoscript,实际上,题目就是全部问题 我只想修改模板,以便自动显示当前页面标题(我正在使用html模板,所以我只需要一点打字脚本就可以从数据库中获取页面标题) 我希望这是可能的。这很简单。我假设您使用的是TemplaVoilá,因为如果您不使用,则应该使用:-D 首先,在模板中添加一些带有虚拟页面标题的HTML。给它一个ID属性,这样它就很容易映射。比如: <h1 id="page-title">Page Title Here</h1> 这意味着“在模板中占用映射到lib.page

实际上,题目就是全部问题

我只想修改模板,以便自动显示当前页面标题(我正在使用html模板,所以我只需要一点打字脚本就可以从数据库中获取页面标题)


我希望这是可能的。这很简单。我假设您使用的是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中有许多功能,其中可以定义与页眉相关的所有内容,还可以决定是否可能永远不将脚本包含在页眉中,而是包含在页面源的底部
  • 可以定义元标记(并由扩展或子模板覆盖)
在我看来,在一个自己的模板中再次手动实现整个逻辑是没有用的,我认为只有在AJAX或动态PDF文件等特殊页面类型中才应该禁用标题。这是我认为这个选项有用的主要原因。

她仍然是TypoScript(anchor pagetitle)中有关
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
        }
    }
 }