use*_*816 1 typo3 fluid typoscript
我想在我的菜单中创建一个下拉登录表单,如下例所示:http://bootsnipp.com/snippets/featured/fancy-navbar-login-sign-in-form
我有这个调用typoscript导航的cObject:
<f:cObject typoscriptObjectPath="menu.navbar" />
Run Code Online (Sandbox Code Playgroud)
我需要以某种方式将登录表单的内容放入菜单中.是否可以通过cObject将变量(在我的情况下是登录表单)传递给typoscript?
f:cObject有一个data属性,可以采用不同类型的值.
通常,data属性采用数组,然后您可以使用这些值来使用.fieldtyposcript中的属性呈现内容对象.
一个例子:
lib.testFluid = COA
lib.testFluid {
wrap = <div>|</div>
10 = TEXT
10.field = title
10.wrap = <b>|</b>
20 = TEXT
20.field = content
}
Run Code Online (Sandbox Code Playgroud)
如果你有像这样的TypoScript,一个数据数组,它有键title,content是预期的.渲染这样的内容对象可能看起来像流畅的:
<f:cObject typoscriptObjectPath="lib.testFluid" data="{title: 'Hello World', content: 'Foobar'}" />
Run Code Online (Sandbox Code Playgroud)
但是,如果您只有一些"内容"(例如字符串内容)并希望在内容对象中的某个位置输出它,则可以按原样传递它并使用.currentTypoScript中的属性让它使用"当前值" ".
lib.testFluid = COA
lib.testFluid {
wrap = <div>|</div>
10 = TEXT
10.current = 1
10.wrap = <b>|</b>
}
Run Code Online (Sandbox Code Playgroud)
流动性:
<f:cObject typoscriptObjectPath="lib.testFluid" data="simple text content" />
Run Code Online (Sandbox Code Playgroud)
要么
<f:cObject typoscriptObjectPath="lib.testFluid">simple text content</f:cObject>
Run Code Online (Sandbox Code Playgroud)
当然,数据也采用正常变量.根据您的使用情况,其中一个案例可能是您想要的.
编辑:但是,如果你想与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
}
}
}
Run Code Online (Sandbox Code Playgroud)
20.current = 1 将不包括流体视图提供者提供的数据的值,因为TMENU的"数据"已由HMENU内容对象更改为当前页面.
但是,应该可以在HMENU周围包裹COA或类似物以在HMENU周围的某处插入所需内容.
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |