rash
Beiträge: 40
Registriert: 8. Feb 2008, 01:29

[SOLVED] Watson findet, springt aber zu structure statt content/edit

16. Apr 2018, 12:58

Hallo,

auf einer Redaxo-Installation zeigt Watson ein unerklärliches Verhalten. Er findet alles wie erwartet. gibt Titel, Vorschaubilder etc. aus, beim Klick auf den Titel landet man aber leider auf

/redaxo/index.php?page=structure&category_id=1&clang=1

statt hier, wie er es eigentlich sollte:

/redaxo/index.php?page=content/edit&article_id=30&mode=edit&clang=1&ctype=1

D. h. die Suche ist aus Sicht des Redakteurs sinnlos, weil er mit dem Suchergebnis nichts Weiterführendes anstellen kann. Ich habe wirklich keine Idee, wo man da ansetzt, zumal ich Watson auf mehreren Installationen ohne Probleme am Laufen habe.
Zuletzt geändert von rash am 21. Apr 2018, 18:12, insgesamt 1-mal geändert.

rash
Beiträge: 40
Registriert: 8. Feb 2008, 01:29

Re: Watson findet, springt aber zu structure statt content/edit

17. Apr 2018, 13:00

Ich habe inzwischen bei Github vernommen, dass das beschriebene Verhalten geplant ist. Findet Watson etwas in den Ctypes, führt der Trefferlink zum Content-Edit, wenn nicht, dann in die Strukturansicht. Worin der Vorteil bestehen soll, in der Strukturansicht zu landen, kapiere ich glaube ich nicht. Bei wenigen Artikeln in einer Kategorie mag das angehen, bei zig oder hunderten (die dann überdies paginiert erscheinen), ist kaum ein Zusammenhang zwischen Treffer und Linkziel des Treffers zu erkennen. Aber sei’s drum, das Verhalten lässt sich leicht anpassen. In /redaxo/src/addons/watson/lib/Watson/Workflows/Structure/ArticleSearch.php wird die Unterscheidung ab Zeile 183 vorgenommen:

Code: Alles auswählen

$url = Watson::getUrl(array('page' => 'structure', 'category_id' => $article->getCategoryId(), 'clang' => $clang_id));
                    
if (isset($item['ctype_id'])) {
	$url = Watson::getUrl(array('page' => 'content/edit', 'article_id' => $article->getId(), 'mode' => 'edit', 'clang' => $clang_id, 'ctype' => $item['ctype_id']));
}
Um immer im Content-Edit zu landen, braucht man nur die Bedingung des vorhandenen ctype_id wegzulassen und die Variable $url immer gleich zu belegen:

Code: Alles auswählen

$url = Watson::getUrl(array('page' => 'content/edit', 'article_id' => $article->getId(), 'mode' => 'edit', 'clang' => $clang_id, 'ctype' => $item['ctype_id']));
Ob das zu wie auch immer gearteten funktionalen Nachteilen führt, weiß ich nicht, zu erkennen ist jedenfalls nichts.

Zurück zu „AddOns / Packages [R5]“