6

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

我已经安装并且正在测试这个版本的 TYPO3介绍包-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 模板,在本例中为“Introduction Package”模板。网站的 TypoScript 配置可能会很长,因此可以制作许多包含在主模板中的小型 TypoScript 模板。为了更好地维护,Introduction Package 的所有 TypoScript 都已放入文件夹“Typoscript Templates”中。“Introduction Package”模板所做的唯一事情是包含“ROOT”模板,该模板又包含其他模板。

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

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

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

  3. 它说的是什么意思:“介绍包”模板所做的唯一事情就是包含“ROOT”模板,而该模板又包含其他模板。?

Tnx 这么多

安德烈亚

4

4 回答 4

6

您网站的根级别是名为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.html. TypoScript配置在fileadmin/default/TypoScript. 在那里你可以找到一个名为setup.ts. 它包括所有其他TypoScript文件。有各种文件夹,例如menu用于菜单定义、block用于动态块等。 的配置automaeketemplate位于 中Extension/AutomakeTemplate/setup.ts

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

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

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

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

于 2013-08-17T14:30:10.760 回答
3

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

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

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

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

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

坚持下去,你就会成功

路德维希

于 2013-08-18T10:19:09.160 回答
0

很高兴听到您也想将 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 正在激励人们分享!

亲切的问候,

杰伦

于 2013-08-16T08:50:08.857 回答
0

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

设置:

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### -->
于 2013-08-19T13:00:44.307 回答