Importieren Sie die User-Klasse anstatt User zu verwenden

Hallo liebe Community,

ich habe etwas Zeit, um die Warnungen in unserer Community zu beheben. Eine davon lautet wie folgt:

Deprecation-Hinweis: Importiere die User-Klasse anstelle von User (seit Discourse 2.4.0 veraltet) (Entfernung in Discourse 2.6.0)

Ich versuche, dies über die DevTools zu debuggen, aber es lässt mich nicht in die Datei eintauchen, aus der die Warnung stammt. Es wird angezeigt:

Inhalt für URL/assets/var/www/discourse/public/assets/_application-d88a387e24ec4397c59d853355d071080a32aa58498a2ea0a509cebee72839c0.js konnte nicht geladen werden: HTTP-Statuscode: 404

Jedenfalls habe ich den abgesicherten Modus aktiviert und nur das Theme belassen. Es sieht so aus, als käme die Warnung von meinem Theme. In meinem Theme habe ich festgestellt, dass ich in einer HTML-Datei Folgendes verwende:

<script type="text/discourse-plugin" version="0.8.13">
api.decorateWidget('header:before', helper => {
  // ... code
  var currentUser = Discourse.User.current();
  // ... code
});
</script>

Meine technischen Fragen lauten daher wie folgt:

  1. Könnte die Warnung von dieser Zeile stammen? Wenn ja, wie sollte ich User importieren und die Warnung beheben?
  2. Wie sollte ich die komprimierten JS-Dateien über die DevTools debuggen?

Vielen Dank im Voraus! :slight_smile:

Ändern

var currentUser = Discourse.User.current();

in

var currentUser = api.getCurrentUser();

Keine Notwendigkeit, etwas zu importieren, wie in der Meldung steht?

Nein, die API bietet dies bereits für Sie.

Toll! Vielen Dank :slight_smile:
Es sieht so aus, als hätte ich noch weitere Stellen zu korrigieren, wie z. B. Discourse.Site.currentProp('trustLevels').
Gibt es eine passende Dokumentation, die ich lesen könnte, um zu verstehen, welche Methode ich anstelle der alten verwenden soll?

Bei mir auch. Müsste ich Discourse.Site.currentProp('user_fields') (siehe hier) durch etwas anderes ersetzen?

Ich vermute, dieses Thema sollte in die Kategorie Support - Discourse Meta gehören.

Ich habe das gleiche Problem: Hinweis zur Abschaffung: Importieren Sie die Klasse User anstelle von User (seit Discourse 2.4.0 veraltet) (Entfernung in Discourse 2.6.0) in der neuesten Version, 2.6.0.beta3.

Mein Forum lädt beim ersten Besuch durch einen Nutzer langsam.

Könnten Sie mir erklären, wo ich anfangen soll? Wie ändere ich diesen Wert? Über den Admin-Bereich?

Vielen Dank

Diese Deprecation-Hinweise richten sich an Theme- und Plugin-Entwickler.

“Wenn Sie nicht wissen, wie man das macht, sind Sie nicht die Person, die dies tun sollte”.

Als Theme-Entwickler, wenn du mehr als nur User.current() verwendest, lautet der Ersatz:

const User = require('discourse/model/user').default;