File "class-image.php"

Full path: /home/dora/public_html/wp-content/plugins/wp-grid-builder/includes/settings/fields/class-image.php
File size: 1.79 KB
MIME-type: --
Charset: utf-8

<?php
/**
 * Image 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\Helpers;

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Settings API Field
 *
 * @class WP_Grid_Builder\Includes\Settings\Fields\Image
 * @since 1.0.0
 * @see WP_Grid_Builder\Includes\Settings\Field
 */
class Image extends Field {

	/**
	 * Render HTML field
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @param array $args Holds field parameters.
	 */
	public function render( $args ) {

		$url = ! empty( $args['value'] ) ? wp_get_attachment_image_src( $args['value'], 'medium' ) : null;

		echo '<div class="wpgb-image" title="' . esc_attr( 'Select image' ) . '">';
			echo '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="' . esc_attr( $args['value'] ) . '">';
			Helpers::get_icon( 'plus' );
			echo '<div class="wpgb-image-background" style="' . esc_attr( $url ? 'background-image: url(' . esc_url( $url[0] ) . ')' : '' ) . '"></div>';
			echo '<span class="wpgb-image-delete" title="' . esc_attr__( 'Delete image', 'wp-grid-builder' ) . '">';
				Helpers::get_icon( 'cross' );
			echo '</span>';
		echo '</div>';

	}

	/**
	 * 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,
			[ 'default' => '' ]
		);

	}

	/**
	 * Sanitize field value
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @param mixed $val  Field value.
	 * @param array $args Holds field parameters.
	 * @return integer
	 */
	public function sanitize( $val, $args = [] ) {

		return ! empty( $val ) ? (int) $val : '';

	}
}