将 TypoScript 对象插入 HMENU

Insert TypoScript Object into HMENU

TYPO3 v 7.6.13 Indexed_search7.6.0

我正在使用 TYPOScript 生成一个典型的下拉菜单。

我在末尾附加了一个列表项,其中包含搜索框的下拉菜单。

我正在使用 indexed_search 并且我有一个名为 lib.search 的单独 Typoscript 对象设置。

在生成下拉菜单的拼写错误中,如何引用/插入 lib.search 并将其插入到下拉菜单中。

这是我的搜索TS,

lib.mainNavi = HMENU
lib.mainNavi.wrap (

<div class="navbar navbar_custom" role="navigation" aria-label="Main Navigation">

    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
 <a class="navbar-brand" href="#">My Site</a>
    </div>
    <div class="collapse navbar-collapse" id="navbar-collapse">
<ul class="nav navbar-nav">|<li class="dropdown"><a href="#" class="dropdown-toggle glyphicons glyphicons-search" data-toggle="dropdown"></a><ul class="dropdown-menu col-md-12 col-xs-12 dropdown_grd"><li>
    <input type="text" class="searchText" placeholder="Search for..."/>
    <input type="button" class="searchButton" id="navSearchButton"/>

**search TSO goes here{lib.searchheader}**

</li></ul></li></ul>
    </div><!-- /.navbar-collapse -->
</div>

  )

这是生成我的搜索框的 TS。

lib.searchheader = COA_INT
lib.searchheader {
  10 = TEXT
  10.typolink.parameter = {$plugin.tx_indexedsearch.searchUID}
  10.typolink.returnLast = url
  10.wrap = <ul><li>|</li></ul>
}

当我引用 lib.search 时,我只在页面呈现时得到文本:

{lib.searchheader}

如果你想在一个特殊的位置插入另一个 TS 对象,让你的 TS 在那里插入一些东西。
要么使用包装纸,要么使用 COA。

在你的例子中,包装太大了,你不能包装两个不同的内容。所以我的尝试是在 COA 中拆分包装:

lib.mainNavi = COA
lib.mainNavi {
    wrap = <div class="navbar navbar_custom" role="navigation" aria-label="Main Navigation"> | </div>

    // intro
    10 = TEXT
    10.value (
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">My Site</a>
        </div>
     )

     //outer-wrap of menu
     20 = COA
     20 {
         wrap ( 
            <div class="collapse navbar-collapse" id="navbar-collapse">
              <ul class="nav navbar-nav">
                 |
              </ul>
            </div><!-- /.navbar-collapse -->
         )

         // the real menu    
         10 = HMENU
         10 {
            :
         }

         // additional search entry:
         20 = COA
         20 {
            wrap (  
               <li class="dropdown">
                  <a href="#" class="dropdown-toggle glyphicons glyphicons-search" data-toggle="dropdown"></a>
                  <ul class="dropdown-menu col-md-12 col-xs-12 dropdown_grd">
                     <li>
                        <input type="text" class="searchText" placeholder="Search for..."/>
                        <input type="button" class="searchButton" id="navSearchButton"/>
                        |
                     </li>
                  </ul>
               </li>
            )

            10 < lib.searchheader      
         }
     }     
 }

小心混合 USER 和 USER_INT 对象。 (永远不要在 USER_INT 内级联 USER_INT)
这些未缓存的对象存储有一个占位符,类似于具有哈希名称的流体变量。他们将在 运行 时间成为 evaluted/resolved。

您确定您的 lib.searchheader 需要 COA_INT 吗?