xref: /template/strap/action/profile.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
19337a630SNickeau<?php
29337a630SNickeau
39337a630SNickeauuse ComboStrap\Bootstrap;
49337a630SNickeauuse ComboStrap\Identity;
5*04fd306cSNickeauuse ComboStrap\IdentityFormsHelper;
69337a630SNickeauuse ComboStrap\LogUtility;
79337a630SNickeauuse ComboStrap\PluginUtility;
8*04fd306cSNickeauuse ComboStrap\Site;
9*04fd306cSNickeauuse ComboStrap\SiteConfig;
10*04fd306cSNickeauuse dokuwiki\Form\Form;
11*04fd306cSNickeauuse dokuwiki\Form\InputElement;
129337a630SNickeau
139337a630SNickeauif (!defined('DOKU_INC')) die();
1437748cd8SNickeaurequire_once(__DIR__ . '/../ComboStrap/PluginUtility.php');
159337a630SNickeau
169337a630SNickeau/**
179337a630SNickeau *
189337a630SNickeau */
199337a630SNickeauclass action_plugin_combo_profile extends DokuWiki_Action_Plugin
209337a630SNickeau{
219337a630SNickeau
229337a630SNickeau    const CANONICAL = Identity::CANONICAL;
234cadd4f8SNickeau    const TAG_UPDATE = "profile-update"; // form 1
244cadd4f8SNickeau    const TAG_DELETE = "profile-delete"; // form 2
259337a630SNickeau    const FORM_PROFILE_UPDATE_CLASS = "form-" . self::TAG_UPDATE;
269337a630SNickeau    const FORM_PROFILE_DELETE_CLASS = "form-" . self::TAG_DELETE;
279337a630SNickeau    const CONF_ENABLE_PROFILE_UPDATE_FORM = "enableProfileUpdateForm";
289337a630SNickeau    const CONF_ENABLE_PROFILE_DELETE_FORM = "enableProfileDeleteForm";
299337a630SNickeau
309337a630SNickeau
319337a630SNickeau    function register(Doku_Event_Handler $controller)
329337a630SNickeau    {
339337a630SNickeau        /**
349337a630SNickeau         * To modify the profile update form and add class
359337a630SNickeau         *
369337a630SNickeau         * Deprecated object passed by the event but still in use
379337a630SNickeau         * https://www.dokuwiki.org/devel:event:html_updateprofileform_output
389337a630SNickeau         *
399337a630SNickeau         * Event using the new object but not found anywhere
409337a630SNickeau         * https://www.dokuwiki.org/devel:event:form_updateprofile_output
419337a630SNickeau         */
42*04fd306cSNickeau        if (SiteConfig::getConfValue(self::CONF_ENABLE_PROFILE_UPDATE_FORM, 1)) {
439337a630SNickeau            $controller->register_hook('HTML_UPDATEPROFILEFORM_OUTPUT', 'BEFORE', $this, 'handle_profile_update', array());
44*04fd306cSNickeau            $controller->register_hook('FORM_UPDATEPROFILE_OUTPUT', 'BEFORE', $this, 'handle_profile_update', array());
459337a630SNickeau        }
469337a630SNickeau
479337a630SNickeau        /**
489337a630SNickeau         * To modify the register form and add class
499337a630SNickeau         *
509337a630SNickeau         * Deprecated object passed by the event but still in use
519337a630SNickeau         * https://www.dokuwiki.org/devel:event:html_profiledeleteform_output
529337a630SNickeau         *
539337a630SNickeau         * Event using the new object but not found anywhere
549337a630SNickeau         * https://www.dokuwiki.org/devel:event:form_profiledelete_output
559337a630SNickeau         */
56*04fd306cSNickeau        if (SiteConfig::getConfValue(self::CONF_ENABLE_PROFILE_DELETE_FORM, 1)) {
579337a630SNickeau            $controller->register_hook('HTML_PROFILEDELETEFORM_OUTPUT', 'BEFORE', $this, 'handle_profile_delete', array());
58*04fd306cSNickeau            $controller->register_hook('FORM_PROFILEDELETE_OUTPUT', 'BEFORE', $this, 'handle_profile_delete', array());
599337a630SNickeau        }
609337a630SNickeau
619337a630SNickeau
629337a630SNickeau    }
639337a630SNickeau
649337a630SNickeau    function handle_profile_update(&$event, $param)
659337a630SNickeau    {
669337a630SNickeau
67*04fd306cSNickeau        $form = &$event->data;
68*04fd306cSNickeau        $class = get_class($form);
69*04fd306cSNickeau        switch ($class) {
70*04fd306cSNickeau            case "Doku_Form":
71*04fd306cSNickeau                /**
72*04fd306cSNickeau                 * Old one
73*04fd306cSNickeau                 * @var Doku_Form $form
74*04fd306cSNickeau                 */
75*04fd306cSNickeau                self::updateDokuFormProfileUpdate($form);
76*04fd306cSNickeau                return;
77*04fd306cSNickeau            case "dokuwiki\Form\Form";
78*04fd306cSNickeau                /**
79*04fd306cSNickeau                 * New One
80*04fd306cSNickeau                 * @var Form $form
81*04fd306cSNickeau                 */
82*04fd306cSNickeau                self::updateNewFormProfileUpdate($form);
83*04fd306cSNickeau                return;
84*04fd306cSNickeau        }
85*04fd306cSNickeau
86*04fd306cSNickeau
87*04fd306cSNickeau    }
88*04fd306cSNickeau
89*04fd306cSNickeau    public function handle_profile_delete($event, $param)
90*04fd306cSNickeau    {
91*04fd306cSNickeau
92*04fd306cSNickeau        $form = &$event->data;
93*04fd306cSNickeau        $class = get_class($form);
94*04fd306cSNickeau        switch ($class) {
95*04fd306cSNickeau            case Doku_Form::class:
96*04fd306cSNickeau                /**
97*04fd306cSNickeau                 * Old one
98*04fd306cSNickeau                 * @var Doku_Form $form
99*04fd306cSNickeau                 */
100*04fd306cSNickeau                self::updateDokuFormProfileDelete($form);
101*04fd306cSNickeau                return;
102*04fd306cSNickeau            case dokuwiki\Form\Form::class;
103*04fd306cSNickeau                /**
104*04fd306cSNickeau                 * New One
105*04fd306cSNickeau                 * @var Form $form
106*04fd306cSNickeau                 */
107*04fd306cSNickeau                self::updateNewFormProfileDelete($form);
108*04fd306cSNickeau                return;
109*04fd306cSNickeau        }
110*04fd306cSNickeau
111*04fd306cSNickeau
112*04fd306cSNickeau    }
113*04fd306cSNickeau
114*04fd306cSNickeau    private static function updateNewFormProfileDelete(Form &$form)
115*04fd306cSNickeau    {
116*04fd306cSNickeau        /**
117*04fd306cSNickeau         * The Login page is an admin page created via buffer
118*04fd306cSNickeau         * We print before the forms
119*04fd306cSNickeau         * to avoid a FOUC
120*04fd306cSNickeau         */
121*04fd306cSNickeau        print IdentityFormsHelper::getHtmlStyleTag(self::TAG_DELETE);
122*04fd306cSNickeau
123*04fd306cSNickeau
124*04fd306cSNickeau        $deleteFormClassSuffix = self::FORM_PROFILE_DELETE_CLASS;
125*04fd306cSNickeau        $form->addClass(Identity::FORM_IDENTITY_CLASS . " " . $deleteFormClassSuffix);
126*04fd306cSNickeau
127*04fd306cSNickeau        /**
128*04fd306cSNickeau         * Heading
129*04fd306cSNickeau         */
130*04fd306cSNickeau        $headerHTML = IdentityFormsHelper::getHeaderHTML($form, $deleteFormClassSuffix, false);
131*04fd306cSNickeau        if ($headerHTML != "") {
132*04fd306cSNickeau            $form->addHTML($headerHTML, 1);
133*04fd306cSNickeau        }
134*04fd306cSNickeau
135*04fd306cSNickeau        IdentityFormsHelper::deleteFieldSetAndBrFromForm($form);
136*04fd306cSNickeau
137*04fd306cSNickeau
138*04fd306cSNickeau        /**
139*04fd306cSNickeau         * Submit button
140*04fd306cSNickeau         */
141*04fd306cSNickeau        $submitButtonPosition = $form->findPositionByAttribute("type", "submit");
142*04fd306cSNickeau        if ($submitButtonPosition === false) {
143*04fd306cSNickeau            LogUtility::msg("Internal error: No submit button found");
144*04fd306cSNickeau            return;
145*04fd306cSNickeau        }
146*04fd306cSNickeau        $form->getElementAt($submitButtonPosition)
147*04fd306cSNickeau            ->addClass("btn")
148*04fd306cSNickeau            ->addClass("btn-primary");
149*04fd306cSNickeau
150*04fd306cSNickeau        /**
151*04fd306cSNickeau         * Password Input
152*04fd306cSNickeau         */
153*04fd306cSNickeau
154*04fd306cSNickeau        $passwordElementPosition = $form->findPositionByAttribute("type", "password");
155*04fd306cSNickeau        if ($passwordElementPosition === false) {
156*04fd306cSNickeau            LogUtility::msg("Internal error: No password found");
157*04fd306cSNickeau            return;
158*04fd306cSNickeau        }
159*04fd306cSNickeau
160*04fd306cSNickeau        IdentityFormsHelper::toBootStrapInputElementAndGetNewLoopingPosition($form, $passwordElementPosition, $deleteFormClassSuffix);
161*04fd306cSNickeau
162*04fd306cSNickeau
163*04fd306cSNickeau    }
164*04fd306cSNickeau
165*04fd306cSNickeau    private static function updateDokuFormProfileDelete(Doku_Form &$form)
166*04fd306cSNickeau    {
167*04fd306cSNickeau
1689337a630SNickeau        /**
1699337a630SNickeau         * The profile page is created via buffer
1709337a630SNickeau         * We print before the forms to avoid a FOUC
1719337a630SNickeau         */
172*04fd306cSNickeau        print IdentityFormsHelper::getHtmlStyleTag(self::TAG_DELETE);
1739337a630SNickeau
174*04fd306cSNickeau
1759337a630SNickeau        $class = &$form->params["class"];
176*04fd306cSNickeau        IdentityFormsHelper::addIdentityClass($class, self::FORM_PROFILE_DELETE_CLASS);
1779337a630SNickeau        $newFormContent = [];
1789337a630SNickeau
1799337a630SNickeau        /**
1809337a630SNickeau         * Header (Logo / Title)
1819337a630SNickeau         */
182*04fd306cSNickeau        $newFormContent[] = IdentityFormsHelper::getHeaderHTML($form, self::FORM_PROFILE_DELETE_CLASS, false);
183*04fd306cSNickeau
184*04fd306cSNickeau        /**
185*04fd306cSNickeau         * Field
186*04fd306cSNickeau         */
187*04fd306cSNickeau        foreach ($form->_content as $field) {
188*04fd306cSNickeau            if (!is_array($field)) {
189*04fd306cSNickeau                continue;
190*04fd306cSNickeau            }
191*04fd306cSNickeau            $fieldName = $field["name"];
192*04fd306cSNickeau            if ($fieldName == null) {
193*04fd306cSNickeau                // this is not an input field
194*04fd306cSNickeau                if ($field["type"] == "submit") {
195*04fd306cSNickeau                    /**
196*04fd306cSNickeau                     * This is important to keep the submit element intact
197*04fd306cSNickeau                     * for forms integration such as captcha
198*04fd306cSNickeau                     * They search the submit button to insert before it
199*04fd306cSNickeau                     */
200*04fd306cSNickeau                    $classes = "btn btn-primary btn-block";
201*04fd306cSNickeau                    if (isset($field["class"])) {
202*04fd306cSNickeau                        $field["class"] = $field["class"] . " " . $classes;
203*04fd306cSNickeau                    } else {
204*04fd306cSNickeau                        $field["class"] = $classes;
205*04fd306cSNickeau                    }
206*04fd306cSNickeau                    $newFormContent[] = $field;
207*04fd306cSNickeau                }
208*04fd306cSNickeau                continue;
209*04fd306cSNickeau            }
210*04fd306cSNickeau            switch ($fieldName) {
211*04fd306cSNickeau                case "oldpass":
212*04fd306cSNickeau                    $passwordText = $field["_text"];
213*04fd306cSNickeau                    $passwordFieldHTML = <<<EOF
214*04fd306cSNickeau<div>
215*04fd306cSNickeau    <input type="password" class="form-control" placeholder="$passwordText" required="required" name="$fieldName">
216*04fd306cSNickeau</div>
217*04fd306cSNickeauEOF;
218*04fd306cSNickeau                    $newFormContent[] = $passwordFieldHTML;
219*04fd306cSNickeau                    break;
220*04fd306cSNickeau                case "confirm_delete":
221*04fd306cSNickeau                    $confirmText = $field["_text"];
222*04fd306cSNickeau                    $ConfirmValue = $field["value"];
223*04fd306cSNickeau                    $rememberMeHtml = <<<EOF
224*04fd306cSNickeau<div class="checkbox rememberMe">
225*04fd306cSNickeau    <label><input type="checkbox" name="$fieldName" value="$ConfirmValue" required="required"> $confirmText</label>
226*04fd306cSNickeau</div>
227*04fd306cSNickeauEOF;
228*04fd306cSNickeau                    $newFormContent[] = $rememberMeHtml;
229*04fd306cSNickeau                    break;
230*04fd306cSNickeau                default:
231*04fd306cSNickeau                    $tag = self::TAG_DELETE;
232*04fd306cSNickeau                    LogUtility::msg("The $tag field name ($fieldName) is unknown", LogUtility::LVL_MSG_ERROR, self::CANONICAL);
233*04fd306cSNickeau
234*04fd306cSNickeau
235*04fd306cSNickeau            }
236*04fd306cSNickeau        }
237*04fd306cSNickeau        $form->_content = $newFormContent;
238*04fd306cSNickeau
239*04fd306cSNickeau    }
240*04fd306cSNickeau
241*04fd306cSNickeau    private static function updateNewFormProfileUpdate(Form &$form)
242*04fd306cSNickeau    {
243*04fd306cSNickeau        /**
244*04fd306cSNickeau         * The Login page is an admin page created via buffer
245*04fd306cSNickeau         * We print before the forms
246*04fd306cSNickeau         * to avoid a FOUC
247*04fd306cSNickeau         */
248*04fd306cSNickeau        print IdentityFormsHelper::getHtmlStyleTag(self::TAG_UPDATE);
249*04fd306cSNickeau
250*04fd306cSNickeau
251*04fd306cSNickeau        $form->addClass(Identity::FORM_IDENTITY_CLASS . " " . self::FORM_PROFILE_UPDATE_CLASS);
252*04fd306cSNickeau
253*04fd306cSNickeau
254*04fd306cSNickeau        /**
255*04fd306cSNickeau         * Heading
256*04fd306cSNickeau         */
257*04fd306cSNickeau        $headerHTML = IdentityFormsHelper::getHeaderHTML($form, self::FORM_PROFILE_UPDATE_CLASS);
258*04fd306cSNickeau        if ($headerHTML != "") {
259*04fd306cSNickeau            $form->addHTML($headerHTML, 1);
260*04fd306cSNickeau        }
261*04fd306cSNickeau
262*04fd306cSNickeau        IdentityFormsHelper::deleteFieldSetAndBrFromForm($form);
263*04fd306cSNickeau
264*04fd306cSNickeau        /**
265*04fd306cSNickeau         * Submit and reset button
266*04fd306cSNickeau         */
267*04fd306cSNickeau        IdentityFormsHelper::toBootStrapSubmitButton($form);
268*04fd306cSNickeau        IdentityFormsHelper::toBootstrapResetButton($form);
269*04fd306cSNickeau
270*04fd306cSNickeau        /**
271*04fd306cSNickeau         * Input elements
272*04fd306cSNickeau         */
273*04fd306cSNickeau        IdentityFormsHelper::toBoostrapInputElements($form, self::FORM_PROFILE_UPDATE_CLASS);
274*04fd306cSNickeau
275*04fd306cSNickeau    }
276*04fd306cSNickeau
277*04fd306cSNickeau
278*04fd306cSNickeau    private static function updateDokuFormProfileUpdate(Doku_Form &$form)
279*04fd306cSNickeau    {
280*04fd306cSNickeau
281*04fd306cSNickeau        /**
282*04fd306cSNickeau         * The profile page is created via buffer
283*04fd306cSNickeau         * We print before the forms to avoid a FOUC
284*04fd306cSNickeau         */
285*04fd306cSNickeau        print IdentityFormsHelper::getHtmlStyleTag(self::TAG_UPDATE);
286*04fd306cSNickeau
287*04fd306cSNickeau
288*04fd306cSNickeau        $class = &$form->params["class"];
289*04fd306cSNickeau        IdentityFormsHelper::addIdentityClass($class, self::FORM_PROFILE_UPDATE_CLASS);
290*04fd306cSNickeau        $newFormContent = [];
291*04fd306cSNickeau
292*04fd306cSNickeau        /**
293*04fd306cSNickeau         * Header (Logo / Title)
294*04fd306cSNickeau         */
295*04fd306cSNickeau        $newFormContent[] = IdentityFormsHelper::getHeaderHTML($form, self::FORM_PROFILE_UPDATE_CLASS);
2969337a630SNickeau
2979337a630SNickeau
2989337a630SNickeau        /**
2999337a630SNickeau         * Form Attributes
3009337a630SNickeau         * https://getbootstrap.com/docs/5.0/forms/layout/#horizontal-form
3019337a630SNickeau         */
3029337a630SNickeau        $rowClass = "row";
3039337a630SNickeau        if (Bootstrap::getBootStrapMajorVersion() == Bootstrap::BootStrapFourMajorVersion) {
3049337a630SNickeau            $rowClass .= " form-group";
3059337a630SNickeau        }
3069337a630SNickeau        $firstColWeight = 5;
3079337a630SNickeau        $secondColWeight = 12 - $firstColWeight;
3089337a630SNickeau
3099337a630SNickeau
3109337a630SNickeau        /**
3119337a630SNickeau         * Replace the field
3129337a630SNickeau         *
3139337a630SNickeau         * The password text localized by lang is shared
3149337a630SNickeau         * between the password and the password check field
3159337a630SNickeau         */
3169337a630SNickeau        $passwordText = "Password";
3179337a630SNickeau        foreach ($form->_content as $field) {
3189337a630SNickeau            if (!is_array($field)) {
3199337a630SNickeau                continue;
3209337a630SNickeau            }
3219337a630SNickeau            $fieldName = $field["name"];
3229337a630SNickeau            if ($fieldName == null) {
3239337a630SNickeau                // this is not an input field
3249337a630SNickeau                switch ($field["type"]) {
3259337a630SNickeau                    case "submit":
3269337a630SNickeau                        /**
3279337a630SNickeau                         * This is important to keep the submit element intact
3289337a630SNickeau                         * for forms integration such as captcha
3299337a630SNickeau                         * The search the submit button to insert before it
3309337a630SNickeau                         */
3319337a630SNickeau                        $classes = "btn btn-primary";
3329337a630SNickeau                        if (isset($field["class"])) {
3339337a630SNickeau                            $field["class"] = $field["class"] . " " . $classes;
3349337a630SNickeau                        } else {
3359337a630SNickeau                            $field["class"] = $classes;
3369337a630SNickeau                        }
3379337a630SNickeau                        $field["tabindex"] = "6";
3389337a630SNickeau                        $newFormContent[] = $field;
3399337a630SNickeau                        break;
3409337a630SNickeau                    case "reset":
3419337a630SNickeau                        $classes = "btn btn-secondary";
3429337a630SNickeau                        if (isset($field["class"])) {
3439337a630SNickeau                            $field["class"] = $field["class"] . " " . $classes;
3449337a630SNickeau                        } else {
3459337a630SNickeau                            $field["class"] = $classes;
3469337a630SNickeau                        }
3479337a630SNickeau                        $field["tabindex"] = "7";
3489337a630SNickeau                        $newFormContent[] = $field;
3499337a630SNickeau                        break;
3509337a630SNickeau                }
3519337a630SNickeau                continue;
3529337a630SNickeau            }
3539337a630SNickeau            switch ($fieldName) {
3549337a630SNickeau                case "login":
3559337a630SNickeau                    $loginText = $field["_text"];
3569337a630SNickeau                    $loginValue = $field["value"];
3579337a630SNickeau                    $loginHTML = <<<EOF
3589337a630SNickeau<div class="$rowClass">
3599337a630SNickeau    <label for="inputUserName" class="col-sm-$firstColWeight col-form-label">$loginText</label>
3609337a630SNickeau    <div class="col-sm-$secondColWeight">
3619337a630SNickeau      <input type="text" class="form-control" id="inputUserName" placeholder="Username" name="$fieldName" value="$loginValue" disabled>
3629337a630SNickeau    </div>
3639337a630SNickeau</div>
3649337a630SNickeauEOF;
3659337a630SNickeau                    $newFormContent[] = $loginHTML;
3669337a630SNickeau                    break;
3679337a630SNickeau                case "fullname":
3689337a630SNickeau                    $fullNameText = $field["_text"];
3699337a630SNickeau                    $fullNameValue = $field["value"];
3709337a630SNickeau                    $fullNameHtml = <<<EOF
3719337a630SNickeau<div class="$rowClass">
3729337a630SNickeau    <label for="inputRealName" class="col-sm-$firstColWeight col-form-label">$fullNameText</label>
3739337a630SNickeau    <div class="col-sm-$secondColWeight">
3749337a630SNickeau      <input type="text" class="form-control" id="inputRealName" placeholder="$fullNameText" tabindex="1" name="$fieldName" value="$fullNameValue" required="required">
3759337a630SNickeau    </div>
3769337a630SNickeau</div>
3779337a630SNickeauEOF;
3789337a630SNickeau                    $newFormContent[] = $fullNameHtml;
3799337a630SNickeau                    break;
3809337a630SNickeau                case "email":
3819337a630SNickeau                    $emailText = $field["_text"];
3829337a630SNickeau                    $emailValue = $field["value"];
3839337a630SNickeau                    $emailHTML = <<<EOF
3849337a630SNickeau<div class="$rowClass">
3859337a630SNickeau    <label for="inputEmail" class="col-sm-$firstColWeight col-form-label">$emailText</label>
3869337a630SNickeau    <div class="col-sm-$secondColWeight">
3879337a630SNickeau      <input type="email" class="form-control" id="inputEmail" placeholder="name@example.com" tabindex="2" name="$fieldName" value="$emailValue" required="required">
3889337a630SNickeau    </div>
3899337a630SNickeau</div>
3909337a630SNickeauEOF;
3919337a630SNickeau                    $newFormContent[] = $emailHTML;
3929337a630SNickeau                    break;
3939337a630SNickeau                case "newpass":
3949337a630SNickeau                    $passwordText = $field["_text"];
3959337a630SNickeau                    $passwordHtml = <<<EOF
3969337a630SNickeau<div class="$rowClass">
3979337a630SNickeau    <label for="inputPassword" class="col-sm-$firstColWeight col-form-label">$passwordText</label>
3989337a630SNickeau    <div class="col-sm-$secondColWeight">
3999337a630SNickeau      <input type="password" class="form-control" id="inputPassword" placeholder="$passwordText" tabindex="3" name="$fieldName">
4009337a630SNickeau    </div>
4019337a630SNickeau</div>
4029337a630SNickeauEOF;
4039337a630SNickeau                    $newFormContent[] = $passwordHtml;
4049337a630SNickeau                    break;
4059337a630SNickeau                case "passchk":
4069337a630SNickeau                    $passwordCheckText = $field["_text"];
4079337a630SNickeau                    $passwordCheckHtml = <<<EOF
4089337a630SNickeau<div class="$rowClass">
4099337a630SNickeau    <label for="inputPasswordCheck" class="col-sm-$firstColWeight col-form-label">$passwordCheckText</label>
4109337a630SNickeau    <div class="col-sm-$secondColWeight">
4119337a630SNickeau      <input type="password" class="form-control" id="inputPasswordCheck" placeholder="$passwordText" tabindex="4" name="$fieldName">
4129337a630SNickeau    </div>
4139337a630SNickeau</div>
4149337a630SNickeauEOF;
4159337a630SNickeau                    $newFormContent[] = $passwordCheckHtml;
4169337a630SNickeau                    break;
4179337a630SNickeau                case "oldpass":
4189337a630SNickeau                    $passwordCheckText = $field["_text"];
4199337a630SNickeau                    $passwordCheckHtml = <<<EOF
4209337a630SNickeau<div class="$rowClass">
4219337a630SNickeau    <label for="inputPasswordCheck" class="col-sm-$firstColWeight col-form-label">$passwordCheckText</label>
4229337a630SNickeau    <div class="col-sm-$secondColWeight">
4239337a630SNickeau      <input type="password" class="form-control" id="inputPasswordCheck" placeholder="$passwordCheckText" tabindex="5" name="$fieldName" required="required">
4249337a630SNickeau    </div>
4259337a630SNickeau</div>
4269337a630SNickeauEOF;
4279337a630SNickeau                    $newFormContent[] = $passwordCheckHtml;
4289337a630SNickeau                    break;
4299337a630SNickeau
4309337a630SNickeau
4319337a630SNickeau                default:
4329337a630SNickeau                    $tag = self::TAG_UPDATE;
4339337a630SNickeau                    LogUtility::msg("The $tag field name ($fieldName) is unknown", LogUtility::LVL_MSG_ERROR, self::CANONICAL);
4349337a630SNickeau
4359337a630SNickeau            }
4369337a630SNickeau        }
4379337a630SNickeau
4389337a630SNickeau
4399337a630SNickeau        /**
4409337a630SNickeau         * Update
4419337a630SNickeau         */
4429337a630SNickeau        $form->_content = $newFormContent;
4439337a630SNickeau
4449337a630SNickeau    }
4459337a630SNickeau
4469337a630SNickeau}
4479337a630SNickeau
448