2014-12-02 35 views
0

我想创建一个使用realurl的URL为tx_news创建所有标签的列表。使用realurl URL创建新闻标签的链接

RealURL配置为标签:

'tag' => array(
       array(
        'GETvar' => 'tx_news_pi1[overwriteDemand][tags]', 
        'lookUpTable' => array(
          'table' => 'tx_news_domain_model_tag', 
          'id_field' => 'uid', 
          'alias_field' => 'CONCAT(title, "-", uid)', 
          'addWhereClause' => ' AND NOT deleted', 
          'useUniqueCache' => 1, 
          'useUniqueCache_conf' => array(
            'strtolower' => 1, 
            'spaceCharacter' => '-' 
          ) 
        ) 
       ) 
      ), 

眼下名单获得创建这样:

newsTags = CONTENT 
    newsTags { 
     table = tx_news_domain_model_tag 
     select { 
     pidInList = 1,298 
     hidden = 0 
     deleted = 0 
     orderBy = title 
     } 
     orderBy = title 
     renderObj = COA 
     renderObj { 
     wrap = | 
     1 = LOAD_REGISTER 
     1 { 
      Counter.cObject = TEXT 
      Counter.cObject.data = register:Counter 
      Counter.cObject.wrap = |+1 
      Counter.prioriCalc = intval 
     } 
     2 = TEXT 
     2.insertData = 1 
     2.field = title 
     2.wrap = <li data-index="{register:Counter}"><a href="/labels/tag/|- 
     3 = TEXT 
     3.field = uid 
     3.wrap = |"> 

     5 = TEXT 
     5.field = title 
     5.wrap = |</a></li> 

     } 
     wrap = <ul>|</ul> 
    } 

忽略寄存器现在。 URL只是使用Title-UID生成的。有时标题中有一个点,然后URL不起作用。所以我很乐意使用URL realurl创建。这可能吗?

回答

2

在您的解决方案中,您正尝试手动构建链接。我强烈建议使用typolink来生成链接。如果RealURL可用并且在RealURL配置中配置了各自的GET参数,则Typolink会生成说出的URL。你只需要设置为additionalParams标签UID:

newsTags = CONTENT 
newsTags { 
    table = tx_news_domain_model_tag 
    select { 
     pidInList = 1,298 
     hidden = 0 
     deleted = 0 
     orderBy = title 
    } 
    orderBy = title 
    renderObj = COA 
    renderObj { 
     1 = LOAD_REGISTER 
     1 { 
      Counter.cObject = TEXT 
      Counter.cObject.data = register:Counter 
      Counter.cObject.wrap = |+1 
      Counter.prioriCalc = intval 
     } 
     2 = TEXT 
     2.field = title 
     2.insertData = 1 
     2.typolink { 
      # link to current page 
      parameter.current = 1 
      # the current tag 
      additionalParams = &tx_news_pi1[overwriteDemand][tags]={field:uid} 
      additionalParams.insertData = 1 
     } 
     2.wrap = <li data-index="{register:Counter}">|</li> 

    } 
    wrap = <ul>|</ul> 
} 

您可以只使用parameter = 999当然设定的目标页面不同。

+0

哦,这很好,我不知道如果使用RealURL配置,typolink会提供说出的URL。另外,通过此代码,Linktext是页面的标题,而不是Newstag。只需添加'2.insertData = 1 \t 2.field = title' – nbar 2014-12-02 23:17:30

+0

我只是将后者添加到帖子中。感谢您完成。 TypoScript掌握了一切:-)。 – lorenz 2014-12-02 23:21:14