XF2.2 xF 2.2.x - (m)ein XF-Lexikon im Eigenbau... v2

otto

Die 5k-Labertasche
Lizenzinhaber
Registriert
11. Dez. 2010
Beiträge
5.324
Punkte
448
XF Version
  1. 2.2.15
XF Instanz
Hosting
PHP-Version
8.2.x
MySQL/MariaDB
10.3.x
Provider/Hoster
Strato/Hetzner
Hallo,

basierend auf meinen Erfahrungen mit dem Thema unter Xenforo 1.3 bis 1.5.x
XF1.x - xF 1.5.x - (m)ein XF-Lexikon im Eigenbau...
hier nun mein Senf zur Umsetzung unter Xenforo 2.2.x

Nützliche Addons:
Nützliche Template Modifikationen:
Nützliche Xenforo Funktionen:
  • Benutzerdefinierte Felder


Fragestellung:
Wie ein Lexikon aufbauen, in dem die Daten zumindest relativ Update und Upgrade sicher gespeichert werden ohne dabei auf ein Add-on absolut zwingend angewiesen zu sein? Und das alles (weitgehend) low budget versteht sich ... ;)

Lösung:
Hauptziel - Verzicht auf ein spezielles Lexikon Add-on!
Zum Speichern der Einträge nutzen wir ausschließlich (Artikel-)Themen und Attachments, denn diese sind bei Importern im Ernstfall Standard und können automatisch in eine andere Forensoftware übernommen werden.​

Optik und Usability - hier kann man mMn. gefahrlos auf Addons oder eigenen Code setzen - denn wenn es da mal zu Problemen kommt sind zumindest die Daten des Lexikon immer noch sicher und erreichbar.
Die Addons die wir brauchen, gibt es bisher noch in jedem guten Forensystem.​


Das Xenforo bringt einige benötigte Komponenten für das Lexikon bereits mit:
- alphabetischen Sortierung der Themen/Artikel 0-9/A-Z
- Beitrags Historie
- Artikel-System
- Widget-System​

Zunächst legt man seine Lexikon-Struktur aus Kategorien und Foren/Sub-Foren an wie man es auch mit den normalen Foren bereits getan hat.
Also zB.:
- Kategorie Lexikon
---- Unterkategorie 1
------- Forum 2
------- Forum 3
--- Unterkategorie 2
------- Forum 4
------- Forum 5
------- Forum 6​
... eben so wie wir es bei unserem Lexikon benötigen.

Da wir dadurch unter Umständen viele Foren mit identischen Rechten/Einstellungen benötigten könnten, bietet sich ein kleines nicht kostenloses aber günstiges Add-on an was uns diese Arbeit etwas erleichtert:
- Admin Tools Addon (Lawrence) (Stand 08/2021)

Damit kann man die benötigten Foren und Kategorien sehr flott anlegen, in dem man einmal angelegte und eingerichtete einfach kopiert so oft man möchte. Natürlich kann das Tool noch mehr, wie z.B. Benutzergruppen kopieren und anderes.
Ein Must have ist eine gescheite Sortierfunktion für die Einträge im Lexikon. Diese kann man mit Bordmitteln zwar schon mal A-Z sortieren lassen, aber bei vielen Einträgen will man vielleicht auch Sprünge zu bestimmten Anfangsbuchstaben machen können - hier kommt uns das Addon Alphabetical Pagination von aulait(XenMade) genau recht. Dieses ist schnell installiert und mittels:
CSS:
.alphaxf {
    text-align: center;
}
in unserer Extra.less ist die A-Z Button-Bar auch schnell zentriert statt linksbündig.

Dank Node-Icon Addon von @Hoffi kann man den Lexikon Kategorien und Sub-Foren schon mal Icons verpassen. Das kann die Übersichtlichkeit steigern und einladender wirken.

Nun wäre es schön, wenn das erste Attachment eines Lexikoneintrages automatisch als Thumbnail in der Liste der Einträge zu sehen wäre - dafür gibt es aktuell aber nur ein Kostenpflichtiges Addon von Theme House und so ein bisschen finde ich die Listen-Ansicht auch mittlerweile altbacken...

Statt dessen wäre doch eine Grid-Ansicht vielleicht nicht schlecht?

Xenforo bringt bereits ein Grid-Layout mit, dazu muss man seine Lexikon-Foren nur auf den Typ "Artikel" umstellen, was nebenbei auch noch SEO Vorteile mit sich bringt.
Da das Standard Grid-Layout des Xenforo leider starr ist und mir nicht zusagte, suchte ich nach Lösungen für ein schöneres Grid und fand die Lösung bei Brogan auf Xenforo.com .
Ich verwende von Ihm den "Equal Grid - Fixed Footer" Code aus seiner Anleitung.
CSS:
/*Grid Layout start*/
@media (min-width: @xf-responsiveMedium)
{
    @__ctaArticleFooter: 40px;

    .block.block--articles.block--previews .block-body .message--articlePreview
    {
        margin-top: 0;

        &:nth-of-type(n)
        {
            grid-area: unset;

            & .articlePreview
            {
                &-main
                {
                    flex-direction: column;
                    min-height: 100%;
                    padding-bottom: @__ctaArticleFooter;
                }

                &-image
                {
                    width: 100%;
                }

                &-title
                {
                    font-size: @xf-fontSizeLarger;
                }

                &-content
                {
                    margin-bottom: -@__ctaArticleFooter;
                }

                &-footer
                {
                    position: relative;
                    bottom: @__ctaArticleFooter;
                }

                &-meta
                {
                    border-top: solid 1px @xf-borderColor;

                    & .articlePreview-by
                    {
                        display: none;
                    }
                }
            }
        }
    }
}

.message--articlePreview .articlePreview-image+.articlePreview-text .bbWrapper:after
{
    background: none;
}
/* Grid Layout ende */
Code von Brogan

Ergebnis:
upload_2021-8-4_10-46-9.png


Wenn man sich nun die Sub-Foren anschaut - sieht das noch wenig einladend bzw. wenig nach Lexikon aus:
upload_2021-8-4_10-54-41.png

Mit etwas CSS Code in der Extra.less läss sich dies dahingehend ändern:
CSS:
/* Subforen Grid Layout in List-Form statt inline start */
.node-subNodeFlatList>li {
    display: block;
    margin-right: 1em;
}
/* Subforen Grid Layout in List-Form statt inline ende */

Ergebnis:
upload_2021-8-4_10-56-41.png

... besser, aber noch nicht so ganz das Ware?

Ja, das geht besser, dazu folgenden Code in die Extra.less einfügen:
CSS:
/* Grid Layout for Subforum List start */
body[data-template="forum_view"]{
    @media (min-width:800px){
        .node-main{display:block}
        .node-stats{display:none}
        .node-statsMeta{display:inline}
        .node-stats{display:none}
        .node-extra{display:block;width:auto;margin-top:-4px;padding-top:0}
        .node-extra-icon{display:none}
        .node-extra-row{display:inline-block;vertical-align:top;max-width:100%}
        .p-body-pageContent .block:first-child{
            .node-icon{
                width:46px;
                margin:0 9px 0 0;
                padding:10px 10px 10px 10px;
                height:47px;
                display:block;
                float:left}
            .block-container .block-body{
                display:grid;
                grid-template-columns:1fr 1fr 1fr;
                grid-gap:10px}
            .block-container{
                background:rgba(255,0,0,0);
                border:none;}
            .node--depth2{
                box-shadow:0 1px 4px rgba(0,0,0,.06);
                border-width:1px;border-style:solid;
                background-color:#fff;
                border-top-color:#dfdfdf;
                border-right-color:#d8d8d8;
                border-bottom-color:#cbcbcb;
                border-left-color:#d8d8d8
            }
        }
    }
}
/* Grid Layout for Subforum List ende */
Code von hemant_bhardwaj

Ergebnis:
upload_2021-8-4_10-57-41.png

Besser (mMn. ;) ).
Soweit so gut fürs erste ist die Ansicht ggü. normalen Foren abweichend angepasst.


In den folgenden Beiträgen folgen Infos zum halb- oder vollautomatischen Cross-Linking der Lexikon-Einträge im Forum, erstellen eines Navigations-Tabs und richtig einrichten fürs Lexikon sowie ein paar Tipps zum erstellen von Eingabemasken mittels der Xenforo Core Funktionen.


Konstruktives Feedback erwünscht. :)
 
Ich hatte leider so gar keine Zeit das letzte Jahr mit diesem Thema weiterzumachen.
Meine ersten Versuche sehen immer noch so aus:

Xenforo Wiki

Hier sieht man drei Beispiele wie ich Unterforen darstellen lassen kann (Auswahl per Radio):

1. Add-ons als Links nebeneinander

2. bb-code als Dreispalter

3. Artikel als Einspalter
 
Öhm, da deine Lexikon-Variante wohl von meiner abweicht - wie wäre es das in ein eigenes Thema zu packen? Könnte man hier ja dann auch verlinken. Da ich an meinem weiter gebaut habe wollte ich übern Winter mal ein Update bringen und dann wäre es vielleicht nicht ganz optimal wenn wir 2 verschiedene Lösungen vermischen.
Bin auf deine Variante aber schon gespannt. :)
 
Ich bastle derweil an vielen anderen Sachen und habe ganz vergessen, wozu ich ein Wiki haben wollte.
Für Deine Traktoren macht das wohl Sinn.
 
Und natürlich kannst Du diese Texte von Deinem Spezi auslagern lassen.

Ich habe recht viel gemacht zum Thema, wobei das alles in den Bereich Verwaltung gehört, denn die Idee beim Wiki ist ja, dass möglichst viele kontrolliert mitmachen, und alles und jedes wieder hergestellt werden kann.
Was die Verlinkungen angeht, hat mir das Keyword-Addon von Siropu o.ä. nicht gefallen, da ist leider kein Groschen gefallen, warum, wieso und wie ich das gerne haben möchte.
Wobei ich Verlinkungen aktuell kaum auf dem Schirm habe. Es gibt ein Forum, in dem ich Themen in Themen verbinde, das wird per Hand gemacht. Evtl. muss ich da noch etwas stricken, ich hätte gerne ein Replace für sowas wie:

##T:1234

statt dem umständlichen bbCode von {name vergessen}, die auch das Cloudflare add-on machen.

Blöde ist, dass ab und an Themen verbunden werden, und dann schaffe ich wieder tote Links.
Es gibt zwar auch ein unique custom_field, aber auch das ändert sich im Laufe der Zeit.

Wie oben erwähnt, ist mir der Grund für ein Wiki völlig abhanden gekommen. Allein das gemeinsame Bearbeiten ist wichtiger denn je, aber das Querverlinken ziemlich egal geworden.

Vielleicht brauche ich noch sowas wie: Thema gelöscht oder verbunden? Speichere alte ID, checke später das Forum per Job, ob es einen Link dazu gibt und erstatte Meldung! O.ä.

Was ich noch anraten kann, sind Modifikationen von AndyBs QuickSearch; wenn man hunderte oder in meinem Falle tausende von Datensätzen hat, ist das der Bringer schlechthin.
Verbunden mit Thread-Icon, Suche in mehreren Feldern und Änderungsformular bei den Ergebnissen ist das aktuell ein Werkzeug, das derzeit täglich hundertmal und mehr eingesetzt wird, um Daten zu pflegen.
 
Zurück
Oben