Anfang des Jahres hatte ich vorgeschlagen, benötigte Felder im Kommentarformular durch das Fettdrucken des Namens zu kennzeichnen. Dank Yellowleds Anfrage und Garvins Antwort im Serendipity-Forum kann ich nun zeigen, wie man das dynamisch macht.
In die config.inc.php des genutzten Templates (wenn noch nicht vorhanden, einfach anlegen) fügt man folgenden Code ein:
$required_fieldlist = serendipity_db_query("SELECT value FROM {$serendipity['dbPrefix']}config WHERE name LIKE '%spamblock%required_fields'", true, 'assoc');
$required_fields = explode(',', $required_fieldlist['value']);
$smarty_required_fields = array();
foreach($required_fields AS $required_field) {
$required_field = trim($required_field);
if (empty($required_field)) continue;
$smarty_required_fields[$required_field] = $required_field;
}
$serendipity['smarty']->assign('required_fields', $smarty_required_fields);
Dadurch wird der Status eines Feldes den Smartyvariablen $required_fields.x zugeordnet. Z.B. kann man nun dynamisch immer dann das Feld für den Namen fettdrucken, wenn diese Angabe erforderlich ist, indem man es so in der commentform.tpl ausgibt:
if {$required_fields.name}
<td class="serendipity_commentsLabel"><label for="serendipity_commentform_name"><strong>{$CONST.NAME}</strong></label></td>
{else}
<td class="serendipity_commentsLabel"><label for="serendipity_commentform_name">{$CONST.NAME}</label></td>
{/if}
<td class="serendipity_commentsValue"><input type="text" id="serendipity_commentform_name" name="serendipity[name]" value="{$commentform_name}" size="30" /></td>
Macht man das gleiche nun mit allen anderen Feldern, passt sich dieser Teil des Kommentarformulars dynamisch an die Einstellungen im Spamblock-Plugin an.