Неправильная статья при нажатии на новостную статью с таким же названием
Редактор создал несколько статей tt_news с одинаковым названием. Если вы перейдете к новостям, вы увидите правильный отрывок, но при нажатии на подробный вид вы получите статью, которой нет в отрывке. It is an older article with the same title. The URL looks like this
http://yourdomain.com/news/news-detail/duplicate-article-name.html
The following versions are currently used:
- CoolURI 1.0.29
- tt_news 3.0.1
- TYPO3 4.5.10
CoolUriConf.xml_default
has the following content
<uriparts>
<part>
<parameter>tx_ttnews[tt_news]</parameter>
<lookindb>
<to>SELECT title FROM tt_news WHERE uid=$1</to>
<t3conv>1</t3conv>
</lookindb>
</part>
Now I changed it according to the manual to this
<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>
I cleared all caches (including CoolURI cache) but now the latest article can be found if clicking on the URL. The URL hasen't changed.
Что я делаю не так? I even tried it with another browser.
2 ответа
Я наконец нашел ошибку. Это был не тот файл, который я отредактировал. Я редактировал typo3conf/ext/cooluri/cooluri/CoolUriConf.xml_default
,
Вы найдете правильный путь, если вы идете в Extension Manager
и нажмите на CoolURI
, E сть 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
может делает.
Попробуйте использовать RealUrl гораздо проще, чем CoolURI для настройки.
Хорошо, я думаю об этом и пытаюсь изменить запрос на:
SELECT CONCAT (tt1.title, IF (tt2.number> 1, CONCAT ('-', tt2.number), '')) FROM tt_news как tt1, (SELECT ROW_NUMBER() OVER (ORDER BY uid) КАК номер FROM tt_news ГДЕ title = (ВЫБЕРИТЕ title ОТ tt_news WHERE uid=$1)) AS tt2 ГДЕ 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