mirror of https://github.com/vtrois/kratos
65 lines
2.6 KiB
PHP
65 lines
2.6 KiB
PHP
<?php if (!defined('ABSPATH')) {
|
|
die;
|
|
}
|
|
/**
|
|
*
|
|
* Field: upload
|
|
*
|
|
* @since 1.0.0
|
|
* @version 1.0.0
|
|
*
|
|
*/
|
|
if (!class_exists('CSF_Field_upload')) {
|
|
class CSF_Field_upload extends CSF_Fields
|
|
{
|
|
|
|
public function __construct($field, $value = '', $unique = '', $where = '', $parent = '')
|
|
{
|
|
parent::__construct($field, $value, $unique, $where, $parent);
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
|
|
$args = wp_parse_args($this->field, array(
|
|
'library' => array(),
|
|
'preview' => false,
|
|
'preview_width' => '',
|
|
'preview_height' => '',
|
|
'button_title' => esc_html__('Upload', 'csf'),
|
|
'remove_title' => esc_html__('Remove', 'csf'),
|
|
));
|
|
|
|
echo $this->field_before();
|
|
|
|
$library = (is_array($args['library'])) ? $args['library'] : array_filter((array) $args['library']);
|
|
$library = (!empty($library)) ? implode(',', $library) : '';
|
|
$hidden = (empty($this->value)) ? ' hidden' : '';
|
|
|
|
if (!empty($args['preview'])) {
|
|
|
|
$preview_type = (!empty($this->value)) ? strtolower(substr(strrchr($this->value, '.'), 1)) : '';
|
|
$preview_src = (!empty($preview_type) && in_array($preview_type, array('jpg', 'jpeg', 'gif', 'png', 'svg', 'webp'))) ? $this->value : '';
|
|
$preview_width = (!empty($args['preview_width'])) ? 'max-width:' . esc_attr($args['preview_width']) . 'px;' : '';
|
|
$preview_height = (!empty($args['preview_height'])) ? 'max-height:' . esc_attr($args['preview_height']) . 'px;' : '';
|
|
$preview_style = (!empty($preview_width) || !empty($preview_height)) ? ' style="' . esc_attr($preview_width . $preview_height) . '"' : '';
|
|
$preview_hidden = (empty($preview_src)) ? ' hidden' : '';
|
|
|
|
echo '<div class="csf--preview' . esc_attr($preview_hidden) . '">';
|
|
echo '<div class="csf-image-preview"' . $preview_style . '>';
|
|
echo '<i class="csf--remove fas fa-times"></i><span><img src="' . esc_url($preview_src) . '" class="csf--src" /></span>';
|
|
echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
|
|
echo '<div class="csf--wrap">';
|
|
echo '<input type="text" name="' . esc_attr($this->field_name()) . '" value="' . esc_attr($this->value) . '"' . $this->field_attributes() . '/>';
|
|
echo '<a href="#" class="button button-primary csf--button" data-library="' . esc_attr($library) . '">' . $args['button_title'] . '</a>';
|
|
echo '<a href="#" class="button button-secondary csf-warning-primary csf--remove' . esc_attr($hidden) . '">' . $args['remove_title'] . '</a>';
|
|
echo '</div>';
|
|
|
|
echo $this->field_after();
|
|
}
|
|
}
|
|
}
|