Project: PHP-Nuke - 06. FileBase to Download Import - Beschreibung Ticker

AMBROSIA60-Portal  FileBase to Download Import Project



PHP-Nuke Download Section vs. FileBase
How to import from Filebase ...




Übersicht:
Start....Übersicht
Section 1....Analyse I, Filebase Synchronisation
Section 2....Umsetzung der Filebase Synchronisationsprozedur
Section 3....FileBase Import, Allgemeine Beschreibung
Section 4....Analyse II, Ticker Import
Section 5....Umsetzung des TIC Imports
Section 6....TIC Import, Allgemeine Beschreibung
Section 7....Einbindung DLIMP / DLTIC in die Maintenance
Section 8....Hinweis zur FileBase Security
Section 9....Übersicht und Status Gesamtprojekt
Section 10....References
Section 11....Download
Section 12....Weiterentwicklungen, Fixes




  • 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:
  1. Installation und Konfiguration Gesamt DLIMP Filebase/Downloads System
  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
  3. Konfiguration DLTIC\includes\constants.php Eintrag Allfix Rootpath
  4. DLTIC1.php Aufruf zum Transfer der Groups und Areas von Allfix nach DLIMP
  5. Aufruf Admin Console, DLTIC Konfiguration
  6. Eingabe der zu verwendenden Downlink AKA
  7. Speichern
  8. Konfiguration DLTIC Areas
  9. Speichern
  10. 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.

Screenshot PHP-Nuke DLIMP Admin Console Module v1.10 incl. AFIX Config Link
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.

Screenshot PHP-Nuke DLIMP Admin Console Module v1.10, Sprung zu AFIX Konfiguration
Abb. 2: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Sprung auf Seite 3 zur Allfix Uplink Konfiguration


Screenshot PHP-Nuke DLIMP Admin Console Module v1.10, Eingabe Downlink AKA
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.

Screenshot PHP-Nuke DLIMP Admin Console Module v1.10, Speicherung Downlink AKA
Abb. 4: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Nach Eingabe und Speichern der DLTIC Downlink AKA auf Seite 3


Screenshot PHP-Nuke DLIMP Admin Console Module v1.10, Sprung auf Seite 2
Abb. 5: Screenshot DLIMP PHP-Nuke Admin Console v1.10, Sprung auf Seite 2


Screenshot PHP-Nuke DLIMP Admin Console Module v1.10, DLTIC Area Konfiguration 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.

Screenshot PHP-Nuke DLIMP Admin Console Module v1.10, DLTIC aktive Area Details
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).

x1 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.

Screenshot PHP-Nuke DLIMP Admin Console Module v1.10, DLTIC inaktive Area Details
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).

Screenshot PHP-Nuke DLIMP Admin Console Module v1.10, Funktion Neue 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.

Screenshot PHP-Nuke DLIMP Admin Console Module v1.10, Neue Area: Auswahl der Kategorie
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 .... ;)






© 2003-2024 by Ulrich Schroeter   01117