Benutzerdefinierte Kopfzeilen-Links

:discourse2: Summary Custom Header Links allows you to easily add custom text-based links to the header.
:eyeglasses: Preview Preview on Discourse Theme Creator
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-custom-header-links
:open_book: New to Discourse Themes? Beginner’s guide to using Discourse Themes

Install this theme component

Features

Desktop

Mobile

(due to very limited space I don’t recommend adding more than one link on mobiles)


Settings

Name Description
custom header links Custom links to be displayed in the header
links position Note that when links are displayed on the left, they’re automatically hidden while scrolling within topics to make room for the title

Adding links is straightforward. Every link needs 6 items. You enter comma delimited values in this order:

link text, link title, URL, view, target, hide on scroll

Link text: the text for the link.
Link title: the text that shows when the link is hovered.
URL: The path for the link (can be relative).
View: vdm = desktop and mobile, vdo = desktop only, vmo = mobile only.
Target: blank = opens in a new tab, self = opens in the same tab.
Hide on scroll: remove = hides the link when the title is expanded on topic pages keep = keeps the link visible even when the title is visible on topic pages.

If you’re not sure what hide on scroll does, here’s an example:

Most Liked and Privacy are set to keep and so they remain visible. The other links are set to remove, and so are hidden when the title expands in the header. This only affects topic pages.

Links position: This setting allows you to change the default layout so links will appear on the left near the logo instead of on the right. Note that when positioned to the left, links will automatically be hidden when scrolling within topics to make room for the topic title.


:discourse2: Hosted by us? Theme components are available to use on our Standard, Business, and Enterprise plans.

Last edited by @JammyDodger 2024-06-11T20:31:00Z

Check documentPerform check on document:
82 „Gefällt mir“

don’t know if this has been suggested, tried reading back but couldn’t find it.

was thinking that maybe adding the ability to create “sub-links” thus creating the idea of a list that you could edit (text color, background hover etc.) to get results similar to what zoom has

8 „Gefällt mir“

the links that have the arrow to the right like developer means that it has “sub-links”

1 „Gefällt mir“

Is it possible to add some basic dropdown menu to an any item?

I couldn’t create a dropdown menu with “Custom header links”. It seems Zoom did that. I reviewed their dropdown menu via console, but I couldn’t figure out how they interfere with the html of this component for adding dropdown to any item.

Is there a way to add this dropdown to item? @Johani

<div id="dropdown">
  <a title="Zoom Developer Documentation" href="https://marketplace.zoom.us/docs" target="_blank">Developer</a>
  <span class="caret"></span>
  <div class="dropdown-content">
    <a title="Zoom API Docs" href="https://marketplace.zoom.us/docs/api-reference/introduction" target="_blank">API</a>
    <a title="Zoom SDK Docs" href="https://marketplace.zoom.us/docs/sdk/native-sdks/introduction" target="_blank">SDK</a>
    <a title="Zoom Developer Blog" href="https://medium.com/zoom-developer-blog" target="_blank">Blog</a>
    <a title="Zoom Developer Changelog" href="https://marketplace.zoom.us/docs/changelog" target="_blank">Changelog</a>
    <a title="Zoom Developer Survey" href="https://docs.google.com/forms/d/e/1FAIpQLSeJPLhNuxjtkxyyV276R8S_nYz99fpMbbS8VWkC8Hwi7-2Byg/viewform" target="_blank">Survey</a>
  </div>
</div>
5 „Gefällt mir“

Has anyone run into any issues with links not opening when setting links position to “left”?

Links work on Preview but not when I apply it to a theme.
Right alined links work fine though.

1 „Gefällt mir“

Hi! Thanks for creating this.
Is it possible to add an SVG before the text link? If so - how?

1 „Gefällt mir“

Have you found a solution for this? I am look for the same solution.

6 „Gefällt mir“

how can the title convert **formatting code** into actual formatting? also how about Font Awesome icons before the text?

2 „Gefällt mir“

Could be possible to add a flag to show or hide links as specific groups of users?

3 „Gefällt mir“

Is there a way this theme component can allow for dropdown navigation? That means, when I hover over a header link, it has sub-items that appear underneath it. I know that this can be done via html/css as shown here:

2 „Gefällt mir“

Thank you for creating this component!
One question and potentially a feature request: can we show a specific link for a specific group?
For example, if a user is in group customers I’d like to show a link to the customer’s control panel, if a user is in group workers I’d like to add a link to a different panel.
I think this would be a very useful feature.
The group name could be the last (optional) parameter.

2 „Gefällt mir“

Vielen Dank dafür! Ich habe es gerade gefunden, nachdem ich verschiedene andere Banner und Komponenten ausprobiert hatte. Es ist genau das, was ich brauche!

Eine Anfrage/ein Vorschlag: Möglichkeit, die Links neu zu ordnen. Ich habe gerade einige erstellt und festgestellt, dass ich einen oben hinzufügen möchte. Jetzt muss ich sie alle manuell kopieren und einfügen, was tatsächlich recht umständlich ist, da sie beim Kopieren und Einfügen andere Einträge synchronisieren/aktualisieren.

Drag-and-Drop- oder Auf-/Ab-Schaltflächen wären für zukünftige Benutzer (oder zukünftige Bearbeitungen) sehr nützlich.

4 „Gefällt mir“

[quote=“Nick_Chomey, post:131, topic:90588”]
Drag and drop oder Auf/Ab-Schaltflächen wären für zukünftige Benutzer (oder zukünftige Bearbeitungen) sehr nützlich.
[/quote]Sie können die Reihenfolge bereits sehr einfach mit einigen Zeilen CSS manipulieren, da wir die flex-Eigenschaft verwenden.

Z.B.:

  • Standardreihenfolge
    image

  • Benutzerdefinierte Reihenfolge
    image

CSS-Beispiel:

.custom-header-links li {
  &:nth-child(1) {
    order: 3;
    background: red;
  }

  &:nth-child(2) {
    order: 1;
    background: green;
  }

  &:nth-child(3) {
    order: 2;
    background: yellow;
  }
}
5 „Gefällt mir“

@Nick_Chomey Ich habe oft festgestellt, dass ich dies tun muss, nicht nur für diese Theme-Komponente, sondern auch für viele andere Theme-Komponenten, die die Einstellung type: list verwenden. Ich hatte vor, eine Funktionsanfrage einzureichen, aber ich habe sie völlig vergessen, aber da Sie mich daran erinnert haben, habe ich hier eine hinzugefügt:

3 „Gefällt mir“

@dax Danke! Ich hatte keine Ahnung, dass das möglich ist!

@keegan sieht großartig aus, hoffentlich wird es irgendwann hinzugefügt!

2 „Gefällt mir“

Ich suche nach der gleichen Lösung, haben Sie schon herausgefunden, wie sie das gemacht haben?
Danke!

1 „Gefällt mir“

Hallo @Johani
Danke für die Erstellung einer so tollen Komponente!

Ist es möglich, einen Link nur dann sichtbar zu machen, wenn der Benutzer angemeldet ist?
Es wird ein externer Link sein.

1 „Gefällt mir“

Hallo @andreas_can, willkommen bei Meta :wave:

Diese Komponente fügt jedem Link eine CSS-Klasse hinzu, basierend auf seinem Text. Die hinzugefügte Klasse ist dieselbe wie der Text, den Sie dem Link geben, außer dass Leerzeichen durch einen Bindestrich (-) ersetzt und der Text in Kleinbuchstaben umgewandelt wird. Dann wird die Zeichenfolge -custom-header-links am Ende angehängt.

Wenn Sie also einen Link mit dem Text hinzufügen

privacy

dann hat das Linkelement die Klasse

privacy-custom-header-links

Wenn Ihr Linktext lautet

Visit Shop

dann wäre die CSS-Klasse

visit-shop-custom-header-links

Jetzt kennen Sie also die Klasse, die jedem Link hinzugefügt wird. Zurück zu Ihrer Frage.

Discourse fügt dem <html>-Tag eine CSS-Klasse hinzu, wenn der Benutzer nicht angemeldet ist. Diese Klasse ist

anon

Sie können dies also verwenden, um bestimmte Links für Benutzer auszublenden, die nicht angemeldet sind. Nehmen wir an, ich habe einen Link mit dem Text

Customer Support

und ich möchte nicht, dass er für Benutzer angezeigt wird, die nicht angemeldet sind.

Ich würde dann dieses CSS hinzufügen

.anon {
  .customer-support-custom-header-links {
    display: none;
  }
}

im Tab common > CSS Ihres Hauptthemas.

Dies blendet diesen speziellen Link für Benutzer aus, die nicht angemeldet sind.

11 „Gefällt mir“

Vielen Dank für Ihre schnelle und ausführliche Antwort!
Das ist genau das, wonach ich gesucht habe.

Ich werde es ausprobieren :slightly_smiling_face:

3 „Gefällt mir“

Beachten Sie, dass CSS display: none; den Link zwar nur vor der Browser-Darstellung verbirgt, er aber für jeden, der den Seitenquelltext liest, für Web-Crawler und Suchmaschinen immer vollständig sichtbar ist.

3 „Gefällt mir“