|
Поделиться

Who's downloaded attachment - Кто скачал файл?

Мод позволяет видеть списки скачавших тот или ной файл, а также статистику скачиваний по месяцам

Здесь вы можете скачать и получить поддержку по модам, созданным командой нашего сайта. Пожалуйста, не пишите и не задавайте вопросов, связанных с чужими разработками, используйте для этого форум ниже.

Сообщение Shredder » 12.05.14 12:06

Изначально этот мод не мой, я нашёл его где-то на просторах иностранного интернета. Как часто водится в среде phpBB, разработка мода давно была заброшена, а сайт автора накрылся. Поскольку я дорабатывал мод под свои нужды и добавил туда кое-какие функции, то считаю своим долгом выложить его в публичный доступ. В моде были произведены следующие доработки:

  • Была добавлена запись IP-адресов пользователей, скачавших файл, а также информация whois для всех IP.
  • Вырезана запись о картинках-вложениях. Запись скачиваний картинок не имеет смысла, поскольку "скачиванием" картинки в phpBB считается ситуация, когда пользователь просто посетил страницу, где эта картинка находится - неважно, просмотрел он саму картинку или нет. Таким образом, записи о картинках только создают лишнюю нагрузку на базу данных, и более - ничего, никакой ценной информации они не несут.
  • Добавлена запись гостей, скачавших файл. Они будут отображаться в списке под именем "Гость". Изначально в моде не велись записи для гостей, да и смысла это почти не имело, но так как в списки скачавших мною был добавлен IP, то будет интересно посмотреть, с каких IP-адресов был скачан файл. Для гостей будет показано количество скачиваний с каждого IP, а для зарегистрированных - с каждой учётной записи.
  • В информацию о скачиваниях для каждого файла добавлен рефёрер. Это позволит видеть, с каких сайтов скачивали ваш файл, если на него где-то была размещена прямая ссылка.

Ники скачавших группируются по IP для гостей и по нику для зарегистрированных участников, а сортируются - по дате скачивания в порядке убывания. Другими словами, наверху списка всегда будут самые новые скачивания.

После установки мода вам нужно установить глобальное право доступа "Может видеть, кто скачивал файл" на вкладке "Разное", чтобы разрешить пользователю или группе видеть списки скачавших тот или иной файл.

who's_downloaded_attachment_2_0_0.zip
(43.11 КБ) Скачиваний: 605
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 882
Зарегистрирован: 22.08.13 09:05

Сообщение Shredder » 17.05.14 17:33

Оказалось, что тип varchar не подходит для поля user_referer, т.к. бывают значения, превышающие максимальную длину в 255 символов и вызывающие ошибки. Кто уже установил мод, зайдите в phpmyadmin, найдите там таблицу phpbb_attachviews и смените тип поля c varchar на text. Или выполните SQL-запрос:
Код: Выделить всё
ALTER TABLE phpbb_attachviews MODIFY user_referer TEXT COLLATE utf8_bin NOT NULL

Вместо phpbb_ подставьте свой префикс таблиц БД, если он отличается у вас.
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 882
Зарегистрирован: 22.08.13 09:05

Сообщение Xisp » 17.05.14 20:38

Shredder писал(а):т.к. бывают значения, превышающие максимальную длину в 255 символов


Ничто не мешает повысить это ограничение до любого разумного числа.
Xisp
 
Сообщения: 196
Зарегистрирован: 05.04.14 18:00

Сообщение Shredder » 17.05.14 20:42

Xisp
Это понятно, но, согласно справке, в MySQL ниже 5.0.3 максимальная длина поля типа varchar составляет 255. Поэтому многие поля оригинального phpBB тоже используют text.

Добавлено спустя 2 дня 4 часа 7 минут 3 секунды:
При проверке на форуме с большим числом записей в таблице скачиваний оказалось, что сложный SQL-запрос вешает сервер. Переписал его для нормальной работы. Для обновления достаточно заменить файл download/attachview.php из архива.
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 882
Зарегистрирован: 22.08.13 09:05

Сообщение Xisp » 23.05.14 01:30

Shredder писал(а): в MySQL ниже 5.0.3


Таким старьём из прошлого века (почти) лучше не пользоваться. Уже 5.6 давно актуальная.
Xisp
 
Сообщения: 196
Зарегистрирован: 05.04.14 18:00

Сообщение Midway » 17.01.15 10:42

Hello I come from France and I have a small problem, when I click for see who having download the archive
I have this error.


Erreur générale
SQL ERROR [ mysql4 ]

Unknown column 'user_ip' in 'field list' [1054]

SQL

INSERT INTO phpbb_attachviews (attach_id, date, user_id, user_ip, user_referer) VALUES (996, 1421350912, 2, '85.104.219.000', 'http://mods-services.fr/viewtopic.php?f=23&t=1543')

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/includes/db/dbal.php
LINE: 757
CALL: trigger_error()

FILE: [ROOT]/includes/db/mysql.php
LINE: 193
CALL: dbal->sql_error()

FILE: [ROOT]/download/file.php
LINE: 280
CALL: dbal_mysql->sql_query()


in my acp in the permissions I have this one u_can_dl_wiew and not the translation
Код: Выделить всё
// Admin Permissions
	'acl_u_can_dl_wiew'	=> array('lang' => 'Can view a downloads list', 'cat' => 'misc'),
Midway
 
Сообщения: 3
Зарегистрирован: 15.01.15 16:10

Сообщение Shredder » 17.01.15 12:45

Midway
Do you have version 2.0? Try following SQL (enter it in myadmin or STK):
Код: Выделить всё
ALTER TABLE `phpbb_attachviews` ADD `user_ip` VARCHAR( 40 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL AFTER `user_id` ;
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 882
Зарегистрирован: 22.08.13 09:05

Сообщение Midway » 18.01.15 02:35

Thank you for your reply, yes I have your 2.0.0 and tomorrow I try doing the query using stk
Midway
 
Сообщения: 3
Зарегистрирован: 15.01.15 16:10

Сообщение Midway » 30.01.15 12:42

Hello

Now all is ok thank you ;)
Midway
 
Сообщения: 3
Зарегистрирован: 15.01.15 16:10

Сообщение PAW » 21.03.15 08:05

Здравствуйте. После установки мода на 3.0.13-PL1 и скачивания разных файлов, на странице статистики вложения выводится следующее:
"Пользователей, скачавших этот файл: 0
Этот файл пока что никто не скачивал"
С чем это может быть связано?
PAW
 
Сообщения: 8
Зарегистрирован: 21.03.15 01:14

Сообщение Shredder » 21.03.15 12:06

С неправильной установкой.
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 882
Зарегистрирован: 22.08.13 09:05

Сообщение PAW » 21.03.15 14:35

SQL запросы я сделал после закачки новых и изменённых файлов на сервер. В этом моя ошибка?
PAW
 
Сообщения: 8
Зарегистрирован: 21.03.15 01:14

Сообщение Xisp » 21.03.15 14:52

Нет. Перепроверьте правки, очистите кеш.
Xisp
 
Сообщения: 196
Зарегистрирован: 05.04.14 18:00

Сообщение Shredder » 21.03.15 14:55

PAW писал(а):SQL запросы я сделал после

Это никак не должно влиять.
Возможно, конфликт с другими модами. У меня на 3.0.13-PL1 всё работает, как положено.
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 882
Зарегистрирован: 22.08.13 09:05

Сообщение PAW » 21.03.15 22:27

Все правки проверил, кэш везде очистил. Изменений не последовало. Модов на форуме установлено предостаточно, всех уже и не вспомнишь.
Может конфликт: Attachments in subfolders [Вложения в подпапках] или highslide
Ещё есть нюанс в выводе самой ссылки "Кто скачивал файл", если вставлять четко по инструкции в файле styles/.../template/attachment.html:
Find
Tip: This may be a partial find and not the whole line.

CODE:SELECT ALL
<dd>({_file.FILESIZE} {_file.SIZE_LANG}) {_file.L_DOWNLOAD_COUNT}
In-line Find
Tip: This is a partial match of a line for in-line operations.

CODE:SELECT ALL
{_file.L_DOWNLOAD_COUNT}
In-line Add after

CODE:SELECT ALL
<!-- IF _file.S_CAN_DOWNLOAD_VIEW --><br /><a href="{_file.U_DOWNLOAD_VIEW}">{L_DOWNLOAD_VIEW}</a><!-- ENDIF -->

то ссылка под вложением не появляется (права назначены). Вставляю в другое место файла: ссылка появляется, но результат: "Пользователей, скачавших этот файл: 0 Этот файл пока что никто не скачивал".
Отрывок кода в файле attachment.html , при котором ссылка ("кто скачивал файл") появляется под каждым вложением.
<!-- IF _file.S_IMAGE -->
<a href="{_file.U_DOWNLOAD_LINK}"<!-- IF not S_IS_BOT --> class="highslide" onclick="return hs.expand(this)" style="float:right; margin: 0 0 10px 15px" title="<!-- IF _file.COMMENT -->{_file.COMMENT}<!-- ELSE -->{_file.DOWNLOAD_NAME}<!-- ENDIF -->"<!-- ENDIF -->><img src="{_file.U_INLINE_LINK}" alt="{_file.DOWNLOAD_NAME}" title="<!-- IF _file.COMMENT -->{_file.COMMENT}<!-- ELSE -->{_file.DOWNLOAD_NAME}<!-- ENDIF -->" /></a>&nbsp;
<!-- ENDIF -->
<!-- IF _file.S_CAN_DOWNLOAD_VIEW --><a href="{_file.U_DOWNLOAD_VIEW}">{L_DOWNLOAD_VIEW}</a><!-- ENDIF -->
PAW
 
Сообщения: 8
Зарегистрирован: 21.03.15 01:14

След.

Вернуться в Модификации сайта phpBB-Work.ru

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron