Регистрация
Вход через соцсети
Восстановление пароля

Счетчик скачиваний.

Новый топик
23.11.2006, 18:35
Ответить | Цитировать
npf
Npfgroup

Зарегистрирован:
2005-11-09
Сообщений: 17

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

Пример:

Документ скачен: 1234 раз
document1.doc

npf
24.11.2006, 19:45
Ответить | Цитировать
Кирилл Хряпин

Зарегистрирован:
2006-06-15
Сообщений: 207

Стандартных средств для организации счетчика скачивания нет.

Для реализации данной функциональности Вы можете создать дополнительный шаблон данных (или макет, или отдельную SQL-таблицу, на Ваше усмотрение); все ссылки на скачиваемые файлы должны указывать на данный шаблон. Сам шаблон при обращении к нему должен увеличивать счетчик для соответствующего файла и переадресовывать непосредственно на файл.
27.11.2006, 10:20
Ответить | Цитировать
npf
Npfgroup

Зарегистрирован:
2005-11-09
Сообщений: 17

Спасибо.
Но для меня, к сожаленью, это сложновато.

npf
06.02.2007, 20:19
Ответить | Цитировать
Гость
Гость

Цитата:
Но для меня, к сожаленью, это сложновато.

Кому не трудно.
Опишите доступно для начинающего как ету функцию реализовать.
07.02.2007, 17:08
Ответить | Цитировать
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 330

У меня есть сходный функционал. Суть:

Есть журнал, который могут скачать только зарегистрированные юзеры. Архив журналов, это шаблон "Журнал", представляющий собой список объектов, как новости. Т.е. каждая "новость" - это:

• В списке объектов выводится картинка обложки и анонс ссылка "Подробнее".
• В полном отображении (переход по ссылке "Подробнее") - картинка обложки, анонс, оглавление и кнопка "Загрузить".

То есть поля такие:

• MagazineCurrentHead Анонс
• MagazineCurrentList Оглавление
• MagazineCurrentImage Картинка обложки
• MagazineCurrentFile PDF-Файл

Задача. Нужно фиксировать нажатие на кнопку "Загрузить" - считать и т.д. У меня была задача увязать загрузки со статистикой: кто какие номера скачал, с какого IP, раскладку по этому IP и т.д.

Решение.
В дополнение к основному шаблону "Журнал", делаем шаблон "Статистика загрузок" с полями:

• DownloadStatUserID ID пользователя
• DownloadStatUserIP IP пользователя
• DownloadStatUserDM Номер загруженного журнала

Проставляем в настройках шаблона "Статистика загрузок" права на добавление всеми пользователями (у меня - только зарегистрированные).

Теперь нам нужно сделать, чтобы загрузка файла писала событие в таблицу этого шаблона. Самый логичный выход - засунуть в полное отображение шаблона "Журнал" альтернативную форму добавления шаблона "Статистика загрузок".
Таким образом, полное отображение объекта в шаблоне "Журнал" выглядит примерно так:

Код:

<img src='$f_MagazineCurrentImage' />
$f_MagazineCurrentHead
$f_MagazineCurrentList

<form method='post' action='/netcat/add.php'>
<div>
<input type='hidden' name='cc' value='Номер шаблона в разделе статистики' />
<input type='hidden' name='sub' value='Номер раздела статистики' />
<input type='hidden' name='catalogue' value='$catalogue' />
<input type='hidden' name='curPos' value='$curPos' />
<input type='hidden' name='posting' value='1' />
<input type='hidden' name='f_MagazinStatUserID' value='$current_user[User_ID]' /> // - берём ID пользователя
<input type='hidden' name='f_MagazinStatUserIP' value='$f_IP' /> // - берём IP пользователя
<input type='hidden' name='f_MagazinStatUserDM' value='$message' /> // - берём номер загружаемого журнала
<input type='submit' class='button' value='Загрузить этот выпуск' onClick="window.open('$f_MagazineCurrentFile')" />
</div>
</form>


В "Действии после добавления" шаблона "Статистика загрузок" пишем:

Код:

";
header("Location: /download/");
echo "


Это нужно, чтобы после загрузки юзер возвращался к списку файлов и как бы не знал, что его считают (с Оперой тут небольшие проблемы).

Вот собственно и всё. Если надо у файла считать количество его загрузок, составляете sql-запрос и выбираете нужные данные из таблицы раздела.

В вашем случае (когда раскладка по юзерам не нужна), если хорошенько подумать, можно и вовсе без второго шаблона обойтись. Можно в шаблон "Журнал" добавить дополнительное числовое поле MagazineDownload и инкрементировать его sql-запросом. В принципе. Но это в том случае, если файлы добавляются через систему. Как считать загрузки внешних файлов я не разбирался.

...жизнь прекрасна, когда правильно подобраны антидепрессанты...
27.05.2010, 14:17
Ответить | Цитировать
Гость
Гость

после клика должны попадать на код примерно следующего вида
";

listQuery("UPDATE `MessageXX` SET download=download+1 where Message_ID=".$f_RowID, "");
header("location: http://www.сайт/images/docs/".$f_doc);

echo "

если в 2 словах, соответственно
Документ скачен: $f_download раз
198 196 2010-05-27 14:17:37 8812
Описание проекта