【问题标题】:Many doubts about TYPO3 template systemTYPO3模板系统的诸多疑惑
【发布时间】:2013-08-15 17:15:50
【问题描述】:

我是 TYPO3 的新手(我来自 Joomla 和 WordPress),我很难理解 TYPO3 中如何处理模板(在我看来,TYPO3 中的情况比 Joomla 和WordPress)。

我已经安装并正在测试这个版本的 TYPO3 introductionpackage-6.1.3.zip

在 Joomla 和 WordPress 中,模板只是一个 HTML 结构(标记在将放置 CMS 模块的页面的各个区域)和相关的 CSS 设置。

在我看来,在 TYPO3 中情况非常不同还是我错了?

此时我正在阅读官方文档的这一部分,它引用了 TYPO3 介绍包的默认模板:http://docs.typo3.org/typo3cms/GettingStartedTutorial/Templates/Index.html

使用 CMS 创建的网站的静态内容动态内容之间的区别对我来说非常清楚(这与 Joomla 或 WP 等任何其他 CMS 没有区别)

动态内容:是由 CMS(执行某些查询)作为菜单动态创建的内容(它查看数据库表,然后脚本在页面上呈现菜单)

静态内容:是固定为网站标题或背景图片的内容

到目前为止,我认为这对我来说很清楚,但是当文档谈到 模板记录 作为实现先前原则的一种方式时,我有很多疑问。

这里:http://docs.typo3.org/typo3cms/GettingStartedTutorial/Templates/%28%28generated%29%29/Index.html

上面写着:

这是一个控制元素,指示 TYPO3 如何处理某个 页面树的分支。

特别是这张图片,它显示了如何为介绍包模板修改这些模板记录(介绍包也是这个包提供的模板的名称还是什么?):

然后在文档的这一部分上说:

如果您编辑模板“Introduction Package”,您将看到大多数 字段为空。对于每个网站,您都需要一个 TypoScript 模板 ROOT 级别,在本例中为“介绍包” 模板。网站的 TypoScript 配置可能会很长 因此可以制作许多小的 TypoScript 模板 包含在主模板中。为了更好的维护,所有 介绍包的 TypoScript 已放入文件夹 '排版模板'。唯一的“介绍包” 模板的作用是包含“ROOT”模板,该模板又包含 其他模板。

这对我来说完全是晦涩难懂的:我知道 TypoScript 是一种可用于配置前端的配置语言(所以我认为我可以使用它来配置我的页面的显示方式)但我不能理解以下断言:

  1. 这是什么意思:对于每个网站,您都需要一个根级别的 TypoScript 模板,在本例中是“介绍包”模板?我已经安装了 TYPO3 介绍包,我只有一个网站!!!网站的ROOT级别是多少?它是列表部分树中的 Welcome to TYPO3 节点吗?所以在实践中,我为网站的根目录分配了一个特定的模板,这用于所有子节点(所有页面如主页、关于 TYPO3、功能等)?

  2. 什么意思:为了更好的维护,Introduction Package的所有TypoScript都被放到了'Typoscript Templates'文件夹中。这个文件夹在哪里?我没有。

  3. 当它说:“Introduction Package”模板所做的唯一事情是包含“ROOT”模板,而该模板又包含其他模板。

太多了

安德烈亚

【问题讨论】:

标签: content-management-system typo3


【解决方案1】:

您网站的根级别是名为Home 的页面。它也有地球而不是普通的页面图标,因为标志Use as root page 是在behavior 下的页面属性中设置的。

当您访问 TYPO3 CMS 中的页面时,它会沿着根行向上,直到找到带有模板记录的 root 页面。在这种情况下,确实是一条名为Introduction Package的记录,但更重要的是,这是一条template类型的记录。

好的,到目前为止,我们已经为您的请求找到了模板。现在TypoScript 开始发挥作用。在正常请求中,模板引擎将搜索名为page 的对象,该对象(通常)是PAGE 类型。因此最简单的模板是:

page = PAGE
page.10 = TEXT
page.10.value = <h1>Hello World</h1>

只会在您的网站上打印Hello World

接下来会发生什么取决于您选择的模板方法(marker base、automaketemple+marker、templavoila、fluid、fedext,...)。这意味着 TYPO3 CMS 不仅具有一种模板方法(或一种模板),而且具有可扩展性和非常灵活的特点,您可以将它们组合起来。

Introduction Package 中使用automaketemplate+markers 方法。这包括一个现成的 HTML 模板,根据某些规则自动创建块,然后用动态内容替换这些块。

好的,您在哪里可以找到此配置? 实际的模板文件是fileadmin/default/templates/introduction_package_site_structure_template.htmlTypoScript 配置在 fileadmin/default/TypoScript 中。在那里你可以找到一个名为setup.ts 的文件。它包括所有其他 TypoScript 文件。有各种文件夹,例如menu 用于菜单定义,block 用于动态块等。 automaeketemplate的配置在Extension/AutomakeTemplate/setup.ts中。

automaketemplate 的帮助下定义的部分在Page/setup.ts 中被替换。

完整的TypoScript 定义了对象的树结构及其配置。您可以使用模块顶部下拉选择框中的template tools 中的Template AnalyzerTypoScript Object Browser 查看完整的已解析 模板。

TypoScript 分离成几个文件是出于文件内部配置的目的。这是为了便于维护而不是为了便于学习。您可以随时使用Template Analyzer 查看从片段生成的完整模板,使用TS Object Browser 查看这会生成什么样的配置树。

一开始这可能听起来有点困难,尤其是与其他产品的原始模板系统相比,但它为您提供了极大的可能性,并且易于维护,即使您进行了重大更新。

【讨论】:

  • 此时,typo3 6.1.7 很难安装,因为 1-2-3 安装程序有问题。尝试使用符合文档中所有系统要求的配置将其安装在 Ubuntu 上,我遇到至少 5 个阻塞错误(您必须在 Google 上深入挖掘才能发现配置文件可能没有正确编写,th您需要禁用 dbal 扩展等)。结合默认情况下错误被捕获而不显示(或记录,就此而言)这一事实,这使得使用 intro 包安装简单系统变得非常困难
  • 我在 6.1 中从未遇到过这些问题。但我也不使用 Ubuntu。如果可以重现,请将您的问题作为新问题提出或在forge.typo3.org/projects/typo3cms-core/issues 创建错误报告。
  • 事实证明,整个问题都与启用了 opcache 有关,这是 Ubuntu for Php 的默认设置。通过设置opcache.enable=0解决
【解决方案2】:

很高兴看到人们决定使用 TYPO3。在我看来,与 WordPress、Drupal 最大的不同...

是 HTML 和动态逻辑的严格分离,可以是 TypoScript/userFunc 或者 Fluid 逻辑...

甚至这使得 TYPO3 如此强大。没有什么反对 WordPress,Drupal ......等。但是在模板中使用 PHP 特别是对于更新来说是一件危险的事情。

我总是对 TYPO3 的无限可能印象深刻。 “我做不到”对 TYPO3 无效。 TYPO§总有办法。

学习TYPO3的方方面面确实是一条艰难的路,但值得。

坚持下去,你就会成功

路德维希

【讨论】:

    【解决方案3】:

    很高兴听到您也想将 TYPO3 用作 CMS。

    为了更好地了解 TYPO3 CMS,我认为您最好从头开始,即下载源 + 虚拟包并将其安装在您的服务器上,或者下载一个 wamp 包。

    目前我使用 Fluid 来构建我的模板。对于 TYPO3 之外的部分,它很像 Joomla,只需创建一个或多个 HTML 文件,并带有一些特殊标记。

    TYPO3中的其他部分,现在可能比较困难,这里解释起来需要很多时间,所以我会参考Thomas Deuling的一个教程:

    http://thomas.deuling.org/2011/06/create-a-complete-typo3-website-by-using-the-fluid-template-engine/

    您可能想加入意大利的 TYPO3 邮件列表,地址为 http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-italy

    此外,TYPO3 网站上充满了文档,尽管有时它仍然有用。此外,您可能想看看 TYPO3 认证的集成商计划。在那里,您可以找到成为 TYPO3 大师的所有基础知识。

    欢迎加入社区,TYPO3 正在激励人们分享!

    亲切的问候,

    杰伦

    【讨论】:

    • Tnx 等待您的回复。我刚刚在我的本地服务器(以及我的远程 Web 服务器)上安装了 Typo3 来做一些文本。当您说我:“对于 TYPO3 之外的部分,它很像 Joomla,只需创建一个或多个 HTML 文件,并带有一些特殊标记”,您到底是什么意思?现在我会看到你给我 TNX 的链接
    • Hee @AndreaNobili 我认为如果您按照教程进行操作,就会清楚我的意思。例如,只需创建一个名为 index.html 的文件并将其放入 fileadmin 中。也许我们可以在某个时候通过 Skype 或其他方式一起看看,这样我就可以帮助你处理一些事情。
    【解决方案4】:

    嗨,我前段时间写了一个小启动器。也许对你有帮助 请记住,在 TYPO3 中有很多解决问题的方法!..

    gl

    设置:

    config {
      baseURL = http://www.bla.com/
      prefixLocalAnchors = all
      meaningfulTempFilePrefix=1
      doctype=xhtml_trans
      htmlTag_langKey=de
      remove_defaultJS=external
      inlineStyle2TempFile=1
      disablePrefixComment = 1
      linkVars=L
      sys_language_uid=0
      language=en
      locale_all = en_EN.UTF-8
      xmlprologue = none
    }
    
    page = PAGE
    page.typeNum = 0
    page.bodyTag=<body>
    page.10=TEMPLATE
    page.10 {
        template = FILE
        template.file = fileadmin/templates/template.html
        workOnSubpart = DOCUMENT
        subparts  {
                CONTENT=COA
                CONTENT.10<styles.content.get
        }
    }
    

    文件:template.html

    <!-- ###DOCUMENT### -->
    
    <!-- ###CONTENT### -->CONTENT<!-- ###CONTENT### -->
    
    <!-- ###DOCUMENT### -->
    

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      相关资源
      最近更新 更多