Инсталирање бројач за преземање - преглед на приклучоци за WordPress. Креирање бројач за преземање датотеки со помош на PHP и MySQL Зачувување текст и графички датотеки

На многу сајтови можете да видите врски за преземање датотеки. На пример, производствените компании објавуваат упатства за одреден производ на нивните официјални страници. Покрај тоа, програмерите софтверТие исто така нудат бесплатно преземање на нивната програма, со што му овозможуваат на корисникот да се запознае со нејзините функции и функционирање.

Кога правите датотека достапна за бесплатно преземање, важно е да знаете колку пати е преземена. Ова е неопходно, пред сè, за статистика, чија анализа ќе помогне да се утврди корисноста на информациите за крајниот корисник.

Како да поставите бројач за преземање на страницата на WordPress?

Не постои начин да се видат овие статистики меѓу алатките на WordPress. Затоа, ќе користиме решение од трета страна - додатокот Kama Click Counter.

Приклучок Kama Click Counter

Бесплатниот додаток Kama Click Counter ги обезбедува сите потребни алатки за прецизно броење на бројот на преземања на одредена датотека. Значи, прво, треба да се инсталира и активира. На пример, на страницата за објавување ќе прикажеме врска до датотека pdf, за која ќе го броиме бројот на преземања. Треба да се напомене дека датотеките се поставуваат на страницата користејќи стандардни методиМедиумски библиотеки на WordPress (Медиуми -> Додај ново). Следно, треба да ја отворите објавата или страницата за уредување. Во делот за содржина, треба да го поставите курсорот на местото каде што ќе биде поставена врската до датотеката и да кликнете на копчето што се појавува во лентата со алатки за визуелен уредувач.

Во скокачки прозорец, приклучокот ќе побара од вас да ја изберете претходно преземената датотека. За да го направите ова, притиснете го копчето со иконата за лупа.

Во медиумската библиотека треба да изберете потребна датотекаи кликнете на копчето Избери датотека.

Како резултат на тоа, специјален краток код ќе биде вметнат во содржината на објавата или страницата, која служи за прикажување на врска за преземање на датотеката.

По ажурирањето на материјалот (копче за ажурирање), можете да отидете на страницата за да го видите.

Приклучокот исто така може да прикажува статистика за преземање во корисничкиот дел од страницата - во графичка контрола. Забележете дека стандардно приклучокот не прикажува конкретни бројки во графичката контрола за тоа што е преземено и колку пати. Се прикажува само список на најчесто преземаните датотеки. За да го направите ова, одете во административниот дел Изглед -> Додатоци и повлечете го додатокот KSS:Top Downloads до саканата локација во страничната лента.

Можете да видите дека виџетот има неколку достапни опции кои ви дозволуваат да ја менувате листата.

Овде можете да ги поставите следните основни параметри:

  • наслов на графичка контрола (Поле за наслов);
  • број на излезни датотеки во списокот (колку врски да се прикажат?);
  • подредување на резултатите (како да го сортирате резултатот?);
  • поставување изгледшаблон (шаблон и блокови на шаблони CSS).

Посебна карактеристика на приклучокот е неговото флексибилно прилагодување на шаблоните. Овде можете да ги користите таканаречените ознаки, на местото на кои ќе се прикажат оваа или онаа информација.

Откако ќе се завршат и зачуваат сите поставки за виџетот (копче Зачувај), може да го видите резултатот на веб-локацијата.

Веќе долго време нема лекции за PHP и MySQL. Денес ќе создадеме едноставен, но ефективен бројач за преземање.

Секоја датотека ќе има запис во редот на табелата со база на податоци. Бројот на преземања на датотеки ќе биде зачуван во истата табела. PHP ќе ја ажурира базата на податоци MySQL и ќе го пренасочи корисникот кон потребна датотека.

За да го следите бројот на преземања на која било датотека, треба да ја ставите во папката со датотеки и да користите специјален URL за да пристапите до неа.

Чекор 1 - XHTML

Првиот чекор е да се создаде ознака за нашата скрипта. Многу е едноставно - имаме div-датотека-менаџер кој содржи неуреден список, во кој секој елемент од листата е одговорен за датотека.

Датотеките чии преземања треба да се следат се ставаат во папката датотеки во основната папка на скриптата. PHP потоа поминува низ сите датотеки и ја додава секоја како елемент од списокот (li) на неуредената листа.

демо.php


  • преземање photoShoot-1.0.zip 0

Забележете дека атрибутот href на врските го пренесува името на датотеката како параметар за преземање.php. Ова е местото каде што се следи бројот на преземања.

Не мора да прикажувате сè на ист начин - можете едноставно да поврзете до download.php на вашите страници и сите преземања нема да поминат.

Чекор 2 - CSS

По обележувањето, да започнеме со дизајнот. Правилата на CSS подолу се однесуваат на div-управувачот со датотеки користејќи id (симбол #), бидејќи се појавува само 1 пат на страницата и на други елементи по имиња на класи.

стилови.css

#датотека-менаџер (боја на позадина:#EEE; раб: 1px солидна #DDD; маргина: 50px автоматско; полнење:10px; ширина:400px; )
ul.manager li( background:url("img/bg_gradient.gif") повторува-x централно дно #F5F5F5; граница: 1px солидна #DDD; граница-гор-боја:#FFF; листа-стил: нема; позиција: релативно . . преземање-етикета (боја на позадина:#64B126; раб: 1px солидна #4E9416; боја: бела; екран: нема; големина на фонтот: 10 px; полнење: 2 px 4 px; позиција: апсолутна; десно: 8 px; декорација на текст: ниеден ; text-shadow:0 0 1px #315D0D; top:6px; /* CSS3 Заоблени агли */
-moz-граница-радиус: 3px; -webkit-border-radius:3px; граница-радиус: 3px; ) span.download-count (боја:#999; големина на фонтот:10px; пополнување:3px 5px; позиција:апсолутна; текст-декорација:нема; )

Чекор 3 - PHP

Како што реков претходно, PHP бара датотеки во папката со датотеки и ја прикажува секоја датотека како ставка од списокот во неуреден список. Ајде да погледнеме како се случува ова

demo.php - горниот дел

// Пријавување на грешка: error_reporting (E_ALL^E_NOTICE); // : бара "connect.php"; $extension=""; $files_array = низа(); /* Отворете ја папката и поминете низ сите датотеки: */ $dir_handle = @opendir($директориум) или die("Има грешка со директориумот со датотеки!"); додека ($file = readdir($dir_handle)) ( /* Прескокни системски датотеки: */ if($file(0)==".") продолжи; /* end() го прикажува последниот елемент од низата генериран од функцијата explode(): */ $extension = strtolower(end(explode(".",$file))); /* Прескокни php датотеки: */ if($extension == "php") продолжи; $files_array=$датотека; ) /* Подреди ги датотеките по азбучен ред */ sort($files_array,SORT_STRING); $file_downloads=array(); $result = mysql_query ("SELECT * FROM download_manager"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* Клучот на низата $file_downloads ќе биде името на датотеката и ќе го содржи бројот на преземања: */ $file_downloads[$row ["име на датотека"] ]=$ред["преземања"];)

Забележете како ги избираме сите редови од табелата download_manager користејќи mysql_query(), а подоцна ги додаваме во низата $file_downloads со името на датотеката како клуч за бројот на преземања. Така, понатаму во кодот, можеме да напишеме $file_downloads["archive.zip"] и да го прикажеме бројот на преземања.

Подолу можете да го видите кодот што ги генерира ставките на списокот:

demo.php - среден дел

Foreach($files_array како $key=>$val) (echo "

  • ".$val." ".(int)$file_downloads[$val]." преземете
  • "; }

    Сè е направено едноставно со користење на јамка foreach на низата $files_array. После ова, сè излегува со помош на ехо.

    Сега да разгледаме подетално како функционира следењето на датотеки.

    преземете.php

    // Проверка на грешка : error_reporting (E_ALL^E_NOTICE); // Вклучете ја датотеката за поврзување во DB: бара ("connect.php"); if(!$_GET["датотека"]) грешка ("Недостасува параметар!"); if($_GET["датотека"](0)==".") грешка ("Погрешна датотека!"); if(file_exists($directory."/".$_GET["file"])) ( /* Ако посетителот не е бот за пребарување, го броиме преземањето: */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET име на датотека ="".mysql_real_escape_string($_GET["датотека"])."" НА ДУПЛИКАТНО АЖУРИРАЊЕ НА КЛУЧОТ преземања=симнувања+1"); header("Локација: ".$директориум."/".$_GET[ "датотека"]); излез; ) else error ("Оваа датотека прави не постои!"); /* помошни функции: */ грешка во функција ($str) ( die($str); ) функција is_bot() ( /* Оваа функција проверува дали има робот */ $botlist = низа("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" , "Me.dium", "Twiceler"); foreach($botlist како $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) врати точно; // Дали е бот ) врати лажно; // Не е бот)

    Важно е да проверите дали вашиот посетител е човек или робот за пребарувач. Роботите се секако добри, но да не дозволиме да ја искривуваат нашата статистика. Ова е причината зошто редот во базата на податоци се ажурира само по проверката is_bot().

    Чекор 4 - MySQL

    Како што забележавме во претходниот чекор, бројот на преземања е зачуван како ред во табелата за преземање_менаџер. Прво, да објасниме како функционира ова барање:

    преземете.php

    INSERT INTO download_manager SET filename="filename.doc" ON DUPLICATE KEY Update преземања=преземања+1

    Му кажува на MySQL да вметне нов ред во табелата за преземање_менаџер и да го постави полето за името на датотеката на редот на вредноста на датотеката повикана за преземање. Сепак, полето за име на датотека е означено како единствен индекс во табелата. Ова значи дека секој ред може да се вметне само еднаш, во спротивно ќе се појави грешка со дупликат клуч.

    Ова е местото каде што вториот дел од барањето ќе работи - ON DUPLICATE KEY UPDATE ќе му каже на MySQL да додаде еден во колоната за преземања ако датотеката веќе постои во базата на податоци.

    На овој начин, новите датотеки автоматски ќе се додаваат во базата на податоци при првото преземање.

    Чекор 5 - jQuery

    За да направите следење во реално време, би било добро да го ажурирате бројачот до името на датотеката по секое преземање.

    Ќе го направиме ова користејќи jQuery:

    скрипта.js

    $(document).ready(function())( /* Кодот се извршува откако ќе се вчита страницата */ $("ul.manager a").click(function())( var countSpan = $(".преземи -count",this) ;countSpan.text(parseInt(countSpan.text())+1);));));

    Едноставно доделуваме управувач за кликнување на врските што водат до датотеките и на секој клик додаваме вредност.

    Чекор 6 - htaccess

    Има уште една работа што треба да се направи. Download.php го пренасочува корисникот до бараната датотека што е предадена како параметар. Сепак, можеби сте забележале дека прелистувачите се обидуваат директно да отворат некои типови датотеки. Треба да го иницираме нивното вчитување. Ова може да се направи со неколку линии во датотеката .htacess, која се наоѓа во папката датотеки.

    ForceType апликација/октет-стрим

    Сега нашиот бројач е целосно подготвен!

    Заклучок

    За да може демото да работи, треба повторно да ја креирате табелата download_manager во базата на податоци MySQL. Потребниот SQL код можете да го најдете во изворите.

    По ова, додадете ги вашите податоци за поврзување со базата на податоци во датотеката configuration.php.

    // Отстрани конверзија на режимот на магични наводници $_POST["содржина"] = додава црти ($_POST["содржина"]);

    // Препишете ја содржината на датотеката file_put_contents($_POST["име на датотека"], "$_POST");

    4.9. Бројач за преземање датотеки

    Работата на сите бројачи за преземање датотеки се заснова на фактот дека на посетителот не му е дадена самата датотека како врска за преземање, туку врска до скрипта што го зема предвид преземањето и ја испраќа датотеката до прелистувачот на корисникот.

    Ќе го изградиме нашиот бројач на таков начин што врските за преземање датотека се врски до тековната страница, пренесувајќи го името на датотеката како параметар, на пример, index.php?down=archive.zip . Скриптата ќе провери дали е предаден параметарот надолу, и ако е така, ќе го најави преземањето на архивата во filecount.txt. Кога страницата ќе се вчита повторно, вредностите на бројачот за секоја архива ќе се извлечат од датотеката за излез во прозорецот на прелистувачот. Датотеката ќе биде префрлена за преземање со испраќање на заглавието на HTTP Локација до посетителот, означувајќи ја патеката до преземената архива. Скриптата за бројач за преземање датотеки може да изгледа како онаа прикажана во Списокот 4.31.

    Оглас 4.31. Бројач за преземање датотеки

    // Поставете го нивото на справување со грешки error_reporting (E_ALL & ~E_NOTICE);

    // Регистрирајте имиња на датотеки во низа

    $file_name = низа ("archive1.zip", "archive2.zip", "archive3.zip");

    // Име на датотеката каде што се чуваат статистиките $countname = "filecount.txt";

    // Ако датотеката постои,

    // прочитајте ја тековната статистика во низа if(file_exists($countname))

    // Добијте ја содржината на бројачот

    $содржина = file_get_contents ($countname);

    // Отпакувајте ја низата

    $count = unserialize($content);

    // Ако не постои таква датотека, креирајте ја,

    // и ресетирајте ја статистиката

    // Пополнете ја низата $count со нула вредности за Foreach ($file_name како $file)

    $count[$датотека] = 0;

    // Спакувајте ја низата и ставете ја во бројачот file_put_contents($countname, serialize($count));

    // Проверете дали вредноста на параметарот надолу е предадена

    // преку методот GET

    if(isset($_GET["долу"]))

    // Проверете дали е вклучена вредноста на параметарот $_GET["долу"]

    // во низата $file_name

    if(in_array($_GET["долу"],$file_name))

    // Регистрирајте го фактот дека оваа датотека е преземена

    //Зголемете ја вредноста на бројачот со копчето

    // $_GET["долу"] по еден

    $count[$_GET["долу"]]++;

    // Презапишете ја датотеката на бројачот file_put_contents($countname, serialize($count));

    echo „Датотеката $file беше вчитана „.intval($count[$file]).“ пати
    ";

    Имињата на преземените датотеки се зачувани во низата $file_name; додавањето нова архива резултира со нејзина автоматска регистрација во системот. Претходната регистрација во низата е неопходна од неколку причини. Прво, кога прифаќате име на низа преку параметарот надолу, треба да проверите дали е меѓу датотеките што се дозволени да се вчитаат. Второ, многу поудобно е да се обработуваат имиња на датотеки во низа. Така, низата $count, која го складира бројот на преземања на датотеки, автоматски се гради врз основа на низата датотеки регистрирани во системот,

    Удобно е да се спакува низа во низа со помош на функцијата serialize(), а потоа да се отпакува назад во низа користејќи ја функцијата unserialize().

    ЗАБЕЛЕШКА

    Важно е да се запамети дека сите HTTP заглавија мора да се испратат пред да се испрати главната содржина, инаку нема да бидат испратени и PHP толкувачот ќе издаде предупредување „Предупредување: Не можам да ги менувам информациите за заглавието - заглавијата веќе се испратени од“

    (Предупредување: Не е можно да се менуваат информациите за заглавието - заглавијата се веќе испратени). Ова е диктирано од протоколот HTTP: прво се испраќаат заглавијата, потоа содржината на документот, така што секој излез во прозорецот на прелистувачот се перцепира како крај на испраќањето на заглавијата и почеток на испраќање на телото на документот. Ако излезот во прозорецот на прелистувачот е неизбежен пред да се испратат заглавијата, мора да прибегнете кон функциите за контрола на излезот, ставајќи го целиот излез во бафер и испраќајќи го на крајот од скриптата.

    Како што можете да видите во списокот 4.31, скриптата се справува со ситуацијата при првото извршување каде што недостасува датотеката filecount.txt - таа автоматски се креира при вчитувањето на првата страница, активирана од нула вредности за секоја датотека во низата $file_name. Резултатот од скриптата од списокот 4.31 може да се види на сл. 4.4.

    Ориз. 4.4. Резултатот од бројачот на датотеки

    4.10. Зачувување текстуални и графички датотеки

    Следењето на врска до текстуални или HTML-датотеки резултира со нивно прикажување во прозорецот на прелистувачот, што не е секогаш погодно, особено ако датотеката е наменета да се преземе. Истата судбина ги чека и графичките датотеки и, воопшто, сите датотеки што може да ги прикаже прелистувачот. Прелистувачот на посетителот „учи“ за содржината на датотеката од серверот, бидејќи секоја датотека е придружена со HTTP заглавија кои го информираат клиентот за содржината, големината на преземената датотека, потребата да се постави колаче итн. типот на датотеката не може да се одреди, тој се испраќа едноставно како бинарен поток.

    Можете да го потиснете ова однесување со испраќање на заглавијата на HTTP прикажани во Списокот 4.32.

    Оглас 4.32. Скрипта што ви овозможува да зачувувате текстуални и графички датотеки

    $filename = основно име ($_GET["долу"]); header ("Содржина-диспозиција: прилог; име на датотека=$име на датотека"); заглавие ("Тип на содржина: апликација/октет-стрим"); header("Должина на содржината: ".filesize($_GET["долу"]));

    echo file_get_contents ($_GET["долу"]); ?>

    Скриптата во списокот 4.32 зема име на датотека како параметар GET, на пример,

    index.php?down=filetext.txt. Функцијата basename() го враќа името

    датотека (во случај параметарот GET надолу да ја содржи патеката до датотеката). Заглавието Content-Disposition HTTP го одредува името на датотеката што треба да се зачува, што се одредува со атрибутот име на датотека. Во горната скрипта, параметарот за името на датотеката е ист како и името на датотеката што се испраќа, меѓутоа, произволно име може да се пренесе како параметар за името на датотеката. Заглавието HTTP од типот на содржина покажува дека податоците што се пренесуваат се бинарни и не треба да се толкуваат од прелистувачот. Заглавието HTTP со должина на содржината ја пренесува големината на датотеката на клиентот. Последната линија ја прикажува содржината на датотеката помината низ параметарот $_GET["долу"], кои се преземени со помош на функцијата file_get_contents(). Резултатот од скриптата од списокот 4.32 е прикажан на сл. 4.5.

    ЗАБЕЛЕШКА

    Важно е по излегувањето на содржината на датотеката, ништо друго да не се емитува во потокот: ниту со конструкцијата на ехо, ниту со директен излез - инаку сè ќе биде додадено на крајот на датотеката. Ова важи и за можните празни места и за новите линии по завршувањето на тагот ?>.

    Ориз. 4.5. Дијалог за преземање датотека

    Следното прашање за кое неодамна се заинтересирав при поставувањето на мојот едноставен авторски проект беше прашањето како да се пресмета бројот на преземања на одредена датотека објавена овде. Најлогично беше да се претпостави дека за ова е потребен друг додаток, некој вид менаџер за преземање или што е поедноставно - бројач за преземање. Откако го пребарував Интернетот, се покажа дека, како и обично, има вагон и мала количка од овие приклучоци. Но, повторно, нема прегледи за нив. Апсолутно не е јасно што да изберам, и како и обично, морав да тестирам сè на себе. И врз основа на резултатите од тестирањето, овој рецензент е создаден. Беше потребно долго време да се напише, а целта не беше темелно да се тестираат сите приклучоци дадени со целосен преглед на нивните поставки, така што нема да најдете детални слики од екранот на секој од нив, но ќе има клучни поставки. Воопшто не сакав да зборувам за некои од нив - тие беа толку глупави, но бидејќи ги погледнав, срамота беше да не напишам ништо.

    Вовед.

    Значи, задачата беше да се брои бројот на преземања на одредена датотека со поставување бројач за преземање за WordPress. По поблиско испитување, падна во неколку подзадачи, поточно, желби за приклучок што ќе го исполни. Еве краток список од нив:

    • Потребно е бројот на преземања да се прикаже некаде во административниот панел, со можност за сортирање - колку се преземени дневно, неделно, месец, година, вкупно
    • Би било пожелно да може да се видат графикони/дијаграми на преземања на датотеки меѓусебно
    • Би било пожелно да може да се видат графикони/дијаграми на преземања на датотеки со текот на времето
    • Препорачливо е да се води статистика за последното преземање на датотеката
    • Можност за прикажување информации до врската за тоа колку пати е преземена датотеката, како и нејзината големина и датумот на преземање за корисникот кој штотуку ќе ја преземе. Па, или не да се повлече - на барање на админ
    • Способност да се вметне кодот одговорен за ова со користење на посебно копче во панелот за пишување пост на уредникот TinyMCE (не сакам да користам брзи ознаки)
    • Способност да се ограничи брзината на преземање (за секој случај)
    • Прикачување функција за поставување на овој приклучок (подигнување датотеки на серверот) - напротив, не се откажав. FTP работи добро и за мене. Но, ако не се меша премногу, тогаш нека остане
    • Би било убаво да можам да прикачам убаво копче на врската за преземање - иако за мене е доволно да напишам class="button"

    ABAP

    Преземете ја датотеката!

    • Би било добро ако го броеше бројот на преземања не само од неговата веб-страница, туку едноставно од врската
    • Можност за забрана директно преземањедатотека без да покаже каде се наоѓа на серверот.

    Еве мал список.

    Преглед

    Откако ќе се одлучиме за техничките спецификации, ќе почнеме да разгледуваме што директно ни се нуди.

    1. Преземете го додатокот Counter 1.2, преземен овде.

    Првично, страницата на приклучокот беше лоцирана, но авторот не ја поддржува повеќе од 4 години. Создаваме друга папка за неа во директориумот со приклучоци за мене - преземање-бројач, и ги испуштаме двете датотеки таму. Како резултат - каде би помислиле? — поставките за него се појавуваат во записите. Многу оригинално, но во ред.

    Ајде да влеземе внатре и да ја напишеме патеката до датотеката download-manager.php (навистина не ми се допаѓа да фрлам никакви глупости директно во коренот). И да видиме што добивме. Поставете ја датотеката, проверете дали е преземена во рачен режим, ако внесете директна врска во прелистувачот, внесете ја патеката во додатокот за да креирате бројач. Теоретски, треба да се креира лична карта, која потоа ќе треба да се вметне насекаде. Но, ништо не функционираше - ја дава грешката „Грешка - Не може да се зачува снимката“. Па, ок, убедивме, го префрламе на root download-manager.php - пак ништо, истата грешка. Па, по ѓаволите, златна рипка, не ми беше доволно сè уште да ги разберам додатоците од кои авторот не се откажа. Покрај тоа, функционалноста е практично нула.

    2. Преземете го додатокот Counter Advanced 1.1, преземен.

    Веднаш ќе кажам дека тоа навистина не функционираше и за мене, така што можете да прочитате за неговата инсталација и конфигурација само од академски интерес. Во суштина, ова е истиот приклучок, само малку изменет. Фала му на Бога, иако упатствата не се преведени, можеш да ги прочиташ нормално и да не се обидуваш да разбереш што сакал да каже преведувачот. Патем, во административниот панел се чини дека е сосема поинаков приклучок, кој нуди ажурирање (да, што е грижам). Слично на претходниот додаток, неговата страница беше лоцирана, а на сличен начин авторот не го поддржува повеќе од 4 години. По аналогија, создаваме друга папка за неа во директориумот со приклучоци, мојата е шалтер за преземање и ги фрламе сите датотеки таму. Поставките изгледаат, се разбира, побогати, иако брзината на преземање е ограничена за сите датотеки одеднаш и не е поставена за секоја од нив. Каде е датотеката преземање-менаџер..php (не заборавајте го името на датотеката на крајот, но точно прв пат погодив каде се сите преземања, што ме втурна во страшно чудење. Како што се испостави подоцна, Го погодив името на директориумот во кој се прикачуваат преземања, овде мојата логика работеше 100% идентично со авторот на додатокот.

    Ги додаваме имињата на папките што ги имаме на серверот во директориумот за преземања (во поставките „категории и директориуми“) за да го олесниме изборот на патеката до датотеките. Ако не ги додадете, ќе мора да преземете сè во коренот за преземања. Зачувајте, можете да додавате преземања. Ова е приближно она што го добиваме.

    Сега да се обидеме да го вметнеме во објавата. Додаваме врска, во неа ја менуваме нашата врска до кодот, кој се издава директно во поставките на приклучокот. И после... Ебате! Грешка во HTTP 500 (Внатрешна грешка на серверот): Се случи неочекувана ситуација додека серверот се обидуваше да го заврши барањето. Па, само сакав да ви кажам како да додадете бројач директно на објава, што ако на врската внатре за да функционира

    ABAP

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

    тогаш можете да прикажете копче за преземање - навистина е криво. Толку многу за приклучокот, потрошивте време. Тој навистина не води статистика, бидејќи нема да откриеме каде е дефектот.

    Ова е токму додатокот на кој беше предложен да се ажурира гореспоменатиот бројач за преземање Advanced. Па, тој предлага - и во ред, ајде да го преземеме и да видиме. Приклучокот исто така не е ажуриран повеќе од 3 години, а некои корисници дури и самите направиле корекции на неговиот код. Се инсталира доста успешно, аскетизмот на поставките не инспирира оптимизам. Патем, добро направено, тие погодија каде да ги постават поставките - не полошо отколку во претходниот случај. Додаваме бројачи на страницата за поставки, се чини дека сè е прикажано како што треба.

    Ајде да видиме што додадовме во објавата. Да, нема копчиња. О, се разбира, заборавив токму таму дека сè е интуитивно. Ајде да ги погледнеме упатствата. Неопходно е да се конструира сложена структура составена од кратки кодови како , преземени , и во исто време (веројатно поради CNC) таа навистина не брои ништо.

    Затоа, нема да го разгледуваме понатаму, заедно со придружниот додаток Download Counter Chart, кој прикажува информации во графичка форма.

    Напишано е од наш сонародник, но за жал сè што може да направи е да го прикаже бројот на луѓе кои ја презеле датотеката до неговото име - нема никаков статистички податоци или други добрини. Меѓутоа, ако сте љубител на минимализмот, ова е она што ви треба. Само не заборавајте, нема копчиња, скратен код како


    Бројач за преземање DIY за WordPress

    ќе мора да го внесете рачно. Многу е добро што авторот опиша сè во детали, па не морав да го тестирам на себе.

    Па, ако зборуваме за приклучоци напишани од наши луѓе, тогаш не можеме а да не споменеме уште еден. Неговата огромна предност е што ви овозможува да го броите не само бројот на преземања на датотеки, туку и едноставно кликање на врски - не е важно дали тие водат до датотека или само на друга страница. Или на датотека на туѓа страница :) Тој исто така ќе го брои ова, или подобро кажано, теоретски треба да го брои. Со статистика, не е се така одлично, нема копчиња на панелот за уредување, а нема ни ограничувања за преземања. Но, сепак е интересно да се види. Затоа, преземаме и инсталираме. Во принцип, има прилично детален опис на веб-страницата на авторот, така што нема да навлегувам во премногу детали. Секогаш мора да имате на ум дека ако треба да поставите бројач на датотека или на врска, треба да користите или тип краток код или да ја вметнете класата "број" во врската. Ова, се разбира, е досадно, со копче би било многу поудобно. Но, најдосадно е што по сите напори не можев да го наведам да работи соодветно - ако се користеше краток код, самата врска за преземање не се прикажуваше, а ако се користеше класа, статистиката за врските не се појавуваше во административен панел. Слики од екранот може да се видат од авторот - ако ви се допаѓа самата идеја, пробајте ја, можеби ќе успеете.

    Навистина многу едноставно. Не се потребни кратки кодови, итн. Сепак, овој приклучок обезбедува статистика само за авторот; за посетителите, до врската до датотеката, не се прикажува.

    Сепак, треба да се напомене дека се води детална статистика за тоа кој кој фајл и кога преземал. Сепак, тоа не е многу погодно за употреба.

    Поставките го вклучуваат следново:

    • Можете да го одредите директориумот од кој може да се преземаат датотеките
    • Можете да ги одредите типовите на датотеки на кои им е дозволено да се преземаат
    • Спречете броење преземања на датотеки како автор
    • Поставете го интервалот во секунди за време на кој повторените кликови на врска од истата IP ќе се бројат само еднаш
    • Ограничете го бројот на датотеки што може да се преземат од една IP на ден
    • Користете некаква средна страница со информации дека преземањето ќе започне сега

    Сепак, сето ова функционира само ако вие или (како поедноставно да го кажам...) имате дозвола да ја уредувате датотеката .htaccess или ако ја наведете врската директно со вметнување во

    Меѓутоа, бидејќи немаше можност да прикажува статистика за корисниците и не сакав да се сеќавам на типот на врската, во овој момент престанав да ја разгледувам, решавајќи да се вратам само ако другите приклучоци во редот не можат да решат задачата.

    Во однос на прикажувањето информации, овој приклучок е многу сличен на оној што беше дискутиран во претходниот пасус. Се разликува по тоа што ви овозможува да гледате статистика одделно неделно, месечно, за кој било период и едноставно првите 10. Во однос на неговите можности, тој е многу победен, нема статистика за последното преземање или за одредена датотека, а да не зборуваме за можноста за воведување ограничувања за преземање датотеки. Воопшто нема јасна документација. Добив впечаток дека ова е само некакво недоразбирање и не е додаток. Не сакам ни да давам слики од екранот, но за да бидам објективен, сепак ќе ги дадам, оние на авторот.

    Па, тука сме до нешто повеќе или помалку достојно. Речиси половина милион преземања - тоа кажува нешто. Се наоѓа официјалната страница на приклучокот. За да вметнете датотека во објава, треба да ја користите стрелката над визуелниот уредник (самата икона не се појавува во неа)

    И во прозорецот што се појавува, изберете ја потребната датотека (ова е пример ако веќе е поставена преку FTP)

    Потоа, кликнете на копчето „Зачувај ново преземање“.

    и, одејќи на следниот екран, изберете го форматот за преземање и кликнете на Вметнете вопост. Можно е ништо да не се случи. Приклучокот е малку блескав со најновите верзии WordPress. Затоа, треба дополнително да кликнете на врската View Downloads

    И потоа, откако прво го избравте форматот за преземање, кликнете на врската Вметни спроти точната датотека што треба да се вметне.

    По што соодветниот краток код како

    ABAP

    [преземи = "7592" формат = "1"]

    Приклучокот бара фина рачна конфигурација, но не е обезбеден WYSIWYG. Доброто е што треба да го поставите само еднаш. Детална документација е достапна кај авторот.

    Еве пример за поставување:

    ABAP

    (Наслов)

    < ahref= "(url)" title="Преземено (хитови,"ни разу","1 раз","% раза"}">{title}!}

    Треба да се напомене дека деклинациите не се поддржани, т.е. ако датотеката е преземена 21 пати, а имате „раза“ во шаблонот, тогаш ќе звучи малку неруски.

    И тука е опцијата со копчето:

    ABAP

    - (опис), (големина), поставено (датум"Y-m-d"), Преземени (хитови) пати

    < ahref= "(url)" title="Преземено (хитови,"ни разу","1 раз","% раза"}">!} - (опис), (големина), поставено (датум"Y-m-d"), Преземени (хитови) пати

    Изгледа вака:

    Па, по некоја модификација, моето почна да изгледа вака (сеуште без копчиња):

    Код на линија:

    ABAP

    (икона_тип на датотека) (наслов) (Големина на датотеката: (големина), Поставена: (датум"д.м.Г"), Преземена (посетува) пати)
    (опис)

    Списокот на можности е доста широк:

    • Можете да прикачувате датотеки или користејќи ги (со кликнување на стрелката), или да ја наведете локацијата каде што се наоѓаат, ако биле поставени порано преку FTP, можете едноставно да го наведете URL-то
    • Ја крие вистинската локација на датотеката, можете да ја замените потребната комбинација на URL
    • Можете да го користите копчето за преземање, вклучувајќи го и вашето
    • Преземањата од администраторот и сите непотребни IP-адреси вклучени во списокот за исклучување бројач не се разгледуваат.
    • Дали треба да бројам повторени преземања во одредено време од истата IP адреса?
    • Можете да поставите неколку формати - со слика, со бројач, без бројач итн., и да го користите секој од нив во соодветната ситуација
    • Има прикачување на дневникот за преземање како CSV-датотека

    Ако се прикачува некоја mp3 или видео датотека, треба да наведете дали е присилно преземање или не. Ако сила - тогаш со кликнување на неа, ќе се преземе, ако не го штиклирате полето - репродуцирајте, потоа зачувајте - кликнете со десното копче. Би сакал да забележам дека датотеките поставени со негова помош не се ставаат таму каде што е креиран вашиот специјален директориум за датотеки, туку во wp-content/uploads/downloads/ создаден од него - треба да го запомните ова, како и фактот дека при нивно бришење од статистика - датотеките исто така физички се бришат од серверот. Со тие што се качуваат преку FTP се е во ред. Плус, ако вметнете врска во различни објави до истата датотека, тогаш не разбрав дали ќе ги сумира. За жал, не поддржува никакви ограничувања за преземање, освен што можете да го забраните преземањето на сите, освен на регистрираните корисници. Кога сакате да го прикажете името на датотеката во долната линија на прелистувачот или треба да го промените во неговиот ID, мора да запомните да отидете на поставки->постојани врски и да ја зачувате конфигурацијата таму, така што сè е правилно напишано во . htaccess - без ова, датотеките нема да се преземат!

    Статистиката се прикажува на три места одеднаш - во конзолата, во информациите за датотеките и во дневниците за преземање. Ова создава одредени непријатности, на пример, кога треба да видите кога последен пат е преземена датотека, но можете да преземете статистика како CSV-датотека и потоа да ја сортирате во Excel. Имајќи предвид дека Excel има ѓаволски способности за конструирање на потребните табели и графикони, тогаш можеби ова не е лошо. Сепак, мислам дека сликите од екранот ќе кажат повеќе:

    Па, скриншот од самиот дневник:

    Во исто време, огромен плус е тоа што во конзолата се појавува графичка контрола со ваква статистика:

    Во принцип, можеме да кажеме дека по мала конфигурација, приклучокот одлично си ја врши својата работа.

    Овој приклучок е напишан од истиот автор како приклучокот WP-Polls, кој јас, на пример, го користам на оваа страница. Иако ужива, во споредба, редот на големина помала популарност. Но, да видиме дали е заслужено. Целата документација може да се најде на веб-страницата на авторот. Во суштина, приклучокот е апсолутно идентичен со претходниот - шаблонот е напишан на ист начин, нема ограничувања за преземање, освен за регистрирани или нерегистрирани корисници, а исто така треба да користите краток код како

    ABAP

    [преземи = "7592"]

    Па, за другите точки:

    • Можете да прикачувате датотеки користејќи го (до два MB или што и да сте назначиле во php.ini) и да ја наведете локацијата каде што се наоѓаат, ако биле поставени порано преку FTP, можете едноставно да го наведете URL-то
    • Ја крие вистинската локација на датотеката, но не е можно да се замени потребната комбинација на URL, има само неколку фиксни опции, од кои главната не функционираше за мене
    • Може да се конфигурира да прикажува информации на посетителите за големината на датотеката, колку пати била преземена, кога била преземена
    • Можете да прикажете икона за соодветните типови на датотеки
    • Можете да го ресетирате бројачот или да ја поставите саканата вредност

    Сепак, постојат некои разлики. Прво, нема копче за влез визуелен уредник, со кој можете да вметнете краток код. Или подобро кажано, има копче, но за да го користите, прво треба да додадете бројач за датотеката во поставките на приклучокот, а потоа со ова копче ID на бројачот ќе се додаде директно на објавата. Второ, има само еден шаблон и нема да може да се прикажат различни информации за различни датотеки. Меѓу предностите на статистиката - покажува кога последен пат е преземена датотеката, инаку има само недостатоци - нема прикачување во CSV-датотека, нема гледање кој преземал (без IP), нема дистрибуција по датум.

    Но, иконите се поубави (подоцна ги додадов на претходниот додаток). Резултатот од неговата работа изгледа вака:

    Исто така, кога се брише запис од базата на податоци, се прашува дали самата датотека треба да се избрише или остави. Но, во однос на севкупноста на неговите својства, ми се допадна помалку од претходната - барем затоа што датотеката мора да се вметне одделно надвор од објавата, сепак, таа нема некои посебни недостатоци - изборот меѓу нив е прашање на вкус, првиот има повеќе опции, подетална статистика, вториот - малку попогодна (иако послаба) статистика и помалку можности.

    Тешка артилерија тргна во акција. Приклучокот е претежно русифициран и е само менаџер за преземање, а не бројач. Можно е да се ограничи брзината на преземање и бројот на преземања по лице дневно.

    Но, јас би рекол дека некои од карактеристиките на овој додаток се непотребни, а потребните според статистиката не се доволни. Има многу поставки, додатоци за преземање, комплексен систем за синхронизација, систем за прикажување на mp3 ознаки, прикажување flv датотеки, организирање складирање на мини датотеки, прикажување на сите датотеки наведени на страницата на почетокот или на крајот на објавата, итн., итн.

    Не сакам ни да прикажувам слики од екранот на сите поставки.

    Меѓутоа, со сето ова, за убаво да се прикаже шаблонот во објавата, морав да ја уредам датотеката со стил во неа, намалувајќи ја ширината. Плус, за да се прикаже стандардниот шаблон, мора да го користите копчето откако ќе го вметнете краткиот код

    Рачно внесете го името на шаблонот во кодот. Некаков конфликт со руското име. Патем, изгледа вака (ќе дадам три опции за шаблони):

    Се брои - преку палубата на трупецот (добро, или не брои повеќе од едно преземање од IP, не знам). Статистиката е малку помалку од целосно слична на приклучокот штотуку дискутиран погоре.

    Во принцип, останав со впечаток дека е здрав, но глуп. Погоден за некој вид складирање датотеки, па дури и тогаш само ако се комбинира со некој друг приклучок. Го погледнав и го симнав.

    Искрено кажано, кога го прочитав неговиот опис, си помислив - ова е тоа, што ми треба!

    Бројач, заштита со лозинка, краток код што може да се вметне копче, копче што може да се уредува, итн.

    И изгледа вака (тој наведе два три шаблони користени одеднаш):

    Меѓутоа, за да додадете датотека, прво треба да додадете бројач за неа во приклучоците. Второ, практично нема статистика.

    Трето, не можете да го поставите излезот да ја прикажува големината на датотеката за корисникот. Четврто, нема ограничување на брзината на преземање, има само заштита со лозинка за датотеката. Шаблоните не може да се уредуваат. И голем натпис кој нуди купување на премиум верзијата за 45 долари. Па, во принцип, разбираш. Сè што е вкусно е за пари. Го деактивирал и го демолирал. И убави рамки, копчиња итн. - Сам ќе го запишам во стиловите кога сакам.

    Резиме

    Инсталирајте на стандарден начин (со копирање во директориумот wp-content/plugins/download-monitor/, нека се ажурира, заменете ги сите икони со икони од архивата во директориумот wp-content/plugins/download-monitor/img/filetype_icons/и активирајте.

    Во иднина, ако се приближам до тоа, размислувам да ги ставам врските во убави рамки користејќи css3, за што најверојатно ќе пишувам и јас. Останете со нас :)

    Ажурирање. Сега авторот го преработи приклучокот WordPress Download Monitor и создаде сосема поинаква верзија од оригиналната. Го тестирав, но многу помалку ми се допадна поради фактот што шаблонот за формата како ќе изгледа линкот за преземање повеќе не се уредува така лесно. Авторот одлучи дека ќе бидат доволни готовите претходно инсталирани погледи. На пример, ако во менито за преземања, потоа поставки, изберете го саканиот приказ од шест претходно поставени, кликнете зачувај

    Потоа, кога ќе ја изберете втората опција, добивате нешто како ова:

    Оние. на нова верзијаНема да работи да се користи линијата што ја дадов во описот, но ќе треба да напишете специјална PHP-датотека што ќе го опише овој излезен шаблон. Но, најтажното не е ни ова - туку фактот дека оваа php-датотека, ако се стави во директориумот со додатокот, ќе се препишува секогаш кога ќе се ажурира додатокот. И ако го ставите во директориум со тема, тогаш кога ја менувате темата (иако ова, се разбира, се случува многу поретко). Но, во секој случај, пишувањето е прилично трудоинтензивна задача и засега немам никаква желба да ја работам. Значи, единствениот плус на ажурираниот приклучок е

    Решив да видам колку пати една од моите скрипти беше преземена од страницата. За да го направите ова, решив да напишам бројач за преземање датотеки за страницата. Има многу имплементации на овој проблем на Интернет, но сепак, проверете го моето решение.

    Логиката зад бројачот за преземање е прилично едноставна. За да го имплементираме ќе го искористиме мојот омилен ајакс. Прикачуваме повик преку ajax на копчето кога ќе се појави настанот за кликање php датотекабројач. Во php, барањето ajax се обработува и вкупниот број на трки се запишува во текстуална датотека. По успешното снимање, се враќа одговор со бројач за вкупно преземање и корисникот се пренасочува на врската за преземање на датотеката (датотеката е преземена). Ова е толку едноставна логика, сега да почнеме да ја спроведуваме. Ајде однапред да креираме датотека test.zip за преземање. Ајде да го шифрираме копчето и да го прикажеме бројачот за трка.

    Преземете ја датотеката Број на трки:

    Создадовме копче со id="btnSend", ќе го прикажеме бројачот во распон со id="countView" и ќе складираме врска до преземената датотека во атрибутот за преземање податоци

    Сега да прикачиме управувач со кликнување на копчето. Тука веќе ќе користиме js и jquery. Можете да прочитате за тоа како да имплементирате кликање користејќи jquery. Но, пред да го инсталираме управувачот со кликнување, ќе пристапиме со ajax до датотеката count.php, која ќе ја содржи целата работа на бројачот. Можете да прочитате повеќе за пренос на податоци на Ајакс. Ова е неопходно за да се излезе од датотеката каде бројачот го запишува бројот на веќе направени преземања и ги прикажува во опсег со id="countView"

    /*добијте го тековниот број на преземања*/ $(документ).ready(function())( //забрани кеширање на барањето ajax //инаку бројачот нема да успее $.ajaxSetup((кеш: неточно)); var html ; $.ajax (( //како ќе префрлиме тип на податоци: "GET", //каде ќе префрлиме URL: "count.php", //кои податоци ќе ги префрлиме податоците: (знаме: 2), // настан по добивањето одговор од count.php успех : функција(податоци)( html=data; //прикажи го тековниот број на преземања $("#countView").html(html); ))); /*прикачи настан до копчето за преземање датотека*/ var clickevent=false; //кликнете тест знаменце //click handler $("#btnSend").click(function())( if(!clickevent)( $.ajax(( //како ќе префрлиме тип на податок: "GET", //каде ќе го пренесеме url: "count.php", //какви податоци пренесуваме податоци: (знаме: 1), //настан пред да испратиме ajax предИспрати: функција( ))( //ако е кликнато копчето тогаш точно clickevent=true; ), // настан по добивањето на одговорот, //прими ги податоците во успехот на податоците: функција(податоци)( //по завршувањето на дејствата, ние го дозволуваме тоа повторно //да се обработи кликнувањето на копчето clickevent=false; html=податоци; //прикажи нов бројач $("#countView").html(html); //добијте ја врската од преземање податоци //пренасочете кон врската за преземање, преземете ја датотеката window.location.href = $("#btnИспрати").data ("преземи"); ))); ) врати неточно;//забрани обработка на настанот за кликнување )); ));

    За да спречам повторно да се притисне копчето за поднесување по грешка, го воведов знамето за кликање настан во скриптата. Сè додека одговорот од count.php не се врати со ажурирани податоци за бројачот, кликнувањето на копчето ќе биде забрането. Мислам дека работата на кодот по кликнување на копчето е повеќе или помалку јасна. Откако ќе кликнете на копчето за преземање, податоците се пренесуваат во датотеката count.php, каде што се обработуваат и се враќаат ажурираните податоци од бројачот, се јавува пренасочување до врската за преземање и, соодветно, датотеката се презема.

    Ајде сега да го погледнеме срцето на нашата скрипта, имено датотеката count.php.

    Функција clearInt ($date)( //reduce date to non-negative number return abs((int)$date); ) if($_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest") ( //проверете кое знаменце беше примено ако (clearInt($_GET["flag"]==1)) ( //отворете ја датотеката за читање $f=fopen ("mycount.txt","a+"); //го затвора пристапот до датотеката од други програми flock($ f,LOCK_EX); //добијте ја бројачката вредност од датотеката $count=fread($f,100); //додадете го бројачот @$count++; //презапишете ја датотеката ftruncate($f,0) ; //напишете нов бројач што чита fwrite ($f,$count); //затворете ја датотеката fclose($f); //вратете ја вредноста echo $count; ) if(clearInt($_GET["flag"]= =2)) ( $c=fopen (" mycount.txt", "a +"); flock ($c,LOCK_EX); $festc=fread ($c,100); fclose ($c); //вратете го вредност ехо $festc;))

    Овде го мислам истото, се е едноставно. Ако дојде знамето 1, тогаш го препишуваме бројачот. Ако дојде знамето 2, тогаш податоците за бројот на преземања едноставно се враќаат. Се друго мислам дека е јасно од коментарите во кодот.

    Бројач за преземање џумла

    Решив да прикачам сличен бројач на еден од моите Joomla проекти. Во теорија, се разбира, треба да напишете или посебен модул или да го интегрирате кодот во контролорот на компонентата за содржина на com, така што податоците од бројачот не се запишуваат во датотека, туку во базата на податоци и за секоја статија посебно. Но, нема време за таков развој и проблемот го решив поедноставно. Ми требаше бројачот за една страница. Ја зедов датотеката count.php и ја префрлив на шаблонот на Joomla, кој моментално е поврзан (во коренот на шаблоните на страницата/your_template). Не заборавајте да го вметнете дефинираниот код ("_JEXEC") или да умрете на самиот врв на count.php. (ова е за Joomla). Го вметнуваме копчето за преземање во страницата што ја креираме, а кодот js исто така може да се вметне во страницата или да се поврзе како посебна датотека. На пример, ја имам како посебна датотека (се наоѓа во папката js на шаблонот). Во самиот шаблон, во заглавието, врската се јавува преку код

    
    Врв