Closed tbaddade closed 1 year ago
Ich glaube, ich würde da gar nicht kürzen. Wenn es ein Feld ist, wo sehr lange Texte eingegeben werden, sollte man sich eher fragen, ob man es ganz aus der Liste rausnimmt.
Bitte nie irgendetwas kürzen :-). Das entspricht so gar nicht dem sonstigen Redaxo Verhalten finde ich.... hab noch nie das Problem gehabt das Inhalte zu lange waren aber jedesmal wenn etwas gekürzt wurde....
Einfach so ausgeben wie es ist finde ich am besten!!
Lösung 1 nur für eigene Zwecke:
ein eigenes Feld bauen class rex_yform_value_cliptext extends rex_yform_value_text ...
, dass in de Definitions ein zusätliches Parameter-Feld sagen wir mal clip
erhält. Default ist 40, ansonsten gilt der angegebene Wert als Kappungsgrenze und -1 als "keine Kappung". Und in der Methode public static function getListValue($params)
dann auf diesen Wert zugreifen - das wird ja wohl irgendwie gehen ....
Lösung zwei für alle:
Obige Lösung in direkt in rex_yform_value_text
einbauen.
Ach guck, die Daten wären sogar im Aufruf vorhanden; man muss gar nicht tricksen.
Baut man das neue Parameter-Feld clip
hinter prepend ein, wäre es auch dort aufgeführt.
@christophboecker danke für den PR, aber ich würde das gerne anders lösen.
Das Kürzen würde ich komplett entfernen und eher schauen wollen, wie man sich allgemein in die Ausgabe reinhacken kann, so dass man selbst entscheidet welches Feld mit welchen Daten wie gekürzt wird. Z.B. ist auch das Feld index davon betroffen und sogar wahrscheinlicher, dass es hier sinnvoll wäre zu kürzen
Ich war froh, dass gekürzt wurde, weil ich oft nicht wissen musste was in einem Textfeld drin steht, aber dass etwas im Textfeld drin steht - und dabei die Backend-Tabelle nicht nach rechts unendlich in die Breit wächst und die Aktionsbuttons verschwinden.
Darüber bin ich eigentlich auch froh. Deswegen würde ich gern vor dem nächsten Release noch eine Lösung finden. Ohne EP.
Ansonsten halte ich das Thema für schwieriger, als es aussieht.
Die Kürzung bezieht sich nur auf typische Textfelder - also text/textarea/hashvalue/ip/showvalue/email/uuid .. D. h. so allgemein kann man keine Kürzung einbauen, da diese immer feldabhängig sind.
Mir fällt jetzt leider immer nur als Lösung ein EP ein, auch wenn ich das irgendwie nicht gut finde. Dann müsste man das für jedes Feld machen, damit es einheitlich ist.
Na ja, den EP gibt es ja (YFORM_DATA_LIST). Heute nutze ich ihn, um die Verkürzung rückgängig zu machen bzw. auf meinen Wunschwert ungleich 40 einzustellen. Wenn das textfeld nicht mehr selbst verkürzt, kann wer es haben will, über den EP verkürzen.
Ansonsten denke ich, dass die von mir im EP vorgechlagene Lösung schon sehr flexibel ist. Da der Grenzwert in einem Element-Wert steht, kann man darüber den Grezwert (oder eben "unbegrenzt") einstellen. Für auf dem Text-Value aufbauende Felder wird das Element in den Definitions als Festwert eingestellt (i.d.R. "unbegrenzt").
Mir fällt jetzt leider immer nur als Lösung ein EP ein, auch wenn ich das irgendwie nicht gut finde.
Wie wäre es mit einem Callable auf das Value und auf das Label. Damit könnte man je nach Kontext beides beeinflussen.
EP gibt es ja (YFORM_DATA_LIST).
Das habe ich vergessen. Damit kann man ja alles umschreiben und zurücksetzen. Deswegen habe ich mich nun doch wieder dazu entschlossen, die allgemeine Beschränkung reinzunehmen, aber wesentlich höher zu setzen, auf mehr als 100 Zeichen, und zusätzlich in der Doku zu beschreiben, wie man über den EP seine eigenen Lösungen einbaut.
Ich denke, dass dies ein guter Kompromiss. Sorry, wenn das nicht für jeden damit ideal ist.
Ich denke, das ist ein akzeptabler Kompromiss.
Gar keine Dots initial, wer kürzen mag kann ja über den EP gehen. Die Texte werden ja auch gekürzt in den Selects und Widgets angezeigt und da war das ziemlich suboptimal.
Wie ließe sich hier eine bessere Ausgabe erzeugen https://github.com/yakamara/redaxo_yform/blob/master/lib/yform/value/text.php#L116-L118
Erst ab x Zeichen (jedoch mehr als die bisherigen 40) oder auf die Dots komplett verzichten und das Value ausgeben wie es hinterlegt ist. Der Admin greift dann selbst ein, falls das Value zu lang ist. Eine Variante wäre an der bisherigen Stelle einen EP anlegen, sodass man von außen das beeinflussen kann?