XF2.0 Commentarius (Eos)

Teralios

Bekanntes Mitglied
Registriert
13. Dez. 2010
Beiträge
406
Punkte
128
So, ich hab euch ja versprochen, dass ich euch so ein paar Informationen mal gebe, was ich seit einiger Zeit plane als Artikel- / Blogsystem.

Direkt vorweg: Commentarius kommt aus dem Latainischen (Aufzeichnung) und stellt eine ursprüngliche Textgattung da, besonders bekannt sind ja zum Beispiel die "Kommentare zum gallischen Krieg" von JC. Eos wiederum ist die griechische Göttin der Morgendämmerung und ja, ich habe ein Faible für die antiken Götter, wobei ich mich nun auf die griechische Welt stürze - auch wenn ich Ägypten mehr mag.

Damit auch ganz kurz zur Geschichte des Systems: Für das XF wird es nun der vierte Anlauf für dieses System und das hat auch ein paar Hintergründe, warum das System immer wieder abgebrochen wurde:

Anlauf 1: Entwicklung für das WCF. Mit Ankündigung des WSC3.0 erübrigte sich die erste Entwicklung. Das WSC bietet ein eigenes Artikelsystem. Abgebrochen.

Anlauf 2: Entwicklung als Erweiterung für das WSC3.0 und WSC3.1. Leider zeigte sich während der Entwicklung, dass viele Ideen sich nicht wirklich sauber umsetzten lassen. Da WoltLab ihre Inhalte im Artikelsystem als auch die Seiten direkt multilingual ausgelegt hat, kann man zwar ein Artikel durchaus als "einsprachig" anlegen, aber eben auch "mehrsprachig". Die Datenstruktur ist zwar für diesen Anwendungsfall durchaus sauber gelöst, widerspricht in meinen Augen aber den üblichen Arbeitsabläufen in Redaktionen, aber auch mit Texten und löst unnötige Probleme aus.

Der Ansatz für Mehrsprachigkeit im WSC/WCF ist zwar durchaus interessant, aber der gewählte Weg bläht das System unnötig auf und macht es kompliziert bestehende Strukturen sauber zu erweitern.

Anlauf 3: WSC bietet sich nicht an, die meisten anderen Frameworks setzten teilweise auf Wege, die ich so nicht gehen wollte, also: Eigenentwicklung. Und die ist sogar vergleichsweise weit, aber man muss das Grundsystem selbst entwerfen.

Da sich mit dem XF2.1 jetzt aber einiges noch mal tut - darunter auch die Möglichkeit die NoSQL-Erweiterung von MySQL zu nutzen als Datenfeld - kommt nun der vierte Anlauf. Da ich nun kein Grundsystem entwerfen muss, wird es auch hoffentlich schneller gehen. ;)

Vorweg, die aktuelle Datenbankstruktur:
Main.jpg
Das System soll auf der einen Seite recht einfach werden in der Benutzung, aber so viele Anwendungsfälle wie möglich abzudecken. Ich habe mir daher verschiedene Webseiten und die dort verwendeten Textarten angesehen und versucht die Gemeinsamkeiten zu abstrahieren, aber auch eben die Unterschiede. Noch wichtiger für mich waren dabei gefühlten Unterschiede und damit verbundenen Anforderungen von verschiedenen Nutzer. Es ist interessant zu sehen, wie manche Leute auf Teufel komm raus Unterschiede in einem Artikelsystem und generellem Blog sehen wollen und warum ein Blog nicht als Newssystem geeignet ist und und und.

Ende der Beobachtung war dabei: Nein, ein normales Blog wie Wordpress und ein spezialisiertes Newssystem unterscheidet nicht wirklich viel: Überschrift, Abstract/Teaser und Text. Bei einem Newssystem möchten aber manche Nutzer Quellen mit angeben, bei einem Text müsste eine Bewertung mit hinzu und so weiter und so weiter.

Das daraus entstanden Konzept sieht nun ein Artikelsystem vor, dass durch seine eigene Struktur die meisten Fälle abdecken kann und zwar zu selben Zeit:

Der Artikel steht als Grundgerüst bereit. Er beinhaltet Überschrift, Abstract/Teaser, Text, Artikelbild, Autoreninformation. That's all. Der normale schnöde Text, so wie wir ihn kennen und wie man immer wieder findet. Eine Medienverwaltung erfolgt erst mal über die Anhänge, oft sind Medien nämlich für einen Artikel exklusiv und eine komplexe Medienverwaltung ist nicht wirklich notwendig, damit das System das macht, was es machen soll.

Artikel können in Sections zugeordnet werden. Sections sind in dem Fall unterschiedliche Bereiche eurer Webseite und werden ins Hauptmenü der Seite eingetragen werden. News, Previews, Reviews und so weiter und so weiter.

Jede Section wiederum kann eigene Kategorien haben, denen man einen Artikel zuordnen kann. Daraus ergibt sich dann eine entsprechende Baumstruktur.

Der letzte Abschnitt sind die Artikel-Typen: Man kann für Artikeltypen entsprechende Zusatzfelder zusammen stellen, die einen Artikel um entsprechende Informationen anreichern.

So kann man zum Beispiel auch den Typ News erstellen, dem man ein Zusatzfeld Quelle hinzufügt. Bei einem Text könnte man eine Bewertungsskala hinzufügen und so weiter.

Ich hoffe, ihr habt jetzt einen Eindruck, wohin es gehen soll, mehr verrate ich dann, wenn ich soweit bin.
 
Das klingt ja mal sehr interessant. Biete mich direkt mal als Tester an .. :smoke:
 
Na, wenn einer von euch die englische "Übersetzung" übernimmt, gerne. Ich werde mal die Tage dann anfangen, wenn ich mit der Grundplanung fertig bin.
 
Nicht nur du!

(So etwas hatten wir in ähnlicher Form auch bei den 30 Konzepten dabei.)
Halloooo ?!? Du hast erst mal ne andere Aufgabe, ehe du nach neuen Herausforderungen suchen darfst. :D ;)
 
Klingt auf jeden Fall sehr spannend...
 
Halloooo ?!? Du hast erst mal ne andere Aufgabe, ehe du nach neuen Herausforderungen suchen darfst. :D ;)
Keine Sorge, Artikelsystem setzte ich höchstpersönlich mit meinem Fachwissen als Bibliothekar um!
 
Klingt interessant :)

2 Anmerkungen
  • Tabellennamen sollten mit xf_<yourid>_ beginnen, siehe Resource standards Rule # 11
  • Überleg dir ob Du zwingend JSON in der DB brauchst, denn das erfordert "relativ" neue MySQL (5.7.8+)/MariaDB (10.2.7+)-Versionen die deutlich über den Mindest-Anforderungen von XF 2.1 liegen
 
So, bitte jetzt mich mit einem sehr lebhaften Gesicht und Augen zwinkernd und absolut nicht ernst vorstellen. Was ich jetzt schreibe ist humoristisch gemeint.

@Kirby deine Anmerkungen lösen in meinen Fäusen so ein Jucken aus, so eines, bei dem ich gerne die 411. Panzergrenadiere (linke Faust) und die Kampfschwimmer (rechte Faust) einsetzen möchte und dem Überbringer Links und Rechts eine zu klatschen. Jawoll Ja!

Tabellennamen sollten mit xf_<yourid>_ beginnen, siehe Resource standards Rule # 11
Obligatorisch, ich bin allerdings Halbblutinformatiker und Bibliothekar und daher schreibfaul. Ob jetzt als Präfix xf_teralios, xf_teralios_commentarius, xf_ich_hasse_euch_alle, xf_kier_mike_chris_sind_voll_die_idioten steht, ist eine rein programmiertechnische Feinheit und daher sogar obligatorisch. Nur bei der Planung mache ich mir diese Arbeit ehrlich gesagt nicht. Zu viel Schreibaufwand bei der Planung. Wenn ich mir jetzt vorstelle, ich hätte das bei der Planung bereits jedes mal schreiben müssen, ich glaub ich wäre beim 3 oder 4 mal durchgedreht. ;)

Danke für den Hinweis, aber das ist mir schon klar. Ich bin nur in meiner internen Planungsstruktur faul.

Überleg dir ob Du zwingend JSON in der DB brauchst, denn das erfordert "relativ" neue MySQL (5.7.8+)/MariaDB (10.2.7+)-Versionen die deutlich über den Mindest-Anforderungen von XF 2.1 liegen
Aktuell unterstützt das Schemasytem von XF noch nicht den JSON-Datentyp, sondern XF bereitet nur die Zukunft vor. Entsprechend werden die Felder aktuell als MEDIUMBINARY definiert werden. Ich arbeite aber mit den Funktionen die XF bietet. Das heißt XF bietet in Vorbereitung bereits die Typen JSON und JSON_ARRAY an.

Entsprechend mit diesen Typen arbeite ich. Ich bin gespannt wann XF dann JSON-Support auch vollständig einbaut. Bis dahin wird es dauern, aber das war mir von Anfang an klar, dass es vermutlich so laufen wird.

Ansonsten kann ich aber jetzt schon sagen: Commentarius wird PHP7.2 voraus setzten - es ist mir egal oh XF2.1 noch PHP5.6 als kleine Anforderung hat. PHP5.6 geht im Januar endgültig in den Ruhestand und ist End-of-Life. PHP 7.0 ist es. PHP7.1 erreicht jetzt die Security-Fix-Only Phase und ist damit auch für mich irrelevant.

Ich entwickle aus Spaß an der Freude und binde mir da keine Altlasten auf. Hab ich früher gemacht und teilweise war es ätzend. Ich nutzt meine Ressourcen nun so, dass ich möglichst effektiv voran komme. Wenn ich ein paar auf Leute auf XenForo damit ausschließe, tut es mir leid, aber es ist leider nun mal so.
 
Ich entwickle aus Spaß an der Freude und binde mir da keine Altlasten auf. Hab ich früher gemacht und teilweise war es ätzend. Ich nutzt meine Ressourcen nun so, dass ich möglichst effektiv voran komme. Wenn ich ein paar auf Leute auf XenForo damit ausschließe, tut es mir leid, aber es ist leider nun mal so.
Das könnte ich zu 99% so unterschreiben, allerdings wäre mein Wortlaut ein wenig anders. Aber nur ein ganz klein wenig :D
 
Das könnte ich zu 99% so unterschreiben, allerdings wäre mein Wortlaut ein wenig anders. Aber nur ein ganz klein wenig :D
Für mich gibt es da leider keine Grautöne mehr, was diese Sache an geht. Vor Jahren hat es diese Grautöne noch geben, aber dass macht mit der Zeit einen kaputt.

Ich hab es damals im WCF mit meinen BBCodes gemerkt. Die meisten Addon-Entwickler nehmen in der Regel auch nur auf sich selbst Rücksicht. Für die Implementierung kamen die Leute immer zu mir. Da musste man dann Anpassungen für Addons umsetzten, die man selbst nie einsetzten würde und die man nicht hat. Fragte man dann die Entwickler nach einer kostenfreien Kopie, eben um die Anpassung zu entwickeln, kam meist ein: "Ne, mach ich nicht, wenn du es anpassen willst, musst du dir eine Lizenz kaufen." Da bewegt man sich dann schnell in Preisregionen von mehren 100 bis 1000€, nur damit man man die eigene Entwicklung an die Addons andere anpassen kann und damit Nutzer glücklich sind. Will man sich das Geld sparen, muss man sich in Grauzonen bis in illegale Gefilde begeben. Wenn man Glück hat, stellen einen die Nutzer die Addons zur Verfügung - klappt solange, bis eine Call-Home-Funktion vorhanden ist, man hat dabei in der Regel aber keine Lust die vorher noch raus zu programmieren. Geht man auf eine der Warez-Seiten macht man etwas, was man eigentlich selbst nicht unterstützt, und wofür? Damit man mehr Arbeit hat für etwas, was man kostenlos anbietet.

Viel Arbeit und im Endeffekt kaum eigenen Nutzen und wenn man dann dazu sagt, dass man diese Anpassungen nicht aktiv pflegt, darf man sich für seine Freundlichkeit noch schräg anmachen lassen.

Allgemein wird man sogar in der Regel von einigen Schräg angemacht, da wird man als Idiot beleidigt, weil ein Bug mal durchrutscht usw. Dass man in der Regel nur Funktionen für andere umsetzt, statt für sich selbst, wird immer dezent vergessen und dass man seine Entwicklung noch kostenfrei anbietet gleich mit dazu. Manche denken, dass man ihnen persönlich etwas schuldet, weil sie ja die Entwicklung von jemanden einsetzten und wehe man springt nicht sofort …

Egal wie man es macht, man macht es in der Regel falsch und entsprechend handle ich nun. Ich achte primär auf mich bei der Entwicklung.
 
@Kirby deine Anmerkungen lösen in meinen Fäusen so ein Jucken aus, so eines, bei dem ich gerne die 411. Panzergrenadiere (linke Faust) und die Kampfschwimmer (rechte Faust) einsetzen möchte und dem Überbringer Links und Rechts eine zu klatschen. Jawoll Ja!
Tue was immer Du für nötig erachtest :)

War nur als gut gemeinter Hinweis gedacht, PHP 7.2 sehe ich genauso.
 
Die Frage wäre - was spricht für MySQL 5.5 und was für was gescheites aktuelles? Außer Kompatibilität nichts. Sicher nicht unwichtig, aber das sollte immer im Ermessen des Entwicklers liegen.

Ganz ehrlich, seit ich durch meine Umschulung bedingt da mal tiefer rein gesehen hab, als früher - verstehe ich gar nicht mehr, warum ich früher auch immer gesagt hab, das ältere tut es doch auch bla bla das neue ist ja gar nicht so viel besser bla bla...
Aber gerade bei MySQL und PHP gabs doch nun echt brauchbare und spürbare Fortschritte. Warum noch auf das alte humpelnde Pferd setzen - nimm das neue, das rennt besser. :D ;)
 
Warum noch auf das alte humpelnde Pferd setzen - nimm das neue, das rennt besser. :D ;)
Support. Im Business-Bereich arbeitet man mit Support-Zeiträumen von 5-7 Jahren, Roundtrip-/Austausch-Zeiten darunter sind kaum zu schaffen.

So findest Du z.B in einem aktuellen Ubuntu 18.04 LTS/RHEL 7 kein MariaDB 10.2/MySQL 5.7 - das sind aber die Systeme welche weit verbreitet bei Providern eingesetzt werden.

Wenn man nur für sich selbst entwickelt und keine umfangreiche, heterogene Systemlandschaft zu betreuen hat ist man da natürlich viel flexibler.
 
Tue was immer Du für nötig erachtest :)
Es war, wie gesagt scherzhaft gedacht. Es ist nur manchmal echt nervig, wenn man auf Sachen angesprochen wird, die man sich schon vorher durchgelesen hat, nur aus persönlichen Gründen einfach in der Planung nicht eingebaut hat, weil es zu viel Arbeit ist. ;)

War nur als gut gemeinter Hinweis gedacht, PHP 7.2 sehe ich genauso.
Ist auch legitim, aber in dem Fall will ich eh so viele Boardmittel wie nötig verwenden und nicht unbedingt die Räder neu erfinden. Solange XF den JSON-Datentyp noch nicht explizit anbietet, hat sich das auch.

Finde es aber gut, dass sie JSON bereits vorbereiten.

Support. Im Business-Bereich arbeitet man mit Support-Zeiträumen von 5-7 Jahren, Roundtrip-/Austausch-Zeiten darunter sind kaum zu schaffen.
Würde ich mein Geld damit verdienen - also XF-Addons - dann würde ich mich auch an PHP5.4 halten, alleine um möglichst viele Nutzer mitzunehmen. Aber Freizeit-GPL-Projekt? Ne, da kommt es auf den Spaß an! :D
 
Zurück
Oben