Schlagwort-Archiv: benutzerdefinierte Downloadfelder

[Update] Download Plugin für CF3 – Download Detailansicht

In der Detailansicht werden nun auch die Inhalte der benutzerdefinierten Download Felder angezeigt.

Damit wäre die Detailansicht nun komplett.

Im Screenshot sind es die 4 Beispielfelder nach dem ToDO-Eintrag (direkt unterhalb dem “Einen Kommentar verfassen”-Button).

Aufgrund der Beispieldaten bitte hierbei von der Sinnhaftigkeit der Felder absehen.

Download Detailansicht mit benutzerdefierten Feldern

Download Detailansicht mit benutzerdefierten Feldern

In den nächsten Tagen werden nun alle weiteren noch ausstehenden Module in loser Reihenfolge nach und nach konvertiert und hier vorgestellt. Nach aktueller Planung werden das Upload-Formular als nächstes, gefolgt vom Moderationspanel konvertiert.

[UPDATE] Download CF3-Plugin – ACP-Modul Benutzerdefinierte Felder

Das Modul für die benutzerdefinierten Felder ist nun fertiggestellt. Nach mühevoller Umstellung und Anpassung an das CF3 können nun neue beliebige Felder den Downloads hinzugefügt werden.

Hierzu der nachfolgende Screenshot mit einer Übersicht der möglichen Feldtypen. Auf weitere Screenshots wird aus Gründen der “Langeweile” verzichtet, da der “Assistent”, der hierbei den Administrator führt, selbsterklärend ist.

ACP Modul benutzerdefinierte Felder - Übersicht der Feldtypen

ACP Modul benutzerdefinierte Felder - Übersicht der Feldtypen

Mit diesem Modul ist nun der erste Milenstein des Plugins geschafft: Die Verwaltung im ACP ist komplett.

Was nun folgt, sind die eigentlichen Module, die der Benutzer im Board sehen und “anfassen” kann, sowie die Einstellungen im Benutzerprofil.

Sobald dieser zweite Teil abgeschlossen ist, werden noch einige grundlegende Nacharbeiten am Plugin vollzogen und auch erst das Verkaufssystem dafür gelant, bevor das Plugin veröffentlicht wird. Aber das ist noch in weiter Zukunft…

Download CF3-Plugin – ACP-Modul Benutzerdefinierte Felder in Arbeit

Das Modul für Benutzerdefinierte Download Felder ist im ersten Wurf einmal durchkonvertiert. D. h. das Script ist soweit fertig und auch im ACP ist soweit alles sichtbar.
Jetzt geht es an die Feinheiten. Es müssen zunächst die Eingabefelder formatiert werden, damit nicht das heillose Chaos angezeigt wird. Die Eingabeformulare wären zwar jetzt schon verwendbar, aber eben noch nicht soooo sauber, wie sie sein sollen.
Hier mal ein paar Screenshots zum jetzigen Stand, mit dem Beispiel eines einfachen Zahlenfeldes:

ACP Modul Benutzerdefinierte Felder - Einstiegsseite

ACP Modul Benutzerdefinierte Felder - Einstiegsseite

ACP Modul Benutzerdefinierte Felder - Beispiel Zahlenfeld - Schritt 1

ACP Modul Benutzerdefinierte Felder - Beispiel Zahlenfeld - Schritt 1

Die nachfolgenden Seiten dieses Moduls sind auch noch nicht überarbeitet, d. h. diverse Sprachelemente sind noch fehlerhaft, daher würden die vielen Fehler hier kaum etwas erkennen lassen und auf weitere Screenshots wird verzichtet.

Ebenso fehlt noch der ausführliche Test, ob sich die Felder auch speichern und editieren lassen, ebenso wenig ist getestet, ob diese Felder dann auch tatsächlich in einem Download zum gewünschten Zusatzeffekt reifen und dort ebenfalls verwendet werden können.

Die weiteren Arbeiten erfolgen daher auch, da diese ebenfalls recht umfangreich sind, erst ab Montag, damit dieser Sonntag Abend nicht komplett mit Arbeit “versaut” wird.

[UPDATE] Download Plugin für das CF3 – Technische Hintergründe

Für alle Anwender und Interessierte, wie das Download Plugin aufgebaut wurde, werden nachfolgend ein paar technische Hintergründe aufgezeigt.

Während das CF3 fast ausschließlich aus Klassen besteht, die alle Aktionen und Funktionen auslösen und bereitstellen, fallen die Kerndateien dieses Forumsystems recht klein aus. Anders als bei Foren wie dem phpBB 3, wo nur zentrale Dateien und Admin- Moderations und Benutzerbereiche aus Klassen bestehen, werden hier konsequentere Arbeitsweisen verwendet.

Nun kann man sich streiten, ob ein so übermässiger Einsatz von Klassen Sinn macht. Man kann damit arbeiten und das CF3 zeigt ja auch eine sehr schnelle Verarbeitungsgeschwindigkeit bei sehr wenigen Datenbankzugriffen. Und das trotz der zahlreich vorhandenen Funktionen und Module, die integriert wurden.

Das Download Plugin geht hier einen eher moderaten Weg im Umgang mit Klassen. Es werden nur wenige Klassen verwendet, um zentrale Funktionen zu erstellen, die an unterschiedlichen Stellen genutzt werden. Der Rest des Plugins, also genau genommen alle Module, die das Download Plugin mitbringt, besteht aus bekannten Scriptstrukturen, da hierfür Klassen als weniger geeignet, bzw. nicht nötig angesehen werden.

Als einzigstes Modul ist die Verwaltung der benutzerdefinierten Downloadfelder in einer Klasse untergebracht, was, und dazu kommen wir jetzt, aus der Vorlage heraus nötig ist.
Und die Vorlage ist die Download MOD für das phpBB 3, die eben für das ACP Klassen verwendet, anstelle althergebrachte Script-Dateien.

Und wo bereits angesprochen wurde, dass eine bestehende Klasse aus dem phpBB 3 für das CF3 Download Plugin konvertiert wird: Da die Lizenzbestimmungen des CF3 es verbieten, diverse Codeteile oder gar gesamte Funktionen/Dateien für das eigene Plugin zu kopieren und damit anpassen zu können, müssen diverse Teile neu erstellt werden, da viele zentrale Funktionen des CF3 nicht “von aussen” ansprechbar oder gar über Parameter angepasst werden können. Auch zeigt die strikte Vorgabe, nur innerhalb des Plugin-Ordners zu arbeiten, auch hier weitere Grenzen auf.
So wurden weitere Funktionen des phpBB 3 in das Download Plugin übernommen, um bequemer und weniger aufwändig einzelne Bereiche und Funktionen konvertieren zu müssen.

Als Beispiel sei hier der konsequente Ersatz der CF3-Funktion $Core->get(); genannt, die im phpBB 3 mit der Kernfunktion request_var() beschrieben wird. Da die Funktion im phpBB 3 unabhängig der Datenherkunft (also GET- oder POST-Daten) auch noch alle nötigen Absicherungen der übernommenen Daten und sogar Standardwerte in einem Durchgang verarbeiten kann, wurde diese Funktion mit integriert.

Und so sind auch versteckte (hidden) Formularfelder nur mit einigem Programmcode und einzeln aufzubauen und dem Template zu übergeben. Aber auch hier bietet eine Funktion aus dem phpBB 3, dass man bequemer nur die Inhalte der versteckten Felder angeben muss und abschließend mit der Funktion build_hidden_fields(); bequem aufbereiten und dem Template übergeben kann. Auch das spart letztlich Programmcode und hält das Plugin-Paket klein.

Selbstverständlich werden im Plugin aber nicht alle CF3-Funktionen ersetzt, sondern konsequent genutzt, sofern möglich. Eine Hürde dabei ist z. B. das verwenden eigener E-Mail-Vorlagedateien, da diese ja nicht im Pfad liegen, wie das die zentrale E-Mail-Funktion des CF3 erwartet. Hierzu steht noch ein Test aus, ob die “hilfsweise” geschaffene Methode, die eigene Vorlagendatei doch zu verwenden, auch tatsächlich so genutzt werden kann, oder die E-Mail-Funktion dieses so nicht verarbeitet, was dann wieder eine neue Methode hervorruft, E-Mails auch wie gewünscht versenden zu können.

Punkte, die die Konvertierung einer phpBB Modifikation deutlich behindern und bei umfangreicheren Paketen, wie eben die Download MOD, auch einigen Mehraufwand bedeuten.

Nun sollen aber diese Beispiele keinesfalls aussagen, dass das CF3 ein schlechtes oder nicht erweiterbares System wäre. Im Gegenteil: Die strikte Vorgabe, nur innerhalb des eigenen Plugin-Ordners zu operieren und mit einer Datei im Plugin auch gleichzeitig einen automatischen Installer und Deinstaller zur Verfügung zu stellen, was die Handhabung eines CF3-Plugins deutlich vereinfacht und sicher macht, zeigen anderen Forensystemen, die solche Funktionen bei weitem noch nicht besitzen, wo der Trend hin geht. Ja, gerade das phpBB 3 muss hier meist mühsam durch einen Installationsanleitung angepasst werden, die der MOD-Autor mit mehr oder weniger hoher Genauigkeit und Qualität erstellt. Und da nicht selten mehrere Modifikationen die gleichen Foren-Dateien verändern, kann auch schnell mal eine Modifikation inkompatibel zu einer anderen Modifikation werden. Abgesehen von verwendeten Variablen, deren Namensgebung  man als MOD-Autor im Eifer des Gefechts schnell mal zu allgemein hält und damit die eigene Modifikation im Nachgang einer erneute Überarbeitung unterziehen muss, damit sie mit MOD A, MOD B und selbst mit MOD Z zusammenarbeitet. Aber das phpBB 3.1 soll hier ja deutlich einen Schritt nach vorne gehen; warten wir es ab…

Beide Vorgaben für MODs/Plugins haben Vor- sowie Nachteile, aber das ist nicht Gegenstand dieses Artikels, noch soll das CF3 mit dem phpBB 3 verglichen werden, da sich beide Forensysteme grundlegend unterscheiden und beide auch Ihre Daseinsberechtigung für die einen oder anderen Anwendungsfall haben.

Hier geht es aber vornehmlich um die technischen Gegebenheiten, die die Download Plugin umschiffen muss und um Zeit und Aufwand zu sparen, eben diverse Funktionen des phpBB 3 mit integriert werden, damit das Plugin auch weiterhin so funktioniert, wie es die Vorlage als Modifikation für das phpBB 3 auch tut.

Und gerade bei den benutzerdefinierten Download-Feldern ist es besonders mühsam, die aus Plugin-Vorgabe und Lizenzbestimmung des CF3 nötige eigene Lösung zu konvertieren, da eben die Funktion für ein phpBB 3 erst einmal logisch und anschließend technisch an die Gegebenheiten des CF3 anzupassen sind. Zum Glück ist aber der generelle Unterschied hier nicht so gewaltig, dass man diverse Abstriche oder gar komplette Abschnitte neu erstellen müsste.
Und auch hierbei kann wieder einiges an Code eingespart werden, da das CF3 ausschließlich mit MySQL-Servern zusammenarbeitet und damit die unterschiedlichen Anpassungen der phpBB 3 Funktionen für die unterschiedlichen Datenbanklayer nicht berücksichtigt werden müssen.
Somit ist das Plugin an dieser Stelle demnach schlanker, als die MOD für das phpBB 3. Wenngleich auch nur marginal, da das Plugin bereits sehr umfangreich ist, nur um die Funktionen, die es mitbringt, überhaupt bereitzustellen.

Dennoch:
Es wird weiter fleissig konvertiert und auch die benutzerdefinierten Downloadfelder werden über kurz oder lang so arbeiten, wie das in der Vorlage auch der Fall war. Wenn die umfangreichen Funktionen des phpBB 3 dafür denn auch endlich konvertiert sind…