Ändern der Namen verhindern

  • Hallo,

    unter joomla3 konnte ich wie folgt verhindern, dass der angemeldete Nutzer seinen Namen ändern konnte.

    --

    Kopiere /components/com_users/views/profile/tmpl/edit.php

    nach

    /templates/deintemplateverzeichnis/html/com_user/profile/edit.php

    --


    Leider geht das nicht unter Joomla 4. Kann mir irgendwer sagen, wie ich verhindern kann, dass der angemeldete Nutzer seinen Namen ändern kann ?


    Danke.

  • Hallo,

    ich würde das Thema gerne nochmals aufgreifen.

    Ich konnte ja mit dem Override von:

    ../components/com_users/tmpl/profile/edit.php

    nach

    ../templates/cassiopeia/html/com_users/profile/edit.php

    und dem Eintrag in Zeile 25, das Feld Name auf readonly setzen:

    $this->form->setFieldAttribute('name', 'readonly', 'true', $group = null);


    Nun habe ich versucht mit einem weiteren Eintrag:

    $this->form->setFieldAttribute('com_fields.lk2', 'readonly', 'true', $group = null);

    ein zusätzliches Feld mit dem Namen lk2, ebenfalls auf readonly zu setzen - leider ist dem nicht so.


    Natürlich könnte ich es über das Dashboard in /Benutzer/Felder/lk2/Berechtigungen/Inhalt_von_eigenen_Feldern_Bearbeiten ändern, aber es müsste doch auch mir der Option oben gehen, oder ?

    Wer hat den Vorrang ? Das was im Override steht oder was ich im Dasboard eingebe ?

    Danke.

  • Code
    $this->form->setFieldAttribute('com_fields.lk2', 'readonly', 'true', $group = null);

    Bist denn sicher, dass "com_fields" richtig ist? Wenn nicht findest hier zum Thema "Feldbezeichner indentifizieren" einen Debug-Code. https://ghsvs.de/programmierer…rmular-felder-umsortieren


    Ob die $group hier "null" ist, weiß ich nicht auswendig. Da in Joomla 4 das einfache Mal-eben-schnell-Debuggen solcher Dinge und vieler anderer (im Unterschied zu Joomla 3) nahezu unmöglich gemacht wurde, ist mir das zu aufwendig, das mal-eben-schnell... usw.

  • Hm, ich denke schon, dass das so heisst.

    Im Quellcode der Seite steht:

    Code
    <div class="controls has-success">
    <input type="text" name="jform[com_fields][lk2]" id="jform_com_fields_lk2" value="Physik" class="form-control valid form-control-success" aria-invalid="false">
    </div>