Eigene Felder in einer Beitragsliste anzeigen.

  • Joomla Version
    4.3.4
    PHP Version
    PHP 7.4.x
    Hoster
    fc-hosting.de
    Link (URL) zur Seite mit dem Problem
    Seite gibts noch nicht

    Hallo zusammen,


    ich bin neu hier und bin gerade dabei mich in Joomla! einzuarbeiten, weil der Verein, für den ich das jetzt mache, schon Joomla! hatte und es später wieder übergeben werde.

    Ich habe schon ein gewisses IT-Know-How. Für meine anderen Vereine und für meine Frau habe ich selber CMS geschrieben, natürlich nicht so umfangreich wie Joomla!. Diese ist das erste mal, dass ich mit einem "fremden" CMS arbeite(n muss). Bei einem meiner eigenen CMS wäre das folgende Problem logischer Weise kein Problem, weil ich wüsste wo ich drehen muss. Ich möchte aber die Webside nicht so verbiegen, dass ein nicht ITler sie später nicht mehr verwalten kann. Ich möchte am liebsten das Problem mit Bordmitteln lösen.


    Der Verein hat eine ganze Reihe an Schulungs- und Fachbücher, die sich die Mitglieder ausleihen können. Ich würde gerne eine Bibliothek für den internen Bereich machen.

    Mein aktueller Ansatz ist; ich habe eine Kategorie, die nennt sich Bibliothek, dann habe ich auf Beitragsebene verschiedene Felder eingerichtet, wie Inventarnummer, Verlag, Autor, Auflage etc. und eine Feldgruppe Bibliothek. Konzept ist, Jedes Buch ist ein eigener Beitrag und der Bibliothekar kann kurze Zusammenfassungen und Empfehlungen schreiben. Rechtemäßig kann er auch inzwischen die eigenen Felder auf der Side füllen (hab ich gefunden vain ).


    Jetzt möchte ich aber die Bücher in einer Liste anzeigen, was ich auch geschafft habe, mit Layout: Liste unter Optionen bei der Kategorie. Aber ich möchte nun, dass in dieser Liste auch einige der eigenen Felder mit angezeigt werden, wie Verlag und Autor (nicht der author im Sinne von Joomla!, den habe ich schon ausgeblendet).


    Ich hab schon viel gesucht, sowohl hier, wie auch generell. Leider hab ich nichts gefunden, bzw. falsches Thema, vermutlich weil "Beitragsliste" von den Suchmaschinen fehlinterpretiert wird. Hab immer nur Hinweise zur "Beitragsliste" auf der Adminseite bekommen.


    Achja von wegen verbiegen, Overwrites sind ok, ich möchte nur nicht in den Dateimanager und dort irgendwelche PHP-Dateien manipulieren, die dann beim nächsten Update wieder überschrieben werden.


    Ich hoffe das Problem ist gut genug erklärt ;) und ihr habt ne Lösung dafür.

    Viele Grüße

    Heiko

  • Dafür macht man ja Overrides der entsprechenden Dateien. Damit werden sie nicht überschrieben.

    Ja, das ist mir schon klar, aber wenn ich das Konzept richtig verstanden habe,beim Schreiben eigener Module, steckt der Data-Retrieve in den Helper-Dateien. Und in der default_items.php in mod_articels_category in der ich denke, dass dort in Zeile 35 (Cassiopeia) die Stelle ist, die für die Anzeige der Joomla!-Authors verantwortlich ist, wird auf Helper-Dateien referenziert. Ich finde in der Liste nur keine Helper-Dateien um einen Overwrite zu generieren.

    Deshalb habe ich die Befürchtung, dass ich an den Helper-Dateien selber rumschrauben müsste, oder ein eigenes Modul schreiben.

  • Jetzt möchte ich aber die Bücher in einer Liste anzeigen, was ich auch geschafft habe, mit Layout: Liste unter Optionen bei der Kategorie. Aber ich möchte nun, dass in dieser Liste auch einige der eigenen Felder mit angezeigt werden, wie Verlag und Autor (nicht der author im Sinne von Joomla!, den habe ich schon ausgeblendet).

    Deine Details sind leider nicht eindeutig genug.

    Das was du da als Ausgabe wohl gefunden hast ist der &view=category einer einzelnen Kategorie.


    Am besten wäre immer auch ein Link zum Problem!

    Bei Joomla wird übrigens vieles über den jeweiligen Menüeintrag festgelegt...


    Möchtest du die gewünschte Liste per Menüeintrag vom Menüeintragstyp Kategorieliste auf der Website ausgeben lassen?


    help.joomla.org/proxy?keyref=Help43:Menu_Item:_Category_List&lang=de


    Oder um welchen Menüeintragstyp handelt es sich beim Menüeintrag der die genannte Liste anzeigt ?


    Eventuell nützlich:


    Anzeige der Custom-Fields in der Kategorieliste per Override


    docs.joomla.org/J3.x:Adding_custom_fields/Overrides/de


    docs.joomla.org/J3.x:Layout_Overrides_in_Joomla#Component_Alternative_Layouts


    Override als Ergänzung nicht als Ersatz

  • Oder möchtest du die gewünschte Liste in einem Modul vom Typ Beiträge-Kategorie an einer Modul-Position veröffentlichen?


    help.joomla.org/proxy?keyref=Help43:Site_Modules:_Articles_-_Category&lang=de


    ...Deshalb habe ich die Befürchtung, dass ich an den Helper-Dateien selber rumschrauben müsste, oder ein eigenes Modul schreiben...

    Das wird beides wohl nicht notwendig sein um das gewünschte zu erreichen.

  • Aber ich möchte nun, dass in dieser Liste auch einige der eigenen Felder mit angezeigt werden, wie Verlag und Autor

    Dazu greifst du im template override auf die feldinhalte zu und fügst diese an der richtigen stelle ein.


    Hier wird das ausführlich beschrieben:

    Joomla-Overrides und Custom Fields - ein Dreamteam
    Unsere Expertin zeigt Ihnen, wie Sie Joomla Overrides nutzen und eigene Felder (Custom Fields) für Beiträge, Kategorien, Kontakte & Benutzer definieren.
    www.hosteurope.de


    Wenn du somit in einem template bist, wo die objekte deiner custom fields vorhanden sind (also z.B Custom-Fields eines Beitrags in einer Beitragsliste), dann kannst du damit auf die Felder zugreifen:

    Code
    echo $article->jcfields[$id]->value;


    Wenn du jedoch auf cross type Felder zugreifen möchtest, also zum Benutzer-Felder in einem Beitrag, dann musst du den FieldsHelper dazu nehmen:

    Code
    $fields = FieldsHelper::getFields($context, $user);
    echo $fields[$id]->value;

    JoomGallery::friends ist aktuell noch auf der Suche nach Helfern für die JoomGallery 4 Entwicklung!

    Gesucht sind Leute für die PHP-Entwicklung, zum Testen, Übersetzen und Dokumentieren.

    Bei Interesse melde dich per PM oder Mail bei mir (Elfangor93).

  • Hallo zusammen,

    erstmal vielen Dank für die konstruktiven hinweise und Links. Den ersten Post von Sieger66 hatte ich mir gestern sch mal angeschaut und habe dabei festgestellt, dass im komplett falschen Overwrite rumwurschtel. Ich denke, dass das richtige das ‎/templates/cassiopeia/html/com_content/category/default_articles.php ist. Die anderen beiden Post schaue ich mir dann gleich mal an.

    Ja, was mir aufgefallen ist viele der Tutorials sind für 3. Ich hatte schon gedacht das könnte daran liegen, aber wenn ihr sagt 3 gilt auch für 4 dann liegts noch an mir ;).

    Wenn ich an einem Overwrite was geändert habe, muss ich dann noch was anderes tun als es zu speichern?


    Viele Grüße

    Heiko

  • Nein du mußt sonst nichts tun aber das löschen des Browser-Cache und/oder Joomla-Cache kann notwendig sein damit du anschließend vom Frontend die geänderte Ansicht bekommst beim erneuten aufrufen der selben Seite.

    Am besten das Joomla-Caching und Browser-Caching deaktivieren zumindest solange man Overrides bearbeitet.


    Joomla! Help Screens


    Je nach Webhoster spuckt manchmal auch noch ein Server per Caching in die Suppe und führt zu verzögertem anzeigen der gänderten Site.


    Ich denke, dass das richtige das ‎/templates/cassiopeia/html/com_content/category/default_articles.php ist.

    Ja richtig, z.B. für die Beiträge-Liste per Menüeintrag vom Menüeintragstyp Kategorieliste per Cassiopeia-Template ausgegeben. Wie z.B. auch mein erster Link in #4 usw. und auch in #7 verlinkt.

    Gruß Sieger66. Fragen und Antworten zu Joomla in den Joomla-FAQ´s & How To´s :!:


    Die Suchfunktion im Forum ist dort: SUCHE und die Suche nach Tags dort: TAGS

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: Ein Beitrag von Sieger66 mit diesem Beitrag zusammengefügt.

  • Hallo zusammen,

    noch mal vielen Dank für die Hinweise und ich werde mir nochmal die Grundlagen reinziehen, um das gesamte Konzept besser zu verstehen.

    Der gepostete Artikel von Elfangor93 ist exakt das was ich gesucht habe, vielen Dank. Leider ist Artikel an einer Stelle nicht ganz sauber. Dort wird als Modifikation angegeben:

    PHP
    <th scope="col" id="categorylist_header_form">
    <?php echo JHtml::_('grid.sort', $article->jcfields[13]->label, 'a.title', $listDirn, $listOrder, null, 'asc', '', 'adminForm'); ?>
    </th>

    Leider ist 'a.title' die Sortierung für den Titel, so dass er weiter nach Titel sortiert auch wenn ich auf eine andere Spalte klicke. Außerdem ist das Sortierzeichen (Pfeil rauf/runter) überall gleich. Wenn man sich den Screenshot im Artikel ansieht ist es dort auch der Fall :(

    Das ist das einzige was noch unschön ist, der rest ist super. Ich habe leider in dem gesamten Code nirgend gefunden wo 'a.title' definiert ist oder ich zB 'a.verlag' definieren könnte. Ich vermute es steckt im JHtml.


    Viele Grüße

    Heiko

  • Ja, der Fehler in dem Linkziel von #7 bezüglich der Sortierung ist schon länger bekannt:


    eigenes Feld sortieren


    JHTML ist veraltet, es wird jetzt HTMLHelper verwendet per namespace in Verbindung mit

    use Joomla\CMS\HTML\HTMLHelper;

    z.B. am Anfang der Template-Override-Datei bzw. der Datei:

    github.com/joomla/joomla-cms/blob/4.3.4/components/com_content/tmpl/category/default_articles.php#L129


    Eventuell nützlich und siehe auch dort namespace in Zeile 10:


    github.com/joomla/joomla-cms/blob/4.3.4/libraries/src/HTML/HTMLHelper.php#L105-L181


    github.com/joomla/joomla-cms/blob/4.3.4/libraries/src/HTML/Helpers/Grid.php#L26-L78


    Der gepostete Artikel von Elfangor93 ist exakt das was ich gesucht habe

    und ist übrigens auch schon in meinem obigen post#4 im zweiten Linkziel im Eröffnungspost verlinkt vorhanden ;)

    und auch den Thread vom Linkziel in #12 solltest du einmal komplett lesen.

    Gruß Sieger66. Fragen und Antworten zu Joomla in den Joomla-FAQ´s & How To´s :!:


    Die Suchfunktion im Forum ist dort: SUCHE und die Suche nach Tags dort: TAGS

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: 2 Beiträge von Sieger66 mit diesem Beitrag zusammengefügt.

  • Durch das zusammenfügen von Beiträgen(Postings) durch Indigo66 ist mein obiger letzter Absatz noch unverständlich falsch und daher ergänze ich zur Korrektur:

    ...und auch den Thread

    eigenes Feld sortieren

    solltest du einmal komplett lesen.

    (Insbesondere z.B. auch das Posting #5 dort)

  • Hallo Sieger66,

    Danke für die Herausstellung das Threads nochmal. Ich hatte es heute Morgen schon gelesen und vor allem die besagte Stelle was mich etwas gefrustet hat. Die Quintessenzen steht ja leider im Posting #10 von der Verfasserin des Tutorials:


    Sortierung eigener Felder geht nicht!

    (zumindest nicht mit Bordmitteln)


    Wobei ich ja dann wieder am Anfang bin, dass ich, wenn ich auch die Sortierung haben wollen würde, doch an nicht-overwrite-bare Dateien müsste die besagte HTMLHelper Datei.

    Wobei:

    JHTML ist veraltet, es wird jetzt HTMLHelper verwendet per namespace in Verbindung mit

    use Joomla\CMS\HTML\HTMLHelper;

    z.B. am Anfang der Template-Override-Datei bzw. der Datei

    das hatte ich mir schon gedacht und in der Hoffnung, dass das mein/das Sortierproblem löst, ausgetauscht. Natürlich erwartungsgemäß erfolglos.


    Aber ich darf nicht undankbar sein ;) . Ich bin jetzt deutlich weite als zu Begin des Threads, um ehrlich zu sein ich hab das was ich wollte. Die Sortierung währe nur die Sahnehaube auf dem Kuchen 8) .


    Damit eine letzte Frage bevor ich den Erledigt Flag setze:
    Wenn ich in der hinterlegten Datenbank Felder erstelle und es kommt ein Joomla! Update (mit oder ohne Datenbankmodifikationen), werden dann die erstellten Felder wieder gelöscht? Denn ich überlege ein eigenes Modul/Plugin/ oder was auch immer später mal zu schreiben.

  • Wenn ich in der hinterlegten Datenbank Felder erstelle und es kommt ein Joomla! Update (mit oder ohne Datenbankmodifikationen), werden dann die erstellten Felder wieder gelöscht?

    Wenn du update proove sein willst, würde ich eine neue tabelle in der datenbank erstellen und darin deine eigenen felder platzieren.

    JoomGallery::friends ist aktuell noch auf der Suche nach Helfern für die JoomGallery 4 Entwicklung!

    Gesucht sind Leute für die PHP-Entwicklung, zum Testen, Übersetzen und Dokumentieren.

    Bei Interesse melde dich per PM oder Mail bei mir (Elfangor93).

  • Übrigens in der Entwickler-Dokumentation:

    docs.joomla.org/Portal:Developers/de


    docs.joomla.org/JDOC:Joomla_4_Tutorials_Project/de


    ist teilweise veralteter Code vorhanden.


    Daher siehe auch:


    Veraltete Klassen und deren Ersatz siehe im Joomla-Core-Sourcecode oder z.B. auch:


    api.joomla.org/cms-4/deprecated.html


    docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_4/de


    sowie durch Namespacing zukünftig zu verwendende Klassen siehe z.B.:


    github.com/joomla/joomla-cms/blob/4.3.4/libraries/classmap.php



    Siehe aber z.B. auch:


    Erweiterte Einführung in die Programmierung für Joomla 4



    Eventuell genügt dir aber auch eine Joomla-Erweiterung wie z.B.:


    extensions.joomla.org/extension/jl-content-fields-filter/


    extensions.joomla.org/extension/jfilters/


    Ich habe aber selbst noch keine dieser Erweiterungen benutzt...

  • Erstmal nochmal vielen Dank für die Unterstützung.

    Wenn du update proove sein willst, würde ich eine neue tabelle in der datenbank erstellen und darin deine eigenen felder platzieren.

    Ja, Du hast recht, natürlich meine ich Tabellen, bitte entschuldige die unpräzise Formulierung.


    Wow, Sieger66 das ist ja einiges an Literatur ;) . Da hab ich was zu lesen.


    Ich plane ein eigenes Modul für Bibliothen oder für Inventar allgemein zu schreiben, mit eigenen Datenbank Tabellen. Ich vermute, dass bald der nächste Thread folgt, denn meine ersten Gehversuche waren erfolglos...


    Vielen Dank

    Heiko

  • Wenn du eigene tabellen haben willst, würde ich eine Komponente erstellen, nicht ein Modul.

    Mit einer Komponente kannst du auch records in eigenen tabellen administrieren (erstellen, bearbeiten, löschen, ...).

    Ein Modul ist nur zum lesen und ausgeben gedacht.

    JoomGallery::friends ist aktuell noch auf der Suche nach Helfern für die JoomGallery 4 Entwicklung!

    Gesucht sind Leute für die PHP-Entwicklung, zum Testen, Übersetzen und Dokumentieren.

    Bei Interesse melde dich per PM oder Mail bei mir (Elfangor93).