29 lines
1.5 KiB
PHP
29 lines
1.5 KiB
PHP
<?php
|
|
if (!defined('ABSPATH')) exit;
|
|
class WMF_Field_Signature extends WMF_Field_Base {
|
|
public $type='signature'; public $label='Unterschrift'; public $icon='dashicons-edit-page'; public $category='auswahl';
|
|
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); ?>
|
|
<div class="wmf-signature-wrap">
|
|
<canvas class="wmf-signature-canvas" id="sig_<?php echo esc_attr($field['id']); ?>" width="400" height="150"></canvas>
|
|
<div class="wmf-signature-controls">
|
|
<button type="button" class="wmf-sig-clear button">Löschen</button>
|
|
</div>
|
|
<input type="hidden" name="wmf_fields[<?php echo esc_attr($field['id']); ?>]" value="<?php echo esc_attr($value); ?>" class="wmf-signature-data">
|
|
</div>
|
|
<?php $this->render_description($field); ?>
|
|
<span class="wmf-field-error-msg"></span>
|
|
</div><?php
|
|
}
|
|
public function validate($value,$field) {
|
|
if(!empty($field['required'])&&$field['required']==='1'&&empty($value)) return sprintf('Bitte unterschreiben Sie im Feld „%s".',$field['label']);
|
|
return true;
|
|
}
|
|
public function sanitize($v,$f) {
|
|
// Base64 PNG-Daten erlaubt, sonst leer
|
|
if(strpos($v,'data:image/png;base64,')===0) return sanitize_text_field($v);
|
|
return '';
|
|
}
|
|
}
|