refactor(widgets): remove shared redundant settings
This commit is contained in:
@@ -7,17 +7,15 @@
|
||||
|
||||
namespace AKSRT\Widgets;
|
||||
|
||||
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
class ButtonsWidget extends \WP_Widget {
|
||||
use CommonWidgetFields;
|
||||
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct('aksrt_buttons', esc_html__('AKSRT 按钮组', 'aksrt'), [
|
||||
'description' => esc_html__('显示一组自定义按钮,支持外链跳转、色系与入场动画。', 'aksrt'),
|
||||
'description' => esc_html__('显示一组自定义按钮,支持外链跳转与色系。', 'aksrt'),
|
||||
'classname' => 'widget_aksrt_buttons',
|
||||
]);
|
||||
}
|
||||
@@ -60,8 +58,6 @@ class ButtonsWidget extends \WP_Widget {
|
||||
if (!in_array($m_pad, ['small', 'medium', 'large'], true)) {
|
||||
$m_pad = 'medium';
|
||||
}
|
||||
$anim = sanitize_key((string) ($instance['obs_animation'] ?? ''));
|
||||
$anim_repeat = !empty($instance['animation_repeat']);
|
||||
$pc_width = max(0, min(400, (int) ($instance['pc_width'] ?? 0)));
|
||||
$m_width = max(0, min(400, (int) ($instance['m_width'] ?? 0)));
|
||||
|
||||
@@ -74,7 +70,6 @@ class ButtonsWidget extends \WP_Widget {
|
||||
}
|
||||
|
||||
$buts = '';
|
||||
$key = 0;
|
||||
foreach ($buttons as $btn) {
|
||||
if (!is_array($btn)) {
|
||||
continue;
|
||||
@@ -122,19 +117,13 @@ class ButtonsWidget extends \WP_Widget {
|
||||
$left_html = $icon_left !== '' ? '<i class="' . esc_attr($icon_left) . '" aria-hidden="true"></i> ' : '';
|
||||
$right_html = $icon_right !== '' ? ' <span class="ml6"><i class="' . esc_attr($icon_right) . '" aria-hidden="true"></i></span>' : '';
|
||||
|
||||
$anim_pack = function_exists('aksrt_obs_animate_attrs')
|
||||
? aksrt_obs_animate_attrs($anim, $anim_repeat, $key * 0.15)
|
||||
: ['class' => '', 'attr' => ''];
|
||||
|
||||
$tgt = $target !== '' && strpos($url, 'javascript:') !== 0
|
||||
? ' target="' . esc_attr($target) . '" rel="noopener noreferrer"'
|
||||
: '';
|
||||
|
||||
$buts .= '<div class="' . esc_attr(trim($anim_pack['class'])) . '"' . $anim_pack['attr'] . '>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
$buts .= '<a class="' . esc_attr($item_class) . '" href="' . esc_url($url) . '"' . $tgt . '>'
|
||||
$buts .= '<div><a class="' . esc_attr($item_class) . '" href="' . esc_url($url) . '"' . $tgt . '>'
|
||||
. $left_html . esc_html($text) . $right_html . '</a>';
|
||||
$buts .= '</div>';
|
||||
$key++;
|
||||
}
|
||||
|
||||
if ($buts === '') {
|
||||
@@ -192,17 +181,6 @@ class ButtonsWidget extends \WP_Widget {
|
||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hollow')); ?>" value="1" <?php checked(!empty($instance['hollow'])); ?>> <?php esc_html_e('镂空', 'aksrt'); ?></label>
|
||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('go_link')); ?>" value="1" <?php checked(!empty($instance['go_link'])); ?>> <?php esc_html_e('外链跳转页', 'aksrt'); ?></label>
|
||||
</p>
|
||||
<p>
|
||||
<label><?php esc_html_e('入场动画', 'aksrt'); ?>
|
||||
<select name="<?php echo esc_attr($this->get_field_name('obs_animation')); ?>">
|
||||
<option value="" <?php selected(($instance['obs_animation'] ?? ''), ''); ?>><?php esc_html_e('无', 'aksrt'); ?></option>
|
||||
<option value="fade" <?php selected(($instance['obs_animation'] ?? ''), 'fade'); ?>><?php esc_html_e('淡入', 'aksrt'); ?></option>
|
||||
<option value="slideup" <?php selected(($instance['obs_animation'] ?? ''), 'slideup'); ?>><?php esc_html_e('上滑', 'aksrt'); ?></option>
|
||||
<option value="slideright" <?php selected(($instance['obs_animation'] ?? ''), 'slideright'); ?>><?php esc_html_e('右滑', 'aksrt'); ?></option>
|
||||
<option value="zoomin" <?php selected(($instance['obs_animation'] ?? ''), 'zoomin'); ?>><?php esc_html_e('放大', 'aksrt'); ?></option>
|
||||
</select>
|
||||
</label>
|
||||
</p>
|
||||
<?php foreach ($buttons as $i => $btn) : ?>
|
||||
<div style="border:1px solid #ddd;padding:6px;margin-bottom:6px;border-radius:4px;">
|
||||
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name("buttons[{$i}][text]")); ?>" value="<?php echo esc_attr((string) ($btn['text'] ?? '')); ?>" placeholder="<?php esc_attr_e('按钮文字', 'aksrt'); ?>">
|
||||
@@ -217,7 +195,6 @@ class ButtonsWidget extends \WP_Widget {
|
||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name("buttons[{$i}][new_window]")); ?>" value="1" <?php checked(!empty($btn['new_window'])); ?>> <?php esc_html_e('新窗口', 'aksrt'); ?></label>
|
||||
</div>
|
||||
<?php endforeach;
|
||||
$this->render_common_form_section($instance);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -262,9 +239,7 @@ class ButtonsWidget extends \WP_Widget {
|
||||
'm_padding' => in_array(($new_instance['m_padding'] ?? 'medium'), ['small', 'medium', 'large'], true) ? $new_instance['m_padding'] : 'medium',
|
||||
'pc_width' => max(0, min(500, (int) ($new_instance['pc_width'] ?? 0))),
|
||||
'm_width' => max(0, min(500, (int) ($new_instance['m_width'] ?? 0))),
|
||||
'obs_animation' => sanitize_key((string) ($new_instance['obs_animation'] ?? '')),
|
||||
'animation_repeat'=> !empty($new_instance['animation_repeat']) ? 1 : 0,
|
||||
'buttons' => $buttons,
|
||||
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||
]; return $business;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user