1

編集者が同じタイトルの複数の tt_news 記事を作成しました。ニュースに移動すると、正しい抜粋が表示されますが、詳細ビューをクリックすると、抜粋に表示されていない記事が表示されます。同タイトルの古い記事です。URLはこんな感じ

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

現在、次のバージョンが使用されています。

  • クールURI 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>

今、マニュアルに従ってこれに変更しました

  <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 をクリックすると最新の記事が表示されるようになりました。URLは変更ありません。

私が間違っていることは何ですか?別のブラウザでも試してみました。

4

2 に答える 2

1

CoolURI よりもはるかに簡単に設定できる RealUrl を使用してみてください。

わかりました、私はこれについて考えていて、クエリを次のように変更しようとしています:

SELECT CONCAT(tt1.title,IF(tt2.number>1,CONCAT('-',tt2.number),'')) FROM tt_news as tt1, (SELECT ROW_NUMBER() OVER (ORDER BY uid) AS number FROM tt_news WHERE title=(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
于 2012-10-24T07:07:04.500 に答える
0

私はついにエラーを見つけました。編集したファイルが間違っていました。を編集しましtypo3conf/ext/cooluri/cooluri/CoolUriConf.xml_defaultた。

Extension Managerに移動してをクリックすると、正しいパスが見つかりますCoolURIXML 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できることはすべてです。

于 2012-10-24T07:39:38.290 に答える