Seite 1 von 1

Rewrite Fehler nach Artikel verschieben / kopieren

Verfasst: 2. Mär 2018, 09:47
von wolfgang
Das Thema ist schon etwas alt und hat schon graue Haare. Deswegen ist es vielleicht auch etwas uninteressant geworden, sodass ein älteres Issue dazu schon begraben wurden (https://github.com/yakamara/redaxo_yrewrite/issues/57)

Im aktuellen REDAXO 5.5 mit aktuellem yrewrite wird das Path File nicht neu generiert wenn ein Artikel verschoben oder kopiert wurde. Es ist zwar einfach, dieses Verhalten zu umschiffen, indem man einmal auf offline und dann wieder auf online klickt. Damit wird das Path File von yrewrite neu generiert. Nicht jeder Redakteur kennt jedoch solche Kniffe oder mag sie sich merken. Ein Bug bleibt ein Bug, auch wenn man das Heck in eine andere Richtung dreht.

Ich habe mich grade mal ein paar Stunden mit dem Thema beschäftigt und versucht Workarrounds zu finden, die es ohne Codeänderung am Core und am Addon yrewrite möglich machen korrekte Urls zu bekommen. Da haben sich schon andere dran versucht - ich komme zum gleichen Ergebnis: ohne Extensionpoints ist das kaum zu handeln (https://github.com/redaxo/redaxo/issues/1239)

Die Extensionpoints hätten noch einen weiteren Vorteil: man könnte wieder automatische 301 Weiterleitungen machen. Das ist auch etwas, was einem Redakteur schwer beizubringen ist, dass er zusätzlich zu seiner redaktionellen Arbeit auch noch Urls verwalten soll.

Ich habe hier nur einen schalen Tipp, wie sich das Path File neu generieren lässt.

Wenn man sowas ins Template schreibt:

Code: Alles auswählen

if (rex::getUser()) {
    rex_yrewrite::generatePathFile([]);
}
Damit wird bei jedem Aufruf im Frontend bei eingeloggtem Redaxo Benutzer das Path File neu geschrieben. Bei kleinen Seiten kein Problem. Wenn es viele Seiten sind, könnte es zu einer Verzögerung kommen. Dann müsste man eine Erweiterung machen, z.B. einen Link im Backend "Pathfile neu generieren". Vielleicht hat ja noch jemand einen behaltenswerten Tipp dazu. Deswegen erscheint dieser Beitrag auch hier im Forum und nicht im Slack.

Liebe Grüße,
Wolfgang

Re: Rewrite Fehler nach Artikel verschieben / kopieren

Verfasst: 9. Mär 2018, 15:47
von RexDude
Hi,

würde dein code in die boot.php des projects addon schmeissen. ins template gehört sowas nicht. desweiteren nur ausführen wenn backendpage = "content/functions". So wird das löschen der pathlist nur dann getriggert wenn der user sich auf der funktionen seite befindet. ansonsten: pull requests für redaxo und yrewrite einreichen...

nachtrag: habs grad mal umgesetzt:

Code: Alles auswählen

// yrewrite workaround for 3 year old bug, see https://github.com/yakamara/redaxo_yrewrite/issues/57
rex_extension::register('PACKAGES_INCLUDED', function(rex_extension_point $ep) {
	if (rex::isBackend() && rex_addon::get('yrewrite')->isAvailable() && rex_be_controller::getCurrentPage() == 'content/functions') {
		rex_yrewrite::generatePathFile([]);
	}
});