fix(widgets): align user card backgrounds
This commit is contained in:
1 parent
1034872395
commit
d1d33e2671
4 files changed
+30
-43
No files matched your search
@@ -122,7 +122,7 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
.aksrt-user-card__vip {
|
.aksrt-user-card__avatar-wrap > .aksrt-vip-badge {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: -5px;
|
right: -5px;
|
||||||
bottom: -3px;
|
bottom: -3px;
|
||||||
@@ -130,20 +130,14 @@
|
|||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
min-width: 28px;
|
width: 28px;
|
||||||
height: 28px;
|
height: 28px;
|
||||||
padding: 3px;
|
max-width: none;
|
||||||
border: 2px solid var(--surface-1, #fff);
|
padding: 0;
|
||||||
border-radius: 50%;
|
|
||||||
background: var(--surface-1, #fff);
|
|
||||||
box-shadow: 0 2px 6px rgba(0, 0, 0, .18);
|
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
.aksrt-user-card__vip .aksrt-vip-badge {
|
.aksrt-user-card__avatar-wrap > .aksrt-vip-badge .aksrt-vip-badge__icon {
|
||||||
width: 100%;
|
display: block;
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
.aksrt-user-card__vip .aksrt-vip-badge__icon {
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 46 KiB |
@@ -10,6 +10,8 @@ namespace AKSRT\Widgets;
|
|||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetUserCard extends \WP_Widget {
|
class WidgetUserCard extends \WP_Widget {
|
||||||
|
private const DEFAULT_COVER_FILE = 'assets/img/person_background.png';
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
'aksrt_user_card',
|
'aksrt_user_card',
|
||||||
@@ -61,7 +63,7 @@ class WidgetUserCard extends \WP_Widget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($user_id <= 0) {
|
if ($user_id <= 0) {
|
||||||
$this->render_guest($show_cover, $loged_title);
|
$this->render_guest($show_cover, $loged_title, $this->get_guest_cover_url($instance));
|
||||||
if ($affix['class'] !== '') {
|
if ($affix['class'] !== '') {
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
@@ -104,9 +106,9 @@ class WidgetUserCard extends \WP_Widget {
|
|||||||
if (!is_string($bio) || $bio === '') {
|
if (!is_string($bio) || $bio === '') {
|
||||||
$bio = (string) $user->description;
|
$bio = (string) $user->description;
|
||||||
}
|
}
|
||||||
$cover = (string) get_user_meta($user_id, 'aksrt_cover', true);
|
$cover = (string) get_user_meta($user_id, 'aksrt_background_image', true);
|
||||||
if ($cover === '') {
|
if ($cover === '') {
|
||||||
$cover = (string) get_user_meta($user_id, 'custom_avatar_cover', true);
|
$cover = $this->get_default_cover_url();
|
||||||
}
|
}
|
||||||
|
|
||||||
$post_count = count_user_posts($user_id, 'post', true);
|
$post_count = count_user_posts($user_id, 'post', true);
|
||||||
@@ -138,23 +140,7 @@ class WidgetUserCard extends \WP_Widget {
|
|||||||
|
|
||||||
echo '<div class="aksrt-user-card user-card' . ($show_cover ? ' has-cover' : ' no-cover') . '">';
|
echo '<div class="aksrt-user-card user-card' . ($show_cover ? ' has-cover' : ' no-cover') . '">';
|
||||||
if ($show_cover) {
|
if ($show_cover) {
|
||||||
if ($cover !== '') {
|
echo '<div class="aksrt-user-card__cover" style="background-image:url(' . esc_url($cover) . ')">' . $checkin_html . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo '<div class="aksrt-user-card__cover" style="background-image:url(' . esc_url($cover) . ')">' . $checkin_html . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
|
||||||
} else {
|
|
||||||
// Prefer site default cover image when available.
|
|
||||||
$default_cover = '';
|
|
||||||
if (class_exists('\AKSRT\Settings\Settings') && method_exists('\AKSRT\Settings\Settings', 'get_user_cover_default')) {
|
|
||||||
$default_cover = (string) \AKSRT\Settings\Settings::get_user_cover_default();
|
|
||||||
}
|
|
||||||
if ($default_cover === '' && function_exists('get_theme_mod')) {
|
|
||||||
$default_cover = (string) get_theme_mod('aksrt_user_cover', '');
|
|
||||||
}
|
|
||||||
if ($default_cover !== '') {
|
|
||||||
echo '<div class="aksrt-user-card__cover" style="background-image:url(' . esc_url($default_cover) . ')">' . $checkin_html . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
|
||||||
} else {
|
|
||||||
echo '<div class="aksrt-user-card__cover is-empty">' . $checkin_html . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elseif ($checkin_btn !== '') {
|
} elseif ($checkin_btn !== '') {
|
||||||
echo '<div class="aksrt-user-card__checkin aksrt-user-card__checkin--without-cover">' . $checkin_btn . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo '<div class="aksrt-user-card__checkin aksrt-user-card__checkin--without-cover">' . $checkin_btn . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
@@ -165,7 +151,7 @@ class WidgetUserCard extends \WP_Widget {
|
|||||||
echo '<a href="' . esc_url($profile_url) . '"><img class="aksrt-lazy lazyload" data-src="' . esc_url($avatar_url) . '" src="' . esc_url($ph) . '" alt="' . esc_attr($user->display_name) . '" loading="lazy" width="76" height="76" /></a>';
|
echo '<a href="' . esc_url($profile_url) . '"><img class="aksrt-lazy lazyload" data-src="' . esc_url($avatar_url) . '" src="' . esc_url($ph) . '" alt="' . esc_attr($user->display_name) . '" loading="lazy" width="76" height="76" /></a>';
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
if ($vip_badge !== '') {
|
if ($vip_badge !== '') {
|
||||||
echo '<span class="aksrt-user-card__vip">' . $vip_badge . '</span>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $vip_badge; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
echo '<h4 class="aksrt-user-card__name user-name">' . $name_html . '</h4>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo '<h4 class="aksrt-user-card__name user-name">' . $name_html . '</h4>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
@@ -207,7 +193,7 @@ class WidgetUserCard extends \WP_Widget {
|
|||||||
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
|
|
||||||
private function render_guest(bool $show_cover, string $loged_title): void {
|
private function render_guest(bool $show_cover, string $loged_title, string $cover): void {
|
||||||
$login = function_exists('aksrt_get_login_url') ? aksrt_get_login_url() : wp_login_url();
|
$login = function_exists('aksrt_get_login_url') ? aksrt_get_login_url() : wp_login_url();
|
||||||
$register = function_exists('aksrt_get_register_url') ? aksrt_get_register_url() : wp_registration_url();
|
$register = function_exists('aksrt_get_register_url') ? aksrt_get_register_url() : wp_registration_url();
|
||||||
$default_avatar = function_exists('get_avatar_url')
|
$default_avatar = function_exists('get_avatar_url')
|
||||||
@@ -226,15 +212,7 @@ class WidgetUserCard extends \WP_Widget {
|
|||||||
|
|
||||||
echo '<div class="aksrt-user-card user-card is-guest' . ($show_cover ? ' has-cover' : ' no-cover') . '">';
|
echo '<div class="aksrt-user-card user-card is-guest' . ($show_cover ? ' has-cover' : ' no-cover') . '">';
|
||||||
if ($show_cover) {
|
if ($show_cover) {
|
||||||
$default_cover = '';
|
echo '<div class="aksrt-user-card__cover" style="background-image:url(' . esc_url($cover) . ')"></div>';
|
||||||
if (class_exists('\AKSRT\Settings\Settings') && method_exists('\AKSRT\Settings\Settings', 'get_user_cover_default')) {
|
|
||||||
$default_cover = (string) \AKSRT\Settings\Settings::get_user_cover_default();
|
|
||||||
}
|
|
||||||
if ($default_cover !== '') {
|
|
||||||
echo '<div class="aksrt-user-card__cover" style="background-image:url(' . esc_url($default_cover) . ')"></div>';
|
|
||||||
} else {
|
|
||||||
echo '<div class="aksrt-user-card__cover is-empty"></div>';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
echo '<div class="aksrt-user-card__body card-content">';
|
echo '<div class="aksrt-user-card__body card-content">';
|
||||||
echo '<div class="aksrt-user-card__avatar-wrap"><div class="aksrt-user-card__avatar user-avatar"><img src="' . esc_url($default_avatar) . '" alt="" width="76" height="76" loading="lazy" /></div></div>';
|
echo '<div class="aksrt-user-card__avatar-wrap"><div class="aksrt-user-card__avatar user-avatar"><img src="' . esc_url($default_avatar) . '" alt="" width="76" height="76" loading="lazy" /></div></div>';
|
||||||
@@ -272,6 +250,11 @@ class WidgetUserCard extends \WP_Widget {
|
|||||||
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('loged_title')); ?>" value="<?php echo esc_attr((string) ($instance['loged_title'] ?? __('Hi!请登录', 'aksrt'))); ?>">
|
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('loged_title')); ?>" value="<?php echo esc_attr((string) ($instance['loged_title'] ?? __('Hi!请登录', 'aksrt'))); ?>">
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('未登录封面图 URL(留空使用默认图片)', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="url" name="<?php echo esc_attr($this->get_field_name('guest_cover')); ?>" value="<?php echo esc_attr((string) ($instance['guest_cover'] ?? '')); ?>" placeholder="<?php echo esc_attr($this->get_default_cover_url()); ?>">
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><?php esc_html_e('按钮1文案', 'aksrt'); ?>
|
<label><?php esc_html_e('按钮1文案', 'aksrt'); ?>
|
||||||
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('button_1_text')); ?>" value="<?php echo esc_attr((string) ($instance['button_1_text'] ?? __('发布文章', 'aksrt'))); ?>">
|
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('button_1_text')); ?>" value="<?php echo esc_attr((string) ($instance['button_1_text'] ?? __('发布文章', 'aksrt'))); ?>">
|
||||||
@@ -348,6 +331,7 @@ class WidgetUserCard extends \WP_Widget {
|
|||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'user_id' => max(0, (int) ($new_instance['user_id'] ?? 0)),
|
'user_id' => max(0, (int) ($new_instance['user_id'] ?? 0)),
|
||||||
'loged_title' => sanitize_text_field((string) ($new_instance['loged_title'] ?? '')),
|
'loged_title' => sanitize_text_field((string) ($new_instance['loged_title'] ?? '')),
|
||||||
|
'guest_cover' => esc_url_raw(trim((string) ($new_instance['guest_cover'] ?? ''))),
|
||||||
'button_1' => 'post',
|
'button_1' => 'post',
|
||||||
'button_1_text' => sanitize_text_field((string) ($new_instance['button_1_text'] ?? '')),
|
'button_1_text' => sanitize_text_field((string) ($new_instance['button_1_text'] ?? '')),
|
||||||
'button_1_class'=> self::sanitize_palette((string) ($new_instance['button_1_class'] ?? 'jb-pink'), 'jb-pink'),
|
'button_1_class'=> self::sanitize_palette((string) ($new_instance['button_1_class'] ?? 'jb-pink'), 'jb-pink'),
|
||||||
@@ -365,6 +349,15 @@ class WidgetUserCard extends \WP_Widget {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function get_default_cover_url(): string {
|
||||||
|
return get_theme_file_uri(self::DEFAULT_COVER_FILE);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function get_guest_cover_url(array $instance): string {
|
||||||
|
$cover = esc_url_raw(trim((string) ($instance['guest_cover'] ?? '')));
|
||||||
|
return $cover !== '' ? $cover : $this->get_default_cover_url();
|
||||||
|
}
|
||||||
|
|
||||||
/** Zibll CFS_Module::zib_palette() gradient/solid keys (c/b/jb families). */
|
/** Zibll CFS_Module::zib_palette() gradient/solid keys (c/b/jb families). */
|
||||||
public static function palette_opts(): array {
|
public static function palette_opts(): array {
|
||||||
return [
|
return [
|
||||||
|
|||||||
Reference in new issue
Block a user