File "class-group.php"
Full path: /home/dora/public_html/wp-content/plugins/wp-grid-builder/includes/settings/fields/class-group.php
File size: 2.37 KB
MIME-type: --
Charset: utf-8
<?php
/**
* Group field
*
* @package WP Grid Builder
* @author Loïc Blascos
* @copyright 2019-2022 Loïc Blascos
*/
namespace WP_Grid_Builder\Includes\Settings\Fields;
use WP_Grid_Builder\Includes\Settings\Settings;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Settings API Field
*
* @class WP_Grid_Builder\Includes\Settings\Fields\Row
* @since 1.0.0
* @see WP_Grid_Builder\Includes\Settings\Field
*/
class Group extends Field {
/**
* Render HTML field
*
* @since 1.0.0
* @access public
*
* @param array $args Holds field parameters.
*/
public function render( $args ) {
if ( empty( $args['fields'] ) ) {
return;
}
$fields = $this->get_group_fields( $args );
$total = count( $fields );
$count = 0;
echo '<div class="wpgb-field-group">';
foreach ( $fields as $field ) {
++$count;
Settings::get_instance()->do_field( $field );
if ( ! empty( $args['separator'] ) && $count < $total ) {
echo '<span class="wpgb-field-group-sep">' . esc_html( $args['separator'] ) . '</span>';
}
}
echo '</div>';
}
/**
* Get and map group field names
*
* @since 1.0.0
* @access public
*
* @param array $args Holds field parameters.
*/
public function get_group_fields( $args ) {
if ( empty( $args['group_names'] ) ) {
return $args['fields'];
}
return array_map(
function( $field ) use ( $args ) {
if ( empty( $field['name'] ) ) {
$field['name'] = $args['name'] . '[' . $field['id'] . ']';
}
if ( empty( $field['value'] ) && isset( $args['value'][ $field['id'] ] ) ) {
$field['value'] = $args['value'][ $field['id'] ];
}
return $field;
},
$args['fields']
);
}
/**
* Normalize field parameters
*
* @since 1.0.0
* @access public
*
* @param array $field Holds field parameters.
* @return array
*/
public function normalize( $field ) {
return wp_parse_args(
$field,
[
'fields' => [],
'separator' => '',
'group_names' => false,
]
);
}
/**
* Sanitize field value
*
* @since 1.0.0
* @access public
*
* @param mixed $val Fields values.
* @param array $args Holds field parameters.
* @return array
*/
public function sanitize( $val, $args = [] ) {
// We do nothing because we recursively sanitize subfields.
// Subfields were already sanitized at this stage.
return $val;
}
}