Ich bin mir nicht ganz sicher, wie ich das angehen soll und suche nach etwas Hilfe.
Grundsätzlich möchte ich eine visuelle Trennung zwischen angepinnten und regulären Themen haben. Dies wäre für die Community-Foren eines Spieleentwicklers und diese Trennung wäre für die Benutzer hilfreich.
Ich suche etwas wie dieses:
[ANGEPINNT] Thema Name
Reguläres Thema
Anstatt:
[ANGEPINNT] Thema Name
Reguläres Thema
Ich habe bereits die Hintergrundfarbe der angepinnten Themen geändert, um einen leichten Unterschied zwischen den beiden zu schaffen. Ich habe CSS ausprobiert, was funktioniert hat, aber nur bei einem Seiten-Refresh.
Ich habe versucht, meine eigene Theme-Komponente zu erstellen, aber da bleibe ich stecken, da ich etwas hinzufügen müsste, aber nicht weiß, wo.
Mein Ziel ist es, <tbody> class="pinned-topics"> vor dem ursprünglichen (regulären Themen) <tbody> einzufügen.
Sie können die Verwendung der Theme-Komponente Filtered Topic Lists mit der Abfrage in:pinned in Betracht ziehen.
Wenn Sie stattdessen bei CSS bleiben möchten, können Sie Folgendes tun:
// zielt auf den letzten Pin in der Liste
tr.topic-list-item.pinned:has(+ tr:not(.pinned)) td {
// grober Weg, um Platz in einer Tabellenzeile zu erzwingen
padding-bottom: 1.8em;
}
tr.topic-list-item.pinned:has(+ tr:not(.pinned))::after {
// Inhalt, der im Platz angezeigt werden soll, falls gewünscht
content: 'regular';
width: 100%;
position: absolute;
display: flex;
height: 1em;
left: 0;
right: 0;
bottom: 0;
justify-content: center;
border-top: 1px solid var(--primary-low);
}
Vielen Dank für die Hilfe! Leider hat das nicht funktioniert. Ich habe einen Plugin-Versuch, der das tun sollte, was ich brauche, aber ich scheine ihn auf Discourse 3.4.0-beta2 nicht zum Laufen zu bringen.
Es generiert ein div-Wrapper mit einer eindeutigen ID und vermasselt die CSS. Es ist jedoch notwendig, wenn du Aktionen an das Element binden möchtest.
Würde ich etwas im Komponentenverzeichnis benötigen oder würden alle Dateien im Connector-Verzeichnis liegen?
Der einzige Grund, warum ich dies als Plugin und nicht als Theme-Komponente gemacht habe, ist, dass ich später weitere Funktionalitäten hinzufügen möchte.
Sie benötigen das components-Verzeichnis hier in diesem Connector- und Codekontext nicht.
Sie können es in meinem Screenshot sehen, da ich eine vorhandene Komponente geändert habe.
Das gesagt, es hängt davon ab, was Sie später tun möchten. Es ist auch möglich, eine Komponente im Connector zu erstellen, die sich auf eine andere Komponente bezieht (und diese würden Sie im components-Verzeichnis platzieren).
Ich habe noch eine letzte Frage, wenn es Ihnen nichts ausmacht. Gibt es eine Möglichkeit, die angehefteten Themen aus der normalen Themenliste auszublenden, damit die angehefteten Themen nicht dupliziert werden?
Bearbeiten: Ich konnte das tatsächlich mit etwas CSS erreichen.