Сьогодні я вирішив поділитися плагіном виводить лічильник скачування для WordPress. поруч з посиланням на файл:
Завантажити плагін можете за цим
А також в якості доповнення до попередньої статті (Пишемо плагін WordPress) хочу продемонструвати процес написання даного плагіна, і поділитися отриманим досвідом з тобою шановний читачу.
Для того, щоб було зрозуміло, що ми будемо робити, давайте визначимося з тим, що повинно вийти:
Лічильник завантажень для WordPress своїми руками
Нам треба в результаті установки плагіна, перетворити це посилання і вивести лічильник завантажень. поруч з нею. В результаті отримаємо ось таке посилання з лічильником:
Cуть роботи плагіна:
Вихідну посилання ми оформляємо відповідно до вимоги плагіна тобто якщо у нас було:
# 91; download_file url = "upload / countdownload.zip" title = "Лічильник завантажень" # 93;
лічильник завантажень для WordPress своїми руками
# 91; / download_file # 93;
Плагін обробляє даний шорткод і замінює його більш зрозумілою формою для браузерів, дописуючи кількість скачали людина поруч з посиланням.
З принципом роботи плагіна ніби все зрозуміло, крім того як ведеться підрахунок завантажень. Зараз я і про це розповім.
При натисканні на перетворену посилання, як бачите ми потрапляємо на скрипт /download_count.php. який віддає користувачеві запитуваний файл, попередньо оновлюючи лічильник завантажень в базі даних відповідає цьому файлу.
Все ясно? Правильно не все! Що за скрипт такий download_count.php і звідки він в кореневій Директорії сайту?
Вся справа в тому, що скрипт лічильника завантажень, не повинен знаходитися в папці з файлами плагіна, тому що тоді і на засланні доведеться вказувати весь шлях до нього, а це не є гуд. Тому, плагін примусово створює цей скрипт в кореневій директорії, кожен раз коли при обробці шорткода не може виявити наявність download_count.php.
Зауважте, що якщо download_count.php був створений один раз, і не віддалявся до наступного звернення до нього, то доданок не буде його створювати кожен раз.
З теорією розібралися, перейдемо до написання коду:
При активації плагіна лічильника в адмінці WordPress, відразу створюємо таблицю в базі в яку будемо зберігати дані.
function install_download_file # 40; # 41; # 123; // при активації плагіна створюємо необхідну таблицю
global $ wpdb;
$ Wpdb -> query # 40; 'CREATE TABLE IF NOT EXISTS `download_file` (
`Url` varchar (254) NOT NULL,
`Count` int (9) NOT NULL
) ENGINE = MyISAM DEFAULT CHARSET = utf8; ' # 41; ;
# 125;
register_activation_hook # 40; __FILE__. 'Install_download_file' # 41; ;
Далі пишемо функцію, яка буде замінювати шорткод на одне з посилань
Діма. я протестував плагін, з різними розмірами файлів. У мене не вийшло відтворити вашу проблему. Тестував скачування архівів розмірами 15МБ. 20МБ. 130МБ. і 206МБ. Всі успішно завантажувати і відкривалося.
Може дійсно на вашому хостингу така проблема? Ви пробували на локальному хості потестить?
Проте я вніс деякі зміни, як в код лічильника завантажень так і в статтю.
У новій версії, виправлений баг з довгими іменами скачуваних файлів, а також доданий атрибут title. Тепер можна використовувати шорт код виду:
Легка offline версія довідника 4.0 (на пряму з сайту) і
Чи не качати! Перевірка! (З встановленим плагіном).
Не думаю, що винен хостинг. Я ставив інший плагін Kama's Click Counter і з нього великі файли гойдалися і відкривалися нормально. Але у нього, теж виявилися проблеми (іншого плану) і я його зніс. (((
Ваш плагін мені подобається більше, але завантажуються файли не вдається відкрити (перевірено не тільки мною. Пішли скарги з боку користувачів)
Дмитро, зараз на вашому ресурсі діє оновлена версія плагіна? або стара? І ще питання щодо розширень, ви не пробували ті ж довідники запаковувати в zip? і віддавати у вигляді архіву? Розумію, що це не вирішення. просто хочу зрозуміти всі нюанси проблеми.
Спасибі Mark. що Ви не байдужі до своєї роботи і допомагаєте розібратися з дуже потрібним плагіном!
Плагін повністю перевстановив відповідно до Ваших рекомендацій, тепер плагін на моєму сайті оновлений.
Я більш докладно спробував пояснити суть проблеми, на прикладах:
З повагою, Дмитро