Giter Club home page Giter Club logo

Comments (15)

tbaddade avatar tbaddade commented on June 16, 2024

Richtig. Der Paramkey ist eine Art Namespace und sollte nur einmal vorkommen. Da der Key auch nirgends sichtbar ist, kann man diesen auch "news-category-id" nennen.

Ich werde dazu das AddOn umbauen und vermutlich komplett auf den ParamKey umstellen.

from redaxo_url.

TobiasKrais avatar TobiasKrais commented on June 16, 2024

Danke! Bis dahin ist mein fix eine ziemlich praktische Lösung.

from redaxo_url.

tbaddade avatar tbaddade commented on June 16, 2024

Ich meine, damit gehen Urls die nur über die Id angesprochen, also ohne Paramkey in der Config, verloren. Deshalb will ich das einheitlich machen.

from redaxo_url.

TobiasKrais avatar TobiasKrais commented on June 16, 2024

Nein. Dem ist nur so, wenn die falsche Artikel ID übergeben wird. Im Moment kann man an rex_getUrl irgend eine Artikel ID übergeben und es wird die URL übergeben die zum zusätzlichen Parameter passt zurückgegeben, auch wenn der nur zu einem ganz anderen Artikel passt.

from redaxo_url.

tbaddade avatar tbaddade commented on June 16, 2024

Ich meine etwas anderes. Es gibt auch diese Möglichkeit

rex_getUrl(4, '', ['id'=>3]) Die 4 ist dabei die hinterlegte Artikel Id in der Config. Der Paramkey wurde dabei in der Config nicht gesetzt.

from redaxo_url.

TobiasKrais avatar TobiasKrais commented on June 16, 2024

In dem Fall wird der Code, den ich gefixt habe gar nicht berührt. Da gibt es vorher ein if:
https://github.com/tbaddade/redaxo_url/blob/master/lib/Url/Generator.php#L613

Nur wenn ein Paramkey gesetzt wird springt er weiter:
https://github.com/tbaddade/redaxo_url/blob/master/lib/Url/Generator.php#L616
Und dann wird die in rex_getUrl() übergebene Artikel ID überschreiben.

from redaxo_url.

tbaddade avatar tbaddade commented on June 16, 2024

Habe mir das nochmal angesehen. Dein Fix wandelt sich hier in einen Bug.

Der Aufruf rex_getUr('', '', ['category-id' => $id]) wird nur dann deinen Artikel erreichen, wenn man bereits auf demselben Artikel ist, der auch in der Config hinterlegt wurde. Du müsstest ansonsten immer die Artikel-Id bei rex_getUrl mit geben. Sinn und Zweck der ParamKeys ist es aber, grad auf diese Artikel-Id zu verzichten und egal wo man sich grad innerhalb der Struktur befindet, ein Aufruf vonrex_getUr('', '', ['category-id' => $id]) immer den korrekten REDAXO-Artikel findet.

from redaxo_url.

TobiasKrais avatar TobiasKrais commented on June 16, 2024

Ich kann dein Ziel verstehen, aber hast du eine Lösung für das eigentliche Problem, also dass die URL nicht immer korrekt umgeschrieben wird? Es mag zwar sein, dass die mein fix nicht gefällt, aber das Problem besteht immer noch.

from redaxo_url.

tbaddade avatar tbaddade commented on June 16, 2024

Das Problem ist doch, dass du den ParamKey mehrfach verwendest. Dieser sollte aber nur einmal verwendet werden. Eventuell kannst du einen Dump bereitstellen, damit ich deine Variante mal testen kann.

from redaxo_url.

alxndr-w avatar alxndr-w commented on June 16, 2024

@tbaddade kannst du beim Abspeichern evtl. prüfen, ob der key schon vorhanden ist / mit einer unique-Validierung?

@TobiasKrais in deinem Fall kannst du doch auch weiterhin ohne key die URL generieren?

from redaxo_url.

TobiasKrais avatar TobiasKrais commented on June 16, 2024

Um das Szenario zu testen, könnt ihr euch das d2u_machinery Addon installieren. Beim installieren werden die Konfigurationen fürs url Addon automatisch installiert. Im d2u_machinery Addon einfach eine Testmaschine, und eine Testkategorie anlegen. Module werden auch angeboten und wenn ihr ein passendes Template zum Testen braucht, könnt ihr im d2u_helper Addon (wird fürs d2u_machinery Addon benötigt) das Template "00-1 Big Header Template" installieren. Hilft euch das schon, oder soll ich eine Testseite aufsetzen?

Nachträgliche Korrektur: Den Paramkey category_id verwende ich sowohl für die Maschinen als auch für die Gebrauchtmaschinen. Noch ein Hinweis: ich arbeite auch noch mehrsprachig.

@alexplusde: dein Vorschlag ist nicht möglich, da ich in einem Artikel sowohl mit Kategorien als auch den Maschinen in den Kategorien arbeite. Deshalb kann ich nicht ohne key arbeiten, da es sonst zu Verwechslungen kommt. Ein Live Beispiel findest du hier: http://www.meier-krantechnik.de/.

Danke für eure Geduld!

from redaxo_url.

tbaddade avatar tbaddade commented on June 16, 2024

Ich verwende bei mehreren Artikeln den ParamKey "category_id"

Den Paramkey verwende ich nicht (!) mehrfach.

Das widerspricht sich aber jetzt, oder?

Ich ging davon aus, dass du eben diesen ParamKey category_id mehrfach verwendest.

from redaxo_url.

alxndr-w avatar alxndr-w commented on June 16, 2024

@TobiasKrais hab dir in Slack geschrieben

evtl. hattest du das gleiche Problem wie ich und das ist mit der aktuellen Beta im Installer gelöst gewesen.

from redaxo_url.

TobiasKrais avatar TobiasKrais commented on June 16, 2024

@tbaddade: stimmt. Sorry, ich war im falschen Issue: Ich verwende sowohl für die Gebrauchtmaschinen (Paramkey used_machine_id) als auch für die normalen Maschinen (Paramkey machine_id) eine Kategorie mit dem Paramkey category_id, da beides mal auf die selben Kategorien zugeriffen wird. Die Unterscheidung um welchen Inhalt es sich handelt, findet bei mir also im Modul des Artikels statt.

from redaxo_url.

TobiasKrais avatar TobiasKrais commented on June 16, 2024

@tbaddade: Frage für die Zukunft dieses Issues: wird es in Zukunft nicht möglich sein, zwei gleiche Paramkeys zu verwenden? Es gibt Paramkeys, wie z.B. category_id, die potentiell mehrere Entwickler in ihren Addons verwenden könnten. Wenn der Paramkey Unique ist, würde das bedeuten, dass das Addon, das als erstes installiert ist den Vorzug bekommt. Nutzt ein weiteres Addon den selben Paramkey kann es nicht verwendet werden. Ist das so geplant?
Bitte schreib kurz zurück, damit ich meine Addons anpassen kann.

from redaxo_url.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.