PHP-Nuke Download Section vs. FileBase
How to import from Filebase ...
- Section 6 - TIC Import, Allgemeine Beschreibung
Der FTN Ticker Import nach PHP-NUKE Downloads geht von einer vorliegenden
Allfix Konfiguration aus (andere Programme auf Anfrage).
Bei der Entwicklung war ausschlaggebend die Verbreitung von Binkley bzw.
BinkD als Mailer. Ich selbst hatte mein System bereits vor 1995 auf
Binkley in einer Nacht- und Nebel-Aktion umgestellt. Das FileBase Format für
eine File Request Unterstützung setzt dabei auf eine Maximus Filebase auf.
Der Ticker der bei mir zum Einsatz kommt ist schon seit Jahren Allfix
so dass ich dies als Grundbasis der Entwicklung herangezogen habe.
Der TIC Import erfolgt wie die Filebase Synchronisation in 3 Schritten.
Zunächst muss die Allfix Konfiguration in eine PHP-NUKE Downloads
gerechte Form gebracht werden.
Wie bei der Analyse bereits festgestellt, können bei der Allfix Konfiguration
mehrere FileAreas auf ein und dasselbe physikalische Verzeichnis verweisen. Das würde
bei der 1:1 Umsetzung Allfix nach PHP-Nuke Downloads Probleme
bereiten. Weiterhin müsste die Tabelle _DOWNLOADS_DOWNLOADS erweitert werden, was
bei einem Update von PHP-Nuke Inkompatibilitäten mit sich bringen würde. Aus
diesem Grund gibt es eine weitere Tabelle unter PHP-Nuke, die die Allfix
Konfigurations Informationen aufnimmt. Der Transfer der Informationen erfolgt dabei
in Schritt 1.
Die Zuordnung der übergeordneten Kategorie und die Aktivierung der Area
unter PHP-Nuke Downloads unterliegt aber weiterhin der Entscheidung
des Sysops, der hier interaktiv tätig werden muss.
Zwar wird, die übergeordneten Kategorie betreffend eine Voranalyse laufen gelassen
(wie wurden andere vergleichsweise konfigurierten Areas zugeordnet?), die letztendliche
Zuordnung muss aber immer noch der Sysop treffen.
Dies erfordert einen interaktiven Schritt 2 unter der PHP-Nuke Admin Konsole.
Des weiteren ist eine Minimalkonfiguration der Uplink Verbindungsparameter notwendig
(Welche AKA wird für den Ticker verwendet?). Aus der Allfix Konfiguration können
dann fast sämtliche weiteren Parameter (TIC Passwort, Spool Verzeichnis, Tic Typ) ausgelesen werden.
Schritt 3 schliesslich erlaubt es, nachdem sämtliche Allfix FileAreas einer
PHP-Nuke Downloads Area zugeordnet und konfiguriert wurden einen
automatisierten Import mittels TIC Files für neue Dateien. Die Funktion entspricht einem
klassischen Import-Only Ticker. DLTIC unterstützt sowohl den klassischen Binkley Outbound
Style (Flowfile Handling) alsauch die Verarbeitung über ein Hold-Spool-Directory.
Zur Verarbeitung sei noch ein Hinweis erlaubt. DLTIC verschiebt keine Files (!) sondern trägt
nur neue Dateien in die Downloads Konfiguration ein. Ein Verweis auf die physikalische Filebase
muss dabei über ein virtuelles Webverzeichnis erfolgen.
Zum näheren Verständnis: Neueinträge in PHP-Nuke Downloads liefern zu einem Weblink Metadaten.
Der Weblink kann dabei auf dem eigenen System liegen, kann aber auch auf ein entferntes System
verweisen. Einzig und allein die Metadaten mit der Link Addresse werden in die PHP-Nuke Downloads
Datenbank eingespeichert. Hierraus ergibt sich für den TIC Import die Notwendigkeit, das die
Dateien in einem durch das Web zugriffbaren Bereich gespeichert vorliegen. Damit die FTN Filebase
nicht doppelt auf dem eigenen Server vorliegen muss bedient man sich eines virtuellen Verzeichnisses.
Aufgrund der derzeit laufenden Security Debatte kann man das Verzeichnis aber 'verstecken'.
Mittels des Basepath Parameters kann dieses Verzeichnis frei gewählt werden.
Beispiel: virtuelles Webverzeichnis für eine FTN Filebase -> /12345678/ABC/1A2B3C/
Beim DLTIC Import wird dann aus der Homepage Angabe, dem Basepath und der physikalischen
Verzeichnis Struktur ein Link zur eigentlichen Datei zusammengebastelt.
Beispiel: http://irgendeinedomain.abc/12345678/ABC/1A2B3C/diverses/filelist.zip
Die einzelnen Bestandteile des Links sind dabei:
Homepage: http://irgendeinedomain.abc
Basepath: /12345678/ABC/1A2B3C/ setzt auf C:\FILEBASE auf
Physical: [C:/FILEBASE]/diverses/filelist.zip
Weil der FTN Node die zu vertickende Datei bereits in der Filebase abgelegt hat, braucht die Datei
nicht noch einmal von DLTIC in das Verzeichnis verschoben und eingepflegt werden. DLTIC muss nur
noch den Link generieren und die Informationen in der Downloads Tabelle eintragen.
Das DLIMP / DLTIC System ist als Zusatz zu einer bestehenden oder neu zu erstellenden
PHP-Nuke Downloads Section konzipiert. Bei Releasewechsel von PHP-Nuke bleiben die
DLIMP / DLTIC Konfigurationen bestehen (Upgrade Kompatibel). Aufgrund der Notwendigkeit zwischen
des Nodesystems FTN Filebase und der PHP-Nuke Downloads Section an irgendeiner Stelle die
Umsetzung von physikalischen Pfaden in eine virtuelle Webserver Umgebung durchzuführen
wird dies durch das DLIMP System bewerkstelligt. Aus diesem Grund baut DLTIC dann auch
auf die DLIMP Basis Konfiguration auf. DLTIC ohne die DLIMP Basis Konfiguration ist nicht möglich.
Zur Einrichtung des DLIMP Systems siehe Abschnitt Section 3 ....
FileBase Import, Allgemeine Beschreibung.
Allgemeine Installations- und Einrichtungshinweise zum DLIMP / DLTIC System:
- Installation und Konfiguration Gesamt DLIMP Filebase/Downloads System
- Allfix Setup Aufruf, Eintrag der DLTIC Downlink Informationen (AKA, Sysop, Passwort)
Entweder als Standard Downlink Eintrag (mit regulärem Binkley Outbound) oder
mit HoldDir Spoolpath
- Konfiguration DLTIC\includes\constants.php Eintrag Allfix Rootpath
- DLTIC1.php Aufruf zum Transfer der Groups und Areas von Allfix nach DLIMP
- Aufruf Admin Console, DLTIC Konfiguration
- Eingabe der zu verwendenden Downlink AKA
- Speichern
- Konfiguration DLTIC Areas
- Speichern
- Fortlaufender Aufruf des Tickers DLTIC3.php zum Importieren von TIC Files
Empfohlene Directory Struktur für das DLIMP / DLTIC System:
/apache/apache2/
+ cgi-bin/
+ config/
+ fbmaint/ <-- DLIMP / DLTIC Arbeits/Maintenance Verzeichnis
+ db/
+ includes/
+ sql/ <-- MySQL Installationsscripte für DLIMP/DLTIC
+ log/
+ mysql/ <-- MySQL, PHP, Perl können auch woanders installiert sein
+ perl/
+ php/
+ wwwroot/
+ ...
+ phpnuke/
+ admin/ <-- DLIMP / DLTIC Admin Console Script
+ ...
+ modules/
+ downloads/
Stufe 1: [ Aufruf Script DLTIC1.PHP, Import Allfix Konfiguration nach PHP-Nuke DLIMP ]
Installations Step 1 - Bevor das DLTIC System integriert werden kann muss die DLIMP Installation
abgeschlossen sein. Andernfalls fehlen für das DLTIC System entscheidende Pfadinformationen
und die Zuordnungen zu den PHP-Nuke Downloads Sektionen.
Installations Step 2 - Allfix Setup Aufruf, Eintrag der DLTIC Downlink Informationen (AKA, Sysop, Passwort)
Entweder als Standard Downlink Eintrag (mit regulärem Binkley Outbound) oder
mit HoldDir Spoolpath
cd \Allfix
asetup
+ Node manager
+ Ins(ert)
+ Aka : yourzone:yournet/yournode.freie Pointnummer
Sysop : DLTIC (oder anderer beliebiger Name)
Holding Directory : -Pfad eingeben oder leer-
Route via :
Authorized groups : -beliebig-
Fileecho password : -beliebiges Passwort-
File attach status: -sinnvollerweise Direct-
TIC file mode : Advanced TIC file
Packing mode : No packing
Compression type : -irrellevant-
Speichern.
Holding Directory: entweder Pfad eingeben oder
leer lassen wenn Binkley Outbound benutzt werden soll
Installations Step 3 - Editieren der Definition des ALLFIX Basis Verzeichnis in
fbmaint\includes\constants.php:
// ALLFIX related
define('AFIXPATH', 'C:/ALLFIX/');
Installations Step 4 - Aufruf
fbmaint\dltic1.php
Der Aufruf von der Kommandozeile könnte wie folgt aussehen:
d:\php\php -f d:/apache/apache2/fbmaint/dltic1.php
Mit diesem Aufruf werden sämtliche Allfix Tic Areas in die DLIMP2 Tabelle transferiert. Beim Transfer der
Area Informationen wie Areaname, Gruppe, Beschreibung und Pfad wird zur Pfadangabe eine Entsprechung in der
DLIMP Downloads Konfiguration gesucht. Wird ein gleichlautender Pfad gefunden, wird die Area automatisch
aktiviert und der Downloads Section zugeordnet. Wird kein gleichlautender Pfad gefunden, wird die Area zwar
in der DLIMP2 Tabelle eingetragen, aber als inaktiv markiert. In Stufe 2 kann dann zu solch einer Area
eine Downloads Area zugeordnet werden bzw. eine Downloads Area angelegt werden.
Stufe 2: [ Aufruf PHP-Nuke Admin Console - DLIMP - AFIX Konfiguration ]
In der PHP-Nuke DLIMP/DLTIC Admin Konsole werden mehrere Konfigurationenen bearbeitet:
- Import von Link Parametern zwischen DLIMP Downlink und Allfix Uplink (Uplink AKA, TIC Passwort, etc.)
- Überarbeitung der in Stufe 1 importierten Allfix Tic Area Informationen.
- Anlegen von zusätzlichen Downloads Areas, falls zu einer TIC Area keine Entsprechung gefunden wurde.
Der Aufruf für die DLTIC Konfiguration erfolgt über die gemeinsame DLIMP Admin Console
aus der Admin Sektion. Die erste Seite zeigt die DLIMP Konfiguration. Nach dem Aufruf der Prozedur
aus Stufe 1 (
fbmaint\dltic1.php) wird nun ein zusätzlicher Link angezeigt:
[ DL Import AFIX Konfiguration ].
Über diesen Link gelangt man in die DLTIC Allfix Konfigurationsebene.
Abb. 1: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Einstiegsseite mit Link zur Allfix Konfiguration
Beim ersten Aufruf dieses Links liegen noch keine Downlink AKA Informationen vor. Aus diesem Grund verzweigt
die Routine an dieser Stelle zunächst auf Seite 3
AFIX Uplink Konfiguration der DLIMP / DLTIC
Konfiguration. Standardmässig wird zunächst die Primär-AKA des Uplinks als Ausgangspunkt
in das AKA Feld gesetzt und muss editiert werden. Diese Seite wird solange angesprungen bis einmal eine
gültige Downlink AKA gespeichert wurde.
Abb. 2: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Sprung auf Seite 3 zur Allfix Uplink Konfiguration
Abb. 3: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Eingabe der DLTIC Downlink AKA und Speichern auf Seite 3
Nach Speicherung der Downlink AKA wird die Allfix Konfiguration ausgelesen und alle den Link betreffenden Informationen in die DLTIC Konfiguration
übernommen. Dazu gehören neben dem TIC Passwort auch die Informationen über das verwendete TIC Format (normal, advanced), und ganz
wesentlich für die DLTIC Konfiguration der Ort an dem die Übergabe an DLTIC stattfindet. Ob also ein Spool Verzeichnis (HoldDir) oder
der Binkley Outbound des Nodes benutzt werden soll.
Abb. 4: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Nach Eingabe und Speichern der DLTIC Downlink AKA auf Seite 3
Abb. 5: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Sprung auf Seite 2
Abb. 6: Screenshot DLIMP PHP-Nuke Admin Console v1.10, DLTIC Area Konfiguration auf Seite 2
Auf Seite 2 kommt nun die eigentliche DLTIC Area Konfiguration. Zunächst werden alle von Allfix importierten
TIC Areas aufgelistet und bereits eindeutig zuordnenbare Downloads Sektionen auch als Aktiv markiert.
Die Spalten lassen sich nach AreaTag (default), Beschreibung, TIC Pfaden oder Allfix Gruppen sortieren.
Aktiv geschaltete Areas lassen sich jederzeit deaktivieren. Inaktive Areas können unter Details
nachbearbeitet werden.
In den ersten beiden Spalten gibt es jeweils 2 Informationen. Die erste Zeile ist die Allfix Bezeichnung. Die
zweite Zeile liefert die Bezeichnung aus der zugeordneten Downloads Area. Somit kann auf einen Blick erfasst
werden, ob die automatische Zuordnung funktioniert hat, oder ob Nachbesserungen notwendig sind. Im obigen
Beispiel wurden die AreaTags
14000 und
24000 beide der PHP-Nuke Downloads Area
SERVICE
zugeordnet, da von beiden TIC Areas die Pfade auf
Q:\Service verweisen und unter PHP-Nuke Downloads
dieser Pfad als Area
SERVICE definiert wurde. Beim späteren DLTIC Import werden so Files
aus den TIC Areas
14000 und
24000 unter Downloads zusammen in der Area
SERVICE
angezeigt.
Details Variante 1: Details zu einer aktiven Area
In der Detail Ansicht können detailierte Informationen zu einer TIC Area bzw. über die
zugeordnete PHP-Nuke Downloads Area abgerufen werden.
Abb. 7: Screenshot DLIMP PHP-Nuke Admin Console v1.10, DLTIC Area Details, aktive Area
Der erste Teil der Informationen sind die Informationen, die aus der Allfix Konfiguration ausgelesen wurden.
Der zweite Teil listet die Informationen über die gefundene und zugeordnete PHP-Nuke Downloads Area auf.
Unter Funktionen können dann verschiedene Operationen ausgeführt werden um die PHP-Nuke Downloads
Area Konfiguration zu überarbeiten.
- So kann der AreaTag, der Titel für eine Area nachträglich
unter PHP-Nuke Downloads an den Namen der TIC Area angepasst werden
(Funktion -> Kopiere AFIX nach FileBase AreaTag).
- Man kann die bestehende PHP-Nuke Downloads Area Beschreibung mit der TIC Area Beschreibung
überschreiben (Funktion -> Kopiere AFIX nach FileBase Area Beschreibung).
- Der Status für den TIC Import einer Area kann man deaktivieren so dass beim Import
von Files zu dieser Area der Import nicht ausgeführt wird. Das deaktiviert an dieser
Stelle aber nicht die PHP-Nuke Downloads Area! Nur der Import wird unterbunden (ich weiss zwar
nicht wofür das gut sein könnte, ist aber hier möglich x1).
(Funktion -> AFIX Status ändern: Aktivieren/Deaktivieren).
x
1 In der Übersicht der Areas wird das vielleicht deutlicher. Beim Import der Allfix
Konfiguration können Areas auftauchen, die in der Form wie sie im Ticker angelegt sind nicht
in der PHP-Nuke Downloads Sektion auftauchen sollen (i.e. administrative FileEchoes). Unter
PHP-Nuke Downloads könnte die FileArea aber in einer anderen Form bestehen und auf das selbe
Verzeichnis der Filebase verweisen (i.e. einzelne Infofiles während andere Files in PHP-Nuke
Downloads nicht erscheinen sollen).
Details Variante 2: Details zu einer inaktiven Area
In der Detail Ansicht können die detailierte Informationen zu einer TIC Area, aber keine Informationen
über eine zugeordnete PHP-Nuke Downloads Area abgerufen werden weil bislang kein Pfad für diese
Area in der DLIMP Konfiguration existiert.
Abb. 8: Screenshot DLIMP PHP-Nuke Admin Console v1.10, DLTIC Area Details, inaktive Area
Der erste Teil der Informationen sind die Informationen, die aus der Allfix Konfiguration ausgelesen wurden.
Der zweite Teil listet nur die fehlenden Informationen der nicht existierenden PHP-Nuke Downloads
Area auf. Unter Funktionen kann dann aber eine PHP-Nuke Downloads Area erzeugt werden
(Funktion ->
Neue FileBase Area anlegen).
Abb. 9: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Funktion Neue Area anlegen
Die markierten Felder sind die Informationen die beim Anlegen der neuen Area benötigt werden.
Die Felder
Titel,
Parent Name und
Rechte sind dabei ggf. anzupassen.
Insbesondere die Zuordnung der übergeordneten Eltern Kategorie kommt besondere Bedeutung zu,
da hiermit die Position der neuen Area in der PHP-Nuke Downloads Struktur definiert wird.
Abb. 10: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Neue Area: Auswahl der Kategorie
Dabei werden alle bislang bekannten Downloads Kategorien aufgelistet aus denen man auswählen kann.
Eine neue Kategorie kann an dieser Stelle nicht eingefügt werden.
Anders als bei der DLIMP Konfiguration werden bei der DLTIC Konfiguration (Seite 2 und 3) beim jeweiligen Speichern
oder Ausführen von Funktionen Änderungen sofort als aktive Konfiguration übernommen.
Die Konfiguration auf Seite 3 der DLTIC Konfiguration entspricht der Konfiguration des Node Managers
im Ticker. Seite 2 der DLTIC Konfiguration entspricht der File Echo Konfiguration im Ticker.
Im laufenden Betrieb wird man mit der Uplink Konfiguration (Node Manager) nur noch selten
in Berührung kommen. Die Area Konfiguration wird dagegen vermutlich noch häufiger aufgerufen
werden um neue Fileechoes nachzukonfigurieren, einzelne Echoes stillzulegen, einzelne Echoes
auszublenden oder bereits vorhandene aber inaktive Echoes nachträglich in die
PHP-Nuke Downloads Sektion aufzunehmen.
Stufe 3: [ Aufruf Script DLTIC3.PHP in daily maintenance, PHP-Nuke Downloads Ticker ]
Sind unter der Allfix Konfiguration für den DLTIC Downlink Areas freigeschaltet und konfiguriert
worden, werden beim Verticken neuer Files die Files je nach Allfix Konfiguration entweder die
Dateien mit den TIC Files in ein Spoolverzeichnis abgelegt oder aber reguläre Flowfiles
im Binkley Outbound mit Links auf die jeweiligen TIC Files im TIC Spoolverzeichnis
und dem entsprechenden Datei Link in die Filebase angelegt.
Das Script
DLTIC3.PHP arbeitet nun wie ein richtiger Ticker und verarbeitet die vom Uplink
erstellten Dateien je nach Konfiguration entweder im Spoolverzeichnis oder aus dem Binkley Outbound
ab.
DLTIC3.PHP räumt dabei selbstständig die Verwaltungsinformationen auf
- Löschen der Dateien im Spoolverzeichnis oder
- Löschen der Flowfiles im Binkley Outbound
nachdem die TIC Files abgearbeitet und jeweiligen Files in die PHP-Downloads Sektion importiert worden sind.
Aufruf des DLTIC3.PHP Skripts nach jedem Allfix Durchlauf:
i.e. d:\php\php -f d:/apache/apache2/fbmaint/dltic3.php
DLTIC3 liest zunächst den AreaTag aus dem TIC File aus und überprüft aus der DLTIC Filearea
Konfiguration ob die Area überhaupt aktiviert ist. Andernfalls wird der Import dieser Datei
übersprungen (TIC File wird in *.BAD umbenannt).
Danach werden alle weiteren Informationen aus dem TIC ausgelesen (Dateiname, Beschreibung, Link AKA, TIC Passwort)
und ggf. ebenfalls mit der DLTIC Area Konfiguration verglichen.
Anschliessend wird aus der DLIMP Homepage und Basepfad Konfiguration und dem in der DLTIC Filearea
definiertem physikalischem Pfad die neue URL gebildet.
i.e. http://ambrosia60.dd-dns.de/12345689/service/nodediff.z62
Als Einspeisedatum wird der aktuelle Datumsstempel genommen.
Als Einspeiser trägt sich DLTIC selbst ein.
Für Homepage wird die in DLIMP definierte Homepage Definition herangezogen.
Als E-Mail Addresse wird die E-Mail Addresse aus der PHP-Nuke Konfiguration verwendet.
Der Titel für die Datei wird der Dateiname und der Anfang der Beschreibung verwendet.
Für die Beschreibung wird sofern eine Lang-Beschreibung im TIC File vorhanden ist (Advanced TIC File Format)
die Lang-Beschreibung herangezogen, andernfalls wird mit der Kurzform vorlieb genommen.
Die Dateiversion wird mit Hilfe einer eingebauten Funktion versucht zu ermitteln. Diese Funktion
ist zur Zeit noch experimentell.
Nach Einspeicherung der Informationen in die PHP-Nuke Downloads Datenbank werden das TIC File, die Datei
selbst, sofern sie im Spoolverzeichnis liegt entfernt.
Weiterhin wird die DLIMP Konfiguration für die Filebase Synchronisation aktuallisiert, so dass bei
einer nachfolgenden Filebase Synchronisation das Verzeichnis nicht noch ein zweites mal angefasst
und verarbeitet wird.
Bei der Verarbeitung über den Binkley Outbound werden sämtliche möglichen Flowfiles
(*.flo, *.hlo, *.dlo, (*.clo)) für die DLTIC Downlink AKA überprüft.
Sofern ein Flowfile gefunden wird, wird dieses
geöffnet und abgearbeitet. Komplett abgearbeitete Flowfiles werden nach Abschluss der Verarbeitung
gelöscht.
Noch Fragen oder Unklarheiten?
So wenden Sie sich vertrauensvoll an den Autor .... ;)