Match the featured cover buttons row to the reference theme: drop the dedicated slide button, let the icon-only image picker select multiple images into a slide cover (single pick stays an image cover), and align the loaded-state visibility matrix.
73 lines
3.0 KiB
PHP
73 lines
3.0 KiB
PHP
<?php
|
|
/**
|
|
* Cover featured editor box.
|
|
*
|
|
* @var array $ctx
|
|
* @package AKSRT
|
|
*/
|
|
defined('ABSPATH') || exit;
|
|
|
|
if (empty($ctx['settings']['allow_cover'])) {
|
|
return;
|
|
}
|
|
if (empty($ctx['can_cover_image']) && empty($ctx['can_cover_slide']) && empty($ctx['can_cover_video'])) {
|
|
return;
|
|
}
|
|
|
|
$args = $ctx['featured_args'] ?? [];
|
|
$type = (string) ($args['type'] ?? '');
|
|
$data = $args['data'] ?? [];
|
|
$can_image = !empty($ctx['can_cover_image']);
|
|
$can_slide = !empty($ctx['can_cover_slide']);
|
|
$can_video = !empty($ctx['can_cover_video']);
|
|
?>
|
|
<div class="featured-edit<?php echo $type !== '' ? ' featured-loaded ' . esc_attr($type) : ''; ?>"
|
|
data-featured-args="<?php echo esc_attr(wp_json_encode($args)); ?>">
|
|
<div class="featured-preview" data-featured-preview>
|
|
<?php if ($type === 'image' && !empty($data['url'])) : ?>
|
|
<img src="<?php echo esc_url((string) $data['url']); ?>" alt="">
|
|
<?php elseif ($type === 'slide' && is_array($data) && !empty($data[0]['url'])) : ?>
|
|
<img src="<?php echo esc_url((string) $data[0]['url']); ?>" alt="">
|
|
<span class="featured-type-badge"><i class="fa fas fa-image"></i></span>
|
|
<?php elseif ($type === 'video') : ?>
|
|
<div class="new-dplayer dplayer-scale-height" style="--scale-height:50%;"
|
|
video-url="<?php echo esc_url((string) ($data['url'] ?? '')); ?>"
|
|
video-pic="<?php echo esc_url((string) ($data['pic'] ?? '')); ?>">
|
|
<div class="graphic" style="padding-bottom:50%;">
|
|
<div class="abs-center text-center"><i class="fa fas fa-play-circle fa-4x muted-3-color opacity5" aria-hidden="true"></i></div>
|
|
</div>
|
|
</div>
|
|
<span class="featured-type-badge"><i class="fa fas fa-video"></i></span>
|
|
<?php endif; ?>
|
|
</div>
|
|
<div class="btns-full flex ac jc">
|
|
<?php if ($can_image || $can_slide) : ?>
|
|
<button type="button" class="but btn-image" data-featured-action="image"
|
|
title="<?php esc_attr_e('图片', 'aksrt'); ?>"
|
|
aria-label="<?php esc_attr_e('图片', 'aksrt'); ?>">
|
|
<i class="fa fas fa-image"></i>
|
|
</button>
|
|
<?php endif; ?>
|
|
<?php if ($can_video) : ?>
|
|
<button type="button" class="but btn-video-pic" data-featured-action="video_pic"
|
|
title="<?php esc_attr_e('设置视频封面', 'aksrt'); ?>"
|
|
aria-label="<?php esc_attr_e('设置视频封面', 'aksrt'); ?>">
|
|
<i class="fa fas fa-image"></i>
|
|
</button>
|
|
<?php endif; ?>
|
|
<?php if ($can_video) : ?>
|
|
<button type="button" class="but btn-video" data-featured-action="video"
|
|
title="<?php esc_attr_e('视频', 'aksrt'); ?>"
|
|
aria-label="<?php esc_attr_e('视频', 'aksrt'); ?>">
|
|
<i class="fa fas fa-video"></i>
|
|
</button>
|
|
<?php endif; ?>
|
|
<button type="button" class="but c-red btn-delete" data-featured-action="close" <?php echo $type === '' ? 'hidden' : ''; ?>
|
|
title="<?php esc_attr_e('清除', 'aksrt'); ?>"
|
|
aria-label="<?php esc_attr_e('清除', 'aksrt'); ?>">
|
|
<i class="fa fas fa-trash-alt"></i>
|
|
</button>
|
|
</div>
|
|
<input type="hidden" name="featured_data" value="<?php echo esc_attr(wp_json_encode(['type' => $type, 'data' => $data])); ?>" data-featured-json>
|
|
</div>
|