Downloadcontrol_XH 1.7
für CMSimple_XH ab Version 1.6
Mit Downloadcontrol kann man auf einer Website Dateien und Dateiengruppen auch aus geschützten Ordnern zum Download anbieten und diesen Download auf verschiedene Weise kontrollieren und dokumentieren.
Neu bei 1.7:
- Kann mithilfe der Logsynchronisationsfunktion parallel mit Dlcounter_XH genutzt werden, oder auch einfach nur als graphische Anzeige für Dlcoutner_XH
- Erleichterter Pluginaufruf durch Kurzaufruf-Vorbereitung im Backend
- Überprüfung ob .htaccess existiert
- Log- und Zähldateien jetzt unter
userfiles/plugins/downloadcontrol/
gespeichert. Alte Log-Dateien werden beim Update selbstständig an neuen Ort kopiert. - Unterscheidet zwischen einfacher Zählung von Downloads und versionsübergreifender Zählung und kann die beiden unterschiedlichen Werte anzeigen.
- Darstellung angebotener Downloads auch bei Einzeldownloads in Tabellenform
- Stark erweiterte Konfig-Einstellungen
Updaten
Zip-Datei öffnen und in CMSimple-Basisordner kopieren. Das Plugin wird dann mit der neuen Version überschrieben mit Ausnahme der Konfig-, Log- und Zähldateien. Sobald man das Pluginbackend aufsucht, wird eine neue Konfigdatei unter Berücksichtigung alter Einstellungen generiert und die Log- und Zähldateien werden an den neuen Speicherplatz kopiert.
Der Schutz von Dateien
Dateien, die auf Ihrem Webserver unterhalb Ihrer Basis-URL liegen, können durch einfache Eingabe der
vollständigen URL von jedem im Internet heruntergeladen werden, solange sie nicht speziell geschützt sind. Den
Schutz stellt man im Webserver ein. Auf den meisten Webservern läuft das Apache-System, und dort genügt es, eine
,htaccess-Konfigurationsdatei in einen Ordner zu legen, um alle Dateien dieses Ordners und aller seiner Unterordner
gegen Herunterladen schützen. CMSimple_XH macht von dieser Möglichkeit viel Gebrauch um zu verhindern,
dass Einstellungen ausspioniert werden.
Läuft auf dem Webserver aber ein anderes System, z.B. Nginx oder Microsoft-IIS,
dann muss man sich um den Dateischutz auf andere Art kümmern. Welcher Webserver genutzt wird,
zeigt CMSimple_XH unter Einstelluungen > Info
an.
Diese .htaccess-Dateien benötigen weder Downloadcontrol_XH noch erfordert Downloadcontrol_XH das Vorhandensein von .htaccess. Mit Downloadcontrol_XH können Sie Dateien auch ohne .htaccess in ansprechender Form zum Download anbieten. Allerdings können dann diese Dateien auch durch direkte URL-Eingabe heruntergeladen werden, wobei das dann von Downloadcontrol_XH nicht mitgezählt wird. Darum bietet es sich an, Downloadcontrol_XH zusammen mit .htaccess zu nutzen.
Der Basisordner von Downloadcontrol
Downloadcontrol muss zuerst wissen, wo die anzubietenden Download-Dateien sind. Dieser Basisordner wird
in der Konfig angeben. Ohne Angabe (so ist die Voreingestellung) ist dieser Ordner
der normale Download-Ordner, jeder Eintrag wird als Unterordner des Standard-Download-Ordners angesehen. Bei der
Installation von Downloadcontrol_XH wird außerdem als Unterordner des normalen
Downloadoardners der Ordner protected
erstellt,
der eine .htaccess-Datei enthält.
Die Voreinstellung hat allerdings zwei Nachteile:
- Aus dem Downloads-Ordner kann weiterhin ohne Downloadcontrol heruntergeladen werden und diese Downloads werden dann nicht gezählt in der Download-Statistik.
- Man muss für Downloads aus dem
protected
-Ordner immer diesen Ordner im Downloadcontrol-Pluginaufruf angeben, z.B.{{{control 'protected/meineDatei.doc'}}}
Stattdessen kann man die .htaccess-Datei aus dem protected-Ordner in den normalen Downloads-Ordner verschieben. Dann werden Downloads protokolliert und Downloads sind nur über Downloadcontrol (oder DLcounter_XH) möglich.
Die andere Alternative ist, als Downloadcontrol-Basisordner den protected
-Ordner einzustellen.
Dann stimmt die Statistik, beschränkt sich aber auf Downloads aus dem protected
-Ordner.
Außerdem sind die Pluginaufrufe einfacher.
Gleichzeitig kann man den Standard-Downloads-Ordner für einfache Downloads, wie pdfs, weiter nutzen.
Zu beachten ist, dass sich bei einer Änderung des Basis-Ordners in allen Downloadcontrol-Pluginaufrufen die Pfadangaben ändern. Die Zähldateien bleiben hingegen unverändert.
Plugin-Kurzaufrufe
Nutzt man die Kurzaufrufe, braucht man sich über Datenpfade, Kommas und korrekte Schreibung der angebotenen Dateien keine Gedanken zu machen. Im Backend eine Nummer anklicken und die gewünschten Dateien und die Darstellungsform auswählen.
Die Anzahl der Kurzaufrufe ist in der Konfig einstellbar. Der Pluginaufruf
lautet entsprechend der gewählten Nummer, z.B. bei 1: {{{control 1}}}
Beim Pluginaufruf prüft das Plugin, ob das Argument eine Zahl ist. Trifft das zu, dann schaut es nach, welche Anweisungen und Downloads unter diesem Kurzaufruf hinterlegt sind. Findet es nichts, wird eine Fehlermeldung ausgegeben.
Log, Downloadzähldatei und E-Mail-Benachrichtigung
Log
Downloadcontrol führt Protokoll darüber, welche Datei wann von wem heruntergeladen wurde.
Der Herunterladende wird entweder über Memberpages/Register_XH oder Namensnachfrage ermittelt,
andernfalls wird die IP-Adresse
aufgezeichnet.
Das Log kann durch Klick auf Log-Sync
mit dem Log von Dlcounter_XH synchronisiert werden.
Dabei werden in beide Logs die jeweils fehlenden Einträge in der richtigen Reihenfolge eingefügt. Außerdem
wird die Zähldatei von Downloadcontrol_XH entsprechend der neuen Einträge ergänzt.
Zähldatei
Unabhängig vom Log werden die Downloads pro Datei gezählt. Dateien gleichen Namens in unterscheidlichen
Ordnern werden als eine Datei gezählt. Falls in der Konfig ein Separatorzeichen zwischen
dem eigentlichen Dateinamen und der Versionsnummer eingegeben wurde, gibt es zusätzlich einer
versionsübergreifenden Zählung für entsprechende Dateien.
Auch wenn man eingestellt hat, den Besuchern immer die versionsübergreifende Zählung zu zeigen, versucht das Plugin ein möglichst vernünftiges Ergebnis zu liefern, und wenn es diese Zählung bei einer Datei nicht gibt, wird stattdessen die normale Zählung genommen.
Die Zähldatei ist im Backend editierbar, ihr Format ist vom Typ "ini" (d.h. zeilenweise Schlüssel[Dateiname] = Anzahl). Da die Zeichen
?{}|&~!()^"#;
eine spezielle Bedeutung haben,
werden diese in der Liste intern zu _
umgewandelt. Diese Zeichen können in Dateinahmen
trotzdem verwandt werden,
werden aber im Backend-Zähler aus genannten Grund nicht dargestellt.
E-Mail-Benachrichtigung
Auf Wunsch kann bei jedem Download eine entsprechende E-Mail an einen Administrator verschickt werden.
Pluginaufruf
{{{control 'Datei(en)/Ordner' , 'Startdatum' ,
'Enddatum' , 'Passwort' , 'Linkstil' , 'Namen/Ortnachfrage'}}}
- Alle Argumente sind fakultativ, ungenutzte Argumente nach einem Argument weglassen, und vor einem
Argument als
'',
schreiben. - Dateien/Ordner: wenn leer, wird der Downloadcontrol-Basisordner genommen. Mehrere Dateien durch Kommas ohne zusätzliche Leerzeichen trennen.
- Startdatum und Enddatum: Ein von PHP verstandenes Format wählen, z.B.: Tag.Monat.Jahr oder Jahr-Monat-Tag oder Monat/Tag/Jahr , wobei 'Jahr' vierstellig sein sollte und 'Tag' und 'Monat' ein oder zweistellig. (Start und Ende funktioniert nicht für ganze Ordner).
- Passwort: Beliebige
Zeichenkombinationen ohne programmierspezifischen Zeichen (
>"'<
). Gibt man bei Passwort 1 ein, wird Log-in (via Memberpages/Register_XH) statt Passwort verlangt. Wird eine 0 eingegeben, wird kein Password angefordert, auch wenn das in der Konfig eingeschaltet ist. - Link-Aussehen bzw. Stil: Mögliche Argumente sind
button
(für größerern Button),button2
(dasselbe in anderer Farbe),small
(kleinen Button),inline
(Aussehen wie normaler Link),table
(Tabellendarstellung wie für mehrere Links). Wenn Passwort oder Namens/Ort-Abfrage eingestellt sind, wird ein großer Button oder die Tabelle genommen. - Namen/Ortnachfrage: Bei Eingabe von 1, wird nach dem Namen und Ort des Downloaders gefragt, bei Eingabe von 0 nicht, unabhängig von der Konfig-Einstellung. Will man stattdessen nach der E-Mail-Adresse fragen, muss man den Text in der Sprachdatei entsprechend ändern.
Anzahl der Downloads einer Datei
{{{controlcount 'Dateinamen'}}}
Diese Funktion wird ab Version 1.7 eher selten gebraucht, da über die Konfig einstellbar.
Eine einfache Zahl wird zurückgegeben. Auch bei Dateien in Unterordners des
geschützen Ordners wird immer nur der Dateinamen ohne Ordnernamen erwartet.
Darum werden verschiedene Dateien gleichen Namens in
unterschiedlichen Unterordnern als eine Datei gezählt.
Beispiele für herkömmliche Pluginaufrufe
{{{control 'meineDatei.doc','','','','button'}}}
Großer Button zum Download von
./userfiles/downloads/protected/meineDatei.doc
{{{control 'meineDatei.doc,unterordner/meineanderedatei.doc','','','Hallo'}}}
Passwort "Hallo" wird verlangt für den Download der oben genannten Datei und auch
von
./userfiles/downloads/protected/unterordner/meineanderedatei.doc
{{{control '','1.1.2015','1.1.2017','','',1}}}
Alle Dateien des Downloadcontrol-Basisordners werden zwischen 1.1.2015 und 1.1.2017 zum Download
angeboten, wobei immer nach Name und Wohnort des Downloaders gefragt wird.
Geschichte
Das Plugin wurde entwickelt aus dem Add-On Protecteddownload von svasti, welches 2013 und bis Version 1.5 entwickelt wurde. Holger Irmler fügte 2015 aufgrund einer Nutzeranfrage Zeitsteuerung und E-Mail-Benachrichtigung hinzu und machte daraus ein Plugin. Svasti entwickelte es anschließend weiter und änderte den Namen zu Downloadcontrol_XH 1.6, da es schon ein Plugin namens protected_Download von Emanuel Marinello gab.
Die vorliegende Version 1.7 wurde durch eine Nutzeranfrage von Tata angeregt. Vielen Dank fürs Testen an mhz.