$today ) return null;
return (int) $birth->diff($today)->y;
}
public static function time_ago( $datetime ) {
$diff = time() - strtotime($datetime);
if ($diff < 60) return 'Gerade eben';
if ($diff < 3600) return floor($diff/60) . ' Min. ago';
if ($diff < 86400) return floor($diff/3600) . ' Std. ago';
if ($diff < 604800) return floor($diff/86400). ' Tage ago';
return date_i18n('d.m.Y', strtotime($datetime));
}
public static function avatar( $url, $name, $size = 40, $online = false ) {
$src = esc_url($url ?: 'https://www.gravatar.com/avatar/0?d=identicon&s='.$size);
$img = "";
if (!$online) return $img;
return "$img";
}
public static function role_badge( $role ) {
// Dynamisch aus WBF_Roles — deckt alle Rollen inkl. superadmin ab
return WBF_Roles::badge( $role );
}
public static function render_prefix( $thread ) {
if ( empty($thread->prefix_label) ) return '';
$label = esc_html($thread->prefix_label);
$color = esc_attr($thread->prefix_color ?? '#fff');
$bg = esc_attr($thread->prefix_bg ?? '#475569');
return "{$label}";
}
public static function render_tags( $tags, $small = false ) {
if ( empty($tags) ) return '';
$cls = $small ? 'wbf-tag wbf-tag--sm' : 'wbf-tag';
$out = '
description); ?>
Noch keine Threads. Starte die Diskussion!
Thread nicht gefunden.
'; // Kategorie-Zugang prüfen (Gäste + Min-Rolle) $cat6 = WBF_DB::get_category($thread->category_id); if ($cat6 && !self::can_see_category($cur6, $cat6)) { ob_start(); ?>Noch keine Lesezeichen.
Noch keine Beiträge.
content), 0, 130)); $more = mb_strlen(strip_tags($up->content)) > 130 ? '…' : ''; $is_thread = isset($up->entry_type) && $up->entry_type === 'thread'; $anchor = $is_thread ? '?forum_thread=' . (int)$up->thread_id : '?forum_thread=' . (int)$up->thread_id . '#post-' . (int)$up->id; ?>Lege fest bei welchen Ereignissen du eine E-Mail erhältst.
Du ignorierst niemanden.
Gemäß DSGVO Art. 17 (Recht auf Vergessenwerden) kannst du die vollständige Löschung deines Kontos und aller personenbezogenen Daten beantragen.
Deine Beiträge bleiben anonymisiert sichtbar. Direktnachrichten, Likes, Profilinformationen und alle persönlichen Daten werden dauerhaft gelöscht.
Aktuelle Adresse: email); ?>
Verknüpfe deinen Discord-Account mit deinem Profil. Ein Bestätigungs-Code wird dir per Discord-DM zugeschickt. (Bot noch nicht konfiguriert – wende dich an einen Admin.)
Discord-Bot noch nicht eingerichtet. Bitte Admin kontaktieren.
Du musst Mitglied unseres Discord-Servers sein und DMs erlauben.
Keine Threads mit diesem Tag.
Wähle eine Konversation aus oder starte eine neue Nachricht.
Keine Ergebnisse.
Ergebnis(se) gefunden.
Gib deine E-Mail ein — wir schicken dir einen Reset-Link.
Keine Mitglieder gefunden.
' . $para . '
'; } } return $out; } } WBF_Shortcodes::init();