Mehrere Installationen des Benutzerportfolios

Hallo! Ich beabsichtige, meine Discourse-Instanz für ein Rollenspiel zu verwenden. Die User-Portfolio-Theme-Komponente wäre perfekt, um die von den Benutzern eingereichten Dinge anzuzeigen. Insbesondere möchte ich in den Profilen eine Liste der Charaktere, Lore-Einreichungen und Rollenspiel-Szenen eines Benutzers sehen können.

Das einzige Problem ist, dass diese Theme-Komponente nur eine Kategorie gleichzeitig unterstützt. Ich habe versucht, die Kategorie auf 0 für alle Kategorien zu setzen und dann mehrere Tags hinzuzufügen, aber die Portfolio-Seite wurde dadurch leer angezeigt. Daher möchte ich mehrere Instanzen dieser Theme-Komponente bearbeiten und installieren, um mehrere Portfolio-Seiten für diese separaten Elemente zu haben.

Ich habe versucht, die Theme-Komponente herunterzuladen und die Dateien zu bearbeiten (z. B. Instanzen von Portfolio in portfolio_2 zu ändern) und dann die neue Kopie zusätzlich zum Original zu installieren, aber keine von beiden funktioniert.

Wenn beide aktiviert sind…

  1. Es wird nur eine Instanz des Portfolio-Buttons auf der Benutzerkarte angezeigt (portfolio_2)
  2. Es wird nur eine Instanz des Portfolio-Buttons im Profil des Benutzers angezeigt (portfolio_2)
  3. Die portfolio_2-Seite ist im Profil des Benutzers leer.

Ist es möglich, dies zum Laufen zu bringen, oder sollte ich aufgeben?

Diese Funktion stammt aus Topic List Previews. Sie könnten auch das ausprobieren.

In TLP können Sie auch die Portfolio-Einbeziehung nach Tag festlegen.

Damit könnten Sie Themen aus mehreren Kategorien auswählen.

1 „Gefällt mir“

Danke, das ist ein großartiger Ort zum Nachschauen. Ich denke, ich bevorzuge, dass der Portfolio-Button im horizontalen Menü des Profils (neben Zusammenfassung, Aktivität usw.) ist, aber das größere Problem, das ich habe, ist, dass ich, wenn es mehrere Tags gibt, nach Tags filtern möchte, d. h. Benutzer würden auf Schaltflächen klicken, um nur „Charaktere“ oder „Szenen“ gleichzeitig im Portfolio anzuzeigen.

Ich werde vielleicht versuchen, etwas zu diesem Zweck aus beiden Themenkomponenten zusammenzufügen, aber ich werde zuerst noch etwas herumstöbern. Wenn jemand zusätzliche Ideen hat, bitte teilen!

1 „Gefällt mir“

Das ist in Ordnung, aber logischerweise ist es im besten Fall der beste Ort: Es ist ein Filter für alle Aktivitäten, genau wie die anderen „Schnitte“.

Aber schau dir die Quelle an und tu dein Bestes! :computer: :rocket:

Ich stimme zu 100 % zu, dass dies ein guter Ort für einen allgemeinen Anwendungsfall ist. Mein spezieller Anwendungsfall ist für eine Community, die sich auf Rollenspiele konzentriert, in der Benutzer regelmäßig nach diesen Informationen suchen würden. Daher möchte ich, dass die Schaltflächen für Charakter- und Szenenverfolgung mit möglichst wenigen Klicks zugänglich und gut sichtbar sind. Ich meine nicht, Ihre Lösung schlecht zu machen!

1 „Gefällt mir“

Machen Sie sich keine Sorgen. Ich habe das nicht so aufgefasst.

Ja, ich sehe den Nutzen in Ihrem Fall. Zeit für eine maßgeschneiderte Lösung!

1 „Gefällt mir“

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>