Unerwünschte Ausgabe der Angaben für Text und Wert eines Optionsfelds in Artikelansicht

  • Hallo,

    ich verwende Joomla! 3.9.6, die Seite ist noch nicht online.


    Ich habe ein Feld vom Typ "Optionsfeld" angelegt, drei "Texte" und dazugehörige "Werte" (0, 1, 2) angelegt.

    Wenn ich als Standardwert 0, 1 oder 2 setze, erhalte ich auf einmal die Ausgabe der Beschriftung des Feldes und die Ausgabe des zugehörigen Texts zu diesem gesetzten Standardwert in der normalen Artikelansicht (kein override).



    Setze ich den Standardwert auf Null, und vergebe die Null nicht als "Wert" ist alles wie gewünscht und es erfolgt keine Ausgabe in der Artikelansicht.



    Wenn ich den Standardwert auf etwas anderes als Null und etwas anderes als die vergebenen Werte setze, kann ich das Feld nicht speichern, was ja irgendwie logisch erscheint.



    Wo ist der Zusammenhang? Und kann der Standardwert grundsätzlich auf Null gesetzt werden, unabhängig davon, ob die Null als Wert vergeben ist?

    Also, das Problem ansich lässt sich ja umgehen, aber ich würde gerne die Logik dahinter erfahren, um für andere Zusammenspiele gefeit zu sein.


    Vielen Dank im voraus.

    Mary

  • Wo ist der Zusammenhang? Und kann der Standardwert grundsätzlich auf Null gesetzt werden, unabhängig davon, ob die Null als Wert vergeben ist?


    Mary Das hat mich auch interessiert und ich habe es mir gerade genauer angesehen.


    Hier wird der Standardwert geprüft.


    Code
    1. if (empty($data['default_value']))
    2. {
    3. return true;
    4. }

    Wenn es keinen Standardwert gibt if (empty($data['default_value'])), dann ist alles gut return true.


    Dummerweise interpretiert empty () die Eingabe 0 als empty und findet, dass alles gut ist: https://www.php.net/empty


    Du hast somit einen Fehler gefunden. Denn dein Standardwert 0 ist nicht mit kein Standardwert gleich zusetzten.

  • Hallo Astrid,


    danke für Deine Neugier!

    Die "irrationale" ;) Ausgabe der Beschriftung des Feldes und des zugehörigen Texts des gesetzten Standardwerts in der normalen Artikelansicht bleibt ein Mysterium. Mir sind das ehrlich gesagt grad zu viele Ungereimtheiten, so dass ich nach anderen Lösungswegen suchen werde. Mir fehlt auch die Möglichkeit der bedingten Anzeige (z.B. als Folge einer gewählten Option) und dass eine Feldgruppe nur angezeigt werden soll, wenn einem Artikel beispielsweise ein tag zugeordnet wurde. Sonst lassen sich schwerlich Pflichtfelder verwenden, die das Abspeichern eines "normalen" Artikels unmöglich machten. Ich hoffe, dass diese schöne Komponente noch weiterentwickelt wird - nicht nur als Erweiterung Dritter.

  • Die "irrationale" ;) Ausgabe der Beschriftung des Feldes

    Was meinst du genau mit Irrationale Ausgabe?



    Für den Fehler mit dem falsch interpretierten Standardwert 0 habe ich einen Vorschlag für eine Korrektur - also einen Pull Request PR - eingereicht. Vielleicht mag jemand testen: https://github.com/joomla/joomla-cms/pull/27618

  • Ich gucke mir Deine Lösung baldigst an!


    "Irrational": In dem ersten Bild von post #1 siehst Du die Ausgabe eines ganz normalen Artikels. Kein Override.

    Dort steht: "Weiterlesen-Button: Kein Weiterlesen-Link".

    "Weiterlesen-Button" ist der Wert für Beschriftung des Feldes, um das es hier geht.

    "Kein Weiterlesen-Link" ist der Text einer Option.

    Diese beiden Werte werden in einem ganz normalen Artikel einfach ausgegeben, sobald ich für den Standardwert einen der gesetzten Options-Werte setze.

    Warum diese Werte in einem x-beliebigen Artikel ausgegeben werden - keine Ahnung.

    Setze ich z.B. den Standardwert auf 4, während die Optionswerte z.B. die Werte 0,1,2 haben, werden die Werte in der Artikelansicht nicht ausgegeben.


    Somit kann man den Standardwert nicht mit einem sinnvollen Wert vorgelegen und keine der Optionen ist vorgelegt.


    Das wiederum führt dazu, dass man das Optionsfeld nicht als Pflichtfeld anlegen kann, weil dann jeder Redakteur gezwungen wäre, das Feld auszuwählen, ohne dass er überhaupt mit der Feldgruppe (und dem zugehörigen Reiter in der Editoransicht) etwas zu tun hat.


    Und der Reiter wird immer angezeigt. Zumindest habe ich nicht gesehen, dass man die Anzeige des Reiters mit Bedingungen versehen könnte. Z.B. nur bei Artikeln mit einem bestimmten tag anzeigen etc. Das ist ein weiterer Grund, warum ich die Verwendungen Feldern momentan nicht mehr weiter in Betracht ziehe. Ist sicherlich alles zu regeln, bedeutet mir aber zu viel Eingriff.


    Ich hoffe, ich habe mich verständlich ausgedrückt.

  • Dort steht: "Weiterlesen-Button: Kein Weiterlesen-Link".

    "Weiterlesen-Button" ist der Wert für Beschriftung des Feldes, um das es hier geht.

    "Kein Weiterlesen-Link" ist der Text einer Option.

    Diese beiden Werte werden in einem ganz normalen Artikel einfach ausgegeben, sobald ich für den Standardwert einen der gesetzten Options-Werte setze.

    Warum diese Werte in einem x-beliebigen Artikel ausgegeben werden - keine Ahnung.

    Das wird in jedem x-beliebigen Artikel ausgegeben, weil es ja nun den Standardwert gibt. Joomla sieht das so, dass zu diesem Artikel standardmäßig der gesetzte Wert ausgegeben wird - wenn das Feld nicht anderweitig belegt ist. Du bist sicher davon ausgegangen, dass der Wert nur für das Backend als Standardwert verwendet wird und dies hat dich verwirrt, richtig?
    Der Text Weiterlesen-Button ist das Label, dieses könntest du ausblenden.

    Setze ich z.B. den Standardwert auf 4, während die Optionswerte z.B. die Werte 0,1,2 haben, werden die Werte in der Artikelansicht nicht ausgegeben.

    Es dürfte eigentlich nicht möglich sein, den Standardwert auf 4 zu setzten, wenn es diesen Wert unter den Optionen nicht gibt. Konntest du das tatsächlich speichern? Die 0 konntest du fälschlicherweise als Standardwert speichern. Das ist aber ein Fehler.

    Und der Reiter wird immer angezeigt. Zumindest habe ich nicht gesehen, dass man die Anzeige des Reiters mit Bedingungen versehen könnte.

    Ich meine, dass du beim Feld über Feldgruppen und Kategorien bestimmen kannst, in welchem Artikel das Feld in einem Tabulator angezeigt wird.

  • Hm, vielleicht drücke ich mich unklar aus, sorry.
    Wieso sollte der Beschreibungstext eines Feldes jemals ausgegeben werden? Er dient doch nur als Label für die Eingabemaske beim Artikel. Ich habe die Beschriftung mal in "Weiterlesen-ButtonBSP" geändert und den einen Wert in "Kein Weiterlesen-LinkichWert":




    In der Editoransicht eines Artikels sieht das dann so aus:




    Und oberhalb eines Artikels erscheint dann das hier, wenn der Standardwert = einem gesetzten Wert für eine Option ist:



    Solange der Standardwert den gleichen Wert hat wie ein Optionswert - was er ja haben müsste! - erscheint diese Ausgabe.



    Du hast Recht, dass das Speichern eines Feldes nicht möglich ist im Falle einer Abweichung von Standardwert zu allen gesetzten Optionswerten. Außer man setzt ihn eben auf Null, was bei mir zufällig der Fall war, da auch ein Optionswert Null war und ich das dann logisch fand.


    Danke für den Hinweis mit der Feldgruppen-Zuordnung in Abhängigkeit von der Kategorie-Zugehörigkeit. Das ist auf jeden Fall eine Idee. Ich brauchte nur die Felder in Artikeln aus verschiedenen Kategorien, die keinen Baum miteinander bilden. Deswegen habe ich das über ein tag geregelt und das Modul latest news entsprechend angepasst.