TYPO3:通过 cObject 将变量传递给打字稿?

TYPO3: pass variable to typoscript via cObject?

我想在我的菜单中创建一个下拉登录表单,如本例所示:http://bootsnipp.com/snippets/featured/fancy-navbar-login-sign-in-form

我有这个 cObject 为导航调用错别字:

<f:cObject typoscriptObjectPath="menu.navbar" />

我需要以某种方式将登录表单的内容放入菜单错字中。是否可以通过 cObject 将变量(在我的例子中是登录表单)传递给打字稿?

f:cObject 有一个 data 属性,可以采用不同类型的值。

通常 data 属性采用一个数组,然后您可以使用这些值来使用 typoscript 中的 .field 属性呈现内容对象。

一个例子:

lib.testFluid = COA
lib.testFluid {
    wrap = <div>|</div>
    10 = TEXT
    10.field = title
    10.wrap = <b>|</b>
    20 = TEXT
    20.field = content
}

如果您有这样的 TypoScript,则需要一个包含键 titlecontent 的数据数组。呈现这样的内容对象在流体中可能看起来像这样:

<f:cObject typoscriptObjectPath="lib.testFluid" data="{title: 'Hello World', content: 'Foobar'}" />

但是,如果您只有一些 "content"(例如字符串内容)并希望将其输出到内容对象的一个​​位置,您可以按原样传递它并使用 .current 属性 在 TypoScript 中让它使用 "current value".

lib.testFluid = COA
lib.testFluid {
    wrap = <div>|</div>
    10 = TEXT
    10.current = 1
    10.wrap = <b>|</b>
}

在流体中:

<f:cObject typoscriptObjectPath="lib.testFluid" data="simple text content" />

<f:cObject typoscriptObjectPath="lib.testFluid">simple text content</f:cObject>

当然data也取普通变量。根据您的用例,其中一种情况可能就是您想要的。

编辑: 但是,如果要将数据与 HMENU 一起使用,这似乎有点复杂。嵌套的 TMENU 实例(或其他菜单)具有不同的数据值,因为它被 HMENU 覆盖为该菜单项的当前页面。您可能必须做一些复杂的包装,或者避免在 TMENU/GMENU 等中插入所需的内容。我建议在这种情况下完全使用流体渲染菜单。

编辑 2 - 示例

这样的事情是行不通的:

lib.testFluid = HMENU
lib.testFluid {
    special = directory
    special.value = 1
    wrap = <ul>|</ul>

    1 = TMENU
    1 {
        NO.stdWrap.cObject = COA
        NO.stdWrap.cObject {
            10 = TEXT
            10.field = title
            10.noTrimWrap = || |

            20 = TEXT
            20.current = 1
        }
    }
}

20.current = 1 将不包括来自流体视图助手提供的数据的值,因为 TMENU 的 "data" 已被 HMENU 内容对象更改为当前页面。

但是,应该可以在 HMENU 周围包裹 COA 或类似内容,以便在 HMENU 周围的某处插入所需的内容。