× Startseite
Kostenloses Kommentarsystem selbst hosten

HashOver 2.0 Kommentare in Hugo-Webseiten einbinden

HashOver Commentsystem from Jacob Barkdull

HashOver 2.0 ist ein kostenloses Open Source PHP Kommentarsystem, welches auf dem eigenen Webspace in statische Webseiten eingebunden werden kann. Die Anpassungsmöglichkeiten sind sehr umfangreich. Dadurch kann HashOver gut in das eigene Design integriert werden.

Ich möchte kein Kommentarsystem einsetzen, welches als externer Dienst in meine Hugo Website eingebunden wird. Die DSGVO setzt mir in der EU rechtlich enge Grenzen, in dem was ich meinen Website Besucher*innen ohne umfangreiche Genehmigungsformulare anbieten darf. Da ich selber auch möchte, dass mein persönlicher Datenschutz gewahrt wird, habe ich mich für HashOver entschieden.

HashOver gibt es seit 2014. Der Autor - Jacob Barkdull - hat das Kommentarsystem seitdem kontinuierlich weiterentwickelt. Eine umfangreiche - Dokumentation - steht ebenfalls zur Verfügung. An dieser Stelle möchte ich mich ausdrücklich bei Jacob Barkdull für das kostenlose zur Verfügung stellen von HashOver bedanken. Mir ist bewusst, dass die Entwicklung und Wartung eines solch komplexen Systems sehr zeitintensiv ist. In diesem Sinne möchte ich aber trotzdem darstellen welche Dinge mir als fehlerhaft bzw. verbesserungswürdig aufgefallen sind.

Da ich hoffe, dass Kommentare auf dieser Website intensiv genutzt werden, habe ich mich für das Speichern in einer mySQL Datenbank entschieden. Eine unnötige Vermischung des Hugo Systems und HashOver möchte ich nicht. Deshalb habe ich HashOver in einer Subdomain von tekki-tipps.de installiert. Das erlaubt eine saubere Trennung des Kommentarsystems von der Website. Dieser Blogbeitrag beschreibt die Vorbereitung für die Installation von HashOver, die Installation, das Einbinden in die Hugo Website, Tipps zur Handhabung und auch die aus meiner Sicht weniger schönen Dinge von HashOver.

Vorbereitung für die Installation von HashOver

Als erstes habe ich über die Administrationsoberfläche meines Providers die Subdomain comments für tekki-tipps.de erstellt. Eine entsprechende PHP-Version zugewiesen und ein Let’s Encrypt SSL Zertifikat hinzugefügt. Weitere Schritte:

  • Für das Kommentarsystem eine Weiterleitung der E-Mailadresse hashover [at] comments [.] tekki-tipps[.]de einrichten. Die Weiterleitung erspart ein zusätzliches E-Mailkonto.

  • Danach eine MySQL Datenbank für die Subdomain erstellen. Die Tabellen werden durch die Installationsroutine von HashOver erzeugt.

  • Download der - HashOver Dateien - auf der GitHub Seite den Code-Button anklicken und die ZIP-Datei auf den lokalen Rechner laden und entpacken.

  • Die Dateien secrets.php und sensitivesettings.php müssen vor dem Datei Upload angepasst werden.

HashOver - secrets.php

Die secrets.php ist für Mailadressen, Admin Passwort, Datenbankname, etc. zuständig. Zu finden ist diese Datei unter …/hashover-next-master/backend/classes/secrets.php. Vor dem ersten Start der HashOver Installation muss den nachfolgenden Variablen ein Wert zugewiesen werden.

// REQUIRED SETUP INFORMATION

// Admin e-mail address to send notifications to
protected $notificationEmail = 'hashover [at] comments [.] tekki-tipps.de';

// E-mail address to use in notifications to normal users
protected $noreplyEmail = 'hashover [at] comments [.] tekki-tipps.de';

// Unique encryption key (case-sensitive)
protected $encryptionKey = 'xxxxxxx…';

// Login name to gain admin rights (case-sensitive)
protected $adminName = 'Frank Kunert';

// Login password to gain admin rights (case-sensitive)
protected $adminPassword = 'xxxxxxx…';

$notificationEmail:
An diese Admin E-Mailadresse werden Benachrichtigungen gesendet, wenn neue Kommentare oder Antworten auf Kommentare erstellt wurden. Hier habe ich die weiter oben beschriebene Adresse der E-Mail-Weiterleitung angegeben. Die E-Mailadresse muss natürlich richtig geschrieben werden. Meine Spamschutz-Schreibweise für diesen Blogbeitrag ist nicht wirklich ein Schutz.

$noreplyEmail:
Diese E-Mailadresse wird für das gegenseitige Informieren der Benutzer als Absender benutzt. Aber nur, wenn die Checkbox im Kommentarformular Benachrichtige mich über Antworten aktiviert wurde. HashOver sendet dann mit der noreplyEmail eine Info an die E-Mailadressen, die in den Kommentaren gespeichert wurden und dies möchten.

Die Bedeutung einer noreply E-Mailadresse ist die Aufforderung an den Benutzer, nicht auf diese E-Mailadresse zu antworten. Sollten die Benutzer*innen sich daran nicht halten wird, durch die Weiterleitung, die E-Mail trotzdem an den Admin verschickt.

$encryptionKey:
Der Key wird zum Ver- und Entschlüsseln von sensiblen Benutzerdaten verwendet, wie zum Beispiel der E-Mailadresse. Eine Kopie der gesamten secrets.php sollte an einem sicheren Ort aufgehoben werden. Beim Update auf eine neue Version von HashOver muss der Inhalt dieser Datei aus dem Backup übertragen werden.

$adminName:
Der Admin-Name wird für das HashOver Login benötigt. Wenn ein Benutzer-Kommentar vom Admin beantwortet wird, zeigt HashOver den Namen als Absender der Antwort an. Geheim bleibt der Admin-Name dadurch nicht.

$adminPassword:
Da der Admin-Name nicht geheim ist sollte ein langes und sicheres Password gewählt werden.

// OPTIONAL SQL INFORMATION

  // Type of database, sqlite or mysql
  protected $databaseType = 'mysql';

  // Database name
  protected $databaseName = 'xxxxxxx…';

  // SQL database host name
  protected $databaseHost = 'localhost';

  // SQL database port number
  protected $databasePort = '3306';

  // SQL database login user
  protected $databaseUser = 'xxxxxxx…';

  // SQL database login password
  protected $databasePassword = 'xxxxxxx…';

  // SQL database character set
  protected $databaseCharset = 'utf8';

Die Feld-Inhalte für die Datenbank sind selbsterklärend.

Den Bereich OPTIONAL SMTP MAILER SETUP habe ich nicht verändert. Ich benötige diese Angaben nicht, da mein Provider sendmail für die PHP Mail Funktion zur Verfügung stellt.

HashOver - sensitivesettings.php

Wenn HashOver in einer Subdomain installiert wird, muss dies in der Datei …/hashover-next-master/backend/classes/sensitivesettings.php HashOver bekannt gemacht werden.

// Whether multiple website support is enabled
public $supportsMultisites = true;

// External domains allowed to remotely load HashOver scripts
public $allowedDomains = array (
	'*.tekki-tipps.de'
	// '*.example.org',
	// '*.example.net'
);

In der HashOver Dokumentation wird dies nicht erwähnt. Den Hinweis habe ich auf der Website von - Johann Oberdorfer - gefunden.

Installation von HashOver

Den Inhalt des entpackten und angepassten Verzeichnis hashover-next-master per SFTP auf den Webserver übertragen. Ich habe innerhalb der Subdomain ein Verzeichnis angelegt und alles dort hinein kopiert.

Der erste Start von HashOver generiert die Datenbanktabellen:
https://your-subdomain.your-domain.tld/your-folder/admin/settings

Die weiteren Login können dann über folgenden URL erfolgen:
https://your-subdomain.your-domain.tld/your-folder/admin/login

Benutzer und Passwort des Login entsprechen den eigenen Admin Angaben in der secrets.php.

Nach dem Login kann man HashOver umfangreich konfigurieren. Ich möchte zum Beispiel nicht, dass sich Benutzer in die HashOver Installation einloggen und ihre eigenen Kommentare anpassen können. Session-Cookies lasse ich zu, weitere nicht.

Die - Dokumentation der Konfigurationsparameter - ist sehr umfangreich und erklärt diese in den meistens Fällen sehr genau. Gespeichert werden die Parameter in der /your-folder/config/settings.json. Nachfolgend die von mir benutzte settings.json:

{
  "allowed-domains": [
    "tekki-tipps.de"
  ],
  "supports-multisites": true,
  "language": "de-de",
  "theme": "default-borderless",
  "default-sorting": "ascending",
  "uses-markdown": true,
  "uses-ajax": true,
  "shows-reply-count": false,
  "allows-images": true,
  "allows-likes": false,
  "allows-dislikes": false,
  "uses-moderation": false,
  "pends-user-edits": false,
  "mail-type": "text",
  "mailer": "sendmail",
  "subscribes-user": false,
  "allows-user-replies": false,
  "sets-cookies": false,
  "cookie-expiration": "session",
  "secure-cookies": false,
  "collapses-interface": false,
  "collapses-comments": false,
  "collapse-limit": 3,
  "popularity-threshold": 5,
  "popularity-limit": 2,
  "spam-database": "remote",
  "spam-check-modes": "both",
  "icon-mode": "none",
  "icon-size": 45,
  "gravatar-default": "custom",
  "gravatar-force": false,
  "form-position": "top",
  "name-field": "on",
  "password-field": "off",
  "email-field": "on",
  "website-field": "off",
  "displays-title": false,
  "uses-cancel-buttons": true,
  "uses-labels": false,
  "date-pattern": "dd.MM.YYYY",
  "time-pattern": "HH:mm",
  "server-timezone": "Europe\/Berlin",
  "uses-user-timezone": true,
  "uses-short-dates": false,
  "login-method": "DefaultLogin",
  "allows-login": false,
  "uses-auto-login": false,
  "data-format": "sql",
  "default-name": "Anonymous",
  "reply-mode": "stream",
  "stream-depth": 3,
  "image-format": "png",
  "appends-css": true,
  "appends-rss": false,
  "counts-deletions": false,
  "local-metadata": true,
  "stores-ip-address": false,
  "minifies-javascript": true,
  "minify-level": 4
}

Einbinden von HashOver in die Hugo Website

Die PHP Installation von HashOver ist wie bereits mehrfach erwähnt bei meiner Installation in einer Subdomain. Also außerhalb der Hugo Website ausgelagert. Innerhalb der Hugo Seiten wird HashOver über JavaScript eingebunden.

Mein Blog hat ein helles und ein dunkles Theme, welches vom Benutzer umgeschaltet werden kann. Außerdem ist diese Website mehrsprachig. Das Anpassen an diese erschwerenden Voraussetzungen funktioniert mit HashOver, bis auf die Datumsanpassung, perfekt.

HashOver wird mit verschiedenen Themes ausgeliefert. Das Wechseln der Themes kann per JavaScript angepasst werden. Ebenso die Sprache.

Das Layout-Template single.html

Die Kommentare möchte ich unterhalb der einzelnen Blog Beiträge positionieren. Für die Blog Beiträge habe ich ein eigenes Layout.

themes/tekki
|__  
|__layouts
   |__blog
      |__single.html

In diesem Layout wird als letzte Aktion das Partial hashOver.html aufgerufen:

{{ define "main" }}
<section class="blog-content hugoblog">
  <article class="container">
    <div class="blog-content-block">
      <div class="sub-title">{{ .Params.subtitle }}</div>
      <h1>{{ .Title }}</h1>
    </div>
    {{ partial "img-article" . }}
    <div class="blog-content-block reverse">
      <div class="blog-content-text">
      {{ .Content }}
      </div>
      {{ partial "date-and-tags.html" . }}
    </div>
    {{ partial "hugo-version" . }}
    {{ partial "hashOver" . }}
  </article>
</section>
{{end}}

Hugo Partial hashOver.html

Das Partial hashOver.html erkläre ich im Detail weiter unten. Es hat folgenden Inhalt:

<section class="comments">
  <p class="h-header">{{- T "hashOverHeader" -}}</p>
  <script type="text/javascript" src="https://comments.tekki-tipps.de/hashover/loader.php"></script>
  {{ $siteLang := .Site.Language.Lang }}
  {{ if eq $siteLang "de" }}
  <div id="hashover"></div>
  <script type="text/javascript">
    var mytheme = localStorage.getItem("currenttheme");
    if( mytheme == "lightTheme") {
      mytheme = "default-borderless";
    }
    else {
      mytheme = "default-dark-borderless";
    }
    var hashover = new HashOver ('hashover', {
      settings: {language: 'de_DE', theme: mytheme}
    });
  </script>
  <noscript><h2 class="noscript">{{- T "noscriptJS" -}}</h2></noscript>
  {{ else }}
  <div id="hashover"></div>
  <script type="text/javascript">
    var mytheme = localStorage.getItem("currenttheme");
    if( mytheme == "lightTheme") {
      mytheme = "default-borderless";
    }
    else {
      mytheme = "default-dark-borderless";
    }
    var hashover = new HashOver ('hashover', {
      settings: {language: 'us_US', theme: mytheme}
    });
  </script>
  <noscript><h2 class="noscript">{{- T "noscriptJS" -}}</h2></noscript>
  {{ end }}
</section>

Der vorbereitende Aufruf von HashOver

<section class="comments">
  <p class="h-header">{{- T "hashOverHeader" -}}</p>
  <script type="text/javascript" src="https://comments.tekki-tipps.de/hashover/loader.php"></script>
  ..
</section>

Als erstes wird mit {{- T “hashOverHeader” -}} ein mehrsprachiger Texthinweis ausgegeben. HashOver orientiert sich an der URL. Mehrsprachige Hugo Webseiten haben für die unterschiedlichen Sprachen auch unterschiedliche URL’s. Das bedeutet - ein Kommentar auf einer deutschen Webseite erscheint auch nur auf dieser Seite. Der identische, englische Blog Text zeigt diesen Kommentar nicht an und umgekehrt. Mehrsprachigkeit erzeugt einen erheblichen Mehraufwand. Hugo erleichtert dies sehr, aber trotzdem bleibt der Mehraufwand. In Zukunft werde ich auch Blogbeiträge über die Anwendung von Mehrsprachigkeit innerhalb von Hugo veröffentlichen.

Danach wird die loader.php der HashOver Installation aufgerufen.

Mehrsprachigkeit hat ihren Preis

<section class="comments">
  ..
  {{ $siteLang := .Site.Language.Lang }}
  {{ if eq $siteLang "de" }}
  <div id="hashover"></div>
  <script type="text/javascript">
    var mytheme = localStorage.getItem("currenttheme");
    if( mytheme == "lightTheme") {
      mytheme = "default-borderless";
    }
    else {
      mytheme = "default-dark-borderless";
    }
    var hashover = new HashOver ('hashover', {
      settings: {language: 'de_DE', theme: mytheme}
    });
  </script>
  <noscript><h2 class="noscript">{{- T "noscriptJS" -}}</h2></noscript>
  {{ else }}
  ..
  {{ end }}
</section>

Mein Blog wird in Deutsch und Englisch veröffentlicht. Deshalb genügt mir eine if .. else .. end Abfrage. Als erstes Speicher ich den Sprachcode der aktuellen Webseite in einer Variablen. Wenn es ein deutscher Sprachcode ist gehe ich in den if-Zweig, ansonsten - da in meinem Fall englischer Text - in den else-Zweig.

Danach wird ein leeres <div> HTML-Element mit der ID hashover erzeugt. HashOver sucht nach dieser ID und füllt dieses <div> mit der Anzeige der Kommentare.

Wie weiter oben beschrieben setze ich für diesen Blog ein helles und ein dunkles Theme ein. Welches Theme vom Benutzer verwendet wird speicher ich im localStorage des benutzten Browsers. Wenn mein lightTheme benutzt wird, weise ich der Variablen ein dazu passendes Theme von HashOver zu. Danach wird eine neue Instanz von HashOver generiert und als Parameter die zu benutzende Sprache und das entsprechende Theme übergeben.

Da der Aufruf von HashOver über JavaScript erfolgt, muss es natürlich auch einen noscript Block mit entsprechend mehrsprachiger Ausgabe geben.

Farbliche Integration von HashOver per SCSS

Die diversen Themes von HashOver sind gut durchdacht und erfüllen ihre Funktion einschließlich der responsive Anzeige auf kleinen Displays. Trotzdem muss meiner Ansicht nach an einigen Stellen eingegriffen werden. Wie vieles im Leben liegt die Schönheit im Auge des Betrachters.

Am Anfang habe ich versucht HashOver über meine lokale MAMP Installation extern anzusprechen und so lokal das jeweilige Theme anzupassen. Dabei bin ich kläglich gescheitert.

Mir blieb nichts anderes übrig als mühsam den SCSS-Code lokal zu verändern, die Hugo Website zu erstellen, per SFTP auf den Webserver zu übertragen und dann festzustellen - die Farbe passt doch nicht. Aus diesem Grund sind die Änderungen recht sparsam ausgefallen:

.comments {
  max-width: $content-blog-width;
  margin: 0 auto;
  padding: 0 1.0rem;
  
  .h-header {
    border-top: 1px solid var(--wk-accent-border-color);
    padding: 2.0rem 0;
  }
  .noscript {
    color: var(--wk-accent-color-2);
    margin-bottom: 2.0rem;
  }
  .hashover-title {
    color: var(--wk-accent-color-3);
  }
  .hashover-comment-name,
  .hashover-end-links {
    a {
      color: var(--wk-accent-color-3) !important;
    }
    a:hover {
      color: var(--wk-accent-color-3) !important;
    }
  }
}

Der HashOver eigene CSS-Code wird durch HashOver selber geladen. Es besteht keine Notwendigkeit den CSS-Code irgendwie einzubinden. In der Dokumentation steht zwar, dass wenn man den CSS-Code nicht manuell einbindet, es zu einem verzögernden Aufbau des Designs kommen kann. Dies habe ich nicht festgestellt - siehe: HashOver 2.0 Dokumentation - Best Practices .

Anzahl der Kommentare anzeigen

Im Layout-Template single.html rufe ich das Partial date-and-tags.html auf. Innerhalb von diesem Partial ist ein <span> Element mit der ID hashover-comment-count positioniert. Die ID sucht HashOver und ersetzt den Inhalt des Elements mit der Anzahl der Beitragskommentare.

<div class="comment-count">
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chat-dots" viewBox="0 0 16 16">
  <path d="M5 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm4 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"/>
  <path d="M2.165 15.803l.02-.004c1.83-.363 2.948-.842 3.468-1.105A9.06 9.06 0 0 0 8 15c4.418 0 8-3.134 8-7s-3.582-7-8-7-8 3.134-8 7c0 1.76.743 3.37 1.97 4.6a10.437 10.437 0 0 1-.524 2.318l-.003.011a10.722 10.722 0 0 1-.244.637c-.079.186.074.394.273.362a21.673 21.673 0 0 0 .693-.125zm.8-3.108a1 1 0 0 0-.287-.801C1.618 10.83 1 9.468 1 8c0-3.192 3.004-6 7-6s7 2.808 7 6c0 3.193-3.004 6-7 6a8.06 8.06 0 0 1-2.088-.272 1 1 0 0 0-.711.074c-.387.196-1.24.57-2.634.893a10.97 10.97 0 0 0 .398-2z"/>
  </svg>
  <span id="hashover-comment-count">0</span>
</div>

Tipps zur Handhabung

Diesen Abschnitt werde ich mit zunehmender HashOver Erfahrung ergänzen.

Benachrichtige mich über Antworten

Wenn die Checkbox aktiviert wird und jemand antwortet direkt über “Antworten” auf diesen Kommentar, erhält man eine E-Mail mit der Antwort. Wenn für den Blogbeitrag ein unabhängiger Kommentar verfasst wird, erhält man keine E-Mail.

Admin Kommentare

Wenn man in einem Browser als Admin angemeldet ist, wird das Kommentarformular automatisch mit den Daten des Admin gefüllt.

In einem Tab melde ich mich bei HashOver an, in einem anderen Tab ist ein Blogbeitrag mit Kommentaren geöffnet. Als im Browser angemeldeter Administrator kann man innerhalb des Blogbeitrages die Benutzerkommentare löschen, bearbeiten und beantworten. Dies ist sehr komfortabel. Je mehr ich mich mit HashOver beschäftige umso überzeugter bin ich von dem Kommentarsystem.

Fehler, verbesserungswürdige Dinge, Feature Request

Jacob Barkdull reagiert auf - GitHub Issues - leider nicht besonders oft. Ich kann verstehen, dass wenn man ein komplexes Projekt jahrelang betreut, manche Fragen und Hinweise von Benutzern einfach nerven und einem selber als überflüssig erscheinen. Die Dokumentation ist umfangreich und auch sehr hilfreich, aber manche Dinge benötigen doch noch etwas mehr Erklärung. Der weltweite Einsatz des Kommentar Systems erzeugt lokal zusätzliche Probleme. Beispiel: Umschalten des Date-Format auf einer mehrsprachigen Website.

Zur Erinnerung - HashOver ist kostenlos. Kritisieren geht leicht, selbst etwas ändern ist schon schwieriger. Meine PHP-Kenntnisse reichen nicht bis in die Tiefe - die für Änderungen nötig wären. Aber vielleicht ist ein PHP-Profi aus Eigeninteresse bereit entsprechende Patches auf GitHub zur Verfügung zu stellen.

Fehler

Wenn auf einen Kommentar geantwortet wird und auf “Antwort absenden” geklickt wird, bleibt das Eingabeformular geöffnet. Der gespeicherte Kommentar wird unterhalb des immer noch geöffneten Eingabeformular angezeigt. Sobald die Seite durch einen Refresh neu angezeigt wird, ist das Eingabeformular mit dem neuen Kommentar verschwunden. Meiner Ansicht nach muss bei Klick auf den “Antwort absenden” Button, nach dem Speichern nur ein Refresh der Seite durchgeführt werden um diesen Fehler zu beheben.

Der folgende Fehler wird nach Klick auf “Antwort absenden” in der Netzwerkumgebung des Browsers angezeigt:

comments.php?cfg[language]=de_DE&cfg[theme]=default-borderless:8 Uncaught TypeError: this.reappendMoreLink is not a function
    at HashOver.appendComments (comments.php?cfg[language]=de_DE&cfg[theme]=default-borderless:8)
    at HashOver.appendComments (comments.php?cfg[language]=de_DE&cfg[theme]=default-borderless:8)
    at HashOver.AJAXPost (comments.php?cfg[language]=de_DE&cfg[theme]=default-borderless:8)
    at XMLHttpRequest.commentHandler (comments.php?cfg[language]=de_DE&cfg[theme]=default-borderless:8)
    at XMLHttpRequest.onSuccess (comments.php?cfg[language]=de_DE&cfg[theme]=default-borderless:8)
    at XMLHttpRequest.xhr.onreadystatechange (comments.php?cfg[language]=de_DE&cfg[theme]=default-borderless:8)
HashOver Form Error
Fehler: Das Eingabeformular wird nicht geschlossen.

Verbesserungswürdige Dinge

Das Date-Format kann per JavaScript nicht geändert werden. Dadurch kann auf mehrsprachigen Websites das Datumformat nicht angepasst werden. Bei dieser Website haben die englischen Kommentare das deutsche Datumsformat. Das dürfte irritieren.

Bei der Anzeige eines Kommentars wird nur das Erfassungsdatum aber nicht die Uhrzeit angezeigt. uses-user-timezone ist aktiviert, also auf true.

Oberhalb der Kommentare wird die Gesamtanzahl angezeigt. Bei mehr als einem Kommentar wird das Wort Kommentar nicht ins Plural erweitert. Ergebnis: 2 Kommentar statt 2 Kommentare. Die Übersetzungen stehen im Verzeichnis backend/locales/de-de.php. Dort sind auch zwei Einträge vorhanden:

‘showing-comment’ => ‘%d Kommentar’,
‘showing-comments’ => ‘%d Kommentare’,

Aber anscheinend wird showing-comments' nicht benutzt.

Feature Request

Aus Datenschutzgründen benutze ich die Option Avatar icon display mode = None. Eigentlich finde ich die Gravatar Möglichkeit sehr schön, aber so wie die Funktion in HashOver implementiert ist, darf ich es aus rechtlichen Gründen in der EU nicht nutzen. Die DSGVO schreibt vor, dass ein Benutzer die Möglichkeit haben muss, der Verwendung seiner persönlichen Daten zu widersprechen. Die E-Mailadresse wird bei eingeschalteten Avataren direkt mit Gravatar abgeglichen. Nur so kann das persönliche Bild von Gravatar geliefert werden. Das ist vollkommen ok, da ein Gravatar Benutzer weiß was er macht. Die E-Mailadresse von einem Nutzer der kein Gravatar-Konto hat, wird aber ohne Einspruchmöglichkeit an Gravatar übertragen. Die DSGVO erlaubt so etwas nicht.

Schön wäre eine Checkbox “Gravatar verwenden” im Eingabeformular. Die Checkbox müsste disabled sein und erst wenn die Checkbox enabled ist, wird die E-Mailadresse mit Gravatar abgeglichen. Zusätzlich müsste in den Settings für den Administrator ein Feld “Admin Gravatar E-Mailadresse” vorhanden sein. Damit eine Trennung des Admin-Accounts und Gravatar-Accounts gegeben ist.

Fazit

Bis jetzt bin ich mit HashOver sehr zufrieden. Die Anpassungsfähigkeiten sind sehr umfangreich. Der Fehler mit dem Eingabeformular sollte schnellstens behoben werden.

Linkliste zu diesem Beitrag

|
14 Minuten Lesezeit
0
Dieser Beitrag wurde mit der Hugo-Version 0.87.0 erstellt.

Kommentare werden bei deutscher Spracheinstellung nicht in der englischen Variante der Webseite angezeigt und umgekehrt.

© 2021 - Frank Kunert  -  Ich über mich
Ein Service von webdienste-kunert.de