XF2.0 Commentarius (Eos)

Dieses Thema im Forum "Vorschläge für Add-ons" wurde erstellt von Teralios, 18. Nov. 2018.

  1. Teralios

    Teralios Aktives Mitglied Lizenzinhaber

    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.
     
  2. McAtze

    McAtze Innendienst Lizenzinhaber

    Das klingt ja mal sehr interessant. Biete mich direkt mal als Tester an .. :smoke:
     
  3. Teralios

    Teralios Aktives Mitglied Lizenzinhaber

    Bei Zeiten dann gerne. Wobei ich weiterhin natürlich meinem OpenSource-Versprechen treu bleibe. :D

    Wer der Entwicklung folgen möchte, kann dass dann über GitHub tun: Teralios/xf-commentarius
     
    McAtze und Alluidh gefällt das.
  4. Alluidh

    Alluidh Übersetzer Lizenzinhaber

    Nicht nur du!

    (So etwas hatten wir in ähnlicher Form auch bei den 30 Konzepten dabei.)
     
  5. Teralios

    Teralios Aktives Mitglied Lizenzinhaber

    Na, wenn einer von euch die englische "Übersetzung" übernimmt, gerne. Ich werde mal die Tage dann anfangen, wenn ich mit der Grundplanung fertig bin.
     
  6. McAtze

    McAtze Innendienst Lizenzinhaber

    Das kann ich gerne übernehmen. @Alluidh hat ja noch ein paar offene Übersetzungen.. :p :D
     
    V0RT3X gefällt das.
  7. otto

    otto Bekanntes Mitglied Lizenzinhaber

    Halloooo ?!? Du hast erst mal ne andere Aufgabe, ehe du nach neuen Herausforderungen suchen darfst. :D ;)
     
    V0RT3X und McAtze gefällt das.
  8. argy

    argy Mitglied Lizenzinhaber

    Klingt auf jeden Fall sehr spannend...
     
  9. Teralios

    Teralios Aktives Mitglied Lizenzinhaber

    Keine Sorge, Artikelsystem setzte ich höchstpersönlich mit meinem Fachwissen als Bibliothekar um!
     
    otto gefällt das.
  10. Teralios

    Teralios Aktives Mitglied Lizenzinhaber

    Alluidh gefällt das.
  11. Kirby

    Kirby Bekanntes Mitglied Lizenzinhaber

    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
     
  12. Teralios

    Teralios Aktives Mitglied Lizenzinhaber

    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!

    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.

    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.
     
    otto, McAtze und Alluidh gefällt das.
  13. Alluidh

    Alluidh Übersetzer Lizenzinhaber

    Das könnte ich zu 99% so unterschreiben, allerdings wäre mein Wortlaut ein wenig anders. Aber nur ein ganz klein wenig :D
     
    Teralios und McAtze gefällt das.
  14. Teralios

    Teralios Aktives Mitglied Lizenzinhaber

    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.
     
  15. Alluidh

    Alluidh Übersetzer Lizenzinhaber

    otto gefällt das.
  16. V0RT3X

    V0RT3X Bekanntes Mitglied Lizenzinhaber

    Ich würde keinem Club angehören wollen, der mich als Mitglied aufnimmt.
    Groucho Marx
     
    otto, McAtze und Alluidh gefällt das.
  17. Kirby

    Kirby Bekanntes Mitglied Lizenzinhaber

    Tue was immer Du für nötig erachtest :)

    War nur als gut gemeinter Hinweis gedacht, PHP 7.2 sehe ich genauso.
     
  18. otto

    otto Bekanntes Mitglied Lizenzinhaber

    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 ;)
     
  19. Kirby

    Kirby Bekanntes Mitglied Lizenzinhaber

    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.
     
  20. Teralios

    Teralios Aktives Mitglied Lizenzinhaber

    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. ;)

    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.

    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
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden