- App
- WoltLab Suite Core
Hallo,
folgendes Szenario sei gegeben: Ein Formular mit einem Eingabefeld existiert bereits und es soll nun durch ein Plugin eine zusätzliche Einschränkung für dieses Eingabefeld eingeführt werden.
Bei der Überprüfung des Eingabefeldes in der entsprechenden Form-Klasse ist das kein Problem, die Ausgabe eines neuen innerErrors ist jedoch momentan (so weit ich es überblickt habe) nirgendwo möglich. Es wäre deshalb schön, wenn es an entsprechenden Stellen eine einfache Möglichkeit/eine Templatevariable gäbe, eigene Fehlermeldungen zu platzieren. Ebenso wäre eine $additionalFieldDescription denkbar, die es einerseits ermöglicht, bereits vorhandene Beschreibungen durch die neue Einschränkung zu ergänzen, oder andererseits dort eine Beschreibung zu ergänzen, wo es noch keine gibt.
So könnte der folgende Codeausschnitt aus avatarEdit.tpl
<div class="formElement{if $errorField == 'avatarURL'} formError{/if}" id="avatarURLDiv">
<div class="formFieldLabel">
<label for="avatarURL">{lang}wcf.user.avatar.avatarURL{/lang}</label>
</div>
<div class="formField">
<input type="text" class="inputText" name="avatarURL" value="{$avatarURL}" id="avatarURL" />
{if $errorField == 'avatarURL'}
<p class="innerError">
{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
{if $errorType == 'downloadFailed'}{lang}wcf.user.avatar.error.avatarURL.downloadFailed{/lang}{/if}
{if $errorType == 'badAvatar'}{lang}wcf.user.avatar.error.badAvatar{/lang}{/if}
{if $errorType == 'notAllowedExtension'}{lang}wcf.user.avatar.error.notAllowedExtension{/lang}{/if}
{if $errorType == 'tooLarge'}{lang}wcf.user.avatar.error.tooLarge{/lang}{/if}
{if $errorType == 'copyFailed'}{lang}wcf.user.avatar.error.copyFailed{/lang}{/if}
</p>
{/if}
</div>
</div>
Display More
dann so aussehen:
<div class="formElement{if $errorField == 'avatarURL'} formError{/if}" id="avatarURLDiv">
<div class="formFieldLabel">
<label for="avatarURL">{lang}wcf.user.avatar.avatarURL{/lang}</label>
</div>
<div class="formField">
<input type="text" class="inputText" name="avatarURL" value="{$avatarURL}" id="avatarURL" />
{if $errorField == 'avatarURL'}
<p class="innerError">
{if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if}
{if $errorType == 'downloadFailed'}{lang}wcf.user.avatar.error.avatarURL.downloadFailed{/lang}{/if}
{if $errorType == 'badAvatar'}{lang}wcf.user.avatar.error.badAvatar{/lang}{/if}
{if $errorType == 'notAllowedExtension'}{lang}wcf.user.avatar.error.notAllowedExtension{/lang}{/if}
{if $errorType == 'tooLarge'}{lang}wcf.user.avatar.error.tooLarge{/lang}{/if}
{if $errorType == 'copyFailed'}{lang}wcf.user.avatar.error.copyFailed{/lang}{/if}
{if $additionalErrors.avatarURL|isset}{@$additionalErrors.avatarURL}{/if}
</p>
{/if}
</div>
{if $additionalFieldDescriptions.avatarURL|isset}
<p class="formFieldDesc">{@$additionalFieldDescriptions.avatarURL}</p>
{/if}
</div>
Display More
Alternativ wäre auch so etwas denkbar, was vielleicht sogar besser/schöner wäre:
<div class="formElement{if $errorField == 'avatarURL'} formError{/if}" id="avatarURLDiv"> <div class="formFieldLabel"> <label for="avatarURL">{lang}wcf.user.avatar.avatarURL{/lang}</label> </div> <div class="formField"> <input type="text" class="inputText" name="avatarURL" value="{$avatarURL}" id="avatarURL" /> {if $errorField == 'avatarURL'} <p class="innerError"> {if $errorType == 'empty'} {lang}wcf.global.error.empty{/lang} {elseif $errorType == 'downloadFailed'} {lang}wcf.user.avatar.error.avatarURL.downloadFailed{/lang}{/if} {else} {lang}wcf.user.avatar.error.{@$errorType}{/lang} {/if} </p> {/if} </div> {if $additionalFieldDescriptions.avatarURL|isset} <p class="formFieldDesc">{@$additionalFieldDescriptions.avatarURL}</p> {/if}</div>