Schlagwort-Archiv: ACP

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…

Download CF3-Plugin – ACP-Modul Toolbox fertiggestellt

Nun ist das vorletzte Modul für das ACP fertiggestellt: Die Downloads Toolbox.

Was man mit ihr alles anstellen kann, beschreibt sie selber und daher hier mal einfach nur die Screenshots:

ACP Toolbox - Mögliche Einstiegsseite

ACP Toolbox - Mögliche Einstiegsseite

ACP Toolbox - Leerer Ordner

ACP Toolbox - Leerer Ordner

ACP Toolbox - Ordner mit Inhalt

ACP Toolbox - Ordner mit Inhalt

ACP Toolbox - Dateioptionen

ACP Toolbox - Dateioptionen

ACP Toolbox - Thumbnails prüfen

ACP Toolbox - Thumbnails prüfen

Die Toolbox war in erster Linie dafür gedacht, Verzeichnisse für die Download Kategorien anzulegen und “herrenlose” Dateien zu prüfen, bzw. zu entsorgen.

Viel mehr kann und macht die Toolbox auch jetzt noch nicht und in den allermeisten Fällen reicht das auch aus.

Der nächste Part ist die Verwaltung der benutzerdefinierten Download Felder. Da dieses Modul sehr umfangreich ist und auch ein anderer Kundenauftrag hereingekommen ist, wird damit erst am kommenden Montag begonnen.

Ob allerdings auch bereits am Montag oder erst am Dienstag das Modul fertiggestellt ist, kann noch nicht abgeschätzt werden.

Download CF3-Plugin – ACP-Modul Blackliste für Dateierweiterungen fertiggestellt

Das Modul für verbotene Dateiendungen ist eigentlich nur eine bessere Verwaltung für eine Tabelle mit einer Spalte.

Ziel dieses Modules ist es, bestimmte Dateiendungen vom Upload, bzw. dem Einstellen in den Download Bereich zu verbieten, um ggf. gefährliche Scripte oder servergefährdende Dateien zu unterbinden.

Hier der Screenshot des sehr einfachen Modules, was allerdings ein Stück weit für Sicherheit auf dem eigenen Server sorgt:

ACP Download Plugin: Blackliste für Dateierweiterungen

ACP Download Plugin: Blackliste für Dateierweiterungen

Morgen wird dann mit der Toolbox begonnen, die “herrenlose” Dateien in der Ordnerstruktur des Plugins ausfindig machen kann und ggf. auch einem Download zuordnen kann, bzw. mit der die Ordnerstruktur überhaupt angelegt werden kann.

Download CF3-Plugin – ACP-Modul Bannliste fertiggestellt

Das nächste (dieses Mal sehr kleine) Modul ist fertiggestellt worden: Die Bannliste.

Damit lassen sich in unterschiedlicher Kombination bestimmte User von der Download Sektion fernhalten, sie haben also keine Chance, Downloads zu sehen oder herunterzuladen.

Die im Screenshot sichtbaren Felder werden zum Bann dabei ergänzend behandelt. Je Zeile (unterer Teil des Formulars) ist also eine Regel, die alle anderen Regeln ergänzt.

So lassen sich z. B. unterschiedliche IP-Adressen oder Benutzer sperren oder Gäste auch gänzlich aussperren.

Löschen und bearbeiten kann man die Einträge fix, wenn man die Checkbox am Ende einer Zeile anhakt und dann auf “bearbeiten” oder “löschen” klickt. Wobei immer nur der erste gewählte Eintrag zum Bearbeiten ausgewählt wird, gelöscht werden aber alle gewählten Einträge.

ACP Download Plugin - Bannliste

ACP Download Plugin - Bannliste

Wenn heute Abend noch genügend Zeit und Elan vorhanden ist, wird auch noch die Blackliste für Dateiendungen konvertiert. Aber das sehen wir dann. Wenn nicht mehr heute, dann morgen…