单击具有相同标题的新闻文章时的错误文章

时间:2012-10-23 12:19:13

标签: url typo3 tt-news

编辑创建了多篇具有相同标题的tt_news文章。如果您导航到新闻,您可以看到正确的摘录,但是当点击详细信息视图时,您会收到摘录中未显示的文章。这是一篇标题相同的旧文章。 URL看起来像这样

http://yourdomain.com/news/news-detail/duplicate-article-name.html

目前使用以下版本:

  • CoolURI 1.0.29
  • tt_news 3.0.1
  • TYPO3 4.5.10

CoolUriConf.xml_default具有以下内容

<uriparts>
    <part>
      <parameter>tx_ttnews[tt_news]</parameter>
      <lookindb>
        <to>SELECT title FROM tt_news WHERE uid=$1</to>
        <t3conv>1</t3conv>
      </lookindb>
    </part>

现在我根据manual改为此

  <uriparts>
    <part>
      <parameter>tx_ttnews[tt_news]</parameter>
      <lookindb>
        <to>SELECT CONCAT(tt1.title,IF(tt2.number>1,CONCAT('-',tt2.number),'')) FROM tt_news as tt1, (SELECT COUNT(*) AS number FROM tt_news WHERE title=(SELECT title FROM tt_news WHERE uid=$1)) AS tt2 WHERE tt1.uid=$1</to>
        <t3conv>1</t3conv>
      </lookindb>
    </part>

我清除了所有缓存(包括CoolURI缓存),但现在可以找到最新的文章,如果点击URL。网址没有改变。

我做错了什么?我甚至用另一个浏览器尝试过它。

2 个答案:

答案 0 :(得分:1)

尝试使用RealUrl比配置CoolURI容易得多。

好的,我正在考虑这个并尝试将查询更改为:

SELECT CONCAT(tt1.title,IF(tt2.number&gt; 1,CONCAT(' - ',tt2.number),''))FROM tt_news as tt1,(SELECT ROW_NUMBER()OVER(ORDER BY uid)AS number FROM tt_news WHERE title =(SELECT title FROM tt_news WHERE uid = $ 1))AS tt2 WHERE tt1.uid = $ 1

之后你应该有这样的链接:

http://yourdomain.com/news/news-detail/duplicate-article-name-1.html
http://yourdomain.com/news/news-detail/duplicate-article-name-2.html
http://yourdomain.com/news/news-detail/duplicate-article-name-3.html

答案 1 :(得分:0)

我终于找到了错误。这是我编辑的错误文件。我编辑了typo3conf/ext/cooluri/cooluri/CoolUriConf.xml_default

如果您进入Extension Manager并点击CoolURI,就会找到正确的路径。有一个XML path变量,其中包含真实CoolUriConf.xml的路径。就我而言,它是fileadmin。现在,最新文章的名称如下:

http://yourdomain.com/news/news-detail/duplicate-article-name.html

较旧的人有此名称

http://yourdomain.com/news/news-detail/duplicate-article-name-2.html

等等。有更好的解决方案,但CoolURI可以做的所有。