Typo3 流体动力类型3-名称空间的正确设置

Typo3 流体动力类型3-名称空间的正确设置,typo3,fluid,flux,Typo3,Fluid,Flux,我使用的是TYPO3 6.2.3和TER的扩展:(flux 7.0.0、fludipages 3.0.0、fluidcontent 4.0.0、VHS 1.8.5) 名称空间的正确实现是什么?在fluidtypo3的例子中,xmlns定义只是为了让IDE完成代码。将它添加到div将在前端渲染它,我认为您不希望这样 这是我的通用模板,用于模板和部分 <?xml version="1.0" encoding="UTF-8" ?> <html xmlns="http://www.w3

我使用的是TYPO3 6.2.3和TER的扩展:(flux 7.0.0、fludipages 3.0.0、fluidcontent 4.0.0、VHS 1.8.5)
名称空间的正确实现是什么?在fluidtypo3的例子中,xmlns定义只是为了让IDE完成代码。将它添加到div将在前端渲染它,我认为您不希望这样

这是我的通用模板,用于模板和部分

<?xml version="1.0" encoding="UTF-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"
      xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">

<head>
    <title>Template: Extension Index</title>
    <f:layout name="Default" />
</head>
<body>

{namespace flux=FluidTYPO3\Flux\ViewHelpers}

<f:section name="main">

    // Content
    <f:render partial="Example/Ex" section="main">

</f:section>

</body>
</html>

模板:扩展索引
{名称空间流量=FluidTYPO3\flux\ViewHelpers}
//内容

定义名称空间有两种方法。第一个是流体自定义样式表示法中的名称空间标记:

{namespace x=Classname}
另一个是名称空间的正式XML表示法,因此,如果您使用它,它将使您的模板完全符合XML

<someTag xmlns:xyz="http://typo3.org/ns/Some/Package/ViewHelpers" />

对于
TYPO3 CMS
,分辨率如下

  • 检查
    settings.namespace。http://example\.org/url=className
    ,如果匹配,则使用此
  • 检查url是否以
    http://typo3.org.ns/
    ,则它后面的所有内容都将被解释为类名
  • 否则就忽略它
  • 要了解更多信息,请查看
    typo3/sysext/fluid/Tests/Unit/Core/Parser/TemplateParserTest.php


    流体检测和解释的AFAIK名称空间不会打印到输出中。

    Q:名称空间的正确实现是什么?
    我自己也不确定。但是对于vhs viewhelpers,部分中的名称空间声明对我来说是有效的(Typo3 6.2.12,vhs 2.3.2)

    旁注
    以下命名空间声明将不起作用,因为它未使用命名空间表示法(thx@kimomat):

    另一方面,对于我自己的viewshelpers的名称空间,我必须使用上面的表示法,它是有效的

    {namespace speciality = Tx_Speciality_ViewHelpers}
    
    作为参考,这是我完整的partial.html

    {namespace v=FluidTYPO3\vhs\ViewHelpers}
    
    <f:if condition="1">
      <f:then>SUCCESS</f:then>
      <f:else>ERROR</f:else>
    </f:if>
    
    {namespace v=FluidTYPO3\vhs\ViewHelpers}
    成功
    错误
    
    {namespace v=Tx_Vhs_ViewHelpers}是旧的书写约定。{namespace v=FluidTYPO3\vhs\ViewHelpers}是名称空间的新约定。您所说的“检查设置。名称空间。\.org/url=className”是什么意思?我指的是页面的键入脚本设置。在这里,您可以按照2中指出的方式定义命名空间-->类名映射。如果不希望呈现html,可以将属性data-namespace-typo3-fluid=“true”添加到html标记中。TYPO3 7.3中介绍了此功能
    {namespace v=FluidTYPO3\vhs\ViewHelpers}
    
    {namespace v=Tx_Vhs_ViewHelpers}
    
    {namespace speciality = Tx_Speciality_ViewHelpers}
    
    {namespace v=FluidTYPO3\vhs\ViewHelpers}
    
    <f:if condition="1">
      <f:then>SUCCESS</f:then>
      <f:else>ERROR</f:else>
    </f:if>