Refactor Link, Linklist Widgets and rex_article_slice table to support links containing anchors#6361
Refactor Link, Linklist Widgets and rex_article_slice table to support links containing anchors#6361ynamite wants to merge 12 commits intoredaxo:5.xfrom
Conversation
|
Sorry für die vielen Commits, mir war erst gar nicht klar, dass ich das vorab lokal hätte testen können. Wieder was gelernt |
|
Könntest du bitte Beispielcode liefern?
Mein Testboot.php Project AddOn Modulausgabe Hier fehlt jeweils der Anker. Vermutlich handelst du das aber anders. Und ich vermute, du befüllst auch die Artikelliste etwas anders. Dieses |
|
Den EP nutze ich mehr oder weniger genauso wie in deinem Beispiel oben: In der Modul-Ausgabe parse ich dann Da ich das nun kenne, kann ich gerne für beides eine Lösung liefern. Gibt es noch andere Stellen/Methoden/Ersetzungen, die es zu beachten gäbe? |
|
Methoden sind ergänzt. |
|
@ynamite Gregor und ich haben uns den PR noch einmal angeschaut und würden ihn aktuell erst einmal nicht übernehmen. Nur ein Beispiel: In der Datenbank werden derzeit nur IDs bzw. kommaseparierte IDs gespeichert – bei den nachgelagerten Checks und den verwendeten Regex würde das sonst zu Problemen führen. Magst du deine Intention hinter dem PR und die Grundidee bitte noch einmal in einem Issue festhalten? Das Thema Anker ist uns bekannt und jeder von uns geht damit im Moment etwas anders um. Vielleicht ergibt sich später noch eine saubere Lösung, um Anker über die Linkmap auswählen zu können. |
|
@tbaddade Ich kann euren Entscheid verstehen, finde es aber etwas schade. FYI, ich habe das genauso in zwei Projekten im Einsatz und das funktioniert (soweit) problemlos. Mögt ihr genauer beschreiben, wo/wann das zu Problemen führen kann? Klar, es ist unschön, dass ein ID Feld zweckentfremdet wird. Bei den Link und Linkmap Vars ist das aber eigentlich nicht so tragisch. Hier überwiegt der Nutzen, imo. Ohne signifikante Änderungen an der Tabelle der Slices sehe ich keine andere Möglichkeit, Ankerpunkte vernünftig zu realisieren. Aber ja, ich fände es natürlich super, wenn es eine bessere Lösung gäbe. Mir stellt sich zudem gerade die Frage, weshalb die Link-Spalten ID-Spalten sein müssen. Wie wäre es mit JSON? Klar, breaking change und so, aber irgendwann muss man die Altlasten loswerden. Es ist tatsächlich so, dass es bis dato in Redaxo bzw. Struktur-Addon keine (standardisierte) Lösung gibt, um Ankerpunkte für Redakteure/Laien bereitzustellen. Bitte nicht als Seitenhieb verstehen, ich liebe Redaxo, aber das ist nach über 20 Jahren schon ein bisschen "naja". Intention |
Ich dachte, wir hätten einen isInUse-Check auch für Artikel, ähnlich wie wir ihn bei Medien haben (lassen sich nicht löschen, wenn noch irgendwo verwendet). Somit sehe ich zurzeit aber doch keine existierende Stelle, wo es zu einem Problem führt, sondern nur in der Theorie, bei welcher Art von Abfragen es zu Problemen führen könnte (und evtl. auch führt, je nach Projekt-/Addon-Code). Bin mir hier noch unsicher. So richtig gefallen will mir das nicht, auch wenn ich generell durchaus Sympathie für pragmatische Lösungen habe und bisher auch noch keine bessere Lösungsidee habe. |
|
Das Argument leuchtet ein. Wobei vermutlich eine Regexp möglich wäre, die allfällige Anker unterstützt. Nur als Idee: vielleicht wäre ein zukunftsorientierter Ansatz, wenn alle REX_LINKs in einer eigenen Relations-Tabelle leben würden? Mit einer Relation zu SLICE_ID und entsprechenden Indexes. Keine Ahnung wie man das am besten löst. Oder vielleicht doch in rex_article_slice direkt als JSON-Spalte? |
See also:
#6360