PDA

View Full Version : Модуль Files


Spark
12.02.2006, 01:22
подскажите пожалуйста, можно ли сделать возможность скачивания файла не заходя на его страницу, т.е. в каталоге рядом с названием файла сделать прямую ссылку на файл. и возможно ли при этом считать кол-во скачиваний?

заранее спасибо за ответы!

Soniks
12.02.2006, 14:52
Spark через прямую ссылку нельзя посчитать скачивания.

new_man
12.02.2006, 15:37
А можно сделать такое: создаешь папку files в корне каталога, потом создаешь скрипт, который публикует и разыскивает файлы в этой папке с расширением rar, zip, jar на страницу файлов? И можно ли сделать добавку файлов с компьютера кнопкой обзор и добавить?

Soniks
12.02.2006, 22:20
new_man да все можно, посмотрите скрипты антиличеры (antileech), они похоже работают

Spark
13.02.2006, 00:36
ну вот после нажатия скачать, открывается окно и затем начинается загрузка файла, вот можно ли эту кнопку сделать рядом с названием файла? тогда сразу после нажатия и считывание будет и ничего больше не будет открываться. а то очень не удобно, приходится 2 лишних страницы пройти чтобы файл скачать. подскажите пожалуйста, ведь это реально сделать.

Soniks
13.02.2006, 18:46
посмотрите вот этот модуль http://mynuke.ru/modules.php?name=Downloads&op=getit&lid=178

Spark
13.02.2006, 20:49
модуль менять не хочу. а как сделать прямую ссылку на файл? фиг со счетчиком

Soniks
14.02.2006, 01:20
в каком месте именно вы хотите сделать эту ссылку?

Spark
14.02.2006, 02:11
Чтобы в каталоге рядом с каждым названием (при нажатии на названии открывается окно файла) была в скобочках прямая ссылка на файл. примерно так, как на этом сайте http://dimonvideo.ru/files
заранее спасибо!

Soniks
14.02.2006, 15:01
Откройте modules/Files/index.php
Найдите 3 раза:

reitinggraphic($votes, $totalvotes);
echo "</td></tr>";

Замените на:

reitinggraphic($votes, $totalvotes);
echo "&nbsp;(<a href=\"modules.php?name=$module_name&go=getit&lid=$lid\">Скачать</a>)</td></tr>";

Найдите:

function getit($lid) {
global $prefix, $db, $module_name;
$lid = intval($lid);
$hits = intval($hits);
$db->sql_query("update ".$prefix."_files set hits=hits+1 WHERE lid=$lid");
$sql = "SELECT title, url FROM ".$prefix."_files WHERE lid='$lid'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$f_title = $row[title];
$url = $row[url];
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"5; URL=$url\">";
include("header.php");
menu();
OpenTable();
echo "<center><br><br><br>"._NOTEDOWNLOAD." <b>$f_title</b> "._NOTEDOWNLOAD2."<br><br><br><br>";
echo "<b><a href=\"$url\">$url</a></b><br><br><br><br>";
echo "[ <a href=\"javascript:history.go(-1)\">"._PBACK."</a> | <a href=\"modules.php?name=$module_name\">"._PHOME."</a> ]<br><br><br></center>";
CloseTable();
include("footer.php");
}

Замените на:

function getit($lid) {
global $prefix, $db, $module_name;
$lid = intval($lid);
$hits = intval($hits);
$db->sql_query("update ".$prefix."_files set hits=hits+1 WHERE lid=$lid");
$sql = "SELECT url FROM ".$prefix."_files WHERE lid='$lid'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$url = $row['url'];
header("Location: $url");
}

Spark
14.02.2006, 21:02
огромное спасибо, всё работает!

и ещё один вопрос по этому модулю: как сделать поиск по модулю?

Soniks
15.02.2006, 02:32
Можно изменить стандартный поиск, для этого откройте modules/Search/index.php
найдите:

}
CloseTable();
if (isset($query) AND $query != "") {
echo "<br>";

В замен добавьте:
} elseif ($type=="files" OR !$type) {
$res_f = $db->sql_query("SELECT lid, title, description FROM ".$prefix."_files WHERE (title LIKE '%$query%' OR description LIKE '%$query%') $queryrlang ORDER BY lid DESC LIMIT $min,$offset");
$nrows = $db->sql_numrows($res_f);
$x=0;
if ($query != "") {
echo "<br><hr noshade size=\"1\"><center><b>"._SEARCHRESULTS."</b></center><br><br>";
echo "<table width=\"99%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n";
if ($nrows>0) {
while($rowf = $db->sql_fetchrow($res_f)) {
$lid = intval($rowf['lid']);
$title = stripslashes(check_html($rowf['title'], "nohtml"));
$description = stripslashes($rowf['description']);
$furl = "modules.php?name=Files&go=view_file&lid=$lid";
echo "<tr><td><img src=\"images/folders.gif\" border=\"0\" alt=\"\">&nbsp;<font class=\"option\"><a href=\"$furl\"><b>$title</b></a></font><br>"
."<font class=\"content\">$description</font><br></td></tr>\n";
$x++;
}
echo "</table>";
} else {
echo "<tr><td><center><font class=\"option\"><b>"._NOMATCHES."</b></font></center><br><br>";
echo "</td></tr></table>";
}
$prev=$min-$offset;
if ($prev>=0) {
print "<br><br><center><a href=\"modules.php?name=$module_name&amp;author=$author&amp;topic=$t&amp;min=$prev&amp;query=$query&amp;type=files\">";
print "<b>$min "._PREVMATCHES."</b></a></center>";
}
$next=$min+$offset;
if ($x>=9) {
print "<br><br><center><a href=\"modules.php?name=$module_name&amp;author=$author&amp;topic=$t&amp;min=$max&amp;query=$query&amp;type=files\">";
print "<b>"._NEXTMATCHES."</b></a></center>";
}
}
}
CloseTable();
if (isset($query) AND $query != "") {
echo "<br>";

должно работать.

Spark
15.02.2006, 15:03
заменил, но всё равно не ищет

Soniks
15.02.2006, 17:15
нужно еще после
echo "<input type=\"radio\" name=\"type\" value=\"users\" $sel3> "._SUSERS."";
добавить:
echo "<input type=\"radio\" name=\"type\" value=\"files\"> Файлах";

Spark
15.02.2006, 22:32
всё равно не работает.

Soniks
16.02.2006, 00:49
Spark а что значит не работает? вы выбираете что надо искать в файлах?

Spark
16.02.2006, 02:08
конечно. да и пункта где искать ("файлах") нету вообще

вобщем теперь ищет, но не переходит на страницу файла

и ещё пишет всё равно:

далее...

К сожалению, по вашему запросу ничего не найдено...

Поиск "***" на:


Google
Google Groups

Soniks
16.02.2006, 03:19
Spark ну это выводиться так в стандартном поиске, если надо, можите удалить этот кусок кода:

OpenTable();
echo "<font class=\"title\">"._FINDMORE."<br><br>"
.""._DIDNOTFIND."</font><br><br>"
.""._SEARCH." \"<b>$query</b>\" "._ON.":<br><br>"
."<ul>"
."$mod1"
."$mod2"
."$mod3"
."<li> <a href=\"http://www.google.com/search?q=$query\" target=\"new\">Google</a>"
."<li> <a href=\"http://groups.google.com/groups?q=$query\" target=\"new\">Google Groups</a>"
."</ul>";
CloseTable();

вобщем теперь ищет, но не переходит на страницу файла
немного ссылку подправил (на 3 поста выше)

Spark
16.02.2006, 09:34
теперь ссылка такого типа /modules.php?name=Files&go=view_file&lid=0 ну и соответственно переходит на главную..

Soniks
16.02.2006, 16:21
еще подправил

Spark
16.02.2006, 23:32
Заработало, спасибо!!!

ну и теперь последний вопрос, как сделать, чтобы в начало раздела выводились последние 10 файлов и над ними указывалась категория где они находятся (например Операционные системы -> Windows)

Soniks
17.02.2006, 00:51
посмотрите как это выполнено в блоке new_files идущий вместе с модулем и по анологии вставляйте в нужное вам место в самом модуле.

Spark
17.02.2006, 21:52
а можно сделать возможностью загрузки скриншота через админку, а не вручную?

Soniks
17.02.2006, 23:51
Spark можно все, но для этого нужны знания в php

Kxu
22.02.2006, 11:34
Soniks , хочу сделать загрузку картинок на сайт с панели админа, чтобы картинка в соостветствующую папку, а папки создавались автоматически, те пронумеровывались!!! потом эти картинки отображались в блоках просмотра пользователями, например фотогаллерея, открывались все блоги фотогаллереи с краткой информацией, а подробнее все фотки из соответствующей папки. Можно!?!?!? ответ Да, не устраивает, кратко о важном хочу очень, пожалуйста!!! С чего начать создавать модуль????

Soniks
22.02.2006, 17:19
Kxu советую взять простенькую галерею и посмотреть, как там все это устроено, и делать по аналогии.

isic
29.03.2007, 12:30
Ответьте пожалуйста как решить эти проблемки?
У меня такие проблемы:
1. не могу закачать файлы больших объемов, например 2,5 мега. Хотя в конфиге в необходимой позиции указал $max_size = 50000000;. И ругается таким образом, если под админом. то пишет что Вы не указали какой файл закачать. Почему такое пишет? Как исправить? Файл архивирован в зипе как положено.
2. Когда я под пользователем и пытаюсь добавить файл, тоже за архивирован в зипе и весит всего лишь 160 КБ то он пишет ошибку такого рода "По какой-то причине система не смогла загрузить файл. Проверьте правильность свойст (CHMOD) для директорий с файлами."
CHMOD двух папок стоят 770. Но что самое интересное если добавляю через админ панель то файлы маленьких размеров добавляются отлично.
3. Я бы хотел бы что бы в комментариях не было системного редактора, то есть обычное поле для текста.
Ну пока вроде все.У меня такие проблемы:
1. не могу закачать файлы больших объемов, например 2,5 мега. Хотя в конфиге в необходимой позиции указал $max_size = 50000000;. И ругается таким образом, если под админом. то пишет что Вы не указали какой файл закачать. Почему такое пишет? Как исправить? Файл архивирован в зипе как положено.
2. Когда я под пользователем и пытаюсь добавить файл, тоже за архивирован в зипе и весит всего лишь 160 КБ то он пишет ошибку такого рода "По какой-то причине система не смогла загрузить файл. Проверьте правильность свойств (CHMOD) для директорий с файлами."
CHMOD двух папок стоят 770. Но что самое интересное если добавляю через админ панель то файлы маленьких размеров добавляются отлично.
3. Я бы хотел бы что бы в комментариях не было системного редактора, то есть обычное поле для текста.
Ну пока вроде все.

Astrix
30.03.2007, 19:52
1) Смотрите, какие ограничения на размер файлов стоят в вашем php.ini (хотя обычно это 8-10 Мб)
3) редактор можно либо совсем выключить, либо придется видеть его везде, где в форме присутствует textarea

isic
02.04.2007, 12:51
УважаемыйAstrix с редактором спасибо решил я его вообще отключил в данном модуле, а вот с загрузкой не понял. а что за файл php.ini Вы имели виду? Я что то не нашел такой файл и честно сказать название файл не понял. Где он находиться?

Astrix
03.04.2007, 02:34
Обычно в \usr\local\php в директории, куда установлен сервер

stvmts
29.04.2007, 17:03
такой вопросец..работал рабатал модуль..потом перестал грузить файлы...
пишет
по какой-то причине система не смогла загрузить файл. проверте правильность свойст (chmod) для директорий с файлами.

пожалуйста вернитесь назад и исправьте.

Chmod стоит 777

Proxydj
29.04.2007, 21:46
такой вопросец..работал рабатал модуль..потом перестал грузить файлы...
пишет
по какой-то причине система не смогла загрузить файл. проверте правильность свойст (chmod) для директорий с файлами.

пожалуйста вернитесь назад и исправьте.

Chmod стоит 777
Ну тут два варианта
1) возможно слители права на папку (куда он кидает файло)
2) возможно закончилось место на HDD
3) третьего варианта быть не должно

stvmts
03.05.2007, 09:56
права в норме..проверял перезаливал..папочки..
места навалом..