Tag-Banner auch auf getaggten Themenseiten anzeigen lassen

Hallo zusammen

Ich möchte wissen, ob es möglich ist, in jedem Beitrag ein Formular zu haben, bei dem die erforderlichen Details eines Kunden, sagen wir als Tag, am Anfang des Themas angezeigt werden.

Dieses Formular könnte in mehr als einem Thema hinzugefügt werden und die Kundendetails anzeigen, sagen wir

ohne eine Kategorie erstellen zu müssen, da wir Kategorien nach anderen Kriterien erstellen
oder andere Lösungen, die mir helfen, die Details eines Kunden automatisch in mehr als einem Thema und in mehr als einer Kategorie anzuzeigen?

Ich glaube nicht, dass es dafür eine vorhandene Funktionalität gibt. Sie müssten wahrscheinlich ein Plugin verwenden.

Ich könnte mich jedoch irren. Könnten Sie das näher erläutern? Danke.

Welches Plugin könnte mir helfen, diesen Workflow zu erstellen?

Hallo, könnten Sie Ihre ursprüngliche Frage näher erläutern? Ich verstehe sie möglicherweise falsch.

Ich denke, Sie müssen möglicherweise etwas Benutzerdefiniertes tun, aber ohne weitere Details ist es schwer, dies sicher zu sagen.

Suchen Sie nach einem Formular im Topic-Beitrag, das dem Thema basierend auf dem Inhalt des Formulars Tags hinzufügt? Dann könnten Sie möglicherweise auch mit einer Theme Component auskommen.

Wenn ich Ihre Frage richtig verstehe, verwenden Sie ein Tag für jeden Kunden und möchten, dass eine erweiterte Kundenbeschreibung angezeigt wird, wenn ein Thema mit diesem Tag angezeigt wird.

Es ist zwar keine Formularlösung, aber die Komponente Tag Banners, wie hier auf Meta zu sehen, könnte Sie auf halbem Weg ans Ziel bringen:

Mit dieser installierten Komponente können Sie für jedes Tag eine Textbeschreibung hinzufügen, die in einem Banner angezeigt wird, das erscheint, wenn das Tag selbst ausgewählt wird. Das Textfeld akzeptiert HTML und kann mit benutzerdefiniertem CSS gestaltet werden, sodass Sie damit einiges anstellen könnten. Hier ist jedoch ein sehr einfaches Beispiel, bei dem ich ein Tag bearbeite:

Die Herausforderung bestünde darin, diese Komponente so zu ändern, dass sie nicht nur auf der Tag-Seite, sondern auf jedem Thema, das dieses Tag verwendet, angezeigt wird. Ich weiß nicht, wie viel Arbeit das wäre, aber ein erfahrenerer Programmierer (wie Nate …) hätte vielleicht eine Idee.

2 „Gefällt mir“

Danke @toddz, das hat sehr geholfen, genau das habe ich gebraucht.

Nun, „@NateDhaliwal, das Tag-Banner wird mir sehr helfen, aber jetzt ist meine Frage:

Wie bringe ich es im Thema selbst dazu, dass die Details oben im Thema erscheinen, wenn ich das Tag hinzufüge?“

:+1: Okay, da ich Ihre Frage verstanden habe, werde ich den Titel dieses Themas bearbeiten, damit vielleicht noch mehr Leute einen Blick darauf werfen.

Ich stelle mir vor, dass es erforderlich wäre, die Komponente zu forken, um eine neue Version zu erstellen, herauszufinden, was das Erscheinen des Banners auf der Tag-Seite auslöst, und dies so zu ändern, dass es auch beim Anzeigen von getaggten Themen ausgelöst wird.

Sie könnten Glück haben und jemand findet das nach einer spaßigen Aufgabe – andernfalls müssen Sie möglicherweise ein Projektbudget ermitteln und eine Anfrage im Marketplace posten.

2 „Gefällt mir“

Ich prüfe, ob dies möglich ist, und experimentiere damit in einer Abspaltung (Fork). Aber keine Versprechungen!

@Eman_Ahmed Ich habe dies in diesen Fork aufgenommen:

Es nimmt das erste Thema-Tag und zeigt es an. Gesteuert durch die Einstellung show on topics (Auf Themen anzeigen). Wenn keine Tags vorhanden sind, wird das Banner ausgeblendet.

2 „Gefällt mir“

Es ist sehr nett von dir, dich darum zu kümmern, Nate. Ich selbst brauche es nicht, aber ich war gespannt, es auszuprobieren. Es funktioniert großartig!

Ich sehe jedoch eine Schwierigkeit, wenn ein Thema mehrere Tags hat. (Und es ist schwer vorstellbar, Dinge mit nur einem Tag pro Thema zu verwalten.)

Tags werden entweder alphabetisch oder nach Beliebtheit sortiert …

image

… sodass der Autor keine direkte Kontrolle darüber hat, welcher Tag zuerst angezeigt wird.

Ich dachte, die Verwendung eines nicht-alphabetischen Zeichens am Anfang der Client-Tags (~ClientName) würde es immer an den Anfang der Liste stellen. Dies funktioniert auf der /tags-Seite – aber nicht bei einem Thema, wo die Tag-Liste das ~-Zeichen einfach ignoriert. :face_with_diagonal_mouth:

In einem Thema von letztem Jahr scheint es, dass bestimmte nicht-alphabetische Zeichen unsichtbar eingefügt werden konnten, um die Anzeigereihenfolge der Tags zu erzwingen: Unsichtbare Methode, um die Anzeigereihenfolge von Tags zu erzwingen?, aber es scheint, dass dies jetzt nicht mehr funktioniert. Wenn ich heute ein Tag mit einem Apostroph oder Komma erstelle, wird es entweder abgelehnt oder stillschweigend entfernt. (Ich bin mir nicht sicher, warum ~ akzeptiert wird.)

Die oben gezeigte Tag-Sortierungseinstellung wirkt sich sowohl auf die /tags-Seite als auch auf die Tag-Liste bei Themen aus – aber ich nehme an, sie verwenden einen anderen Alpha-Algorithmus?

Hmm… Ich nehme an, es kommt wirklich darauf an, was der OP tun möchte. Wenn es 1 Tag → 1 Thema → 1 Benutzer gibt, dann würde das funktionieren. Ansonsten müssten mehr Informationen her :person_shrugging:.

1 „Gefällt mir“

Vielen Dank für Ihren Beitrag!

Ich möchte wissen, ob dies möglicherweise in die offizielle Funktions-Update-Liste aufgenommen werden könnte.

Ich denke, ich habe auch Szenarien, in denen dies sehr gut einsetzbar wäre.

Hmm… Ich bin mir nicht sicher, ob dies vollständig mit dem Kernkonzept eines „Tag-Banners“ übereinstimmt, da es dazu gedacht war, Tag-Informationen auf der Seite des Tags anzuzeigen, aber dies zeigt die Tag-Informationen in Themen mit dem Tag an :person_shrugging:.

Nebenbei bemerkt gab es einige Aktualisierungen der Hauptkomponente, daher muss ich versuchen, den Fork ebenfalls zu aktualisieren, aber beachten Sie, dass der Fork nur als Machbarkeitsnachweis gedacht ist.

2 „Gefällt mir“

Ja, ich weiß nicht, ob es breit genug nützlich wäre, um die Funktionen zum ursprünglichen Plugin hinzuzufügen. Eine separate Version oder ein Add-on namens „Tagged Topic Banner“ wäre möglicherweise angemessener.

Aber ich denke, der Nutzen ist ziemlich begrenzt, es sei denn, es gäbe auch eine Möglichkeit für den Autor, anzugeben, welches Tag das primäre sein soll. Die einzigen Dinge, an die ich denken kann, sind …

1.) Ein Hack, bei dem die Alpha-Sortierung ein Zeichen wie ~ als Listenanfang behandelt.

AskBot schlug einen Ansatz für ein Plugin-Monkey-Patch vor
# plugin.rb
after_initialize do
  module ::CustomTagSort
    def custom_tag_sort(tags)
      tags.sort_by do |tag|
        # Stellt ~-präfixierte Tags an erste Stelle, sortiert dann A-Z
        [tag.name.start_with?("~") ? 0 : 1, tag.name.downcase]
      end
    end
  end

  # Patch in den Serializer/die Methode einfügen, die visible_tags oder Ähnliches berechnet
  require_dependency 'topic_tags_mixin'
  TopicTagsMixin.prepend(Module.new do
    private

    def all_tags
      return @tags if defined?(@tags)
      tags = topic.visible_tags(scope)
      if SiteSetting.tags_sort_alphabetically
        tags = ::CustomTagSort.custom_tag_sort(tags)
      else
        topic_count_column = Tag.topic_count_column(scope)
        tags = tags.sort_by { |tag| tag.public_send(topic_count_column) }.reverse
      end
      @tags = tags
    end
  end)
end

2.) Noch besser: Tags nach einer festgelegten Reihenfolge von Tag-Gruppen ordnen.

Bei der Suche tauchen eine Reihe von Themen auf, die mehr Kontrolle über die Tag-Reihenfolge fordern, da diese oft aus verschiedenen Gründen wichtig ist (Gattung → Art, Marke → Modell usw.) – aber Antworten deuten darauf hin, dass dies ein ziemlicher Arbeitsaufwand wäre.

1 „Gefällt mir“