22 lines
979 B
PHP
22 lines
979 B
PHP
<?php
|
|
if (!defined('ABSPATH')) exit;
|
|
class WMF_Field_Registry {
|
|
private static $instance=null;
|
|
private $fields=array();
|
|
public static function instance() {
|
|
if(is_null(self::$instance)){self::$instance=new self();self::$instance->register_defaults();}
|
|
return self::$instance;
|
|
}
|
|
private function register_defaults() {
|
|
foreach(array('WMF_Field_Text','WMF_Field_Email','WMF_Field_Textarea','WMF_Field_Select',
|
|
'WMF_Field_Checkbox','WMF_Field_Radio','WMF_Field_Number','WMF_Field_Phone',
|
|
'WMF_Field_URL','WMF_Field_Date','WMF_Field_File','WMF_Field_Rating',
|
|
'WMF_Field_Range','WMF_Field_GDPR','WMF_Field_Signature',
|
|
'WMF_Field_Hidden','WMF_Field_HTML','WMF_Field_Divider') as $cls) {
|
|
$f=new $cls(); $this->fields[$f->type]=$f;
|
|
}
|
|
}
|
|
public function get_fields() { return $this->fields; }
|
|
public function get_field($type) { return $this->fields[$type]??null; }
|
|
}
|