Avatar, Nickname anzeigen

Zeigen Sie mit diesem Coding den Avatar, eMail, Nickname oder andere Benutzer und Autordaten im Beitrag an.

Inhalt

Vorwort

Für die Verarbeitung der registrierten User-Informationen ist im CMS Bludit die Klasse user bzw. users verantwortlich. Das User-Objekt nimmt dazu alle Informationen zu einzelnen registrierten Benutzern auf und speichert sie.

Das user Objekt alt und neu

Mit der Methode user() greifen Sie auf einige Attribute des Benutzerprofils zu. Welche es gibt, zeigt der Beitrag.

{php-8-und-my-sql}

Die Methode user() des Bludit-Frameworks liefert in Abhängigkeit einiger Parameter Informationen über den angemeldeten Anwender zurück. Die folgenden Parameter können Sie nutzen um Werte auszulesen:

user('role')       = Rolle des Users z.B. "admin", "editor", "author"
user('nickname')   = Inhalt des Feldes Nickname
user('username')   = Inhalt des Feldes Username z.B. "Admin"
user('lastname')   = Inhalt des Feldes Nachname Bsp. "Lohse"
user('firstname')  = Inhalt des Feldes Vorname Bsp. "Oliver"
user('email')      = Inhalt des Feldes eMail
user('registered') = ab wann registriert z.B. "2019-05-28 20:50:11"
user('enabled')    = Benutzer aktiv (1) oder gesperrt (0)

In neueren Bludit-Versionen wurde der Aufruf stärker gekapselt und erfolgt über spezielle getter-Methoden, statt wie bisher über eine Methodensignatur.

$user->role()     = eMail des Users
$user->nickname() = der Nickname des Users
$user->username() = Benutzername des Login
... usw.

Avatar und Profilbild eines Users in Bludit anzeigen

Wie im Internet üblich, werden kleine AVATAR-Bilder angezeigt die den Autor oder User darstellen sollen. Diese kleine Codeanpassung zeigt wie Sie dies auch in Bludit realisieren.

Die Anzeige des Autor-Avatar unter einem Beitrag ist in einigen Themes von Bludit möglich, nicht jedoch im Theme Alternative und Blog X. Sofern Sie für Ihren Benutzer ein Avatar-Bild hochgeladen haben und die Profilangaben ausgefüllt haben, können Bild und Nickname unterhalb jedes Beitrags automatisch dargestellt werden. Das folgende Coding ähnelt daher dem Beitrag Autor Nickname anzeigen, wurde jedoch um eine Zeile für das auslesen des Bildes und der Möglichkeit der CSS-Formatierung erweitert:

028  <!-- Load Bludit Plugins: Page End -->
029  <?php Theme::plugins('pageEnd'); ?>
030  
031      <!-- Lohse 12-2019 Autor anzeigen -->
032      <div class="autorpic">
033      <img class="float-left rounded-circle"
034           style="width: 80px; margin-right: 15px; margin-top: 6px; margin-bottom: 15px;"
035           src="<?php echo $page->user('profilePicture') ?>" />
036      <?php echo $page->user('nickname'); ?>
037      </div>
038      <!-- Lohse Ende -->
039
040  </div>

Fügen Sie das oben gezeigte grüne Codesegment in die Datei:

bl-themes/blogx/php/page.php

ganz an das Ende vor dem letzten schließenden DIV (Zeile 40) ein.

Rufen Sie nun einen einzelnen Post auf, erscheint das Avatar-Bild des Autor und der Inhalt der Zeile Nickname aus dem User-Profile. Der besseren Trennung von Styling zu Code, habe ich in Zeile 32 eine Klasse autorpic eingeführt die ich dann im Plugin HTML-Code formatieren kann. Dies ist nicht zwingend, denn genau so gut lässt sich dies im PHP Script formatieren.

010  .autorpic {
011      margin-top: 50px;
012      border-top: 1px solid #cccccc;
013      padding-top: 20px;
014      color: #666666;
015  }

Als Bildgröße hat sich eine Auflösung von 512x512px bewährt.

Das Feld Nickname des Benutzerprofils bietet sogar ausreichend Platz, um etwas Bio oder Vita zu hinterlassen, die dann als Nicname ausgelesen wird. HTML-Vorgaben werden hier nicht unterstützt.

Anmerkung: Dieses Coding können Sie auch im home.php Script einhängen, dann wird der Autor und das Bild bereits beim laden der Home-Seite unter jedem Beitrag angezeigt, allerdings könnte dies etwas überladen wirken. Es scheint besser die Autorinformationen anzuzeigen wenn der Leser konkret auf einen Post klickt.

Den Nicknamen des Users anzeigen lassen

Der Nickname in diesem Template wird im übrigens dazu verwendet, die Autor-Bio unterhalb des Beitrags anzuzeigen.

{affiliate-marketing}

Wie in vielen Blogs üblich, werden Name oder mindestens der Nickname des Autors unterhalb seines Beitrags angezeigt. Diese Funktion können Sie im Theme Alternative oder auch Blog X mit einer Codezeile in der Datei page.php erledigen.

023  <!-- Full content -->
024  <?php echo $page->content(); ?>
025  
026  </div>
027  
028  <!-- Load Bludit Plugins: Page End -->
029  <?php Theme::plugins('pageEnd'); ?>
030
031        <!-- Lohse 12-2019 Autor anzeigen -->
032        <?php echo $page->user('nickname'); ?>
033        <!-- Lohse Ende -->
034
035  </div>

Das Feld Nickname des Benutzerprofils ist so großzügig dimensioniert, das Sie sogar etwas Bio oder Vita hinterlegen können wenn Sie mögen.

Es ist sinnvoll das Codesegment ab Zeile 29 einzufügen, damit eventuelle Plugins noch zur Anzeige gebracht werden können (z.B. Kontaktformular) und erst danach die Fußzeile mit dem Autor-Namen erscheint. Sie können den Codeschnipsel natürlich auch nach Zeile 24 einsetzen. Dies ist jedoch ungünstig wenn Plugins Anzeigen einblenden, diese würde dann erst nach der Fußzeile mit dem Autor-Namen erscheinen.

User Liste der administrierten Anwender anzeigen

Das folgende Coding ist Bestandteil eines Templates der Landingpage und zeigt eine Liste der im Content Management System registrierten Autoren, Redakteure und Admins mit eMail, Nickname und Profilbild an.

<?php
  global $users;
  global $L;

  $html  = '<div class="container-fluid py-5">';
  $html .= '<div class="container text-center">';
  $html .= '<h4 class="fw-bold text-uppercase">Unsere Autoren</h4>';
  $html .= '<div class="row">';

  $list = $users->keys();
  foreach ($list as $username) 
  {
    $user = new User($username);

    $html .= '<div class="col-sm text-center py-5">';
    $html .= '<img src="'.$user->profilePicture().'" class="img-fluid w-50 m-1">';
    $html .= '<p class="lead text-uppercase">'.$user->nickname().'</p>';
    $html .= '<p class="small">'.$user->email().'</p>';
    $html .= '</div>';
  }
  $html .= '</div>';
  $html .= '</div>';
  $html .= '</div>';
  echo $html;
?>

Am Beginn des Codes muss zwingend eine Referenz auf das User-Objekt mit global $users erzeugt werden, damit es im weiteren Code verwendet werden kann. Die Einbindung der Language-Datei mit global $L ist nicht zwingend und nur dann erforderlich, wenn Sie feste Textkomponenten des deutschen Sprachpaketes aus der de_DE.json nutzen möchten.

Die HTML-Satements des Codings können Sie individuell an das eigene Theme anpassen, jedoch nutzen sie zunächst das bereits in Bludit enthaltene Bootstrap-CSS und sollte sofort zu einer brauchbaren Anzeige führen.


Oliver Lohse
2023-12-21
Konstanten
post
0