对小工具进行了一些修复

This commit is contained in:
2026-08-26 09:30:40 +08:00
parent bb9413cba6
commit 411905f919
7 changed files with 128 additions and 43 deletions
+28 -15
View File
@@ -34,41 +34,54 @@ final class GeneralRenderer {
}
private static function render_icon_cards(array $i): string {
return self::icon_cards((array) $i['cards'], false, (int) $i['pc_row'], (int) $i['m_row']);
return self::icon_cards($i, false);
}
private static function render_icon_cover_cards(array $i): string {
return self::icon_cards((array) $i['cards'], true, (int) $i['pc_row'], (int) $i['m_row']);
return self::icon_cards($i, true);
}
private static function icon_cards(array $cards, bool $cover, int $pc, int $mobile): string {
$html = '<div class="aksrt-widget-grid aksrt-widget-icon-cards' . ($cover ? ' aksrt-widget-icon-cards--cover' : '') . '" style="--aksrt-cols:' . $pc . ';--aksrt-cols-m:' . $mobile . '">';
private static function icon_cards(array $instance, bool $cover): string {
$pc = max(1, (int) ($instance['pc_row'] ?? 4));
$mobile = max(1, (int) ($instance['m_row'] ?? 2));
$cards = (array) ($instance['cards'] ?? []);
$is_row = count($cards) > 1;
$row_class = 'col-sm-' . max(1, (int) (12 / $pc));
if ($mobile > 1) $row_class .= ' col-xs-' . max(1, (int) (12 / $mobile));
$items = '';
foreach ($cards as $card) {
if (!is_array($card)) {
continue;
}
$icon_size = !$cover && !empty($instance['size']) ? 16 + (int) $instance['size'] : ($cover ? 25 : 0);
$class = $cover ? (!empty($instance['show_widget_bg']) ? 'padding-10' : 'zib-widget mb10') : (!empty($instance['show_widget_bg']) ? 'box-body nopw-sm' : 'mb20');
$args = [
'icon' => $card['icon'] ?? '',
'customize_icon' => $card['customize_icon'] ?? '',
'custom_icon' => $card['custom_icon'] ?? '',
'icon_image' => $card['icon_image'] ?? '',
'icon_color' => $card['color'] ?? '',
'icon_class' => $card['color'] ?? '',
'icon_size' => $icon_size,
'icon_radius' => !empty($card['icon_radius']) || ($cover && !empty($instance['icon_radius4'])),
'icon_color' => $card['icon_color'] ?? '',
'icon_custom_color' => $card['icon_custom_color'] ?? '',
'icon_class' => $card['icon_class'] ?? '',
'title' => $card['title'] ?? '',
'desc' => $card['description'] ?? '',
'desc' => $card['desc'] ?? '',
'link' => $card['link'] ?? [],
'class' => $class,
];
$item = '';
if ($cover && function_exists('aksrt_icon_cover_card')) {
$html .= aksrt_icon_cover_card($args);
$item = aksrt_icon_cover_card($args);
} elseif (!$cover && function_exists('aksrt_icon_card')) {
$html .= aksrt_icon_card($args);
$item = aksrt_icon_card($args);
} else {
$link = RendererHelpers::link((array) ($card['link'] ?? []));
$tag = $link['url'] ? 'a' : 'div';
$html .= '<' . $tag . ' class="aksrt-widget-icon-card ' . esc_attr((string) ($card['color'] ?? '')) . '"' . ($link['url'] ? ' href="' . $link['url'] . '"' . RendererHelpers::link_attrs($link) : '') . '><i class="' . esc_attr((string) ($card['icon'] ?? 'fa fas fa-star')) . '" aria-hidden="true"></i><span><strong>' . esc_html((string) ($card['title'] ?? '')) . '</strong><small>' . esc_html((string) ($card['description'] ?? '')) . '</small></span></' . $tag . '>';
$item = '';
}
$items .= $is_row ? '<div class="' . esc_attr($row_class) . '">' . $item . '</div>' : $item;
}
return $html . '</div>';
if ($items === '') return '';
$inner = $is_row ? '<div class="row gutters-5">' . $items . '</div>' : $items;
if ($cover) return '<div class="' . ($instance['show_widget_bg'] ?? false ? 'zib-widget padding-10' : 'mb10') . '">' . $inner . '</div>';
return '<div class="clearfix">' . (!empty($instance['show_widget_bg']) ? '<div class="zib-widget nobottom notop">' : '') . $inner . (!empty($instance['show_widget_bg']) ? '</div>' : '') . '</div>';
}
private static function render_video(array $i): string {