Simple Download Monitor pro WordPress

Simple Download Monitor je mým prvním pokusem o vytvoření pluginu pro publikační systém WordPress. Napsal jsem ho proto, že jsem chtěl mít nějakou statistiku o počtu stažení jednotlivých souborů a přitom nemusel vytvářet speciální databázi souborů ke stažení, modifikovat odkazy a podobně. Prostě jsem chtěl pokračovat v tom, jak soubory publikuji teď – pomocí FTP je nahraju na web a všude, kde se to hodí, pak rozhazuji přímé odkazy na tyto soubory. Ještě tak bych ustál počáteční konfiguraci, ale přidávání dalších souborů už chci mít zcela bezpracné. Simple Download Monitor vyžaduje právě jen tohle a poskytuje mi právě jen ty informace, které mě zajímají.

Obrázek základních statistik

Základní statistiky

Obrázek detailních statistik

Detailní statistiky

Instalace

  1. Vytvořte nový adresář v adresáři /wp-content/plugins/ a plugin do něj rozbalte. Název adresáře může být libovolný – já používám simple-download-monitor, ale plugin by se měl vypořádat s každým jménem.

  2. Aktivujte plugin v menu Pluginy ve WordPressu.

  3. V menu Nastavení přibyde nová položka Simple Download Monitor. V ní můžete nastavit:

    • Povolené adresáře. Problematickým místem pluginu je, že by se potenciálně mohl stát velkou bezpečnostní dírou do vašeho webu, protože by při nesprávné konfiguraci mohl dovolit stahování zdrojových kódů WordPressu (jako třeba zdroják config.php – to rozhodně není žádoucí, protože tento soubor obsahuje například přihlašovací údaje k databázi). Vhodným nastavením „povolených adresářů“ omezíte Simple Download Monitor jen na adresáře, jejichž relativní cesta vůči rootu webu vyhovuje zadanému regulárnímu výrazu. Výchozí hodnota files/ tak říká, že Simple Download Monitor bude zpracovávat pouze soubory z adresáře /files a jeho podadresářů. Z bezpečnostních důvodů je velmi vhodné všechny soubory ukládat do tohoto jediného adresáře a ne porůznu po webu.

    • Povolené přípony. Jde o další bezpečnostní opatření: Simple Download Monitor bude zpracovávat jedině soubory, jejichž přípony (bez tečky) vyhoví zadanému regulárnímu výrazu. Doporučuji zde dávat jenom takové přípony, které jsou „bezpečné“ – přípony komprimovaných archívů, obrázků a podobně. Rozhodně a za žádných okolností zde nechcete povolit příponu php nebo přípony databázových souborů – ani přímo, ani příliš rozsáhlými zástupnými znaky (nejhorší možný nápad je dát sem hodnotu .* čili „všechny přípony“).

    • Ukládat detailní informace? Simple Download Monitor může ukládat buď detailní statistiky (kdo, kdy a odkud co stahoval) nebo jen hrubou statistiku (kolikrát byl stáhnut ten který soubor). Detailní statistiky obsahují víc informací, ale pokud se od vás hodně stahuje (což tedy není případ mého webu), mohlo by to databázi zaplnit dost rychle. Proto je tu možnost tyto statistiky vypnout.

    Obrázek nastavení pluginu

    Nastavení pluginu

  4. Poslední (a nutnou) součástí instalace je úprava souboru .htaccess. Standardní .htaccess je totiž nastaven tak, že se existující soubory stahují přímo, aniž by do nich WordPress jakkoliv zasahoval nebo se o nich třeba jen dozvěděl. Protože potřebuji, aby se Simple Download Monitor o těchto souborech dozvěděl, potřebuji modifikovat i .htaccess. Naštěstí jde o jednoduchou úpravu: Ve vašem existujícím souboru najděte řádek:

    RewriteCond %{REQUEST_FILENAME} !-f

    A přidejte nad něj řádek:

    RewriteRule ^(files/.*) /index.php?sdmon=$1 [L]

    (místo files/ napište adresář, do kterého ukládáte soubory a který jste zadali v nastavení pluginu).

Download

  • Nejnovější verze na WordPressu
  • Simple Download Monitor v0.24 (2013-10-17, 122 KB). Poslední verze vyvíjená mnou. Plugin od příští verze převezme nový programátor. Smyslem verze je na tuto změnu upozornit uživatele.
  • Simple Download Monitor v0.23 (2012-09-04, 122 KB). Podpora pro detailnější chybová hlášení. Podpora pro umístění adresáře se soubory mimo adresářový strom WordPressu.
  • Simple Download Monitor v0.22 (2012-07-15, 119 KB). Podpora pro mezistránku (po kliknutí na odkaz se zobrazí informační stránka, a teprve z ní začne skutečný download). Pozor, pro zapnutí je třeba funkci zapnout v konfiguraci a mírně upravit soubor .htaccess.
  • Simple Download Monitor v0.21 (2011-05-16, 116 KB). Oprava pro „featuru“ WordPressu 3.1, kvůli které se musel plugin ručně deaktivovat a reaktivovat.
  • Simple Download Monitor v0.20 (2011-05-15, 124 KB). Žádná změna v kódu, ale přidáno výslovné upozornění do dokumentace, že po aktualizaci je třeba plugin deaktivovat a reaktivovat.
  • Simple Download Monitor v0.19 (2011-05-15, 124 KB). Podpora pro widget v postranním panelu. Podpora pro omezení na počet downloadů z jedné IP adresy za den. Drobné opravy (soubory s mezerou v názvu).
  • Simple Download Monitor v0.18 (2010-12-14, 118 KB). Opravy nekompatibilit: SDMon a W3 Total Cache spolu padaly na větších souborech; SDMon padal na hostinzích, které poskytují rozšíření fileinfo ale nemají PHP 5.3 a vyšší..
  • Simple Download Monitor v0.17 (2010-11-06, 117 KB). Možnost nastavit práva na jednotlivé funkce pluginu.
  • Simple Download Monitor v0.13 (2010-07-10, 308 KB). Vesměs kosmetické úpravy – lepší zobrazení stránkovače, podpora pro WordPress 3.0 atd.
  • Simple Download Monitor v0.12 (2010-03-28, 292 KB). Podpora pro geolokaci uživatelů, podpora pro nemonitorování některých uživatelů (např. administrátora), podpora pro sloučení několika rychle po sobě jdoucích downloadů jednoho souboru jedním uživatelem (např. při použití download akcelerátoru).
  • Simple Download Monitor v0.11 (2010-01-24, 67 KB). Kompatibilita s PHP 4. Nový překlad: běloruština.
  • Simple Download Monitor v0.09 (2010-01-10, 50 KB). Opravena chybná HTTP hlavička. Podpora pro pokračování v přerušeném downloadu.
  • Simple Download Monitor v0.08 (2009-11-29, 48 KB). Podpora mazání statistik (např. u zkušebních downloadů).
  • Simple Download Monitor v0.07 (47 KB, 24.11.2009). Podpora pro inline obsah (dovoluje monitorovat například obrázky vložené do vašich stránek).
  • Simple Download Monitor v0.06 (43 KB, 29.10.2009). Opraven pád pluginu v případě, že nebyly zaznamenány žádné downloady.
  • Simple Download Monitor v0.05 (43 KB, 28.10.2009). První veřejná verze.

Podobné příspěvky:

32 Responses to “Simple Download Monitor pro WordPress”

  1. avatar pepak napsal:

    Verze 0.24: Poslední verze vyvíjená mnou. Plugin od příští verze převezme nový programátor. Smyslem verze je na tuto změnu upozornit uživatele.

  2. avatar pepak napsal:

    Juraj: Ta 404 Not Found ovšem nepochází ze SDMonu, protože ten tuto hlášku vůbec nemá (a kdyby ji měl, tak by se nezobrazovala tam, co ji vidíš). Měl by sis napřed zprovoznit SDMon přímo, bez mezistránky, a teprve v okamžiku, kdy ti to bude spolehlivě fungovat, se začít zabývat mezistránkou.

  3. avatar Juraj napsal:

    mne by stačilo ak by tam bol údaj o celkovom počte stiahnutí a koľko bolo stiahnutých súborov za deň, aby som mal o tom väčší prehľad

    ohľadom medzistránky, pozri dolu na ten obrázok „Error 404 – Not Found“, ale ja sa pokúsim to dať nejako dokopy, to bude chyba niekede v šablóne môjho webu

  4. avatar pepak napsal:

    Juraj: Celkovou statistiku myslíš jako za úplně všechny soubory? Počet není problém, velikost v MB ale ano, protože takovou informaci SDMon k dispozici nemá.

    S mezistránkou pro stahování souboru ti takhle spatra pomoct nemůžu. To by tam musely být vidět aspoň nějaké chybové zprávy.

  5. avatar Juraj napsal:

    super, ja by som napríklad uvítal celkovú štatistiku, počet stiahnutých súborov a MB.
    snažím sa sprevádzkovať medzistránku pri sťahovaní súboru, veľmi sa mi ale nedarí, tu bude skôr ale problém na mojej strane, web sa trochu rozhádže a download nezačne http://heroes3wog.net/download-page.jpg nevedel by si pomôcť?

  6. avatar pepak napsal:

    Juraj: Záleží na tom. Když mě napadne (nebo mi někdo navrhne) zlepšení, které má smysl a které dokážu implementovat, tak si ho přinejmenším poznamenám, abych ho ve volném čase mohl naprogramovat. Je pár takových věcí, které bych do SDMonu ještě rád doplnil.

  7. avatar Juraj napsal:

    budeš pokračovať ešte v zlepšovaní pluginu, pridávať nejaké nové funkcie? alebo je toto už finálna verzia?

  8. avatar pepak napsal:

    Juraj: Kdybych uměl z pluginu manipulovat s htaccessem, tak bych to rovnou napsal tak, aby si to plugin nakonfiguroval sám. Ale já to neumím 🙁

  9. avatar Juraj napsal:

    mal by som ešte jednu otázku, nevedel by ma plugun upozorniť že z .htaccess bol odstránený riadok RewriteRule ^(files/.*) /index.php?sdmon=$1 [L] , pretože ako som si dnes všimol, už niekoľko dní mi nezaznámenával SDM stiahnutia súborov, nevedel som kde je chyba a bola práve v tom že tam ten potrebný riadok chýbal, asi ho prepísal nejaký ďalší plugin pri aktualizácii

  10. avatar pepak napsal:

    Juraj: Abych řekl pravdu, už ani nevím. Možná ani není potřeba dělat nic, to varování tam mohlo být k předchozí implementaci. Soudím z toho, že už to pár lidí používá a nikdo se mě neptal na to, jak ten .htaccess upravit, takže buď jsem tu úpravu i někde popsal, nebo nebyla potřeba.

  11. avatar Juraj napsal:

    ďakujem za plugin, jednoduchý a rýchly to som potreboval, len by som sa chcel spýtať ohľadom medzistánky pri sťahovaní, čo konkrétne myslíš vetou „mírně upravit soubor .htaccess.“, nechcem tam nič pokašľať, tak si radšej nechám poradiť

  12. avatar pepak napsal:

    Verze 0.23: Podpora pro detailnější chybová hlášení. Podpora pro umístění adresáře se soubory mimo adresářový strom WordPressu.

  13. avatar pepak napsal:

    Verze 0.22: Podpora pro mezistránku (po kliknutí na odkaz se zobrazí informační stránka, a teprve z ní začne skutečný download). Pozor, pro zapnutí je třeba funkci zapnout v konfiguraci a mírně upravit soubor .htaccess.

  14. avatar pepak napsal:

    Verze 0.21: Oprava pro „featuru“ WordPressu 3.1, kvůli které se musel plugin ručně deaktivovat a reaktivovat.

  15. avatar pepak napsal:

    Verze 0.20: Žádná změna v kódu, ale přidáno výslovné upozornění do dokumentace, že po aktualizaci je třeba plugin deaktivovat a reaktivovat.

  16. avatar pepak napsal:

    Verze 0.19: Podpora pro widget v postranním panelu. Podpora pro omezení na počet downloadů z jedné IP adresy za den. Drobné opravy (soubory s mezerou v názvu).

  17. avatar pepak napsal:

    Verze 0.18: Opravy nekompatibilit: SDMon a W3 Total Cache spolu padaly na větších souborech; SDMon padal na hostinzích, které poskytují rozšíření fileinfo ale nemají PHP 5.3 a vyšší.

  18. avatar pepak napsal:

    Verze 0.17: Možnost určit, jaká práva jsou potřeba pro jednotlivé funkce pluginu.

  19. avatar pepak napsal:

    No to nemají. Ty informace totiž nepocházejí od autora pluginu (ten je uvádí ve zdrojácích ve strukturovaných komentářích), ale od uživatelů. Ovšem aby se nějaké informace ukázaly, museli by je uživatelé nahlásit. Jenže ti lenochodi nic nehlásí, tudíž žádná data o kompatibilitě nejsou. A já to pochopitelně nebudu falšovat jenom proto, aby se tam nějaká data objevila…

    Ale to není nic, čím by bylo potřeba se znepokojovat – plugin může běžet i bez těch dat.

  20. avatar michal zobec napsal:

    zdravím, na wp downloads nemají informace o kompatibilitě tvého pluginu s wp viz:
    http://wordpress.org/extend/plugins/simple-download-monitor/

    WordPress 3.0.1 3.0 2.9.2 2.9.1 2.9 2.8.6
    + Plugin 0.13 0.12 0.11 0.10 0.09 0.08 0.07 0.06 0.05
    Not enough data

  21. avatar pepak napsal:

    Verze 0.13: Vesměs kosmetické úpravy – lepší zobrazení stránkovače, podpora pro WordPress 3.0 atd.

  22. avatar pepak napsal:

    Verze 0.12: Podpora pro geolokaci uživatelů, podpora pro nemonitorování některých uživatelů (např. administrátora), podpora pro sloučení několika rychle po sobě jdoucích downloadů jednoho souboru jedním uživatelem (např. při použití download akcelerátoru).

  23. avatar pepak napsal:

    Verze 0.10 je kompatibilní s PHP 4 a přináší podporu běloruštiny.

  24. avatar pepak napsal:

    Verze 0.09 přináší dvě užitečné novinky.

  25. avatar pepak napsal:

    Pokud rozumíš PHP, tak nejsnazší bude oeditovat si zdroják pluginu – potřebuješ v metodě Download() vyřadit ty zápisy do databáze, co tam jsou.

  26. avatar Liso1 napsal:

    tomu som sa prave chcel vyhnúť ja (kopírovať obrázky z asi 800 zložiek a ďalších 800 vytvárať sa mi nechce), ale plugin musím pochváliť ,je super, skúsim to vymyslieť nejak inak

  27. avatar pepak napsal:

    S tím se nic moc dělat nedá. Plugin rozlišuje jen mezi „dovolit download a monitorovat“ a „zakázat download“. Nemá žádné nastavení pro „dovolit download, ale nemonitorovat“ – to by vyžadovalo nějaké udržování databáze, a to je přesně to, čemu jsem se chtěl vyhnout. Přes .htaccess by to sice šlo, ale poměrně pracně a neohrabaně – to už je lepší ty soubory rozdělit do dvou různých adresářů.

  28. avatar Liso1 napsal:

    mám ešte jeden problém, zložka v ktorej sú súbory, ktoré sa majú započítavať (majú koncovku .rar) sa nachádzajú aj obrázky (.png, .gif), ale tie nechcem aby sa započítavali, len ich chcem mať v tej istej zložke, ide mi len o to, že takéto obrázky sa po zadaní adresy nezobrazia, nedá sa niečo upraviť v .htaccess? dúfam že som to napísal pochopiteľne, ak nie, tak sa to budem ešte snažiť upresniť

  29. avatar pepak napsal:

    Nedalo, aspoň ne za současného stavu – plugin nemá informaci o tom, odkud se soubor stahuje (o tom to právě je, aby monitoroval každý, i neexistující, download, aniž by uživatel musel cokoliv zapisovat do databáze). Pokud by se to mělo zobrazovat někde ve stránce, vyžadovalo by to přinejmenším tu spolupráci uživatele, že místo jednoduchého odkazu zavolá nějakou speciální funkci (kterou bych musel napsat). To už je ale lepší použít jiný plugin, který je přímo určený k takovým operacím.

  30. avatar Liso1 napsal:

    super plugin, len by som sa chcel spýtať, či by sa nedalo spraviť aby počet stiahnutí súboru zobrazoval na stránke na ktorej sa dá súbor stiahnuť, teda počítadlo stiahnutí na stránke wordpressu

  31. avatar pepak napsal:

    Verze 0.08.

  32. avatar pepak napsal:

    Verze 0.07 přináší podporu pro monitorování inline obsahu. To dovoluje například sledovat počet stažení obrázků vložených do HTML stránek.

Leave a Reply

Themocracy iconWordPress Themes

css.php