[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • [SOLVED] Watson findet, springt aber zu structure statt content/edit
Seite 1 von 1

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

Verfasst: 16. Apr 2018, 12:58
von rash
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.

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

Verfasst: 17. Apr 2018, 13:00
von rash
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.