![]() |
Показаны 15 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Хаки от Netadmin или "Сделай сам" (http://netadmin.ws/forum/forumdisplay.php?forumid=65)
-- Отдельный список закаченных файлов на форум (http://netadmin.ws/forum/showthread.php?threadid=6459)
Отдельный список закаченных файлов на форум
Есть какой то форум например "Тест"
В форуме "Тест" выкладывают файлы.
Так вот можно ли получить хоть какой нибуть список файлов которые были выложены в этом форуме атачем.
При этом желательно был бы ретинг по скачиванию и по размерам
Теоретически - можно.
Но практически - есть одна проблема - в базе с аттачами не указывается раздел, в котором находится сообщение к которому этот аттач прикреплен.
Из-за этого нужно брать аттач, смотреть к какому сообщению он прикреплен, потом смотреть в какой теме находится это сообщение и только потом можно будет узнать в каком разделе находится эта тема и, соответственно - аттач.
В vBulletin 3 в этим попроще. Намного, я бы даже сказал 
MarKer добавил 08-09-2003 в 02:15:43:
Вот накропал кое-что...
Выкладываю в виде файла, т.к. иначе код разбивается.
Вопрос!!!!
А что с этим делать?
Isvet
Хех, ну можно скинуть в отдельный PHP-файл, прописать данные для коннекта к базе...
mysql_connect("host","user","password");
mysql_select_db("database");

не работает
<?php
mysql_connect("host","user","password");
mysql_select_db("database");
$forumid_to_get="28"; // ID форума откуда брать аттачи
$get_attach_list=mysql_query("SELECT `attachmentid` FROM `attachment` ORDER BY `attachmentid` ASC");
for($i=0; $i<mysql_num_rows($get_attach_list); $i++) {
$attach_list=mysql_fetch_array($get_attach_list);
$post_data=mysql_fetch_array(mysql_query("SELECT `threadid` FROM `post` WHERE `attachmentid`='$attach_list[attachmentid]'"));
$thread_info=mysql_fetch_array(mysql_query("SELECT `forumid` FROM `thread` WHERE `threadid`='$post_data[threadid]'"));
if($thread_info['forumid']==$forumid_to_get) {
$forum_attach[]=$attach_list['attachmentid'];
}
}
foreach($forum_attach as $a => $b) {
$attach_info=mysql_fetch_array(mysql_query("SELECT `filename`,`dateline`,`userid`,`counter`,LENGTH(`f
iledata`) FROM `attachment` WHERE `attachmentid`='$b'"));
$sent_by=mysql_fetch_array(mysql_query("SELECT `username` FROM `user` WHERE `userid`='$attach_info[userid]'"));
echo "Номер: {$b}<br>
Файл: {$attach_info['filename']}<br>
Ð_азмер: {$attach_info['LENGTH(`filedata`)']} байт<br>
Дата: ".date('d-m-Y (H:i)',$attach_info['dateline'])."<br>
Автор: {$sent_by['username']}<br>
Скачан: {$attach_info['counter']} раз(а)<br><br>";
}
?>
Isvet
Ты надеюсь догадался указать свои данные для доступа к базе данных?
MarKer добавил 08-09-2003 в 17:04:22:
Если не горит - я могу к завтрашнему дню сделать полноценный хак для vB2. Сегодня просто времени нет :/
MarKer проще поле одно в таблицу добавить с ид форума, а потом одним запросом все выбирать.
Но есть и "Мы пойдем другим путем!".
__________________
No pity, no mercy, no regret.
Vanish
Если форум "чистый" - проще.
Если же на форуме уже есть аттачи - нужно писать скрипт для индексации старых + править код самого форума на добавление новых аттачей.
Мой же вариант работает вообще без вмешательства в структуру базы данных форума и в его код.
Так что мой вариант все же будет проще 
Хотя с точки зрения оптимизации - чуть хуже.
quote:
Ты надеюсь догадался указать свои данные для доступа к базе данных?



quote:
Если не горит - я могу к завтрашнему дню сделать полноценный хак для vB2. Сегодня просто времени нет :/
quote:
А где эта?
mysql_connect("host","user","password");
mysql_select_db("database");
MarKer запросом больше, запросом меньше, знаю знаю сам так писал пока не поумнел.
__________________
No pity, no mercy, no regret.
quote:
host - сервер на котором расположена база данных (обычно localhost)
user - имя пользователя для доступа к базе
password - пароль пользователя для доступа к базе
database - название базы где установлен форум
У меня на форуме где-то 1500 файлов обрабатывала где-то минут 5...
Isvet
во! поэтому нужно добавлять поле "ид", потом делать индексацию, которая будет делаться минут 5, а потом спокойненько юзать 
e1 и после этого они со мной еще спорят 
__________________
No pity, no mercy, no regret.
Vanish
ну, молодые Ышо, неопытные 
| Формат времени GMT. Текущее время 18:53. | Показаны 15 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.