<?php
/**
* @package Pods\Fields
*/
class PodsField_Password extends PodsField {
/**
* Field Type Group
*
* @var string
* @since 2.0
*/
public static $group = 'Text';
/**
* Field Type Identifier
*
* @var string
* @since 2.0
*/
public static $type = 'password';
/**
* Field Type Label
*
* @var string
* @since 2.0
*/
public static $label = 'Password';
/**
* Field Type Preparation
*
* @var string
* @since 2.0
*/
public static $prepare = '%s';
/**
* Do things like register/enqueue scripts and stylesheets
*
* @since 2.0
*/
public function __construct () {
}
/**
* Add options and set defaults to
*
* @return array
*
* @since 2.0
* @return array
*/
public function options () {
$options = array(
self::$type . '_max_length' => array(
'label' => __( 'Maximum Length', 'pods' ),
'default' => 255,
'type' => 'number',
'help' => __( 'Set to 0 for no limit', 'pods' )
)/*,
self::$type . '_size' => array(
'label' => __( 'Field Size', 'pods' ),
'default' => 'medium',
'type' => 'pick',
'data' => array(
'small' => __( 'Small', 'pods' ),
'medium' => __( 'Medium', 'pods' ),
'large' => __( 'Large', 'pods' )
)
)*/
);
return $options;
}
/**
* Define the current field's schema for DB table storage
*
* @param array $options
*
* @return array
* @since 2.0
*/
public function schema ( $options = null ) {
$length = (int) pods_var( self::$type . '_max_length', $options, 255, null, true );
$schema = 'VARCHAR(' . $length . ')';
if ( 255 < $length || $length < 1 )
$schema = 'LONGTEXT';
return $schema;
}
/**
* Customize output of the form field
*
* @param string $name
* @param mixed $value
* @param array $options
* @param array $pod
* @param int $id
*
* @since 2.0
*/
public function input ( $name, $value = null, $options = null, $pod = null, $id = null ) {
$options = (array) $options;
$form_field_type = PodsForm::$field_type;
if ( is_array( $value ) )
$value = implode( ' ', $value );
pods_view( PODS_DIR . 'ui/fields/password.php', compact( array_keys( get_defined_vars() ) ) );
}
/**
* Validate a value before it's saved
*
* @param mixed $value
* @param string $name
* @param array $options
* @param array $fields
* @param array $pod
* @param int $id
* @param null $params
*
* @return array|bool
* @since 2.0
*/
public function validate ( $value, $name = null, $options = null, $fields = null, $pod = null, $id = null, $params = null ) {
$errors = array();
$check = $this->pre_save( $value, $id, $name, $options, $fields, $pod, $params );
if ( is_array( $check ) )
$errors = $check;
else {
if ( 0 < strlen( $value ) && strlen( $check ) < 1 ) {
if ( 1 == pods_var( 'required', $options ) )
$errors[] = __( 'This field is required.', 'pods' );
}
}
if ( !empty( $errors ) )
return $errors;
return true;
}
}