terminal42 / contao-changelanguage

ChangeLanguage is an extension for the Contao CMS which allows visitors to switch between different languages of your website.
44 stars 35 forks source link

Contao 5.1 - Nachrichtenweiterleitung funktioniert nicht mehr #225

Closed heimseiten closed 1 year ago

heimseiten commented 1 year ago

Wenn man sich im Frontend in einem Nachrichtenbeitrag befindet (Modul Nachrichtenleser) und dann die Sprache wechselt, wird in die URL ein "/items" geschrieben:

domain.tld/news/testnachricht-de Leitet zu: domain.tld/en/news/items/testnachricht-en Richtig wäre: domain.tld/en/news/testnachricht-en

Andersrum genauso: domain.tld/en/news/testnachricht-en Leitet zu: domain.tld/news/items/testnachricht-de

Zudem kommt eine Fehlermeldung, wenn man im Backend ein Nachrichtenarchiv bearbeiten möchte: Internal Server Error Was ist das Problem? An exception occurred while executing a query: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

Leider habe ich es nicht geschafft den Fehler selber zu beheben. Wenn in der Datei NewsNavigationListener.php in Zeile 23 das items entfernt wird, steht zwar das items nicht mehr in der URL, aber der zweite / noch.

leofeyer commented 1 year ago

Zudem kommt eine Fehlermeldung, wenn man im Backend ein Nachrichtenarchiv bearbeiten möchte

Siehe https://github.com/terminal42/contao-changelanguage/pull/226.

leofeyer commented 1 year ago

Das Problem mit dem /items entsteht vermutlich hier:

https://github.com/terminal42/contao-changelanguage/blob/0efaca90dbeba7013deb184be1af4899d715cd39/src/EventListener/Navigation/AbstractNavigationListener.php#L109-L116

In Contao 5 gibt es kein TL_AUTO_ITEM mehr: https://github.com/contao/contao/pull/4340

fritzmg commented 1 year ago

Should just be changed to $GLOBALS['TL_CONFIG']['useAutoItem'] ?? true or Config::get('useAutoItem') ?? true (https://github.com/contao/contao/pull/4340#issuecomment-1080289695).

aschempp commented 1 year ago

There's a !isset($GLOBALS['TL_CONFIG']['useAutoItem']) check a line above, so that should already be the case …

aschempp commented 1 year ago

Can you check if b2ddbf9c38244d5a4de6d7663266557e3dda52e4 fixes the issue?

heimseiten commented 1 year ago

Thank you. But unfortunately this does not fix the issue:

domain.tld/en/news/testnachricht-en Changes to: domain.tld/news//testnachricht-de

leofeyer commented 1 year ago

I think #228 is the correct fix.

heimseiten commented 1 year ago

Yes it is. Thank you!

heimseiten commented 1 year ago

But there is still the problem, that the archive can not be opened in the backend.

fritzmg commented 1 year ago

But there is still the problem, that the archive can not be opened in the backend.

See https://github.com/terminal42/contao-changelanguage/issues/225#issuecomment-1508084217

heimseiten commented 1 year ago

Now everything works.