23 lines
1.9 KiB
PHP
23 lines
1.9 KiB
PHP
<?php
|
|
if (!defined('ABSPATH')) exit;
|
|
class WMF_Field_Textarea extends WMF_Field_Base {
|
|
public $type='textarea'; public $label='Textbereich'; public $icon='dashicons-text';
|
|
public function defaults() { return array_merge(parent::defaults(),array('rows'=>'5','max_chars'=>'')); }
|
|
public function render($field,$value='') { ?>
|
|
<div class="<?php echo esc_attr($this->wrapper_classes($field)); ?>"<?php echo $this->conditional_attrs($field); ?> data-field-id="<?php echo esc_attr($field['id']); ?>">
|
|
<?php $this->render_label($field); ?>
|
|
<textarea id="<?php echo esc_attr($field['id']); ?>" name="wmf_fields[<?php echo esc_attr($field['id']); ?>]" placeholder="<?php echo esc_attr($field['placeholder']??''); ?>" rows="<?php echo intval($field['rows']??5); ?>" <?php echo(!empty($field['required'])&&$field['required']==='1')?'required':''; ?> <?php echo(!empty($field['max_chars']))?'maxlength="'.intval($field['max_chars']).'"':''; ?> class="wmf-input wmf-textarea"><?php echo esc_textarea($value); ?></textarea>
|
|
<?php if(!empty($field['max_chars'])): ?><div class="wmf-char-count"><span class="wmf-chars-used">0</span>/<?php echo intval($field['max_chars']); ?></div><?php endif; ?>
|
|
<?php $this->render_description($field); ?>
|
|
<span class="wmf-field-error-msg"></span>
|
|
</div><?php
|
|
}
|
|
public function sanitize($v,$f) { return sanitize_textarea_field($v); }
|
|
public function settings_panel($field) {
|
|
parent::settings_panel($field); ?>
|
|
<div class="wmf-field-setting"><label>Zeilen</label><input type="number" min="2" max="30" data-setting="rows" value="<?php echo esc_attr($field['rows']??5); ?>" class="small-text"></div>
|
|
<div class="wmf-field-setting"><label>Max. Zeichen (0 = unbegrenzt)</label><input type="number" min="0" data-setting="max_chars" value="<?php echo esc_attr($field['max_chars']??''); ?>" class="small-text"></div>
|
|
<?php
|
|
}
|
|
}
|