Das eigene Forum

Alice

Erfahrenes Mitglied
Hallo Leute.

Da mir alle aktuellen Forensoftware überhaupt nicht gefallen, bin ich ernsthaft am überlegen etwas eigenes zu programmieren. Ich habe bereits zwei große Projekte umgesetzt (CMS und eine "Ausbildungssoftware" aus PHP-Basus für eine Firma die junge Leute ausbildet).

Ist so ein Projekt eurer Meinung nach zum scheitern verurteilt?

Es soll nichts wie vBulletin oder XenForo werden. Eher etwas was nur auf mich zugeschnitten ist mit gefühlten 1 Mio. weniger Funktionen die die üblichen Foren so bieten und ich nie gebraucht habe...
 
Da hast Du natürlich recht.

An erster Stelle möchte ich mich rein auf das Forum selbst konzentrieren. Es soll ja nichts kommerzielles werden. Viele Einstellungen kann ich ja direkt "Hard" im Skript einprogrammieren.

Foren, User, Themen...
 
Ich würde nichts mehr wirklich von Grund auf neu programmieren. Ein kleines Forum hat man mit einem entsprechenden Framework schnell erstellt. User-Authentifizierung ist meistens schon dabei (oder als AddOn zu haben), bleiben eigentlich "nur" noch Posts und Channels oder Ähnliches. Falls du was einfaches suchst, was du nicht von Hand aus neu schreiben musst: http://octobercms.com/plugin/rainlab-forum
Das CMS (OctoberCMS) ist auf Basis des Laravel-Frameworks geschrieben, entspechend sind Erweiterungen sehr einfach vorzunehmen.
 
Hallo und danke für die Antwort.

Wenn ich das ganze selbst in die Hand nehmen muss, dann muss es auch etwas komplett eigenes werden. Ich habe es nach 8 Jahren satt ständig hunderte Dateien zu durchsuchen und zu analysieren, um herauszufinden, wie ein "Heino" eine Funktion ausgebaut hat und wie ich diese ansprechen kann. Ist wie mit dem Auto... Man möchte die LED am Aschenbecher auswechseln und muss dazu das halbe Auto zerlegen. Man möchte eine LED am Tacho auswechseln, was aber nicht geht, weil das Kabel zu kurz ist (Mercedes). Genau diese Dinge erlebe ich seit 8 Jahren mit vBulletin.

Aktuell bin ich auf PHP ~ 5.2 "Niveau" (wenn man das Niveau nennen kann) und möchte sofort mit PHP 7 starten.
 
Da du noch immer bei vBulletin hängst, und Xenforo wohl nicht mehr relevant ist:
Empfehle dir trotzdem, es (noch) näher kennen zu lernen.

Seit unserer letzten Unterhaltung darüber hab ich mich auch deutlich mehr mit den Innereien beschäftigt, und das hat an der guten Meinung davon nichts geändert. Natürlich ist nichts perfekt, und ein allgemeines Forensystem nie 100% so wie man es gerne hätte. Aber ich kann mir wirklich nicht vorstellen, für welches Problem ein neues Forensystem schneller wäre als Plugins oder Kernanpassungen an XF.
 
Ich habe "Xen-Foro 1.5.7" hier und mag es einfach nicht. Ich bekomme ehrlich gesagt schon ein Hals, wenn ich das ganze JS gedöns sehe. Mir fehlt auch irgendwie der Antrieb mich da reinzuarbeiten. Um es in die Richtung zu lenken, dass ich es mag, müsste ich es schon seit der ersten Version verwenden (Erfahrung).

Während ich hier schreiben, bin ich im Xen-Foro-Admin-CP und weiss gar nicht, was ich mit den ganzen nutzlosen Funktionen anfangen soll. Ich möchte nicht jammern und letztendlich ist es meine Entscheidung, aber eure Meinung ist mir schon wichtig.

- Einarbeitung
- 1 Tonne JavaScript
- 1 Mio. Nutzlose Funktionen

99,8% der Xen-Foro Benutzer ändern ein paar Farben, Formen und Grafiken und sind zufrieden. Ich nicht... :confused:

@sheel

Kannst Du mir ein Beispiel geben, wie man ein eigenes Add-On erstellt? Zum Beispiel einen einfach Counter. Ich raff das nicht.
 
Die meisten der Sachen aus dem Admincp muss man nicht verwenden, wenn man nicht will.

Und JS ... das wird man nicht los, solange man sich nicht einige riesige Templates komplett neuschreibt.
Aber wenn einem das Loswerden von JS so wichtig ist, "könnte" man es machen.
Noch immer um Lichtjahre schneller als ein ganzes Forum.

Counter:
Der soll was genau counten?
Seitenaufrufe, für alle Seiten/Nutzer/etc. zusammen, eine Zahl gesamt?
Mit Bildern, CSS, JS ... oder nur volle HTML-Seiten?
PHP in Templates oder wirklich ein volles Plugin (Kanonen auf Spatzen)?
(Oder Serverlogauswertung mit einem einfachen Bashbefehl? :D)
 
Zuletzt bearbeitet:
@sheel

Kurz zum Thema JS:
Ich habe eine Website erstellt, die aussieht wie ein iPhone. Die gesamte Website besteht aus SVG-Elementen und JS pur. Ich hasse die Seite! :D Sieht zwar echt toll aus, aber JS ist eine Sprache, die ich einfach nicht leiden kann. Natürlich ist es sehr nützlich (refresh und nachträgliche "manipulationen") aber in einem gesunden Maß. Ich bin der Meinung, dass eine anständige Website 100% ohne JS laufen muss und damit meine ich "gut laufen muss".

Counter:
Es würde mir als "Einleitung" schon völlig reichen, wenn die IP-Adresse ausgelesen und ausgeben (nicht echo) werden würde, irgendwo im Forum, damit ich mal "sehen" kann wie es funktioniert.

Keine Bilder, kein CSS, kein JS... Wenn möglich als "volles Plugin".

Edit:

http://abload.de/image.php?img=iphonei7ayk.png
 
Zum Verständis uns Hintergrundwissen zuerst einmal ohne Plugin, dann mit.

Ein paar Basics zu Templates

Neben Foren/Benutzer/Rechte und "Alles Andere" ist der AdminCP-Tab Erscheinungsbild die dritte Riesengruppe an Einstellungen. Die Templates, um die sich da alles dreht (auflisten bei "Templates verwalten", rote sind vom Admin geänderte), bestehen prinzipiell aus folgenden 7 Arten von Dingen:

a) HTML, CSS; JS. Klar. Allerdings ist das meiste JS-Zeug in statischen Dateien außerhalb des Templatesystems, weil es dabei wenig bzw. nichts zum dynamischen Anpassen gibt. HTML und CSS sind in den Templates relativ strukt getrennt, es gibt also viele reine CSS-Templates.

b) Einbindungen von anderen Templates, hoffentlich auch klar. Alles ist verschachtelt. Die Spitze für die meisten (alle?) Sachen ist PAGE_CONTAINER:

c) Variablen, in der Notation {name}. In jedem Template gibt es mindestens Infos über den Benutzer als {$visitor.spaltenname} mit (fast) allen Spalten aus der xf_user - DB-Tabelle, also zB. {$visitor.user_id}) und ein paar Configoptionen. Je nach Template bzw. aufgerufener Seite kommen aber auch Sachen wie Beitragsinhalte durch Variablen rein.

d) Phraseneinbindungen. Statt die fixen Texte direkt im Template zu haben sind sie in einer eigene Key-Value-Tabelle, für die bessere Übersetzbarkeit usw. Auch innerhalb der Phrasentexte kann man Variablen verwenden.

e) Verschiedene Steuerbefehle, wie xen:if usw.usw.
Code:
<xen:if is="{$visitor.user_id} == 245259">
Hallo Alice
</xen:if>

f) Styleproperties (vor allem) für CSS. Man muss sie nicht verwenden, aber man kann verschiedene CSS-Werte (Farben, Größen usw.) in den Templates durch Referenzeirungen dieser Variablen ersetzeu, und die Werte dann bequem in einer eigens dafür gemachten Seite im AdmicCP einstellen (mit Colorpicker für die Farben usw.usw.), bzw ändern, ohne sich durch die Templates durchgraben zu müssen.

g) Wenn das alles nicht reicht, PHP-Callbacks. In der einfachsten Form und ohne Parameter kann das wie folgt ausschauen:
Eigene Datei library/aliceKlasse.php:
PHP:
<?php
class aliceKlasse
{
	public static function erstesCallback(XenForo_ControllerPublic_Abstract $controller, XenForo_ControllerResponse_Abstract &$response)
	{
		echo "Hallo";
		//insert DB-Abfrage hier, und paar Sachen mit den Benutzerrechten, undundund
	}
}
In einem Template dann:
Code:
<xen:callback class="aliceKlasse" method="erstesCallback"></xen:callback>
Wird immer bei Templatedurchlauf ausgeführt, und die echo-Ausgaben in den Text eingesetzt. Außer "normalem" PHP kann man natürlich auch auf Zeug aus dem Xenforo-Kern zugreifen.

...
Wie gesgat, "Templates verwalten" zum Anschauen etc.
Die Phrasen sind im Navi weiter unten.

Man kann alle seine angepassten Templates und Phrasen (und Styleprop.werte) in eine XML-Datei verpackt rausexportieren und in anderen Foren wieder importieren, solche Themes gibts haufenweise zum Download. Nimmt man sowas "erbt" das vom Default, es muss also nicht alles überschrieben werden. Kann beliebig rein verschachtelt werden. (Und es gibt auch die Möglichkeit, die Benutzer ihr persönlcihes Theme aus mehreren aussuchen zu lassen, undundund. Egal.).

IP in Templates ohne Plugin
läuft eben darauf hinaus, dass man eines der Templates (zB. den schon erwähnten PAGE_CONTAINER) händisch bearbeitet.

Für die IP hat man allerdings ein kleines Problem mit den Variablen. Xenforo hat IPs für Posts, Registrierungsversuche usw.usw., aber die IPs von "jedem" Seitenaufruf zu verarbeiten ist für das Kernsystem uninteressant und wird auch nicht als Templatevariable angeboten. (Und die Post-IPs etc. sind meines Wissens nach nicht in PAGE_CONTAINER verfügbar). Es muss also ein PHP-Callback werden, und da mit einem normalen echo die IP ausgeben (an die Stelle, wo das Callback im Template aufgerufen wird).


...
Den Pluginteil später in einem weiteren Beitrag,
ist nämlich noch nicht geschrieben, und will dich nicht länger warten lassen :D
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück