View Full Version : скачка файлов за посты на форуме
nuke 7.9.1 в модуле Files в функции
function getit можно сделать чтоб скачивать могли только пользователи, а просматривать все,Можно ли сделать чтоб пользователи могли скачивать файлы из Files после того как оставили определеное количество постов на форуме,а просматривать все,если кто знает подскажите пожалуйста.
Alexander-V-Sh
27.08.2006, 00:58
Проверки ставить, например где стоит ссылка Скачать, сделать так:
if (is_user($user)) {
Тут идет форма или что то там в этом модуле, чтобы скачать файл
} else {
echo "Для того чтобы скачать вы должны зарегестрироваться";
}
А вот про форум незнаю, ибо им не пользуюсь...
как сделать чтоб скачивать могли только юзеры я знаю вот код
function getit($lid) {
global $prefix, $db, $module_name, $user;
if (is_user($user)){
$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");
}else{
include("header.php");
menu($maindownload);
echo "<br>";
OpenTable();
echo "<center>";
echo "<font color=red><b>Скачать файл могут только зарегистрированные и активированные пользователи!</b></font><br><br>";
echo "<A href=\"modules.php?name=Your_Account\">Войти</A> | <A href=\"modules.php?name=Your_Account&op=pass_lost\">Потеряли свой пароль?</A> | <A href=\"modules.php?name=Your_Account&op=new_user\">Регистрация нового пользователя</A>";
echo "</center>";
CloseTable();
include("footer.php");
}
}
а вот как сделать чтоб скачивали после определеного количества постов на форуме не знаю может кто делал
Alexander-V-Sh
27.08.2006, 15:01
muscul
А чем этот код не нравится? В нем помоему юзеры только и могут скачивать.
в том и дело хотелось бы сделать чтоб не просто зарегистрированые скачивали, а зарегистрированые которые оставят несколько сообщений на форуме,а смотреть все.
Alexander-V-Sh
27.08.2006, 17:45
muscul
Тогда нужно сделать еще проверку на посты. Я незнаю в какой таблице хранится количество постов у юзера, (но отыскать можно).
Что то вроде этого. (не факт что верно написал, ибо проверить негде)
function getit($lid) {
global $prefix, $db, $module_name, $user;
$lid = intval($lid);
if (is_user($user)){
getusrinfo($user);
$username = "".$userinfo['username'].""; //имя юзера
$result2 = $db->sql_query("SELECT посты FROM ".$prefix."_база WHERE юзер='$username'"); //запрос в бд, чтобы узнать сколько у него постов
$row2 = $db->sql_fetchrow($result2);
$post = intval($row4['посты']);
if ($post > 100) { //проверка на количество
$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");
} else {
include("header.php");
menu($maindownload);
echo "<br>";
OpenTable();
echo "<center>";
echo "<font color=red><b>Извините, но чтобы скачать этот файл, нужно иметь не менее 100 постов на нашем форуме</b></font><br><br>";
echo "</center>";
CloseTable();
include("footer.php");
}
} else {
include("header.php");
menu($maindownload);
echo "<br>";
OpenTable();
echo "<center>";
echo "<font color=red><b>Скачать файл могут только зарегистрированные и активированные пользователи!</b></font><br><br>";
echo "<A href=\"modules.php?name=Your_Account\">Войти</A> | <A href=\"modules.php?name=Your_Account&op=pass_lost\">Потеряли свой пароль?</A> | <A href=\"modules.php?name=Your_Account&op=new_user\">Регистрация нового пользователя</A>";
echo "</center>";
CloseTable();
include("footer.php");
}
}
Alexander-V-Sh спасибо, попробую так
попробывал что то не то, все работает но при скачке выскакивает надпись
извините, но чтобы скачать этот файл, нужно иметь не менее 100 постов на нашем форуме
пробывал снизить количество постов то же самое + не появляется нижний блок про регистрацию.
Alexander-V-Sh
27.08.2006, 23:47
muscul
проверь запрос в базу данных
------
Вы когда регестрируетесь, не пишите данных о себе, сейчас бы тебе постучал и пояснил...
muscul
проверь запрос в базу данных
Спасибо, сделал все заработало
описалбы подробно как ты это сделал!
могу только подсказать про Filis и посты
подскажи! просто я хочу сделать на твоём примере скачку за баллы (поинты)!
вот сам код попробуй запрос изменить
function getit($lid) {
global $prefix, $db, $module_name, $user, $cookie, $postion, $user_prefix;
$lid = intval($lid);
if (is_user($user)){
getusrinfo($user);
//$username = "".$userinfo['username'].""; //имя юзера
cookiedecode($user);
$username = $cookie[1];
if ($username == "") {
$username = "Anonymous";
}
$result2 = $db->sql_query("SELECT user_posts FROM ".$user_prefix."_users WHERE username='$username'"); //запрос в бд, чтобы узнать сколько у него постов
$row2 = $db->sql_fetchrow($result2);
$post = intval($row2['user_posts']);
if ($post >= $postion) { //проверка на количество
$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");
} else {
include("header.php");
menu($maindownload);
echo "<br>";
OpenTable();
echo "<center>";
echo "<font color=red><b>Извините, но чтобы скачать этот файл, нужно иметь не менее $postion постов на нашем форуме.<br>У вас всего постов $post</b></font><br><br>";
echo "</center>";
CloseTable();
include("footer.php");
}
} else {
include("header.php");
menu($maindownload);
echo "<br>";
OpenTable();
echo "<center>";
echo "<font color=red><b>Скачать файл могут только зарегистрированные и активированные пользователи!</b></font><br><br>";
echo "<A href=\"modules.php?name=Your_Account\">Войти</A> | <A href=\"modules.php?name=Your_Account&op=pass_lost\">Потеряли свой пароль?</A> | <A href=\"modules.php?name=Your_Account&op=new_user\">Регистрация нового пользователя</A>";
echo "</center>";
CloseTable();
include("footer.php");
}
}
И где-нибудь в начале файла вставь вот это:
// Кол-во постов которые должен оставить пользователь на форуме что-бы скачивать файлы:
$postion = "10";
ок! ща попробую!
спасибо, всё получилось!:-)
Silent_Hill
29.12.2006, 02:56
а куды писать это кот ??? подскажите плизз.
MyNuke.ru