Mehrere Installationen des Benutzerportfolios

Okay, ich bin einen anderen Weg gegangen, als zu versuchen, die Portfolio-Plugins zu verwenden. Ich bin mir nicht sicher, ob ich das hier oder in einem neuen Thread posten soll – wenn ja, lassen Sie es mich bitte wissen!

Kann sich jemand das ansehen und mir sagen, was ich falsch mache (und hoffentlich warum / wie ich es beheben kann)? Ich habe Stunden über Stunden damit verbracht, Tutorials zu lesen, zu schreiben und zu bearbeiten, aber ich bin noch ein Anfänger und bin an einem Punkt angelangt, an dem ich nicht mehr weiß, was ich als Nächstes versuchen soll.

Das Ziel: Eine Liste von Themen aus einer bestimmten Kategorie auf der Zusammenfassungsseite eines Benutzers anzeigen.
In diesem Anwendungsfall ist es für ein RPG-Forum, in dem Benutzer Charaktere erstellen, um damit Geschichten zu posten. Ich möchte, dass dieses Plugin anzeigt, welche Charaktere ein Benutzer erstellt hat, damit niemand zu weit graben muss. Alle Charakterbögen werden im selben Forum gespeichert. Also denke ich, ich muss nur eine Themenliste erstellen, die Themen vom richtigen Benutzer und vom richtigen Forum abruft.

Ich habe die folgenden als Referenz verwendet:

https://meta.discourse.org/t/add-a-featured-topic-list-to-your-discourse-homepage/132949

Hier ist mein Versuch. Bisher ist die Kopfzeile der Themenliste (Thema/Antworten/Aktivität) an der richtigen Stelle, aber sie wird nicht mit Themen gefüllt.

<script type="text/discourse-plugin" version="0.8">
  const ajax = require('discourse/lib/ajax').ajax;
  const Topic = require('discourse/models/topic').default;
  const User = require('discourse/models/user').default;
  // Benötigt ajax, Topic und User

  api.registerConnectorClass('above-user-summary-stats', 'character-list', {
    // above-user-summary-stats ist der Plugin-Outlet, character-list ist der benutzerdefinierte Komponentenname

    setupComponents(args, component) {

        const store = getOwner(this).lookup("service:store");

        return ajax(userPath(`/topics/created-by/${this.username_lower}.json`)).then(function (result) {
        // Zeilen aus summary() im user.js-Modell; versuchen, den Benutzernamen des Benutzers zu finden, dessen Profil wir gerade ansehen, um auf die JSON-Daten der von ihm erstellten Themen zugreifen zu können

            let characterList = [];
            // leeres Array, um Themen hineinzuschieben

            result.topic_list.topics.forEach.category_id(4)(function(topic){
            // Themen nur aus der spezifischen Kategorie, die wir wollen

            // Ungefähr hier hatte Kris' Tutorial einige Zeilen, um Benutzer mit dem Thema zu verknüpfen. Ich habe sie ignoriert, weil ich keine Benutzer außer dem ursprünglichen Poster benötige, die mit dem Thema angezeigt werden. Ist das wichtig?
            //topic.posters.forEach(function(poster){
                //poster.user = $.grep(featuredUsers, function(e){ return e.id == poster.user_id; })[0];
              //});

                characterList.push(Topic.create(topic));
                // Themen zur Themenliste hinzufügen

            });

            component.set('characterList', characterList);
            // Richten Sie unsere Komponente mit den Themen aus dem Array ein

        }); // Ende ajax


    } // Ende setupComponents

  });
</script>

<script type="text/x-handlebars" data-template-name="/connectors/above-user-summary-stats/character-list">

      <div class="custom-character-list-wrapper">
        {{topic-list topics=characterList showPosters=false}}
      </div>

</script>