Beiträge nach Custom Fields auswählen/sortieren

  • Hallo Joomla!-Forum,

    ich bin noch relativ neu im Umgang mit Joomla und arbeite immer noch daran, die Arbeitsweise/Struktur besser zu verstehen und für mich nutzbar zu machen. Ich überlege gerade, eine Terminliste aus Terminen als Beiträge einer speziellen Kategorie mit Zusatzfeldern (Datum, Ort) zu bauen. Dabei stoße ich auf grundlegende Probleme, z.B.

    1. Wie kann ich Beiträge nach bestimmten Custom-Field-Inhalten auswählen (z.B. nur Beiträge mit MeinDatum >= heute)?
    2. Wie kann ich Beiträge nach Custom-Field-Inhalten sortieren (z.B. MeinDatum aufsteigend - dabei interessiert mich ja weniger Erstellung o.ä.)?

    Seht ihr da grundsätzliche Herangehensweisen, die funktionieren könnten oder müsste ich da den Core auf den Kopf stellen?


    Früher habe ich mal eine Seite von Null an mit PHP/MySQL programmiert, aus diesen Erfahrungen würde ich einfach die Datenbank sowas machen lassen (mit entsprechenden MySQL-Abfragen), aber direkter Datenbankzugriff ist innerhalb von Joomla (wohl aus Sicherheitsgründen) nicht erwünscht/üblich bzw. hilft hier auch kaum weiter, oder?

    Ich nehme an, ihr merkt schon, dass ich noch einiges Lernen muss; vielleicht könnt ihr mich ja auf ein paar Kapitel stoßen, die mich weiterbringen. Vielen Dank für eure Hilfe!beer

  • Das beantwortet deine Frage nicht, aber

    direkter Datenbankzugriff ist innerhalb von Joomla (wohl aus Sicherheitsgründen) nicht erwünscht/üblich

    ist so nicht richtig. Man darf das und kann das, aber sollte sich dabei der Joomla-API bedienen, nicht zuletzt der zahlreichen Sicherheits-Features wegen, wenn man sie konsequent wie hier beschrieben verwendet (z.B. quoteName(), quote() für's Sanitizing).

    Zusätzlich gewährleistet man so auch eine gewisse Kompatibilität mit MSSQL (sqlazure)-Datenbanken oder Postgresql, auch, wenn das selten im Vordergrund steht.

    Auch die Unterscheidung beim Coden, ob nun die (mittlerweile veraltete) mysql-Bibliothek oder mysqli-Bibliothek verwendet wird, fällt weg. "Beim Umschalten muss man nix am Code ändern."

  • Wenn es um das Datum geht hat Tom recht, da kannst du direkt mit den Daten des Artikels arbeiten und brauchst kein custom field. Ich hatte aber gerade einen Blog Beitrag zum Thema Custom Fields auslesen in Arbeit und nehme das zum Anlass, ihn gleich öffentlich zu machen. Vielleicht nützt es dir ja was, auch um zu sehen wie ein Datenbankzugriff generell aussieht:

  • Hey, vielen Dank für eure Antworten. Das gibt mir viele gute Denk-/Forsch-Anstöße!


    Re:Later: Danke für die fachkundige Klarstellung. So ungefähr habe ich mir das gedacht, aber hätte es gerade auf keinen Fall so auf den Punkt bringen können!;)

    Der Link zu der API-Doku ist sehr hilfreich; das ist ja ein mächtiges Werkzeug, vielen Dank! Dann muss ich jetzt nur noch studieren, wie die Beiträge und Custom Fields abgelegt sind - mittels der join-Methoden sollte dann ja ziemlich alles machbar sein.


    Indigo66 & firstlady: Das mit den 3 vorhandenen internen Daten nervt mich an meinem konkreten Beispiel auch, aber das Problem ist, dass die drei Daten ja automatisch gesetzt werden und ja auch ihren Sinn haben. Wenn ich jetzt Beiträge habe, in denen ich z.B. jeweils einen Termin ankündige, werden die natürlich in quasi beliebiger Reihenfolge erstellt/bearbeitet/veröffentlicht, sollten aber nach den manuell zu setzenden Startterminen sortierbar sein - die anderen drei Daten sind an der Stelle ja von nachrangiger Bedeutung. Oder meint ihr, man kann da relativ einfach die automatisch gesetzten Datumsfelder manuell "missbrauchen", ohne dass sie dauernd wieder von Joomla überschrieben werden?


    Aus dem Blogbeitrag kann ich auf jeden Fall eine Menge lernen, ich muss allerdings noch ein paar Sachen nachschlagen, um alles zu verstehen. Viele der Prinzipien sollten ja gut auf meinen Anwendungsfall übertragbar sein (join von Artikeln bestimmter Kategorien mit Custom Fields - genau das, was ich ja auch brauche). Auf jeden Fall vielen Dank für das detailliert ausgeführte und passende Anwendungsbeispiel!


    Dann frickel ich mal weiter, zumindest ist mir jetzt klar, dass es geht, und auch schon ungefähr wie. Genau was ich wollte, danke für euren engagierten Support!

  • Oder meint ihr, man kann da relativ einfach die automatisch gesetzten Datumsfelder manuell "missbrauchen", ohne dass sie dauernd wieder von Joomla überschrieben werden?

    Veröffentlichungsdatum und Erstellungsdatum, kannst Du manuell beeinflussen ohne dass sie wieder überschrieben werden.