TYPO3,新闻:通过get参数更改排序顺序和方向

时间:2018-08-01 07:57:38

标签: typo3 typo3-8.x tx-news

在扩展新闻的列表视图中,我们需要更改排序顺序和排序方向的链接。是否可以通过get参数同时更改两者? 我取消选中了“禁用替代需求”选项,并尝试了

?tx_news_pi1[orderDirection]=asc
?tx_news_pi1[settings][orderDirection]=asc

但是这不起作用。

谢谢!

4 个答案:

答案 0 :(得分:2)

tx_news_pi1[overwriteDemand][order]=title desc为我工作

答案 1 :(得分:0)

也许尝试:

tx_news_pi1 [overwriteDemand] [orderDirection] = asc

(虽然我不太确定orderDirection是否正确,但mayb可以检查手册/代码)

答案 2 :(得分:0)

据我所知,在流体模板中没有包括排序的直观选择,因为所有排序都是在TypoScript或FlexForm级别完成的。

不过,有多种方法可以从前端进行排序:

  1. 在TypoScript中,您可以根据当前的URL参数设置排序参数,最简单的方法是通过条件来解决它,而且您还可以自由定义自己的参数而不必遵循news-API 。
    在任何情况下,都应该使用viewHelper创建用于排序的URL,该cHash始终会被附加并正确计算。

      

    TypoScript:

    #######
    ## Here you transfer the URL-parameters for sorting to the TypoScript-settings
    ## and also assure that only predefined values are accepted
    #######
    [globalVar = _GET|tx_news_pi1|orderBy = title]
        plugin.tx_news.settings.orderBy = title
    [globalVar = _GET|tx_news_pi1|orderBy = datetime]
        plugin.tx_news.settings.orderBy = datetime
    [globalVar = _GET|tx_news_pi1|orderBy = tstamp]
        plugin.tx_news.settings.orderBy = tstamp
    [globalVar = _GET|tx_news_pi1|orderBy = crdate]
        plugin.tx_news.settings.orderBy = crdate
    [global]
    
    [globalVar = _GET|tx_news_pi1|sort = desc]
        plugin.tx_news.settings.orderDirection = desc
    [else]
        plugin.tx_news.settings.orderDirection = asc
    [global]
    
         

    流体:

    <f:link.action action="list" addQueryString="&tx_news_pi1[orderBy]=title&tx_news_pi1[sort]=asc">Sort by title: asc</f:link.action>
    <f:link.action action="list" addQueryString="&tx_news_pi1[orderBy]=title&tx_news_pi1[sort]=desc">Sort by title: desc</f:link.action>
    
         

    此解决方案未经测试,可能仍需要进行一些调整,但总的来说应该可以使用。
      一般认为与缓存有关的问题与新闻记录相同,至少与任何必需的设置有关。
      按其他字段排序需要执行以下步骤:   https://docs.typo3.org/typo3cms/extensions/news/DeveloperManual/ExtendNews/ExtendFlexforms/Index.html#selectbox-sort-by

  2. 其他单独的解决方案需要使用PHP进行编程,并且可以基于钩子和信号,新闻手册包括可能有用的几章:

  3. 此外,可能已有一些扩展已解决排序工作,但我不知道。您可以搜索news-related extensions。我可以想象eventnewsdataviewer可能有用,但我从未检查过,这些扩展名对此也根本没有用。
    另外,您有可能在进一步的搜索中发现另一个有用的扩展。如果是这样,请告诉我们;-)

  4. 然后,还有一种选择可以以某种方式解决所需的行为,也许是没有记录或记录不好,或者我错过了。

请考虑,如果您使用分页,尤其是AJAX based pagination,则可能仍需要进行一些调整。

答案 3 :(得分:0)

我找到了问题的原因并解决了。

原因是flexform中的默认排序:按标题排序。 GET-Parameter orderBy无法覆盖flexform中的默认排序。如果您在flexform中选择默认排序,则orderBy参数ist会被忽略,但orderDirection参数会按预期工作。结果令人困惑,但始终如一:内容ist始终按默认排序方式进行排序,但具有不同的sortOrders。

在flexform中删除默认排序后,所有工作均按预期进行。

我认为这是一种错误;我将在新闻的错误跟踪器中发布一个问题。