关于TYPO3模板系统的疑虑很多

时间:2013-08-15 17:15:50

标签: content-management-system typo3

我是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创建的网站的静态内容动态内容之间的区别对我来说非常清楚(这与其他任何CMS如Joomla或WP没有什么不同)

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

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

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

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

它说:

  

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

特别是对于此图像,它显示了如何修改简介包模板的这些模板记录(简介包也是随此包提供的模板的名称或什么?):

enter image description here

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

  

如果您编辑模板“简介包”,您将看到最多   字段是空的。对于每个网站,您需要一个TypoScript模板   ROOT级别,在这种情况下是“简介包”   模板。网站的TypoScript配置可能很长   因此可以制作许多小的TypoScript模板   包含在主模板中。为了更好的维护,所有   介绍包的TypoScript已放入文件夹中   'Typoscript模板'。 “简介包”唯一的东西   模板的作用是包含“ROOT”模板,而模板又包括在内   其他模板。

这对我来说是完全模糊的:我已经明白TypoScript是一种可用于配置前端的配置语言(所以我认为我可以使用它来配置我的页面将如何显示)但我不能理解以下断言:

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

  2. 当它说:为了更好的维护时,简介包的所有TypoScript都被放入“Typoscript模板”文件夹。这个文件夹在哪里?我没有。

  3. 它的含义是什么意思:“简介包”模板唯一能做的就是包含“ROOT”模板,而模板又包含其他模板。

  4. Tnx这么多

    安德烈

4 个答案:

答案 0 :(得分: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

接下来会发生什么取决于您选择的模板方法(标记库,自动生成器+标记,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 AnalyzerTypoScript Object Browser查看完整的已解析模板,该模板位于模块顶部下拉选择框中的template tools中。

TypoScript分成几个文件是由文件内部配置完成的。这是为了便于维护而不是为了便于学习。您始终可以使用Template Analyzer查看从片段和TS Object Browser生成的完整模板,以查看此结果会生成哪种配置树。

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

答案 1 :(得分:3)

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

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

甚至这使得TYPO3如此强大。没有任何反对WordPress,Drupal ......等等。但是在模板中使用PHP特别适合更新危险的事情。

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

学习TYPO3的所有角落确实是一个艰难的过程,但这是值得的。

继续这样做,你就会成功

路德维希

答案 2 :(得分:0)

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

为了更好地理解TYPO3 CMS,我认为你可以从头开始,这意味着下载源+虚拟包并将其安装在你的服务器上,或者maby下载一个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鼓舞人们分享!

亲切的问候,

的Jeroen

答案 3 :(得分:0)

你好我以前写了一个小小的开始..可能会帮助你 请记住在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### -->