Tworzenie licznika pobrań plików przy użyciu PHP i MySQL. Instalacja licznika pobrań - przegląd wtyczek do WordPressa Licznik pobrań plików php

Na wielu stronach można zobaczyć linki umożliwiające pobranie plików. Na przykład firmy produkcyjne publikują instrukcje dotyczące konkretnego produktu na swoich oficjalnych stronach. Ponadto twórcy oprogramowania oferują również bezpłatne pobranie swojego programu, dzięki czemu użytkownik może zapoznać się z jego funkcjami i działaniem.

Udostępniając plik do bezpłatnego pobrania, ważne jest, aby wiedzieć, ile razy był on pobierany. Jest to konieczne przede wszystkim w przypadku statystyk, których analiza pozwoli określić przydatność informacji dla użytkownika końcowego.

Jak ustawić licznik pobrań na stronie WordPress?

Wśród narzędzi WordPress nie ma możliwości zobaczenia tych statystyk. Dlatego skorzystamy z rozwiązania strony trzeciej - wtyczki Kama Click Counter.

Wtyczka Kama Click Counter

Bezpłatna wtyczka Kama Click Counter zapewnia wszystkie niezbędne narzędzia do dokładnego zliczania liczby pobrań konkretnego pliku. Najpierw należy go zainstalować i aktywować. Przykładowo na stronie wpisu wyświetlimy link do pliku pdf, dla którego policzymy liczbę pobrań. Należy zaznaczyć, że pliki wgrywane są na stronę przy użyciu standardowych metod Biblioteki multimediów WordPress (Media -> Dodaj nowy). Następnie musisz otworzyć post lub stronę do edycji. W części merytorycznej należy ustawić kursor w miejscu, w którym zostanie umieszczony link do pliku, a następnie kliknąć przycisk pojawiający się na pasku narzędzi edytora wizualnego.

W wyskakującym okienku wtyczka poprosi Cię o wybranie wcześniej pobranego pliku. W tym celu należy nacisnąć przycisk z ikoną lupy.

W bibliotece plików multimedialnych wybierz żądany plik i kliknij przycisk Wybierz plik.

W rezultacie w części merytorycznej postu lub strony zostanie wstawiony specjalny krótki kod, który służy do wyświetlenia linku do pobrania pliku.

Po zaktualizowaniu materiału (przycisk Aktualizuj) można przejść do serwisu w celu jego obejrzenia.

Wtyczka umożliwia także wyświetlanie statystyk pobrań w części użytkownika serwisu – w widżecie. Pamiętaj, że domyślnie wtyczka nie wyświetla w widgecie konkretnych liczb na temat tego, co zostało pobrane i ile razy. Wyświetlana jest tylko lista najczęściej pobieranych plików. W tym celu przejdź do sekcji administracyjnej Wygląd -> Widżety i przeciągnij widżet KSS:Top Downloads w wybrane miejsce na pasku bocznym.

Jak widać, w widżecie dostępnych jest kilka opcji pozwalających na modyfikację listy.

Tutaj możesz ustawić następujące podstawowe parametry:

  • tytuł widżetu (pole Tytuł);
  • liczba plików wyjściowych na liście (ile linków wyświetlić?);
  • sortowanie wyników (jak posortować wynik?);
  • dostosowanie wyglądu szablonu (bloki szablonu i CSS szablonu).

Szczególną cechą wtyczki jest elastyczne dostosowywanie szablonu. Tutaj możesz użyć tak zwanych tagów, zamiast których będzie wyświetlana ta lub inna informacja.

Po zakończeniu i zapisaniu wszystkich ustawień widgetu (przycisk Zapisz) wynik można obejrzeć na stronie internetowej.

Kolejnym pytaniem, które zainteresowało mnie ostatnio przy tworzeniu mojego prostego projektu autorskiego, było pytanie, w jaki sposób policzyć liczbę pobrań konkretnego pliku zamieszczonego tutaj. Najbardziej logiczne było założenie, że wymaga to innej wtyczki, jakiegoś menedżera pobierania lub, co prostsze, licznika pobrań. Po przeszukaniu Internetu okazało się, że jak zwykle jest tam wagon i mały wózek tych wtyczek. Ale znowu nie ma o nich recenzji. Kompletnie nie wiadomo co wybrać i jak zwykle wszystko musiałam przetestować na sobie. I na podstawie wyników testów powstał ten recenzent. Napisanie tego zajęło dużo czasu, a celem nie było dokładne przetestowanie wszystkich podanych wtyczek z pełnym przeglądem ich ustawień, więc nie znajdziesz szczegółowych zrzutów ekranu każdego z nich, ale będą kluczowe ustawienia. O niektórych z nich w ogóle nie chciałam rozmawiać – były takie głupie, ale odkąd na nie spojrzałam, szkoda było w ogóle nic nie napisać.

Wstęp.

Zadanie polegało więc na policzeniu liczby pobrań konkretnego pliku poprzez ustawienie licznika pobrań dla WordPressa. Po bliższym zbadaniu okazało się, że można go podzielić na kilka podzadań, a raczej życzeń dotyczących wtyczki, która by je realizowała. Oto krótka ich lista:

  • Konieczne jest, aby gdzieś w panelu administracyjnym wyświetlała się liczba pobrań, z możliwością sortowania - ile zostało pobranych dziennie, tygodniowo, miesięcznie, rok, łącznie
  • Pożądana byłaby możliwość zobaczenia wykresów/schematów pobrań plików względem siebie
  • Pożądana byłaby możliwość zobaczenia wykresów/schematów pobrań plików w czasie
  • Zaleca się prowadzenie statystyk dotyczących daty ostatniego pobrania pliku
  • Możliwość wyświetlenia obok linku informacji o tym, ile razy plik został pobrany, a także o jego rozmiarze i dacie pobrania dla użytkownika, który właśnie ma zamiar go pobrać. Cóż, albo nie wycofywać się - na prośbę administratora
  • Możliwość wstawienia odpowiedzialnego za to kodu za pomocą osobnego przycisku w panelu pisania postów edytora TinyMCE (nie lubię używać szybkich tagów)
  • Możliwość ograniczenia prędkości pobierania (na wszelki wypadek)
  • Dołączenie do tej wtyczki funkcji uploadu (wgrania plików na serwer) - wręcz przeciwnie, nie poddałem się. U mnie FTP też działa dobrze. Ale jeśli nie przeszkadza to za bardzo, to niech tak zostanie
  • Fajnie by było móc dołączyć fajny przycisk do linku do pobrania - chociaż dla mnie wystarczy napisać class="button"

ABAP

Pobieranie pliku!

  • Dobrze by było, gdyby liczył liczbę pobrań nie tylko ze swojej strony, ale po prostu z linku
  • Możliwość zablokowania bezpośredniego pobierania pliku bez wskazania jego lokalizacji na serwerze.

Oto mała lista.

Recenzja

Po wybraniu specyfikacji technicznych zaczniemy rozważać to, co jest nam bezpośrednio oferowane.

1. Pobierz wtyczkę Counter 1.2, pobraną tutaj.

Początkowo znajdowała się strona wtyczki, jednak autor nie wspierał jej od ponad 4 lat. Tworzymy dla niego kolejny folder w katalogu wtyczek - download-counter i tam upuszczamy oba pliki. W rezultacie - gdzie byś pomyślał? — ustawienia dla niego pojawiają się w zapisach. Bardzo oryginalne, ale ok.

Wejdźmy do środka i napiszmy ścieżkę do pliku download-manager.php (naprawdę nie lubię wrzucać żadnych bzdur prosto do katalogu głównego). Zobaczmy, co mamy. Wgrywamy plik, sprawdzamy czy został pobrany ręcznie, jeśli w przeglądarce wpiszesz bezpośredni link, wpisz ścieżkę w wtyczce, aby utworzyć licznik. Teoretycznie należy utworzyć identyfikator, który następnie trzeba będzie wstawić wszędzie. Ale nic nie zadziałało - pojawia się błąd „Błąd - nie można zapisać nagrania”. No cóż, namawialiśmy, przenosimy do roota download-manager.php - znowu nic, ten sam błąd. No cóż, do diabła, złota rybko, nie wystarczyło mi jeszcze zrozumienie pluginów, z których autor się nie zrezygnował. Co więcej, funkcjonalność jest praktycznie zerowa.

2. Pobierz wtyczkę Counter Advanced 1.1, pobraną.

Od razu powiem, że u mnie też to nie do końca zadziałało, dlatego o jego instalacji i konfiguracji możecie przeczytać jedynie w celach akademickich. Zasadniczo jest to ta sama wtyczka, tylko nieznacznie zmodyfikowana. Dzięki Bogu, chociaż instrukcje nie zostały przetłumaczone, można je normalnie przeczytać i nie próbować zrozumieć, co tłumacz miał na myśli. Nawiasem mówiąc, w panelu administracyjnym wygląda na zupełnie inną wtyczkę, oferującą aktualizację (tak, a co do cholery). Podobnie jak w przypadku poprzedniej wtyczki, zlokalizowana została jej strona i podobnie autor nie wspierał jej od ponad 4 lat. Analogicznie tworzymy dla niego kolejny folder w katalogu wtyczek, mój to licznik pobrań i tam wrzucamy wszystkie pliki. Ustawienia wyglądają oczywiście na bogatsze, chociaż prędkość pobierania jest ograniczona dla wszystkich plików na raz i nie jest ustawiana dla każdego z nich. Gdzie jest plik download-manager..php (nie zapomnij nazwy pliku na końcu, ale za pierwszym razem dobrze odgadłem, gdzie znajdują się wszystkie pliki do pobrania, co wprawiło mnie w straszliwe zdumienie. Jak się później okazało, Zgadłem nazwę katalogu, w którym przesyłane są pliki do pobrania, tutaj moja logika zadziałała w 100% identycznie z autorem wtyczki.

Nazwy folderów, które posiadamy na serwerze dodajemy w katalogu pobranych plików (w ustawieniach „kategorie i katalogi”), aby ułatwić wybór ścieżki do plików. Jeśli ich nie dodasz, będziesz musiał pobrać wszystko do katalogu głównego pobierania. Zapisz, możesz dodać pliki do pobrania. To mniej więcej to, co otrzymujemy.

Spróbujmy teraz wstawić go do postu. Dodajemy link, w nim zmieniamy nasz link do kodu, który jest wydawany bezpośrednio w ustawieniach wtyczki. A potem... Pieprz się! Błąd HTTP 500 (wewnętrzny błąd serwera): Wystąpiła nieoczekiwana sytuacja, gdy serwer próbował ukończyć żądanie. Cóż, chciałem tylko powiedzieć, jak dodać licznik bezpośrednio do postu, a co jeśli do linku w środku żeby to zadziałało

ABAP

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

wtedy możesz wyświetlić przycisk pobierania – naprawdę jest krzywy. To tyle o wtyczce, szkoda twojego czasu. Tak naprawdę nie prowadzi statystyk, ponieważ nie dowiemy się, gdzie leży błąd.

To właśnie do tej wtyczki zaproponowano aktualizację wspomnianego wyżej Download Counter Advanced. Cóż, sugeruje – i OK, pobierzmy to i zobaczmy. Wtyczka również nie była aktualizowana od ponad 3 lat, a niektórzy użytkownicy nawet sami dokonali poprawek w jej kodzie. Jest instalowany całkiem pomyślnie, asceza ustawień nie napawa optymizmem. Swoją drogą, też nieźle, zgadli, gdzie umieścić ustawienia - nie gorzej niż w poprzednim przypadku. Na stronie ustawień dodajemy liczniki, wszystko wydaje się wyświetlać tak jak powinno.

Zobaczmy, co dodaliśmy do wpisu. Tak, nie ma żadnych przycisków. Ach, oczywiście, zapomniałem, że wszystko jest intuicyjne. Spójrzmy na instrukcje. Konieczne jest zbudowanie złożonej struktury składającej się z krótkich kodów typu , pobranych , a jednocześnie (prawdopodobnie ze względu na CNC) tak naprawdę nic się nie liczy.

Dlatego nie będziemy się nad tym dalej zastanawiać wraz z dołączoną wtyczką Download Counter Chart, która wyświetla informacje w formie graficznej.

Został napisany przez naszego rodaka, ale niestety jedyne, co potrafi, to przy jego nazwie wyświetlać liczbę osób, które pobrały plik - nie ma tu żadnych statystyk ani innych bajerów. Jeśli jednak jesteś miłośnikiem minimalizmu, to właśnie tego potrzebujesz. Tylko nie zapominaj, że nie ma żadnych przycisków, takich jak krótki kod


Licznik pobrań DIY dla WordPressa

będziesz musiał wprowadzić go ręcznie. Bardzo dobrze, że autorka wszystko szczegółowo opisał, dzięki czemu nie musiałam testować tego na sobie.

Cóż, jeśli mówimy o wtyczkach napisanych przez naszych ludzi, nie możemy nie wspomnieć o jeszcze jednej. Jego ogromną zaletą jest to, że pozwala zliczyć nie tylko liczbę pobrań plików, ale także po prostu kliknięcia w linki – nie ma znaczenia, czy prowadzą one do pliku, czy tylko na inną stronę. Albo do pliku na cudzej stronie :) On też to przeliczy, a raczej teoretycznie powinien to policzyć. Ze statystykami też nie jest najlepiej, na panelu edycyjnym nie ma przycisków, nie ma też żadnych ograniczeń w pobieraniu. Ale nadal warto to zobaczyć. Dlatego pobieramy i instalujemy. W zasadzie na stronie autora jest dość szczegółowy opis, więc nie będę się wdawać w szczegóły. Należy zawsze pamiętać, że jeśli chcesz ustawić licznik dla pliku lub łącza, powinieneś użyć albo typu shortcode, albo wstawić klasę class="count" do łącza. Jest to oczywiście denerwujące, za pomocą przycisku byłoby to znacznie wygodniejsze. Ale najbardziej irytujące jest to, że mimo wszystkich wysiłków nie udało mi się go uruchomić poprawnie - jeśli użyto krótkiego kodu, sam link do pobrania nie został wyświetlony, a jeśli użyto klasy, statystyki dotyczące linków nie pojawiały się w Panel administratora. Zrzuty ekranu można obejrzeć u autora - jeśli podoba Ci się sam pomysł, spróbuj, może ci się uda.

Naprawdę bardzo proste. Nie są wymagane żadne krótkie kody itp. Jednakże ta wtyczka udostępnia statystyki tylko dla autora; dla odwiedzających, obok linku do pliku, nie są one wyświetlane.

Należy jednak zauważyć, że prowadzone są szczegółowe statystyki dotyczące tego, kto i kiedy pobrał jaki plik. Jednak korzystanie z niego nie jest zbyt wygodne.

Ustawienia obejmują:

  • Możesz określić katalog, z którego będą pobierane pliki
  • Możesz określić typy plików, które można pobierać
  • Zapobiegaj liczeniu pobrań plików jako autor
  • Ustaw odstęp w sekundach, podczas którego powtarzające się kliknięcia w link z tego samego adresu IP będą liczone tylko raz
  • Ogranicz liczbę plików, które można pobrać z jednego adresu IP dziennie
  • Użyj jakiejś strony pośredniej z informacją, że pobieranie się teraz rozpocznie

Wszystko to jednak działa tylko wtedy, gdy albo (jakbym to ujął prościej...) masz uprawnienia do edycji pliku .htaccess, albo jeśli określisz link bezpośrednio, wstawiając go do

Ponieważ jednak nie miał możliwości wyświetlania statystyk dla użytkowników, a ja nie chciałem pamiętać typu linku, przestałem się nad tym zastanawiać w tym momencie, decydując się na powrót dopiero wtedy, gdy inne wtyczki w kolejce nie będą w stanie rozwiązać problemu zadanie.

Pod względem wyświetlania informacji wtyczka ta jest bardzo podobna do wtyczki omówionej w poprzednim akapicie. Różni się tym, że umożliwia przeglądanie statystyk osobno tygodniowych, miesięcznych, za dowolny okres i po prostu pierwszej 10-tki. Jeśli chodzi o możliwości, jest on znacznie biedniejszy, nie ma statystyk dotyczących ostatniego pobrania lub konkretnego pliku, nie mówiąc już o możliwości wprowadzenia ograniczeń w pobieraniu plików. W ogóle nie ma jasnej dokumentacji. Odniosłem wrażenie, że to jakieś nieporozumienie, a nie wtyczka. Nawet nie chce mi się dawać screenów, ale żeby być obiektywnym to i tak dam, te autorskie.

No cóż, tu dochodzimy do czegoś mniej lub bardziej wartościowego. Prawie pół miliona pobrań – to już o czymś świadczy. Znajduje się oficjalna strona wtyczki. Aby wstawić plik do posta należy skorzystać ze strzałki nad edytorem wizualnym (sama ikona się w nim nie pojawia)

W wyświetlonym oknie wybierz żądany plik (jest to przykład, jeśli został już przesłany przez FTP)

Następnie kliknij przycisk „Zapisz nowe pobranie”.

i przechodząc do następnego ekranu, wybierz format pobierania i kliknij Wstaw do posta. Możliwe, że nic się nie stanie. Wtyczka jest nieco błędna w najnowszych wersjach WordPress. Dlatego należy dodatkowo kliknąć link Wyświetl pliki do pobrania

Następnie, po wybraniu formatu pobierania, kliknij link Wstaw znajdujący się naprzeciwko pliku, który chcesz wstawić.

Następnie odpowiedni krótki kod, np

ABAP

[pobierzid="7592" format="1"]

Wtyczka wymaga dokładnej ręcznej konfiguracji, ale nie zapewnia WYSIWYG. Dobrą rzeczą jest to, że wystarczy skonfigurować go tylko raz. Szczegółowa dokumentacja dostępna jest u autora.

Oto przykładowa konfiguracja:

ABAP

(tytuł)

< ahref= "(url)" title="Pobrano (trafienia,"ни разу","1 раз","% раза"}">{title}!}

Należy zaznaczyć, że deklinacje nie są obsługiwane, tj. jeśli plik został pobrany 21 razy, a w szablonie masz „raza”, będzie to brzmiało nieco nierosyjsko.

A oto opcja z przyciskiem:

ABAP

- (opis), (rozmiar), przesłane (data, „Y-m-d”), razy pobrane (trafienia)

< ahref= "(url)" title="Pobrano (trafienia,"ни разу","1 раз","% раза"}">!} - (opis), (rozmiar), przesłane (data, „Y-m-d”), razy pobrane (trafienia)

Na to wygląda:

No cóż, po pewnych modyfikacjach, mój zaczął wyglądać tak (jeszcze bez przycisków):

Kod linii:

ABAP

(filetype_icon) (tytuł) (Rozmiar pliku: (rozmiar), Przesłano: (data, „d.m.Y”), Pobrano (liczba trafień))
(opis)

Lista możliwości jest dość szeroka:

  • Możesz przesłać pliki albo za jego pomocą (klikając na strzałkę), albo określić lokalizację, w której się znajdują, jeśli zostały przesłane wcześniej przez FTP, możesz po prostu podać adres URL
  • Ukrywa prawdziwą lokalizację pliku, możesz zastąpić dowolną niezbędną kombinację adresów URL
  • Możesz użyć przycisku pobierania, w tym własnego
  • Pobrania przez administratora i wszystkie niepotrzebne adresy IP znajdujące się na liście wykluczeń licznikowych nie są brane pod uwagę.
  • Czy powinienem liczyć powtarzające się pobrania w określonym czasie z tego samego adresu IP?
  • Możesz ustawić kilka formatów - ze zdjęciem, z licznikiem, bez licznika itp. i wykorzystać każdy z nich w odpowiedniej sytuacji
  • Istnieje przesłanie dziennika pobierania w postaci pliku csv

Jeśli przesyłany jest jakiś plik mp3 lub wideo, musisz wskazać im, czy jest to pobieranie wymuszone, czy nie. Jeśli wymusisz - to po kliknięciu zostanie pobrany, jeśli nie zaznaczysz tego pola - zagraj, a następnie zapisz - kliknij prawym przyciskiem myszy. Pragnę zaznaczyć, że pliki wgrane za jego pomocą nie są umieszczane tam, gdzie został utworzony Twój specjalny katalog na pliki, ale w utworzonym przez niego wp-content/uploads/downloads/ - trzeba o tym pamiętać, a także o tym, że przy usuwaniu ich ze statystyk - pliki są również fizycznie usuwane z serwera. W przypadku plików przesyłanych przez FTP wszystko jest w porządku. Poza tym, jeśli wstawisz link w różnych postach do tego samego pliku, to nie rozumiem, czy będzie to ich podsumowanie. Niestety nie obsługuje żadnych ograniczeń pobierania, z wyjątkiem tego, że możesz zabronić pobierania każdemu z wyjątkiem zarejestrowanych użytkowników. Jeśli chcesz wyświetlić nazwę pliku w dolnej linii przeglądarki, lub zmienić ją na jego identyfikator, musisz pamiętać, aby przejść do ustawień->permalinks i tam zapisać konfigurację, aby wszystko było poprawnie zapisane w formacie . htaccess - bez tego pliki nie zostaną pobrane!

Statystyki wyświetlane są jednocześnie w trzech miejscach – w konsoli, w informacjach o plikach oraz w logach pobierania. Stwarza to pewne niedogodności, np. gdy trzeba sprawdzić, kiedy plik został ostatnio pobrany, ale można pobrać statystyki w postaci pliku csv, a następnie uporządkować je w Excelu. Biorąc pod uwagę, że Excel ma diaboliczne możliwości konstruowania niezbędnych tabel i wykresów, to może nie jest to złe. Myślę jednak, że zrzuty ekranu powiedzą więcej:

Cóż, zrzut ekranu samego dziennika:

Jednocześnie ogromnym plusem jest to, że w konsoli pojawia się widget z takimi statystykami:

Ogólnie można powiedzieć, że po niewielkiej konfiguracji wtyczka spełnia swoje zadanie znakomicie.

Wtyczka ta została napisana przez tego samego autora, co wtyczka WP-Polls, której ja na przykład używam na tej stronie. Choć w porównaniu z tym cieszy się o rząd wielkości mniejszą popularnością. Ale zobaczmy, czy jest to zasłużone. Całą dokumentację można znaleźć na stronie internetowej autora. W swojej istocie wtyczka jest absolutnie identyczna z poprzednią - szablon jest napisany dokładnie w ten sam sposób, nie ma żadnych ograniczeń w pobieraniu, z wyjątkiem zarejestrowanych i niezarejestrowanych użytkowników, a także trzeba użyć krótkiego kodu, np.

ABAP

[pobierzid="7592"]

Cóż, w pozostałych punktach:

  • Możesz za jego pomocą przesyłać pliki (do dwóch MB lub cokolwiek innego, co wskazałeś w php.ini) i wskazać lokalizację, w której się znajdują, jeśli zostały przesłane wcześniej przez FTP, możesz po prostu podać adres URL
  • Ukrywa prawdziwą lokalizację pliku, ale nie można zastąpić żadnej niezbędnej kombinacji adresów URL, jest tylko kilka stałych opcji, z których główna nie działała dla mnie
  • Można skonfigurować tak, aby wyświetlał odwiedzającym informacje o rozmiarze pliku, ile razy został pobrany i kiedy został pobrany
  • Możesz wyświetlić ikonę odpowiednich typów plików
  • Możesz zresetować licznik lub ustawić żądaną wartość

Istnieją jednak pewne różnice. Po pierwsze, w edytorze wizualnym nie ma przycisku, za pomocą którego można wstawić krótki kod. A raczej jest przycisk, ale żeby z niego skorzystać trzeba najpierw w ustawieniach wtyczki dodać licznik do pliku, a potem za pomocą tego przycisku ID licznika zostanie dodany bezpośrednio do posta. Po drugie, istnieje tylko jeden szablon i nie będzie możliwe wyświetlenie różnych informacji dla różnych plików. Wśród zalet statystyki - pokazuje, kiedy plik został ostatnio pobrany, w przeciwnym razie są same wady - brak przesyłania do pliku csv, brak podglądu, kto pobrał (brak adresu IP), brak dystrybucji według daty.

Ale ikony są ładniejsze (dodałem je później do poprzedniej wtyczki). Efekt jego pracy wygląda następująco:

Ponadto podczas usuwania rekordu z bazy pyta, czy sam plik ma zostać usunięty, czy pozostawiony. Ale pod względem całości jego właściwości podobał mi się mniej niż poprzedni - przynajmniej dlatego, że plik trzeba wstawić osobno poza postem, jednak nie ma to żadnych szczególnych wad - wybór między nimi jest kwestią gust, ten pierwszy ma więcej opcji, bardziej szczegółowe statystyki, drugi - nieco wygodniejsze (choć uboższe) statystyki i mniej możliwości.

Do akcji wkroczyła ciężka artyleria. Wtyczka jest w większości zrusyfikowana i jest tylko menedżerem pobierania, a nie licznikiem. Możliwe jest ograniczenie prędkości pobierania i liczby pobrań na osobę dziennie.

Powiedziałbym jednak, że niektóre funkcje tej wtyczki są niepotrzebne, a te potrzebne według statystyk nie wystarczą. Istnieje wiele ustawień, widżety pobierania, złożony system synchronizacji, system wyświetlania tagów mp3, wyświetlania plików flv, organizowania przechowywania mini-plików, wyświetlania wszystkich plików wymienionych na stronie na początku lub na końcu postu, itd itd.

Nie chcę nawet pokazywać zrzutów ekranu wszystkich ustawień.

Jednak przy tym wszystkim, aby pięknie wyświetlić szablon w poście, musiałem edytować znajdujący się w nim plik stylów, zmniejszając szerokość. Dodatkowo, aby wyświetlić domyślny szablon, należy po wstawieniu krótkiego kodu użyć przycisku

Wpisz ręcznie nazwę szablonu do kodu. Jakiś konflikt z rosyjską nazwą. Nawiasem mówiąc, wygląda to tak (podam trzy opcje szablonów):

To się liczy - przez talię pniaków (no cóż, albo nie liczy więcej niż jedno pobranie z adresu IP, nie wiem). Statystyki są nieco mniej niż całkowicie podobne do wtyczki omówionej powyżej.

Generalnie odniosłem wrażenie, że jest zdrowy, ale głupi. Nadaje się do pewnego rodzaju przechowywania plików, ale nawet wtedy tylko w połączeniu z inną wtyczką. Spojrzałem na to i zdjąłem.

Szczerze mówiąc, kiedy przeczytałam jego opis, pomyślałam – to jest to, czego potrzebuję!

Licznik, ochrona hasłem, krótki kod z możliwością wstawienia, przycisk edytowalny itp.

A wygląda to tak (przytoczył dwa trzy szablony użyte jednocześnie):

Aby jednak dodać plik, najpierw trzeba dodać jego licznik we wtyczkach. Po drugie, praktycznie nie ma żadnych statystyk.

Po trzecie, nie można ustawić wyjścia tak, aby wyświetlało rozmiar pliku dla użytkownika. Po czwarte, nie ma ograniczenia prędkości pobierania, plik jest jedynie chroniony hasłem. Szablonów nie można edytować. Oraz duży napis oferujący możliwość zakupu wersji premium za 45 dolców. Cóż, ogólnie rzecz biorąc, rozumiesz. Wszystko pyszne jest za pieniądze. Dezaktywowano go i zburzono. I piękne ramki, guziki itp. - Sam zapiszę to w stylach, kiedy będę chciał.

Streszczenie

Zainstaluj w standardowy sposób (kopiując do katalogu wp-content/plugins/download-monitor/, pozwól mu się zaktualizować, zamień wszystkie ikony na ikony z archiwum w katalogu wp-content/plugins/download-monitor/img/filetype_icons/ i aktywuj.

W przyszłości, jeśli się za to zabiorę, myślę o umieszczeniu linków w ładnych ramkach za pomocą css3, o czym najprawdopodobniej też napiszę. Czekać na dalsze informacje :)

Aktualizacja Teraz autor przerobił wtyczkę WordPress Download Monitor i stworzył zupełnie inną wersję niż oryginalna. Testowałem, ale podobało mi się znacznie mniej, bo szablon formularza tego, jak będzie wyglądał link do pobrania, nie jest już tak łatwy do edycji. Autor uznał, że wystarczą gotowe, preinstalowane widoki. Na przykład, jeśli w menu pobierania, następnie w ustawieniach, wybierz żądany widok spośród sześciu gotowych, kliknij Zapisz

Następnie, wybierając drugą opcję, otrzymasz coś takiego:

Te. w nowej wersji nie będzie możliwe użycie linii, którą podałem w opisie, ale będziesz musiał napisać specjalny plik php, który opisywałby ten szablon wyjściowy. Ale najsmutniejsze nie jest nawet to - ale fakt, że ten plik php, jeśli zostanie umieszczony w katalogu z wtyczką, będzie nadpisywany przy każdej aktualizacji wtyczki. A jeśli umieścisz go w katalogu z motywem, to po zmianie motywu (choć oczywiście zdarza się to znacznie rzadziej). Ale w każdym razie pisanie tego jest dość pracochłonnym zajęciem i na razie nie mam ochoty tego robić. Zatem jedynym plusem zaktualizowanej wtyczki jest to

Już dawno nie było żadnych lekcji o PHP i MySQL. Dzisiaj stworzymy prosty, ale skuteczny licznik pobrań.

Każdy plik będzie miał wpis w wierszu tabeli bazy danych. Liczba pobrań plików będzie przechowywana w tej samej tabeli. PHP zaktualizuje bazę danych MySQL i przekieruje użytkownika do wymaganego pliku.

Aby śledzić liczbę pobrań dowolnego pliku, musisz umieścić go w folderze plików i uzyskać do niego dostęp za pomocą specjalnego adresu URL.

Krok 1 – XHTML

Pierwszym krokiem jest utworzenie znaczników dla naszego skryptu. To bardzo proste - mamy menedżera plików div, który zawiera nieuporządkowaną listę, w której każdy element listy odpowiada za plik.

Pliki, których pobranie należy śledzić, umieszczane są w folderze plików w folderze głównym skryptu. Następnie PHP przegląda wszystkie pliki i dodaje każdy z nich jako element listy (li) do listy nieuporządkowanej.

demo.php


  • pobierz photoShoot-1.0.zip 0

Zauważ, że atrybut href linków przekazuje nazwę pliku jako parametr do download.php. Tutaj odbywa się śledzenie liczby pobrań.

Nie musisz wyświetlać wszystkiego w ten sam sposób - możesz po prostu umieścić link do download.php na swoich stronach, a żadne pliki do pobrania nie zostaną zrealizowane.

Krok 2 – CSS

Po zaznaczeniu zacznijmy od projektu. Poniższe reguły CSS odnoszą się do elementu div menedżera plików przy użyciu identyfikatora (symbol #), ponieważ pojawia się on tylko 1 raz na stronie, a do innych elementów według nazw klas.

style.css

#file-manager( kolor tła: #EEE; obramowanie: 1px solid #DDD; margines: 50px auto; dopełnienie: 10px; szerokość: 400px; )
ul.manager li(tło:url("img/bg_gradient.gif") powtórz-x na środku na dole #F5F5F5; obramowanie:1px solid #DDD; kolor górnego obramowania:#FFF; styl listy:brak; pozycja:względna ; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* Po najechaniu myszką na ikonę pokaż zielony tekst pobierania: */ display:block; ) span . download-label( kolor tła: #64B126; obramowanie: 1px solid #4E9416; kolor:biały; wyświetlacz: brak; rozmiar czcionki: 10 pikseli; dopełnienie: 2 piksele 4 piksele; pozycja: bezwzględna; prawa: 8 pikseli; dekoracja tekstu: brak ;text-shadow:0 0 1px #315D0D; top:6px; /* CSS3 Zaokrąglone rogi */
-moz-border-promień: 3px; -webkit-border-promień: 3px; promień obramowania: 3px; ) span.download-count( kolor: #999; rozmiar czcionki: 10 pikseli; dopełnienie: 3 piksele 5 pikseli; pozycja: bezwzględna; dekoracja tekstu: brak; )

Krok 3 – PHP

Jak powiedziałem wcześniej, PHP szuka plików w folderze plików i wyświetla każdy plik jako element listy nieuporządkowanej. Przyjrzyjmy się, jak to się dzieje

demo.php - Górna część

// Raportowanie błędów: error_reporting(E_ALL^E_NOTICE); //: wymagaj „connect.php”; $rozszerzenie=""; $tablica_plików = tablica(); /* Otwórz folder i przejrzyj wszystkie pliki: */ $dir_handle = @opendir($katalog) or die("Wystąpił błąd w katalogu plików!"); while ($file = readdir($dir_handle)) ( /* Pomiń pliki systemowe: */ if($file(0)==".")continue; /* end() wyświetla ostatni element tablicy wygenerowanej przez funkcja eksploduj(): */ $extension = strtolower(end(explode(".,$file))); /* Pomiń pliki php: */ if($extension == "php") kontynuuj; $files_array=$plik ; ) /* Sortuj pliki w kolejności alfabetycznej */ sort($files_array,SORT_STRING); $file_downloads=tablica(); $result = mysql_query("WYBIERZ * Z menedżera pobierania"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* Klucz tablicy $file_downloads będzie nazwą pliku i będzie zawierał liczbę pobrań: */ $file_downloads[$row ["nazwa pliku"] ]=$wiersz["pobrane"]; )

Zwróć uwagę, jak wybieramy wszystkie wiersze z tabeli download_manager za pomocą mysql_query(), a później dodajemy je do tablicy $file_downloads z nazwą pliku jako kluczem do liczby pobrań. Zatem w dalszej części kodu możemy napisać $file_downloads["archive.zip"] i wyświetlić liczbę pobrań.

Poniżej możesz zobaczyć kod generujący elementy listy:

demo.php - Środkowa cześć

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

  • „.$wart.” „.(int)$file_downloads[$val].” pobierać
  • "; }

    Wszystko odbywa się po prostu za pomocą pętli foreach w tablicy $files_array. Następnie wszystko jest wyprowadzane za pomocą echo.

    Przyjrzyjmy się teraz bliżej, jak działa śledzenie plików.

    pobierz.php

    // Sprawdzanie błędów: error_reporting(E_ALL^E_NOTICE); // Dołącz plik połączenia do bazy danych: require("connect.php"); if(!$_GET["plik"]) error("Brakujący parametr!"); if($_GET["plik"](0)==".") error("Zły plik!"); if(file_exists($directory."/".$_GET["plik"])) ( /* Jeśli odwiedzający nie jest botem wyszukiwania, liczymy pobranie: */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET nazwa pliku =".mysql_real_escape_string($_GET["plik"])."" PRZY ZDUPLIKOWANEJ AKTUALIZACJI KLUCZY downloads=downloads+1"); header("Lokalizacja: ".$katalog."/".$_GET[ "plik"] ); wyjście; ) else error("Ten plik nie istnieje!"); /* funkcje pomocnicze: */ funkcja error($str) ( die($str); ) funkcja is_bot() ( /* Ta funkcja sprawdza obecność robota */ $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", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz", „ Baiduspider”, „Feedfetcher-Google”, „TechnoratiSnoop”, „Rankivabot”, „Mediapartners-Google”, „Sogou web spider”, „WebAlta Crawler”, „TweetmemeBot”, „Butterfly”, „Twitturls”, „Ja. dium ",Twiceler"); foreach($botlist as $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) return true; // Jest botem ) return false; / / Nie jestem botem)

    Ważne jest, aby sprawdzić, czy odwiedzający jest człowiekiem, czy robotem wyszukiwarki. Roboty na pewno są dobre, ale nie pozwólmy, żeby zniekształcały nasze statystyki. Dlatego wiersz w bazie danych jest aktualizowany dopiero po sprawdzeniu funkcji is_bot().

    Krok 4 – MySQL

    Jak zauważyliśmy w poprzednim kroku, liczba pobrań jest zapisywana jako wiersz w tabeli download_manager. Najpierw wyjaśnijmy, jak działa to żądanie:

    pobierz.php

    WSTAW DO USTAWIENIA menedżera pobierania nazwa_pliku="nazwa pliku.doc" W PRZYPADKU ZDUplikowanej AKTUALIZACJI KLUCZY downloads=downloads+1

    Mówi MySQL, aby wstawił nowy wiersz do tabeli download_manager i ustawił pole nazwy pliku wiersza na wartość pliku wywoływanego do pobrania. Jednak pole nazwy pliku jest oznaczone jako unikalny indeks w tabeli. Oznacza to, że każdy wiersz można wstawić tylko raz, w przeciwnym razie wystąpi błąd zduplikowanego klucza.

    W tym miejscu zadziała druga część zapytania - ON DUPLICATE KEY UPDATE powie MySQL, aby dodał go do kolumny pobierania, jeśli plik już istnieje w bazie danych.

    Dzięki temu nowe pliki zostaną automatycznie dodane do bazy danych przy pierwszym pobraniu.

    Krok 5 – jQuery

    Aby śledzić w czasie rzeczywistym, dobrze byłoby po każdym pobraniu aktualizować licznik obok nazwy pliku.

    Zrobimy to za pomocą jQuery:

    skrypt.js

    $(document).ready(function())( /* Kod jest wykonywany po załadowaniu strony */ $("ul.manager a").click(function())( var countSpan = $(.download -count",this); countSpan.text(parseInt(countSpan.text())+1); )); ));

    Po prostu przypisujemy moduł obsługi kliknięć do linków prowadzących do plików i przy każdym kliknięciu dodajemy wartość.

    Krok 6 – htaccess

    Jest jeszcze jedna rzecz, którą należy zrobić. Download.php przekierowuje użytkownika do żądanego pliku, który został przekazany jako parametr. Być może jednak zauważyłeś, że przeglądarki próbują otwierać niektóre typy plików bezpośrednio. Musimy rozpocząć ich ładowanie. Można to zrobić za pomocą kilku wierszy w pliku .htacess, który znajduje się w folderze plików.

    Aplikacja ForceType/strumień oktetu

    Teraz nasz licznik jest całkowicie gotowy!

    Wniosek

    Aby demo zadziałało należy odtworzyć tabelę download_manager w bazie danych MySQL. Wymagany kod SQL można znaleźć w źródłach.

    Następnie dodaj swoje dane do połączenia z bazą danych w pliku konfiguracji.php.

    Postanowiłem sprawdzić, ile razy jeden z moich skryptów został pobrany z serwisu. Aby to zrobić, postanowiłem napisać licznik pobrań plików dla witryny. W Internecie istnieje wiele implementacji tego problemu, ale mimo to sprawdź moje rozwiązanie.

    Logika stojąca za licznikiem pobrań jest dość prosta. Do jego wdrożenia użyjemy mojego ulubionego ajaxu. Do przycisku dołączamy w momencie zdarzenia clik wywołanie poprzez ajax pliku php licznika. W php żądanie ajax jest przetwarzane, a całkowita liczba wyścigów jest zapisywana w pliku tekstowym. Po pomyślnym nagraniu zwracana jest odpowiedź z licznikiem całkowitego pobrania i użytkownik zostaje przekierowany do linku umożliwiającego pobranie pliku (plik zostaje pobrany). To taka prosta logika. Teraz zacznijmy ją wdrażać. Utwórzmy wcześniej plik test.zip do pobrania. Zakodujmy przycisk i pokażmy licznik wyścigów.

    Pobierz plik Liczba wyścigów:

    Stworzyliśmy przycisk z id="btnSend" , licznik wyświetlimy w zakresie z id="countView" , a link do pobranego pliku zapiszemy w atrybucie data-download

    Teraz dołączmy moduł obsługi kliknięcia do przycisku. Tutaj będziemy już używać js i jquery. Możesz przeczytać o tym, jak zaimplementować clik za pomocą jquery. Ale przed zainstalowaniem modułu obsługi kliknięć uzyskamy dostęp za pomocą ajaxu do pliku count.php, który będzie zawierał całą pracę licznika. Możesz przeczytać więcej o transferze danych ajax. Jest to konieczne, aby wyprowadzić wynik z pliku, w którym licznik zapisuje liczbę już wykonanych pobrań i wyświetlić je w zakresie z id="countView"

    /*pobierz aktualną liczbę pobrań*/ $(document).ready(function())( //zabroń buforowania żądania ajax //w przeciwnym razie licznik nie powiedzie się $.ajaxSetup((cache: false)); var html ; $.ajax (( //jak będziemy przesyłać dane typ: „GET”, //gdzie będziemy przesyłać url: „count.php”, //jakie dane będziemy przesyłać dane: (flaga: 2), // zdarzenie po otrzymaniu odpowiedzi od count.php Success :function(data)( html=data; //wyświetl aktualną liczbę pobrań $("#countView").html(html); ) )); /*dołącz wydarzenie do przycisku pobierania pliku*/ var clickevent=false; //kliknij flagę testową //kliknij moduł obsługi $("#btnSend").click(function())( if(!clickevent)( $.ajax(( //how będziemy przesyłać dane typu: „GET”, //gdzie będziemy je przesyłać url: „count.php”, //jakie dane przekazujemy dane: (flaga: 1), //zdarzenie przed wysłaniem ajax beforeSend:function( ))( //jeśli przycisk został kliknięty to true clickevent=true; ), //zdarzenie po otrzymaniu odpowiedzi, //odbiór danych w danych sukces: funkcja(dane)( //po wykonaniu akcji pozwalamy na to ponownie //aby przetworzyć kliknięcie przycisku clickevent=false; html=dane; //wyświetl nowy licznik $("#countView").html(html); //pobierz link z data-download //przekieruj do linku do pobrania, pobierz plik window.location.href = $("#btnSend").data("download"); ) )); ) return false;//zabroń przetwarzania zdarzenia kliknięcia )); ));

    Aby zapobiec ponownemu przypadkowemu naciśnięciu przycisku przesyłania, wprowadziłem do skryptu flagę zdarzenia kliknięcia. Dopóki odpowiedź z count.php nie powróci ze zaktualizowanymi danymi licznika, kliknięcie przycisku będzie zabronione. Myślę, że działanie kodu po kliknięciu w przycisk jest mniej więcej jasne. Po kliknięciu przycisku pobierania dane zostają przesłane do pliku count.php, gdzie są przetwarzane i zwracane są zaktualizowane dane licznikowe, następuje przekierowanie do linku pobierania i odpowiednio plik zostaje pobrany.

    Przyjrzyjmy się teraz sercu naszego skryptu, a mianowicie plikowi count.php.

    Funkcja clearInt ($data)( //skróć datę do liczby nieujemnej return abs((int)$date); ) if($_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest") ( //sprawdź, która flaga została otrzymany if (clearInt($_GET["flag"]==1)) ( //otwiera plik do odczytu $f=fopen("mycount.txt","a+"); //zamyka dostęp do pliku z innych programy flock($ f,LOCK_EX); //pobierz wartość licznika z pliku $count=fread($f,100); //dodaj licznik @$count++; //nadpisz plik ftruncate($f,0) ; //zapisz nowy licznik odczytujący fwrite ($f,$count); //zamknij plik fclose($f); //zwróć wartość echo $count; ) if(clearInt($_GET["flaga"]= =2)) ( $c=fopen(" mycount.txt","a+"); flock($c,LOCK_EX); $festc=fread($c,100); fclose($c); //zwróć wartość echo $festc; ) )

    Tutaj myślę to samo, wszystko jest proste. Jeśli pojawi się flaga 1, przepisujemy licznik. Jeśli pojawi się flaga 2, po prostu zwracane są dane dotyczące liczby pobrań. Myślę, że wszystko inne jest jasne z komentarzy w kodzie.

    Licznik pobrań Joomla

    Postanowiłem dołączyć podobny licznik do jednego z moich projektów Joomla. Teoretycznie trzeba oczywiście napisać albo osobny moduł, albo zintegrować kod ze sterownikiem komponentu com content, tak aby dane licznikowe były zapisywane nie do pliku, a do bazy danych i dla każdego artykułu z osobna. Ale nie ma czasu na taki rozwój i rozwiązałem problem prościej. Potrzebowałem licznika na jedną stronę. Wziąłem plik count.php i przeniosłem go do szablonu Joomla, który jest aktualnie podłączony (w katalogu głównym szablonów witryny/twój_szablon). Nie zapomnij wstawić kodu zdefiniowanego („_JEXEC”) lub umrzeć na samej górze count.php. (to dotyczy Joomli). Do tworzonej przez nas strony wstawiamy przycisk pobierania, a kod js można również osadzić na stronie lub podłączyć jako osobny plik. Na przykład mam go jako osobny plik (znajduje się w folderze js szablonu). W samym szablonie, w nagłówku, połączenie następuje poprzez kod