将TypoScript对象插入HMENU

时间:2017-03-01 11:57:30

标签: typo3 typoscript

TYPO3 v 7.6.13 Indexed_search 7.6.0

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

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

我正在使用indexed_search,我有一个名为lib.search的单独的Typoscript Oject设置。

在我生成下拉菜单的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}

1 个答案:

答案 0 :(得分:1)

如果你想在另一个特殊位置插入另一个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)
这些未缓存的对象与占位符一起存储,类似于具有哈希名称的流体变量。它们将在运行时进行评估/解决。

你确定你的lib.searchheader需要是COA_INT吗?