Unknown.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. /**
  3. * Class NF_Fields_Unknown
  4. */
  5. class NF_Fields_Unknown extends NF_Fields_Hidden
  6. {
  7. protected $_name = 'unknown';
  8. protected $_type = 'unknown';
  9. protected $_section = '';
  10. protected $_icon = 'question';
  11. protected $_templates = 'null';
  12. protected $_aliases = array();
  13. protected $_settings_only = array(
  14. 'label', 'default'
  15. );
  16. public function __construct()
  17. {
  18. parent::__construct();
  19. $this->_nicename = __( 'Unknown', 'ninja-forms' );
  20. $this->_settings[ 'message' ] = array(
  21. 'name' => 'message',
  22. 'type' => 'html',
  23. 'label' => '',
  24. 'width' => 'full',
  25. 'group' => 'primary',
  26. );
  27. $this->_settings[ 'label' ][ 'group' ] = '';
  28. unset( $this->_settings[ 'default' ] ); // TODO: Seeing an error when removing default form the $_settings_only property, so just unsetting it here for now.
  29. add_filter( 'nf_sub_hidden_field_types', array( $this, 'hide_field_type' ) );
  30. }
  31. public function validate( $field, $data )
  32. {
  33. return array(); // Return empty array with no errors.
  34. }
  35. function hide_field_type( $field_types )
  36. {
  37. $field_types[] = $this->_name;
  38. return $field_types;
  39. }
  40. public static function create( $field )
  41. {
  42. $unknown = Ninja_Forms()->form()->field()->get();
  43. if( is_object( $field ) ){
  44. $unknown->update_settings(array(
  45. 'id' => $field->get_id(),
  46. 'label' => $field->get_setting( 'label' ),
  47. 'order' => $field->get_setting( 'order' ),
  48. 'key' => $field->get_setting( 'key' ),
  49. 'type' => 'unknown',
  50. 'message' => sprintf( __( 'Field type "%s" not found.', 'ninja-forms' ), $field->get_setting( 'type' ) )
  51. ));
  52. } elseif( isset( $field[ 'settings' ] ) ){
  53. $unknown->update_settings(array(
  54. 'id' => $field[ 'id' ],
  55. 'label' => $field[ 'settings' ][ 'label' ],
  56. 'order' => $field[ 'settings' ][ 'order' ],
  57. 'key' => $field[ 'settings' ][ 'key' ],
  58. 'type' => 'unknown',
  59. 'message' => sprintf( __( 'Field type "%s" not found.', 'ninja-forms' ), $field[ 'settings' ][ 'type' ] )
  60. ));
  61. } else {
  62. $unknown->update_settings(array(
  63. 'id' => $field[ 'id' ],
  64. 'label' => $field[ 'label' ],
  65. 'order' => $field[ 'order' ],
  66. 'key' => $field[ 'key' ],
  67. 'type' => 'unknown',
  68. 'message' => sprintf( __( 'Field type "%s" not found.', 'ninja-forms' ), $field[ 'type' ] )
  69. ));
  70. }
  71. return $unknown;
  72. }
  73. }