itthon / Windows oktatóanyagok / Hozzon létre egy fájlletöltési számlálót PHP és MySQL használatával. A letöltésszámláló telepítése – a WordPress Counter beépülő moduljainak áttekintése A kiválasztott fájlok számlálójához

Hozzon létre egy fájlletöltési számlálót PHP és MySQL használatával. A letöltésszámláló telepítése – a WordPress Counter beépülő moduljainak áttekintése A kiválasztott fájlok számlálójához

Hosszú ideig nem volt leckék a PHP-ről és a MySQL-ről. Ma létrehozunk egy egyszerű, de hatékony letöltésszámlálót.

Minden fájlnak lesz egy bejegyzése az adatbázistábla sorában. Ugyanez a táblázat tárolja a fájlletöltések számát. A PHP frissíti a MySQL adatbázist, és átirányítja a felhasználót a kívánt fájlhoz.

Bármely fájl letöltéseinek számának nyomon követéséhez el kell helyeznie azt a fájlok mappába, és egy speciális URL-címet kell használnia a hozzáféréshez.

1. lépés – XHTML

Az első lépés a szkriptünk jelölésének létrehozása. Nagyon egyszerű – van egy fájlkezelő div, amely egy rendezetlen listát tartalmaz, ahol a lista minden eleme felelős egy fájlért.

Azok a fájlok, amelyek letöltését nyomon kell követni, a szkript gyökérmappájában található fájl mappába kerülnek. A PHP ezután végigmegy az összes fájlon, és mindegyiket listaelemként (li) hozzáadja a rendezetlen listához.

demo.php


  • photoShoot-1.0.zip 0 letöltés

Vegye figyelembe, hogy a hivatkozások href attribútuma a fájlnevet paraméterként adja át a download.php-nek. Itt jön be a letöltéskövetés.

Nem kell mindent ugyanúgy megjelenítenie – egyszerűen csak linkelheti a download.php-t az oldalain, és nem fog elmenni az összes letöltés.

2. lépés – CSS

A jelölés után térjünk át a tervezésre. Az alábbi CSS-szabályok a fájlkezelő div-re azonosítóval (# szimbólum) hivatkoznak, mivel az csak egyszer fordul elő az oldalon, a többi elem pedig az osztálynév szerint.

stílusok.css

#fájlkezelő(háttérszín:#EEE; szegély:1px tömör #DDD; margó:50px automatikus; kitöltés:10px; szélesség:400px; )
ul.manager li( background:url("img/bg_gradient.gif") repeat-x center bottom #F5F5F5; border:1px solid #DDD; border-top-color:#FFF; list-style:none; position:relative ; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* Lebegtetéskor zöld letöltési szöveg megjelenítése: */ display:block; ) span. download- label( background-color:#64B126; border:1px solid #4E9416; color:white; display:none; font-size:10px; padding:2px 4px; position:absolute; right:8px; text-decoration:none ; text -shadow:0 0 1px #315D0D; top:6px; /* CSS3 Lekerekített sarkok */
-moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; ) span.download-count( color:#999; font-size:10px; padding:3px 5px; position:absolute; text-decoration:none; )

3. lépés – PHP

Ahogy korábban mondtam, a PHP fájlokat keres a fájlok mappájában, és minden fájlt listaelemként felsorol egy rendezetlen listában. Nézzük meg, hogyan is megy ez

demo.php- felső rész

// Hibabejelentés : error_reporting(E_ALL^E_NOTICE); // : szükséges "connect.php"; $extension=""; $fájlok_tömb = array(); /* Nyissa meg a mappát, és iterálja végig az összes fájlt: */ $dir_handle = @opendir($könyvtár) or die("Hiba van a fájlkönyvtárban!"); while ($file = readdir($dir_handle)) ( /* Kihagyás rendszerfájlokat: */ if($file(0)==".") folytatás; /* end() az explode() függvény által generált tömb utolsó elemét adja ki: */ $extension = strtolower(end(explode(".",$file))); /* Php fájlok kihagyása : */ if($extension == "php") folytatás; $files_array=$fájl; ) /* Fájlok rendezése ábécé szerint */ sort($files_array,SORT_STRING); $file_letöltések=tömb(); $eredmény = mysql_query("SELECT * FROM download_manager"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* A $file_downloads tömbkulcs lesz a fájl neve, és tartalmazza a letöltések számát: */ $file_downloads[$row[" fájlnév"] ]=$row["letöltések"]; )

Figyeljük meg, hogyan jelöljük ki az összes sort a download_manager táblából a mysql_query() segítségével, majd később hozzáadjuk őket a $file_downloads tömbhöz úgy, hogy a fájlnév a letöltések számának kulcsa. Így a kód későbbi részében beírhatjuk $file_downloads["archive.zip"] és kiírhatjuk a letöltések számát.

Alább látható a lista elemeit generáló kód:

demo.php- középső része

Foreach($files_array mint $key=>$val) ( echo "

  • ".$val." ".(int)$file_downloads[$val]." Letöltés
  • "; }

    Minden egyszerűen a $files_array tömb foreach ciklusával történik. Ezt követően minden echo segítségével kerül kiadásra.

    Most nézzük meg közelebbről a fájlkövetés működését.

    download.php

    // Hibaellenőrzés : error_reporting(E_ALL^E_NOTICE); // Tartalmazza az adatbázis-kapcsolat fájlját: request("connect.php"); if(!$_GET["fájl"]) error("Hiányzó paraméter!"); if($_GET["fájl"](0)==".") error("Rossz fájl!"); if(file_exists($directory."/".$_GET["file"])) ( /* Ha a látogató nem keresőbot , számolja meg a letöltést : */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename ="".mysql_real_escape_string($_GET["file"])."" DUPLIKÁLT KULCS FRISSÍTÉSÉN downloads=downloads+1"); header("Hely: ".$directory."/".$_GET[" file"] ); exit; ) else error("Ez a fájl nem létezik!"); /* helper functions : */ function error($str) ( die($str); ) function is_bot() ( /* Ez robotot keres */ $botlist = array("Teoma", "alexa", "froogle" ", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot", "crawler" , "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "GYORS", "WebBug", "Spade", "ZyBorg", "rabaz", " Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler", "TweetmemeBot", "Butterfly", "Twitturls", "Me.dium" ","Twiceler"); foreach($botlista mint $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) return true; // Egy bot ) return false; // nem bot)

    Fontos ellenőrizni, hogy látogatója ember vagy keresőrobot. A robotok szépek, de ne hagyjuk, hogy eltorzítsák a statisztikáinkat. Éppen ezért az adatbázis sora csak az is_bot() ellenőrzése után frissül.

    4. lépés – MySQL

    Ahogy az utolsó lépésben megjegyeztük, a letöltések száma a download_manager táblában egy sorként kerül tárolásra. Először is magyarázzuk el, hogyan működik ez a lekérdezés:

    download.php

    INSERT INTO download_manager SET filename="filename.doc" ON DUPLICATE KEY UPDATE downloads=downloads+1

    Azt mondja a MySQL-nek, hogy szúrjon be egy új sort a download_manager táblába, és állítsa be a fájlnév sor mezőjét a letöltésre hívott fájl értékére. A fájlnévmező azonban a következővel jelölt egyedi index az asztalban. Ez azt jelenti, hogy minden sor csak egyszer szúrható be, különben duplikált kulcshiba lép fel.

    Itt fog működni a lekérdezés második része – ON DUPLICATE KEY UPDATE azt fogja mondani a MySQL-nek, hogy adjon hozzá egyet a letöltések oszlophoz, ha a fájl már létezik az adatbázisban.

    Így az új fájlok automatikusan bekerülnek az adatbázisba az első letöltés során.

    5. lépés – jQuery

    A valós idejű követés érdekében érdemes minden letöltés után frissíteni a fájlnév melletti számlálót.

    Ezt a jQuery segítségével fogjuk megtenni:

    script.js

    $(document).ready(function()( /* A kód az oldal betöltése után fut le */ $("ul.manager a").click(function()( var countSpan = $().download-count ",this) ; countSpan.text(parseInt(countSpan.text())+1); )); ));

    Egyszerűen kattintáskezelőt rendelünk a fájlokhoz vezető hivatkozásokhoz, és minden kattintásnál hozzáadunk egy értéket.

    6. lépés – htaccess

    Van még egy dolog, amit meg kell tenni. A Download.php átirányítja a felhasználót a kért fájlhoz, amelyet paraméterként adtak át. Azonban észrevehette, hogy a böngészők bizonyos típusú fájlokat közvetlenül megpróbálnak megnyitni. A letöltésüket is kezdeményeznünk kell. Ezt megteheti néhány sorral a .htacess fájlban, amely a fájlok mappában található.

    ForceType alkalmazás/oktett-folyam

    Most a pultunk teljesen készen áll!

    Következtetés

    A demó működéséhez újra létre kell hoznia a download_manager táblát a MySQL adatbázisban. A forrásokban megtalálod a szükséges SQL kódot.

    Ezután adja hozzá adatait az adatbázishoz való csatlakozáshoz a configuration.php fájlban.

    A következő kérdés, ami mostanában érdekelt, amikor szerény szerzői projektemet felállítottam, az az volt, hogy hogyan számolhatom meg egy adott itt közzétett fájl letöltéseinek számát. A leglogikusabb volt azt feltételezni, hogy ehhez egy másik bővítményre van szükség, néhányra letöltéskezelő, vagy ami egyszerűbb - letöltésszámláló. Az interneten böngészve kiderült, hogy szokás szerint ezek a beépülő modulok egy kocsi és egy kis kocsi. De a vélemények - ismét nem. Egyáltalán nem világos, hogy mit válasszak, és mint általában, mindent magamon kellett tesztelnem. És a tesztelés eredményei szerint ez a felülvizsgáló kiderült. Nagyon sokáig íródott, miközben nem az összes fenti plugin alapos tesztelése volt a cél a beállítások teljes áttekintésével, így nem mindegyikről fogunk részletes screenshotot találni, de itt vannak a legfontosabb beállítások. Egyáltalán nem akartam néhányról beszélni - olyan hülyék voltak, de ha már megnéztem, kár volt nem írni semmit.

    Bevezetés.

    Tehát a feladat az volt, hogy megszámoljuk egy adott fájl letöltéseinek számát a WordPress letöltésszámlálójának beállításával. Közelebbről megvizsgálva több részfeladatra bomlott fel, vagy inkább olyan bővítményre vágyott, amely ezt végrehajtaná. Íme egy rövid lista belőlük:

    • Szükséges, hogy a letöltések száma megjelenjen valahol az adminisztrációs panelen, rendezési lehetőséggel - mennyit töltöttek le naponta, hetente, hónapban, évben, összesen
    • Kívánatos, hogy grafikonokat / diagramokat láthasson a fájlok letöltéséről egymáshoz képest
    • Kívánatos, hogy grafikonokat / diagramokat láthasson a fájlok letöltéséről az idő múlásával
    • Kívánatos, hogy statisztikát készítsenek arról, hogy mikor töltötték le utoljára a fájlt
    • Lehetőség arra, hogy a hivatkozás mellett információkat jelenítsen meg arról, hogy a fájlt hányszor töltötték le, valamint a méretét és a letöltési dátumot a letöltés előtt álló felhasználó számára. Nos, vagy ne jelenítse meg - az adminisztrátor kérésére
    • Lehetőség az ezért felelős kód beillesztésére egy külön gombbal a TinyMCE szerkesztő hozzászólási paneljébe (nem szeretem a gyorscímkéket használni)
    • Lehetőség a letöltési sebesség korlátozására (tehát minden esetben)
    • A feltöltési funkció csatolása ehhez a bővítményhez (fájlok feltöltése a szerverre) - éppen ellenkezőleg, nem adta fel. Az FTP nekem is jól működik. De ha nem nagyon zavar, akkor maradjon
    • Jó lenne, ha a letöltési linkre rá lehetne ragasztani egy gyönyörű gombot - bár csak annyit kell írnom, hogy class = "button"

    ABAP

    Fájl letöltése!

    • Nos, ha nem csak a webhelyéről, hanem egyszerűen egy linkről számolja a letöltések számát
    • Lehetőség a fájl közvetlen letöltésének tiltására anélkül, hogy megmutatná, hol található a szerveren.

    Ez egy ilyen kis lista.

    Felülvizsgálat

    Miután döntöttünk a TOR mellett, elkezdjük mérlegelni, hogy mit kínálnak közvetlenül nekünk.

    1. Plugin Download Counter 1.2, letöltve innen.

    Kezdetben a bővítmény oldala található, de a szerző több mint 4 éve nem támogatja. Létrehozunk neki egy másik mappát a plugins könyvtárban - download-counter, dobd oda mindkét fájlt. Ennek eredményeként – hol gondolná? - a hozzá tartozó beállítások megjelennek a nyilvántartásban. Nagyon eredeti, de rendben van.

    Bemegyünk, megírjuk a download-manager.php fájl elérési útját (nagyon nem szeretek semmi hülyeséget közvetlenül a gyökérbe dobni). És nézd, mit kaptunk. Töltse fel a fájlt, ellenőrizze, hogy letöltődik-e kézi üzemmód, ha beír egy közvetlen hivatkozást a böngészőbe, adja meg az elérési utat a bővítményben a számláló létrehozásához. Elméletileg létre kell hozni egy azonosítót, amelyet ezután mindenhová be kell illeszteni. De nem történt semmi – hibaüzenet jelenik meg: „Hiba – Nem sikerült menteni a rekordot”. Nos, ok, meggyőztük, átvittük a download-manager.php gyökérbe - megint semmi, ugyanaz a hiba. Nos, a pokolba is, aranyhal, nem volt elég, hogy megértsem azokat a bővítményeket, amelyeket a szerző nem adott fel. Ráadásul a funkcionalitás gyakorlatilag nulla.

    2. Plugin Download Counter Advanced 1.1, letöltve ugyanaz.

    Rögtön leszögezem, hogy nekem sem igazán jött be, így a telepítéséről, beállításáról csak tudományos érdeklődésből olvashattok. Valójában ez ugyanaz a bővítmény, csak kissé módosítva. Hála Istennek, bár az utasítás nincs lefordítva, normálisan el lehet olvasni, és nem próbálja megérteni, hogy a fordító mire gondolt. Mellesleg, az adminisztrációs panelen - úgy tűnik, hogy ez egy teljesen más bővítmény, amely frissítést kínál (igen, füge). Az előző bővítményhez hasonlóan az oldala is elhelyezkedett, és ugyanúgy a szerző több mint 4 éve nem támogatja. Hasonlatosan létrehozunk neki egy másik mappát a plugins könyvtárban, az enyém a download-counter, oda dobjuk az összes fájlt. A beállítások természetesen gazdagabbnak tűnnek, bár a letöltési sebesség minden fájlnál azonnal korlátozva van, és nincs külön-külön beállítva. Hol van a download-manager..php fájl (ne felejtsd el a fájl nevét a végén, de hol van az összes letöltés - először találgattam, ami iszonyatos ámulatba ejtett. Mint később kiderült, kitaláltam annak a könyvtárnak a nevével, ahová a letöltéseket kell elhelyezni, itt az én logikám 100%-ban ugyanúgy működött, mint a plugin szerzője.

    A kiszolgálón lévő mappák neveit a letöltési könyvtárba (a „kategóriák és könyvtárak” beállításainál) adjuk hozzá, hogy megkönnyítsük a fájlok elérési útjának kiválasztását. Ha nem adja hozzá őket, akkor mindent le kell töltenie a letöltési gyökérbe. Mentés, hozzáadhat letöltéseket. Nagyjából ezt kapjuk.

    Most megpróbáljuk beilleszteni a bejegyzésbe. Hozzáadunk egy hivatkozást, ebben megváltoztatjuk a kódra mutató hivatkozásunkat, amelyet közvetlenül a plugin beállításaiban adunk ki. És akkor... És füge neked! HTTP hiba 500 (belső szerverhiba): Váratlan helyzet történt, miközben a szerver megpróbálta teljesíteni a kérést. Nos, csak azt akartam elmondani, hogyan kell közvetlenül a bejegyzéshez hozzáadni egy számlálót, és mi van, ha a benne lévő linket hogy megtörténjen

    ABAP

    < ahref="http://chewriter..jpg" />

    akkor megjelenítheti a letöltés gombot – ferdén, tényleg. Itt a bővítmény, elvesztegette az idejét. Nem különösebben vezet statisztikát, mert ahol a hiba, azt nem fogjuk kitalálni.

    Pontosan erre a beépülő modulra javasolták a fenti Download Counter Advanced frissítését. Nos, felajánlja – és oké, töltsük le, lássuk. A beépülő modult több mint 3 éve nem frissítették, és néhány felhasználó saját maga is javította a kódját. Elég sikeresen telepítették, a beállítások aszkézise nem kelt optimizmust. Mellesleg, jól sikerült, kitalálták, hova helyezzék el a beállításokat - nem rosszabbul, mint az előző esetben. A beállítások oldalon számlálókat adunk hozzá, minden kiemelve látszik, ahogy kell.

    Lássuk, mi van a bejegyzés kiegészítésével. Igen, nincs gomb. És hát persze, ott felejtettem, minden intuitív. Menjünk az utasításokhoz. Le kell tiltani egy olyan összetett struktúrát, amely rövid kódokból áll, mint például a , letöltött , és ugyanakkor (valószínűleg az NC miatt) nem igazán számít semmit.

    Ezért a továbbiakban nem vesszük figyelembe, a hozzá tartozó Download Counter Chart pluginnal együtt, amely grafikus formában jeleníti meg az információkat, nem hajtjuk végre.

    Honfitársunk írta, de sajnos csak annyit tud tenni, hogy a fájl letöltőinek számát feltünteti a neve mellett - sem statisztikát, sem egyéb finomságokat nem közöl. Ha azonban a minimalizmus híve vagy, akkor erre van szüksége. Csak ne felejtsd el, nincsenek gombok, olyan rövid kód, mint


    csináld magad letöltésszámláló a wordpresshez

    kézzel kell beírni. Nagyon jó, hogy a szerző mindent részletesen lefestett, nem kellett magamnak tesztelnem.

    Nos, ha az embereink által írt bővítményekről beszélünk, akkor nem hagyhatunk említést még egyről. Óriási előnye, hogy nem csak a fájlok letöltéseinek számát, hanem a hivatkozásokra való kattintások számát is lehetővé teszi – nem számít, hogy bármelyik fájlhoz vezetnek, vagy csak egy másik oldalra. Vagy valaki más oldalán lévő fájlba 🙂 Ezt is ki fogja számolni, vagy inkább elméletileg neki kéne kiszámolnia. A statisztikái sem annyira dögösek, a szerkesztőpanelen nincsenek gombok, a letöltéseknél sincs korlátozás. De így is érdekes látni. Tehát töltse le és telepítse. Alapvetően elég Részletes leírás a szerző honlapján található, ezért nem terjesztem túlságosan. Mindig szem előtt kell tartania, hogy ha számlálót szeretne beállítani egy fájlon vagy egy hivatkozáson, akkor vagy használja a rövid kódot, vagy illessze be a class = "count" osztályt a hivatkozásba. Ez persze idegesítő, gombbal sokkal kényelmesebb lenne. De a legbosszantóbb az, hogy a sok gesztus után sem tudtam megfelelően működésre bírni - ha a rövid kódot használták, akkor maga a letöltési link nem jelent meg, ha pedig az osztályt használták, akkor a linkstatisztika nem. megjelennek az adminisztrációs panelen. Képernyőképek megtekinthetők a szerzőtől - ha maga az ötlet tetszik - próbálja ki, hátha sikerül.

    Valóban, nagyon egyszerű. Nincs szükség rövid kódokra stb. Ez a bővítmény azonban csak a szerző számára ad statisztikát, de a látogatók számára a fájl hivatkozása mellett nem jelenik meg.

    Meg kell azonban jegyezni, hogy részletes statisztikákat vezetnek arról, hogy ki melyik fájlt töltötte le és mikor. Használata azonban nem túl kényelmes.

    A beállítások a következőket tartalmazzák:

    • Megadhatja azt a könyvtárat, amelyből a fájlok letölthetők
    • Megadhatja a letölthető fájlok típusát
    • Fájl letöltésének letiltása szerzőként
    • Állítsa be másodpercben azt az intervallumot, amely alatt a rendszer csak egyszer számolja az ugyanazon IP-címről származó linkre történő ismételt kattintásokat
    • Korlátozza a naponta egy IP-ről letölthető fájlok számát
    • Használjon egy közbenső oldalt az információkkal, hogy a letöltés most elkezdődik

    Mindez azonban csak akkor működik, ha vagy (hogyan fogalmazzunk egyszerűen...) jogosultságod van a .htaccess fájl szerkesztésére, vagy ha közvetlenül megadod a hivatkozást a

    Mivel azonban nem volt képes statisztikákat megjeleníteni a felhasználók számára, és nem akartam emlékezni a hivatkozás típusára, abbahagytam a mérlegelést, és úgy döntöttem, hogy csak akkor térek vissza, ha a sorban lévő többi plugin nem tudja megoldani a feladatot. .

    Az információk megjelenítését tekintve ez a bővítmény nagyon hasonlít az előző bekezdésben tárgyalthoz. Abban különbözik, hogy lehetővé teszi a statisztikák külön megtekintését hetente, havonta, bármely időszakra és csak a legjobb 10-re vonatkozóan. A képességeit tekintve sokkal nyomorultabb, nincs statisztika sem az utolsó letöltésről, sem egy adott fájlról, nem beszélve arról, hogy a fájlok letöltésére korlátozni lehet. Egyáltalán nincs egyértelmű dokumentáció. Az a benyomásom, hogy ez csak valami félreértés, és nem plugin. Nem is akarok screenshotokat adni, de hogy objektív legyek, akkor is adok, szerzői jog.

    Nos, elérkeztünk valami többé-kevésbé méltóhoz. A közel félmillió letöltés mond valamit. Hivatalos oldal plugin található. Ha fájlt szeretne beszúrni egy bejegyzésbe, a vizuális szerkesztő feletti nyilat kell használnia (az ikon magában nem jelenik meg)

    És a megjelenő ablakban válassza ki a kívánt fájlt (ez egy példa, ha már feltöltötte FTP-n keresztül)

    Ezután kattintson az "Új letöltés mentése" gombra

    és a következő képernyőre lépve válassza ki a letöltési formátumot, és kattintson a gombra illessze be hozzászólás. Lehetséges, hogy semmi sem fog történni. A plugin kissé hibás legújabb verziói wordpress. Ezért rá kell kattintania a Letöltések megtekintése hivatkozásra

    És akkor is, miután először kiválasztotta a letöltési formátumot, kattintson a Beszúrás hivatkozásra pontosan a beszúrni kívánt fájl előtt.

    Ezt követően a bejegyzésben megjelenik a típushoz tartozó rövid kód

    ABAP

    [downloadid="7592" format="1"]

    A plugin vékony kézi beállítás, de nincs WYSIWYG. Még jó, hogy csak egyszer kell beállítani. A részletes dokumentáció a szerzőnél található.

    Íme egy példa beállítás:

    ABAP

    (cím)

    < ahref= "(url)" title="Letöltve (találatok,"ни разу","1 раз","% раза"}">{title}!}

    Meg kell jegyezni, hogy a deklinációk nem támogatottak, pl. ha a fájlt 21-szer töltötték le, és a sablonban „times” szerepel, akkor kissé nem oroszul fog hangzani.

    És itt van a gomb opció:

    ABAP

    - (leírás), (méret), Letöltve (dátum,"Y-m-d"), Letöltések (találatok) idők

    < ahref= "(url)" title="Letöltve (találatok,"ни разу","1 раз","% раза"}">!} - (leírás), (méret), Letöltve (dátum,"Y-m-d"), Letöltések (találatok) idők

    így néz ki:

    Nos, némi finomítás után így kezdett kinézni (még mindig gombok nélkül):

    Vonalkód:

    ABAP

    (filetype_icon) (title) (Fájl mérete: (méret), Feltöltve: (dátum,"d.m.Y"), Letöltések (találatok) alkalommal)
    (leírás)

    A lehetőségek listája meglehetősen széles:

    • Fájlokat feltölthet a segítségével (a nyílra kattintva), és megadhatja a helyét, ha korábban FTP-n keresztül töltötték fel, akkor egyszerűen megadhatja az URL-t
    • Elrejti a fájl valódi helyét, bármilyen szükséges URL-kombinációt helyettesíthet
    • Használhatja a letöltés gombot, beleértve a sajátját is
    • Ne számítsa be az adminisztrátor letöltéseit, és a számláló kizárási listán szereplő összes felesleges IP-címet
    • Meg kell-e számolni az ismétlődő letöltéseket egy adott időn belül ugyanarról az IP-ről
    • Több formátumot is beállíthat - képpel, számlálóval, számláló nélkül stb., és mindegyiket a megfelelő helyzetben használhatja
    • Az űrlapon található a letöltési napló kirakodása csv fájl A

    Ha bármilyen mp3 vagy videó fájl van feltöltve, akkor meg kell adni, hogy kötelező a letöltés, vagy sem. Ha erőltetni - akkor rákattintva letöltődik, ha nincs bepipálva - lejátszva, majd mentés - jobb egérgombbal. Szeretném megjegyezni, hogy a segítségével feltöltött fájlok nem ott kerülnek elhelyezésre, ahol a speciális fájlok könyvtára létrejön, hanem az általa létrehozott wp-content/uploads/downloads/ - ezt nem szabad elfelejteni, és azt is, hogy a statisztikákból való törlésekor - fizikailag a fájlok is törlődnek a szerverről. Azokkal, amelyek FTP-n keresztül vannak feltöltve - minden rendben van. Ráadásul, ha beszúrsz egy hivatkozást különböző bejegyzésekbe ugyanahhoz a fájlhoz, akkor nem értettem, hogy összefoglalja-e azokat. Sajnos nem támogat semmilyen letöltési korlátozást, kivéve azt, hogy a regisztrált felhasználók kivételével mindenkit meg lehet akadályozni a letöltésben. Ha a fájl nevét szeretné megjeleníteni a böngésző alsó sorában, vagy módosítania kell az azonosítójára, ne felejtse el menni a beállítások->permalinkek menüpontra, és ott mentse el a konfigurációt, hogy minden helyesen legyen beírva. htaccess - e nélkül a fájlok nem töltődnek le!

    A statisztikák egyszerre három helyen jelennek meg - a konzolban, a fájlok információiban és a letöltési naplókban. Ez bizonyos kellemetlenségeket okoz, például amikor meg kell nézni, hogy egy fájlt mikor töltöttek le utoljára, de csv-fájl formájában is feltölthet statisztikákat, majd Excelben rendezheti. Figyelembe véve azt a tényt, hogy az Excelnek megvan az ördögi képessége a szükséges táblázatok és diagramok elkészítésére, akkor ez talán nem rossz. Azonban azt hiszem, a képernyőképek többet mondanak:

    Nos, egy képernyőkép magáról a naplóról:

    Ugyanakkor óriási plusz, hogy egy widget jelenik meg a konzolban a következő statisztikákkal:

    Általánosságban elmondható, hogy egy kis finomítás után a plugin jól teszi a dolgát.

    Ezt a bővítményt ugyanaz a szerző írta, mint a WP-Polls bővítményt, amelyet például ezen az oldalon használok. Bár hozzá képest egy nagyságrenddel kevésbé népszerű. De lássuk, megérdemli-e. Minden dokumentáció megtalálható a szerző honlapján. Lényegében a bővítmény teljesen megegyezik az előzővel - a sablon ugyanúgy van megírva, a letöltésre nincs korlátozás, kivéve a regisztrált vagy nem regisztrált felhasználókat, az űrlap rövid kódjának használata is kötelező

    ABAP

    [downloadid="7592"]

    és a többi ponthoz:

    • Fájlokat is feltölthetsz a segítségével (akár két Mb-ig, nos, vagy mennyit adtál meg a php.ini-ben), és megadhatod, hogy hol vannak, ha korábban FTP-n keresztül töltötték fel, akkor egyszerűen megadhatod az URL-t.
    • Elrejti a fájl valódi helyét, de nem lehet helyettesíteni semmilyen szükséges URL kombinációt, csak néhány rögzített opció van, a fő nem működött nekem
    • Beállítható úgy, hogy információkat jelenítsen meg a látogatók számára a fájl méretéről, hányszor lett letöltve, mikor lett letöltve
    • Megjeleníthet egy ikont a megfelelő fájltípusokhoz
    • Visszaállíthatja a számlálót, vagy beállíthatja a kívánt értéket

    Vannak azonban eltérések is. Először is, a vizuális szerkesztőben nincs gomb, amellyel rövid kódot lehetne beszúrni. Inkább van egy gomb, de a használatához először hozzá kell adni egy számlálót a fájlhoz a plugin beállításokban, majd ez a gomb közvetlenül a bejegyzéshez adja hozzá a számláló azonosítóját. Másodszor, csak egy sablon van, és a kimenet különböző fájlokat különböző információk nem működnek. A statisztika pluszjai közül azt mutatja meg, hogy mikor töltötték le utoljára a fájlt, egyébként csak mínuszok vannak - nincs csv fájlba feltöltés, nem lehet megnézni, hogy ki töltötte le (nincs IP cím), nincs dátum szerinti elosztás.

    De az ikonok szebbek (később csatoltam őket az előző bővítményhez). Munkájának eredménye a következő:

    Valamint egy rekord törlésekor az adatbázisból megkérdezi, hogy szükséges-e magát a fájlt is törölni, vagy elhagyni. De a tulajdonságok összességét tekintve nekem kevésbé tetszett, mint az előző - legalábbis úgy, hogy a fájlt külön kell beszúrni a bejegyzésen kívülre, viszont nincs különösebb hátránya - a választás közöttük ízlés dolga, az elsőben több lehetőség, részletesebb statisztika van, a másodikban valamivel kényelmesebb (bár gyengébb) statisztika, és kevesebb funkció.

    A nehéztüzérség akcióba lépett. A bővítmény többnyire oroszosított, és letöltéskezelő, nem számláló. Lehetőség van korlátozni a letöltési sebességet és az egy főre jutó letöltések számát naponta.

    De azt mondanám, hogy ennek a bővítménynek néhány funkciója redundáns, és a statisztikailag szükségesek nem elegendőek. Rengeteg beállítás, letölthető widget, komplex szinkronizációs rendszer, mp3 címkék megjelenítési rendszer, flv fájlok megjelenítése, minifájl tárolás szervezése, az oldalon megadott összes fájl megjelenítése a bejegyzés elején vagy végén, stb. stb.

    Nem is akarok képernyőképet adni az összes beállításról.

    Mindezzel azonban - hogy a posztban szépen megjelenjen a sablon - szerkesztenem kellett benne a stílusfájlt, csökkentve a szélességet. Ezenkívül az alapértelmezett sablon megjelenítéséhez szükség van a rövid kód beszúrása után a gombbal

    írja be kézzel a sablon nevét a kódba. Némi ütközik az orosz névvel. Mellesleg így néz ki (egyszerre három sablonváltozatot adok):

    Számol - egy csonkfedélzeten keresztül (jó, vagy az IP-ről több letöltés nem számít, nem tudom). A statisztikák valamivel kevesebbek, mint teljesen rosszak, nagyon hasonlítanak a fentebb tárgyalt beépülő modulhoz.

    Általánosságban elmondható, hogy az a benyomásom maradt, hogy egészséges, de hülye. Alkalmas néhány fájl tárolására, és még akkor is - ha bármilyen más bővítménnyel együtt. Ránéztem – igen, és leromboltam.

    Őszintén szólva, amikor elolvastam a leírását, arra gondoltam - ez az, amire szükségem van!

    Számláló, jelszavas védelem, gombbal beszúrt rövid kód, szerkeszthető gomb stb.

    És így néz ki (két használt három sablont adott egyszerre):

    Azonban egy fájl hozzáadásához először hozzá kell adnia egy számlálót a bővítményekben. Másodszor, gyakorlatilag nincs statisztikai adat.

    Harmadszor, nem állíthatja be a fájlméret megjelenítését a felhasználó számára. Negyedszer, nincs letöltési sebességkorlátozás, csak jelszavas védelme van a fájlnak. A sablonok nem szerkeszthetők. És egy nagy felirat, amelyben egy prémium verzió vásárlási ajánlata 45 dollárért. Nos, általában megérted. Minden finom a nagymamáknak való. Deaktiválva és lebontva. És szép keretek, gombok stb. - Én magam fogok előírni stílusokat, amikor akarom.

    Összegzés

    Telepítse szabványos módon (a könyvtárba másolással wp-content/plugins/download-monitor/, frissítse, cserélje ki az összes ikont a könyvtár archívumából származó ikonokra wp-content/plugins/download-monitor/img/filetype_icons/és aktiválja.

    A jövőben, ha a kezembe kerül, azon gondolkodom, hogy css3 segítségével szép keretekbe csináljam a linkeket, amiről nagy valószínűséggel írni is fogok. Tarts velünk 🙂

    Upd. Most a szerző átdolgozta WordPress bővítmény Töltse le a Monitort, és az eredetitől teljesen eltérő verziót készített. Megnéztem, de sokkal kevésbé tetszett, mert az űrlapsablon, hogy hogyan nézzen ki a letöltési link, már nem olyan egyszerű szerkeszteni. A szerző úgy döntött, hogy elég lesz a kész előre beállított nézetek. Például, ha a letöltések menüben van, válassza a beállításokat kívánt nézetet a hat előre telepített közül kattintson a Mentés gombra

    Ezután a második lehetőség kiválasztásakor valami ilyesmit kap:

    Azok. tovább új verzió a leírásban megadott sor használata nem fog működni, de egy speciális php fájlt kell írni, amit ez a kimeneti sablon leírna. De a legszomorúbb még csak nem is ez – hanem az, hogy ez a php fájl, ha bekerül a könyvtárba a pluginnel, minden frissítéskor felülíródik. És ha a témával együtt a könyvtárba helyezi, akkor a téma megváltoztatásakor (bár ez természetesen sokkal ritkábban fordul elő). De mindenesetre ennek megírása meglehetősen fáradságos feladat, és egyelőre semmi kedvem hozzá. Tehát a frissített plugin egyetlen pluszja

    Úgy döntöttem, megnézem, hányszor töltik le az egyik szkriptemet az oldalról. Ennek érdekében úgy döntöttem, hogy fájlletöltési számlálót írok az oldalhoz. Ennek a feladatnak számos megvalósítása létezik az interneten, de ennek ellenére olvassa el a megoldásomat.

    A letöltésszámláló logikája meglehetősen egyszerű. A megvalósításhoz a kedvenc ajaxomat fogjuk használni. A gombon lógunk, amikor a clik esemény bekövetkezik, az ajaxon keresztüli hívás a számláló php fájljához. A php-ban az ajax kérés feldolgozásra kerül, és oda íródik szöveges fájl számok az összes ugrások számára. A sikeres rögzítés után a rendszer egy teljes letöltési számlálót tartalmazó választ ad vissza, és a felhasználó átirányítja a fájl letöltésére szolgáló hivatkozásra (a fájl letöltése folyamatban van). Íme egy ilyen egyszerű logika Most kezdjük el megvalósítani. Készítsünk előre egy letölthető test.zip fájlt. Készítsük el a gomb kódját és mutassuk meg az ugrásszámlálót.

    Fájl letöltése Letöltések száma:

    Létrehoztunk egy gombot id="btnSend" -vel, a számlálót id="countView" tartományban jelenítjük meg, a letöltött fájl linkjét tároljuk a data-download attribútumban

    Most csatoljunk egy kattintáskezelőt a gombhoz. Itt már js-t és jquery-t fogunk használni. Olvassa el a clik megvalósításáról a jQuery használatával. De a kattintáskezelő telepítése előtt ajax-szal elérjük a count.php fájlt, amely a számláló összes munkáját tartalmazza. Az ajax adatátvitelről bővebben olvashat. Ez azért szükséges, hogy abból a fájlból, ahová a számláló ír, a már végrehajtott letöltések számát jelenítse meg, és id="countView"-val egy tartományban jelenítse meg

    /*lekéri a letöltések aktuális számát*/ $(document).ready(function()( //prohibit cache ajax request //ellenkező esetben a számláló meghiúsul $.ajaxSetup((cache: false)); var html; $. ajax (( //hogyan adjuk át az adattípust: "GET", //hova adjuk át az url-t: "count.php", //milyen adatokat adunk át: (jelző: 2), //esemény a válasz beérkezése után innen: count.php siker */ var clickevent=false; //click check flag //click kezelő $("#btnSend").click(function()( if(!clickevent)( $.ajax(( //hogyan küldjük el az adattípust: "GET", //ahova átadjuk az url-t: "count.php", //milyen adatokat kell küldeni: (jelző: 1), //esemény az ajax küldése előtt beforeSend: function()( //ha a gombra kattintottak akkor true clickevent=true; ), //event a válasz beérkezése után, //az adatok beszerzése sikerben: function(data)( //a műveletek végrehajtása után ismét engedélyezzük //feldolgozni a kattintás gombra kattintás esemény =hamis; html=adat; //új számláló kiadása $("#countView").html(html); //hivatkozás lekérése a data-downloadból //átirányítás a letöltési linkre, a fájl letöltése window.location.href = $("#btnSend").data("letöltés"); ) )); ) return false;//az esemény feldolgozásának tiltása kattintásra )); ));

    A küldés gomb ismételt hibás megnyomásának elkerülése érdekében bevezettem a clickevent jelzőt a szkriptbe. Amíg a count.php válasz nem érkezik vissza a frissített számlálóadatokkal, a gombra kattintás tilos. Szerintem a kód működése a gombra kattintás után többé-kevésbé egyértelmű. A letöltés gombra kattintva az adatok átkerülnek a count.php fájlba, ahol feldolgozzák azokat és visszaküldik a frissített számlálóadatokat, átirányítás történik a letöltési linkre, és ennek megfelelően a fájl letöltése megtörténik.

    Most bontsuk le a szkriptünk lényegét, nevezetesen a count.php fájlt.

    Függvény clearInt ($date)( //dátum átadása nem negatív számra return abs((int)$date); ) if($_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest") ( //ellenőrizd, melyik jelző jött if (clearInt($_GET["flag"]==1)) ( //megnyitja a fájlt a $f=fopen("mycount.txt","a+") olvasásához; //blokkolja a hozzáférést a fájlhoz más programoktól flock($ f,LOCK_EX); //kérje le a számláló értékét a $count=fread($f,100) fájlból; //adja hozzá a @$count++ számlálót; //felülírja a fájlt ftruncate($f,0); //egy új számláló betáplálása fwrite ($f,$count); //fájl bezárása fclose($f); //visszatérési érték echo $count; ) if(clearInt($_GET["zászló"]==2) ) ( $c=fopen(" mycount.txt","a+"); flock($c,LOCK_EX); $festc=fread($c,100); fclose($c); //visszatérési érték echo $festc ;) )

    Itt szerintem ugyanaz a dolog egyszerű. Ha jön az 1. zászló, akkor átírjuk a számlálót. Ha jön a 2. jelző, akkor egyszerűen visszaküldik a letöltések számát. Minden más szerintem egyértelmű a kódban található megjegyzésekből.

    Joomla letöltésszámláló

    Úgy döntöttem, hogy egy hasonló számlálót csatolok az egyik joomla projektemhez. Elméletileg persze vagy külön modult kell írni, vagy a kódot a com tartalomkomponens vezérlőjébe integrálni, hogy a számláló adatok ne egy fájlba, hanem az adatbázisba és cikkenként külön-külön kerüljenek kiírásra. De nincs idő ilyen fejlesztésre, és egyszerűbben oldottam meg a kérdést. Egy oldalhoz kellett egy számláló. Fogtam a count.php fájlt és átvittem a joomla sablonba, ami be van kapcsolva Ebben a pillanatban csatlakoztatva (a webhelysablonok/a_sablon gyökerében). Ne felejtse el beszúrni a definiált kódot ("_JEXEC"), vagy die; a count.php legtetején; (ez a joomla-ra vonatkozik). Az általunk létrehozandó oldalba beszúrjuk a letöltés gombot, és a js kód is beágyazható az oldalba, vagy csatlakoztatható külön fájl. Például van egy külön fájlom (a sablon js mappájában található). Magában a sablonban, a fejlécben a kapcsolat a kódon keresztül történik