1. Dashboard
  2. Articles
  3. Forum
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • More Options
  1. webEdition Forum
  2. Forum
  3. Deutschsprachiges Support Forum
  4. webEdition Feature Requests

formfield type=select erweitern

  • netzlum
  • September 25, 2023 at 1:04 PM
1st Official Post
  • netzlum
    Beginner
    Reactions Received
    3
    Posts
    31
    • September 25, 2023 at 1:04 PM
    • #1

    Zwischen wE 9.1.5 und 9.2.2 wurde das Tag we:formfield type=select so verändert, dass immer ein leeres Option-Element ausgegeben wird. Dieses Option ist zudem disabled.

    Dadurch wird aber der Redaktion die Möglichkeit genommen, einen Wert an Index-Position 0 im Select auszugeben, was durchaus der Fall sein kann. Stattdesseb wird eine wird der User gezwungen eine Auswahl zu treffen.

    M.E. wäre es sinnvoll, statt der Vorgabe eines leeren Elements der Redaktion oder den Templateantwicklern an die Hand zu geben, wie sie das Element belegen möchten. Dafür könnte die Möglichkeit ergänzt werden, Value und Option-Inhalt getrennt anzugeben.

    Die Funktion in der Klasse des formfield könnte ab Zeile 218 etwa so aussehen (nur unvollständig getestet in 9.2.2):

    Code
    /**
     *
     * @param string $name
     * @param array $tagAtts
     * @param array $ff
     * @param array $attribs @unused-param
     * @return string
     */
    protected static function select(string $name, array $tagAtts, array $ff, array $attribs): string{
        $selected = $ff['value']['value'] ?? self::$doc->getElementFromKey($name, 'ffdefault');
        $foo = explode("\n", strtr(self::$doc->getElementFromKey($name, 'ffvalues'), ["\r\n" => "\n", "\r" => "\n",]));
        //  $tagContent = (isset($attribs['multiple']) || !isset($attribs['required']) ? '' :
        //       self::htmlTag('option', ['disabled' => 'disabled', 'selected' => 'selected', 'value' => ''], ' '));
        $tagContent ='';  
        foreach ($foo as $v) {
            $v = trim($v);
            if ($v === '') {
                continue;
            }
            if (strpos($v, ',') !== false) {
                $parts = explode(',', $v);
                $part1 = trim($parts[0]);
                $part2 = trim($parts[1]);
    
                $atts = ['value' => htmlspecialchars($part1)];
                if ($selected == $v) {
                    $atts['selected'] = 'selected';
                }
                $tagContent .= self::htmlTag('option', $atts, htmlspecialchars($part2));
            } else {
                $atts = ['value' => htmlspecialchars($v)];
                if ($selected == $v) {
                    $atts['selected'] = 'selected';
                }
                $tagContent .= self::htmlTag('option', $atts, htmlspecialchars($v));
            }
        }
        return self::htmlTag('select', $tagAtts, $tagContent, true);
    }
    Display More

    Dabei können die Option-Values und Inhalte wie beisher pro Zeile eingegeben werden. Wenn es ein Komma in der Zeile gibt, wird der Wert vor dem Komma als value und der hinter als Inhalt ausgegeben. Dadurch kann man auch ein leeres value-Attribut ausgeben, das man für required braucht.

    Diese Funktion funktioniert vermutlich auch, wenn mehr als ein Komma angegeben wird, weil die Teile ignoriert werden. (Ohne Gewähr;-)

    Viele Grüße

    ludger müller
    gestaltung für bildschirm und papier aus münster in westfalen

    https://artbeit.de

    Edited once, last by netzlum (September 25, 2023 at 1:09 PM).

  • Finn
    Administrator
    Reactions Received
    12
    Posts
    295
    • September 25, 2023 at 1:41 PM
    • Official Post
    • #2

    Danke dir!

    @Marc spricht da technisch was gegen?

    https://www.wg-werbeagentur.de

    • Next Official Post
  • netzlum
    Beginner
    Reactions Received
    3
    Posts
    31
    • October 26, 2023 at 10:46 AM
    • #3

    Hallo Finn, soll ich das dann in die Bugbase eintragen?

    Viele Grüße

    ludger müller
    gestaltung für bildschirm und papier aus münster in westfalen

    https://artbeit.de

  • Finn
    Administrator
    Reactions Received
    12
    Posts
    295
    • October 27, 2023 at 12:31 PM
    • Official Post
    • #4

    Moin Ludger,

    da es keine weiteren Reaktionen gibt, trage es gerne in die Bugbase ein!

    LG

    Finn

    https://www.wg-werbeagentur.de

    • Previous Official Post

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login

Donations

200.00 EUR

Donate now

Tags

  • formfield
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™