Label von input field als Placeholder

Label von input field als Placeholder

von Johannes Ev -
Anzahl Antworten: 4

Hallo Community , 

ich hab momentan das Problem das ich bei der Registrierung gern die Labels als Placeholder in den Inputfields hätte. 

Dazu hab ich im boost/templates/core_form/element-text.mustache das Template um die Placeholder info erweitert jedoch gibt er mir hier immer nur element.name aus, was ja laut der Doku https://docs.moodle.org/dev/Templates nicht passieren dürfte. 

Hat da jemand eine Idee an was das liegen könnte ? 

{{< core_form/element-template }}

    {{$element}}

        <input type="text"

                class="form-control form-control-lg {{#error}}form-control-danger{{/error}}"

                name="{{element.name}}"

placeholder="{{#str}} element.name {{/str}}"

        {{#element.frozen}}

                readonly {{#element.hardfrozen}}disabled{{/element.hardfrozen}}

        {{/element.frozen}}

                id="{{element.id}}"

                value="{{element.value}}"

                size="{{element.size}}"

                {{#error}}

                    autofocus aria-describedby="id_error_{{element.name}}"

                {{/error}}

                {{{element.attributes}}} >

    {{/element}}

{{/ core_form/element-template }}


Vielen Dank und Gruß 

Johannes

Mittelwert:  -
Als Antwort auf Johannes Ev

Re: Label von input field als Placeholder

von Andreas Grabs -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Entwickler

Hallo Johannes,

das Template müsste so aussehen:

{{< core_form/element-template }}
    {{$element}}
        <input type="text"
                class="form-control {{#error}}form-control-danger{{/error}}"
                name="{{element.name}}"
        {{#element.frozen}}
                readonly {{#element.hardfrozen}}disabled{{/element.hardfrozen}}
        {{/element.frozen}}
                id="{{element.id}}"
                value="{{element.value}}"
                size="{{element.size}}"
                {{#error}}
                    autofocus aria-describedby="id_error_{{element.name}}"
                {{/error}}
                placeholder="{{label}}"
                {{{element.attributes}}} >
    {{/element}}
{{/ core_form/element-template }}

Viele Grüße
Andreas

Als Antwort auf Andreas Grabs

Re: Label von input field als Placeholder

von Johannes Ev -

Hallo Andreas, 

erstmal danke für die Antwort, das Problem bei deiner Lösung ist, das ich ja die Labels vor dem Inputfeld nicht mehr haben möchte, wenn ich also in der signup_form.php den String für den Label raus mache damit er nicht angezeigt wird, es auch kein Placeholderwert gibt. Deshalb hab ich versucht über den element.name den Wert zu erhalten. 


Hast du dafür evtl. noch ne Lösung ?


Gruß Johannes

Als Antwort auf Johannes Ev

Re: Label von input field als Placeholder

von Andreas Grabs -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Entwickler

Hallo Johannes,

du könntest das Template "element-template.mustache" anpassen.

Hier müsstest du um die Label-Definition eine Block-Variable erstellen. Diese kannst du dann in "element-text.mustache" überschreiben. Dadurch werden die Labels lediglich in Textfeldern entfernt und bleiben bei anderen Elementen erhalten.

Auszug aus "element-template.mustache":

        {{$ mylabeldev }}
            <label class="col-form-label d-inline {{#element.hiddenlabel}}sr-only{{/element.hiddenlabel}}" for="{{element.id}}">
                {{{label}}}
            </label>
            {{/element.staticlabel}}
            {{#element.staticlabel}}
            <span class="col-form-label d-inline-block {{#element.hiddenlabel}}sr-only{{/element.hiddenlabel}}">
                {{{label}}}
            </span>
            {{/element.staticlabel}}
        {{/ mylabeldev }}

Auszug aus "element-text.mustache"

{{< core_form/element-template }}
    {{$ mylabeldev }}
        ... deine Definition des Labels ...

    {{/ mylabeldev }}

    {{$element}}
.....
    {{/element}}
{{/ core_form/element-template }}


Viele Grüße
Andreas

Als Antwort auf Andreas Grabs

Re: Label von input field als Placeholder

von Johannes Ev -

Hallo Andreas, 

danke für deine Hilfe, hab es hinbekommen. 

Gruß 

Johannes