Letzten X Beiträge in Kategorie anzeigen?

  • Affected Version
    WoltLab Suite 3.1

    Hallo!

    Gibt es eine Möglichkeit die letzten Beiträge in einer KATEGORIE anzeigen zu lassen?

    Ich suche nach einer Lösung wie ich in einer Kategorie oberhalb der eigentliche Foren die letzten Beiträge anzeigen lassen kann. Ev gibt es dazu auch ein Plugin was ich nicht kenne, wäre für jede Hilfe sehr Dankbar!!!!

    Gamerjob.net

  • Du kannst einfach eine Box erstellen, welche die Themen aus dem gewünschten Forum anzeigt.

    ACP -> Inhalt -> Boxen -> Box hinzufügen -> Box-Typ = System

    Allgemeine Daten

    • Controller = Themen
    • Position = Im Inhaltsbereich oben
    • Einstellungen
      • Forum = Gewünschte Foren auswählen

    Den Rest so einstellen, wie du es haben willst.

  • Danke für Deinen Versuch, das mit der Box funktioniert leider auch nur im Forum über allen Kategorien. Ich suche eine Möglichkeit wenn ich auf eine Kategorie klicke dort über den Foren die letzten 5 oder 10 Themen anzeigen zu lassen. Das sollte bei jeder Kategorie möglich sein.

    Hab mal ein Bildchen gemacht wie ich das gerne hätt, wo der Pfeil hinzeigt sollen die letzten Themen angezeigt werden. (Kategorie "Hilfe -Kunden helfen Kunden" hier bei WL)

    Gamerjob.net

  • Ich suche eine Möglichkeit wenn ich auf eine Kategorie klicke dort über den Foren die letzten 5 oder 10 Themen anzeigen zu lassen.

    Achso, ich hatte dich so verstanden, dass du über dem Forum die letzten Themen einer Kategorie anzeigen lassen willst.

    Du könntest es als Workaround z.B. mal so versuchen und schauen, ob das für dich passt:

    ACP -> Inhalt -> Boxen -> Box hinzufügen -> Box-Typ = System

    Allgemeine Daten

    • Controller = Themen
    • Position = Im Inhaltsbereich oben

    Seiten

    • Box überall sichtbar = Haken entfernen
    • Box auf ausgewählten Seiten explizit anzeigen = Haken bei "Forum" setzen

    Den Rest so einstellen, wie du es haben willst.

    Dann wird die Box erstmal überall in allen Kategorien und Foren angezeigt.

    Jetzt blendet man die Box via CSS allgemein überall aus, so dass sie nirgendwo mehr angezeigt wird:

    CSS
    .box[data-box-identifier="com.woltlab.wcf.genericBox123"] {
        display: none;
    }

    Das 123 musst du durch die ID der Box ersetzen oder dir alternativ im Quellcode den Identifier der Box heraussuchen.

    Und dann blendet man die Box via CSS für bestimmte Seiten ein:

    CSS
    body[itemid="https://url.de/forum/board/111-title/"] .box[data-box-identifier="com.woltlab.wcf.genericBox123"] {
        display: block;
    }

    Das https://url.de/forum/board/111-title/ müsste natürlich durch die URL der Kategorie ersetzt werden, in welcher die Box angezeigt werden soll. Und das 123 wird durch die ID der Box ersetzt.

    Oder alternativ beides in einer einzigen Anweisung kombiniert:

    CSS
    body:not([itemid="https://url.de/forum/board/111-title/"]) .box[data-box-identifier="com.woltlab.wcf.genericBox123"] {
        display: none;
    }

    So würde die Box überall außer in der Kategorie mit der angegebenen URL ausgeblendet werden.

    Es wäre vermutlich schöner, wenn man das Template bearbeiten würde, dort die ID der Foren einbauen würde und im CSS mit den IDs arbeiten würde, anstatt mit der kompletten URL (auch falls sich die URL mal ändern sollte), aber zum Testen dürfte es ja auf jeden Fall erstmal reichen.


    Edit:

    Da ich nach der angesprochenen Template Anpassung gefragt wurde, reiche ich die hier mal nach. Die Anpassung wäre übrigens in der WoltLab Suite 5.2 nicht mehr nötig. Da ist das schon von Haus aus im Template drin.

    Man könnte im header Template als Beispiel zwischen Zeile 26 und 27 folgendes hinzufügen:

    Smarty
    {if $board|isset} data-board-id="{$board->boardID}"{/if}

    Dann sähe der <body> Bereich im header Template insgesamt z.B. so aus:

    Display Spoiler

    Zeile 27 wäre hier die neu hinzugefügte Zeile.

    Smarty: header
    <body id="tpl_{$templateNameApplication}_{$templateName}"
        itemscope itemtype="http://schema.org/WebPage"{if !$canonicalURL|empty} itemid="{$canonicalURL}"{/if}
        data-template="{$templateName}" data-application="{$templateNameApplication}"{if $__wcf->getActivePage() != null} data-page-id="{@$__wcf->getActivePage()->pageID}" data-page-identifier="{$__wcf->getActivePage()->identifier}"{/if}
        {if $board|isset} data-board-id="{$board->boardID}"{/if}
        class="{if $__wcf->getActivePage() != null && $__wcf->getActivePage()->cssClassName}{$__wcf->getActivePage()->cssClassName}{/if}{if !$__pageCssClassName|empty} {$__pageCssClassName}{/if}">

    Danach kann man im CSS die ID des Forums / der Kategorie nutzen, anstatt mit der URL zu arbeiten. Dazu ersetzt man einfach den Part [itemid="https://url.de/forum/board/111-title/"] durch folgendes: [data-board-id="111"]

    Das sähe dann z.B. so aus, um die Box auf allen Seiten auszublenden, außer bei dem Forum / der Kategorie mit der ID 111:

    CSS
    body:not([data-board-id="111"]) .box[data-box-identifier="com.woltlab.wcf.genericBox123"] {
        display: none;
    }

    Die Nutzung der ID hat den Vorteil, dass es auch noch funktioniert, wenn das Forum / die Kategorie mal umbenannt werden sollte oder wenn sich die URL anderweitig irgendwie ändern sollte.

    Edited 4 times, last by ReeN (January 20, 2020 at 3:19 AM).

  • Oder alternativ beides in einer einzigen Anweisung kombiniert:

    CSS
    body:not([itemid="https://url.de/forum/board/111-title/"]) .box[data-box-identifier="com.woltlab.wcf.genericBox123"] {
        display: none;
    }

    So würde die Box überall außer in der Kategorie mit der angegebenen URL ausgeblendet werden.

    ich habe bei mir eine Box die nur in einem bestimmten Faden angezeigt werden soll, das funktioniert soweit auch, aber eben nur in der ersten Seite.


    CSS
    body:not([itemid="https://www.forum.net/index.php?thread/12345-testfaden/"]) .box[data-box-identifier="com.woltlab.wcf.genericBox69"] {
        display: none;
    }

    1. Was müsste ich hier als Platzhalter verwenden, damit das auf allen Seiten angezeigt wird?

    2. Könnte man die Box auch schwebend mit CSS hinbekommen?

    pfd

  • Also die "schwebende Box" ist mir nicht so wichtig. Denke das wird so einfach ohnehin nicht gehen.

    Das Problem hab ich eher mit dem Platzhalter bei für die Seiten eines Fadens.

    Wenn ich das wie folgt im CSS einstelle, wird das nur auf der ersten Seite des Fadens auftauchen.

    CSS
    body:not([itemid="https://www.forum.net/index.php?thread/12345-testfaden/"]) .box[data-box-identifier="com.woltlab.wcf.genericBox69"] {
        display: none;
    }

    Wie kann ich das im ACP unter "Stilunabhängiges CSS und SCSS" einstellen, damit das auf allen Seiten eines Fadens angezeigt wird? Macht für mich wenig Sinn für jede Seite einen Eintrag zu machen.

    CSS
    body:not([itemid="https://www.forum.net/index.php?thread/12345-testfaden/&pageNo=1"]) .box[data-box-identifier="com.woltlab.wcf.genericBox69"] {
        display: none;
    }
    CSS
    body:not([itemid="https://www.forum.net/index.php?thread/12345-testfaden/&pageNo=2"]) .box[data-box-identifier="com.woltlab.wcf.genericBox69"] {
        display: none;
    }

    Hat da jemand eine Idee?

    pfd

  • Was müsste ich hier als Platzhalter verwenden, damit das auf allen Seiten angezeigt wird?

    Quasi genau das, was ich oben für Foren beschrieben hatte:

    Nur brauchst du es halt für Threads und nicht für Foren. Also passt du den Part, der im header Template eingebaut wird, entsprechend an:

    Smarty
    {if $thread|isset} data-thread-id="{$thread->threadID}"{/if}

    Und dann kannst du folgendes CSS nutzen:

    CSS
    body:not([data-thread-id="12345"]) .box[data-box-identifier="com.woltlab.wcf.genericBox69"] {
        display: none;
    }

    Edited once, last by ReeN (March 29, 2020 at 1:21 PM).

  • Quasi genau das, was ich oben für Foren beschrieben hatte:

    Danke für deine Hilfe. Was bedeutet die Änderung am Template für den restlichen Forenbetrieb? Also auf was hat das alles sonst noch Auswirkungen? Oder was würde sich ändern?

    pfd

  • Nichts, es ist lediglich eine zusätzliche Information im Template vorhanden, die Du bei Bedarf nutzen kannst.


    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier und hier.

  • ReeN

    Danke für die Top-Anleitung für das einblenden der Box auf der einzelnen Foren-Seite.
    ich nutze folgendes:

    Code: CSS
    body:not([data-board-id="148"]) .box[data-box-identifier="com.woltlab.wcf.genericBox26"] {
    
    display: none;
    
    }

    Kann ich als Zusatz die Box ebenfalls einblenden, wenn ich in dem Forum (URL: https://maddenfl.de/forum/board/148-waiver-wire/) einen neuen Thread erstelle?

    Also wenn ich mich auf der Seite: https://maddenfl.de/forum/thread-add/148/ befinde?

    Wir nutzen Woltlab 5.2.9

    Edited once, last by MaddenFL (September 8, 2020 at 2:39 AM).

  • Hat das Performance technisch gesehen, irgendwelche Einträchtigungen, wenn man das beispielsweise für eine Shoutbox umsetzt?

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!