Бормотухи.НЕТ

Вернуться   Бормотухи.НЕТ > Web-мастеру > vBulletin 3.х
Расширенный поиск

vBulletin 3.х Раздел о vBulletin и всем что касается этого скрипта

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2011, 21:50 Вверх   #1
Опытный пользователь
 
Аватар для JustStyle
JustStyle вне форума
Доп. информация
Вопрос Помогите переделать Banlist

Здравствуйте, мне нужна помощь, помогите пожалуйста разобраться.

Я установил банлист на форум (отсюда) но хочу переписать его, что-бы он выводил баны не из таблицы userban (стандартная) а из таблицы AMX BANS-аддона для игры Counter-Strike 1.6, но не могу, не хватает знаний, может кто поможет сделать вывод из другой таблицы? Все что я пытался делать (в файле banlist.php) выдает ошибку базы данных... Спасибо.

P.S я видел на многих сайтах переделанный на другую таблицу банлист, но сам такое сделать не могу.

Последний раз редактировалось Serberg; 16.09.2011 в 23:36..
  Ответить с цитированием
Старый 16.09.2011, 22:45 Вверх   #2
Коренной житель
 
Аватар для Electro*Boy
Electro*Boy вне форума
Доп. информация
По умолчанию

Зайди на сайт где видел такое, клик правой кнопкой мыши -> просмотр кода элемента.
  Ответить с цитированием
Старый 17.09.2011, 10:20 Вверх   #3
Опытный пользователь
 
Аватар для JustStyle
JustStyle вне форума
Доп. информация
По умолчанию

Мне кажется есть изменения в продукте тоже.
  Ответить с цитированием
Старый 17.09.2011, 10:37 Вверх   #4
Опытный пользователь
 
Аватар для JustStyle
JustStyle вне форума
Доп. информация
По умолчанию

При просмотре исходного кода не показываются запросы к бд, я не могу с куском этого кода ничего сделать. Вот его скрипт
Нажми для просмотра
</script>

<link rel="stylesheet" type="text/css" href="/forums/clientscript/vbulletin_css/spoiler.css" />

<title>Freedom Game Servers - Бан лист сервера</title>

</head>

<body>



<!-- logo -->



</td>

</tr>

<tr>







<div align="center"><a href="/"><img src="freedom_logo3.jpg" width="100%"></div></td></a>





<!-- /logo -->

<!-- content table -->

<!-- open content container -->



<div align="center">

<div class="page" style="width:100%; text-align:left">

<div style="padding:0px 25px 0px 25px" align="left">













<br />

<!-- START STATUSBAR -->

<style type="text/css"><!--



div.monitoring

{

border:1px solid #C2CFDF;

background:#F0F5FA;

padding:5px

}



table.monitoring

{

background:#F0F5FA

}



td.monitoring

{

border:1px solid #C2CFDF;

margin:5px;

padding:5px;

font-family:

tahoma;font-size:11px;

color:#6E6E6E;

line-height:12px

}



--></style>



<script type="text/javascript"><!--

Servers = "cs2.is74.ru:27013,cs2.is74.ru:27014,cs2.is74.ru:27015,cs2.is74.ru:27018";

Timeout = 10;

CellBackground = "#D0DDEA";



function my()

{



}



//--></script>


  Ответить с цитированием
Старый 19.09.2011, 12:14 Вверх   #5
Опытный пользователь
 
Аватар для JustStyle
JustStyle вне форума
Доп. информация
По умолчанию

Пытаюсь изменить путь к запросу в файле banlist.php

Нажми для просмотра
//get the arrays we want
$getbanned_query = $db->query_read("
SELECT
userban.userid, adminid, bandate, liftdate, reason,
user.username as username,
admin.username as adminname, admin.displaygroupid as
admindisplaygroupid, admin.usergroupid as adminusergroupid
FROM " . TABLE_PREFIX . "userban as userban
LEFT JOIN " . TABLE_PREFIX . "user as user ON(user.userid = userban.userid)
LEFT JOIN " . TABLE_PREFIX . "user as admin ON(admin.userid = userban.adminid)
WHERE user.usergroupid IN ($bannedgroups)
ORDER BY bandate DESC
");


Все-равно вылетает ошибка базы данных...
  Ответить с цитированием
Старый 20.09.2011, 15:10 Вверх   #6
Модератор
 
Аватар для Slavok47
Slavok47 вне форума
Доп. информация
По умолчанию

Цитата Сообщение от JustStyle Посмотреть сообщение
Все-равно вылетает ошибка базы данных...
естественно, мало поменять просто таблицу, нужно еще менять и условия запроса, если не хватает знаний вряд ли сам сделаешь
  Ответить с цитированием
Старый 20.09.2011, 19:58 Вверх   #7
Опытный пользователь
 
Аватар для JustStyle
JustStyle вне форума
Доп. информация
По умолчанию

Буду пытаться, спасибо за помощь.
  Ответить с цитированием
Старый 07.10.2011, 13:27 Вверх   #8
Модератор
 
Аватар для Slavok47
Slavok47 вне форума
Доп. информация
По умолчанию

Цитата Сообщение от JustStyle Посмотреть сообщение
Буду пытаться
удачи! для начала сравни поля этих таблиц, там будут данные для сравнения с другими таблицами, ну и изучи принцип работы LEFT JOIN это важная часть запросов из нескольких таблиц
  Ответить с цитированием
Старый 07.10.2011, 13:33 Вверх   #9
Опытный пользователь
 
Аватар для JustStyle
JustStyle вне форума
Доп. информация
По умолчанию

Здравствуйте, у меня так пока и не получилось переписать банлист ;(

Я нашел, что вывод из таблицы выводится не через указанные пути, а по задающимся параметром: Вот фрагмент кода, которые это делает

Нажми для просмотра
PHP код:
//get the arrays we want
$getbanned_query $db->query_read("
    SELECT 
        userban.userid, adminid, bandate, liftdate, reason,
        user.username as username, 
        admin.username as adminname, admin.displaygroupid as admindisplaygroupid, admin.usergroupid as adminusergroupid
    FROM " 
TABLE_PREFIX "userban as userban
    LEFT JOIN  " 
TABLE_PREFIX "user as user ON(user.userid = userban.userid)
    LEFT JOIN " 
TABLE_PREFIX "user as admin ON(admin.userid = userban.adminid)
    WHERE user.usergroupid IN (
$bannedgroups)
    ORDER BY bandate DESC
"
); 


То-есть,
PHP код:
SELECT 
        userban
.useridadminidbandateliftdatereason
указывает какие брать данные из каких таблиц и какой бд, и это:
PHP код:
FROM " . TABLE_PREFIX . "userban as userban
    LEFT JOIN  
" . TABLE_PREFIX . "user as user ON(user.userid userban.userid)
    
LEFT JOIN " . TABLE_PREFIX . "user as admin ON(admin.userid userban.adminid
Мне просто нужно как-то поменять таблицы с userban на bans, и названия таблиц с userid, adminid, bandate, liftdate, reason на свои, и все, но если пытаться что-либо изменить в выводе из таблиц выходит ошибка mysql, что может быть упущено?

P.S что-бы Вам не качать плагин, вот полностью файл banlist.php

Нажми для просмотра
PHP код:
<?php

// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// ##################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT''banlist'); 

// #################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array(
        
'BANNED',
        
'banbit',
        
'pagenav',
);

// pre-cache templates used by specific actions
$actiontemplates = array();

// ########################## REQUIRE BACK-END ############################
require_once('./global.php');

// ########################################################################
// ######################### START MAIN SCRIPT ############################
// ########################################################################
ini_set("display_errors",1);
$navbits = array(); 
// title of the page that is displayed in the navbar
$navbits[$parent] = construct_phrase($vbphrase[banned_pagetitle]);

//check permissions
$temp str_replace(" ","",$vbulletin->options['banned_permissions']);
if(
$permitted_usergroups explode(","$temp)) {
    foreach(
$permitted_usergroups as $value) {
         if(
is_member_of($vbulletin->userinfo$value)) print_no_permission();
    }
}

//pagenav
$vbulletin->input->clean_array_gpc('r', array(
        
'perpage' => TYPE_INT,
        
'page' => TYPE_INT
    
));

    
$perpage $vbulletin->options['banned_perpage'];
    if(!
$perpage$perpage 10;
    
$pagenumber $vbulletin->GPC['page'];        
    if(empty(
$vbulletin->GPC['page']))
        
$page 1;
    else
        
$page $vbulletin->GPC['page'];
        
//get the banned usergroupids
$bannedgroups $vbulletin->options['banned_bangroups'];

//get the arrays we want
$getbanned_query $db->query_read("
    SELECT 
        userban.userid, adminid, bandate, liftdate, reason,
        user.username as username, 
        admin.username as adminname, admin.displaygroupid as admindisplaygroupid, admin.usergroupid as adminusergroupid
    FROM " 
TABLE_PREFIX "userban as userban
    LEFT JOIN  " 
TABLE_PREFIX "user as user ON(user.userid = userban.userid)
    LEFT JOIN " 
TABLE_PREFIX "user as admin ON(admin.userid = userban.adminid)
    WHERE user.usergroupid IN (
$bannedgroups)
    ORDER BY bandate DESC
"
);
    
    
$permanent=0;
if(
$db->num_rows($getbanned_query))
{
    
$i=1;
    while (
$banned $db->fetch_array($getbanned_query))
    {
        
$banned['admin_username']="<a href=\"member.php?u=$banned[adminid]\" rel=\"nofollow\">" $banned['adminname'] . "</a>";
        
$banned['username']= "<a href=\"member.php?u=$banned[userid]\" rel=\"nofollow\">" $banned['username'] . "</a>";
        
$banned['bandate'] = vbdate($vbulletin->options['dateformat'], $banned['bandate']);
        
        if(
$banned['liftdate']) //check if there is a date
        
{
            
$banned['liftdate'] = vbdate($vbulletin->options['dateformat'], $banned['liftdate']);
        }
        else
        {
            
$banned['liftdate'] = $vbphrase['never'];
            
$permanent++;
        }
        
        if(
$i==1)
        {
            
$newest $banned['username'];
            
$banned_stats['newest_bandate'] = $banned['bandate'];
            
$banned_stats['newest_username'] = $banned['username'];
        }
        
        if((
$i>($page-1)*$perpage) AND ($i<=$page*$perpage))
        {
            eval(
'$banbits .= "' fetch_template('banbit') . '";');
        }
        
$i++;
        
        if(
$frequencies["$banned[admin_username]"])
        {
            
$frequencies["$banned[admin_username]"]++;
        }
        else
        {
            
$frequencies["$banned[admin_username]"] = 1;
        }
    }
 
    
//page navigation
    
$pagenav construct_page_nav($page$perpage$i"banlist.php?",""); 
    
    
//Statistics
    
$banned_stats['total'] = $i;
    
$banned_stats['permanent'] = $permanent;
    
$banned_stats['temporary'] = $banned_stats['total'] - $permanent;
    
    
arsort($frequencies);
    
$max each($frequencies);
    
    
$banned_stats['maxadmin'] = $max[0];
    
$banned_stats['maxadmin_users']= $max[1];
    
    
//End Statistics
}
else 
//=there are no banned users.
{
    
$banned_stats['total'] = $banned_stats['permanent'] = $banned_stats['temporary'] = $banned_stats['maxadminid'] = $banned_stats['maxadmin_users'] = 0;
    
$banned_stats['newest_bandate'] = construct_phrase($vbphrase['never']);
    
$banned_stats['newest_username'] = $banned_stats['maxadmin'] = 'None'//the only thing apart from the copyright that is not a phrase. Sorry I'm too tired right now and it's only used if there are no banned users.
}
$navbits construct_navbits($navbits);
eval(
'$navbar = "' fetch_template('navbar') . '";');

//actual main output template
eval('print_output("' fetch_template('BANNED') . '");');
?>


Спасибо за потраченное на меня время ; )

Последний раз редактировалось JustStyle; 07.10.2011 в 13:52..
  Ответить с цитированием
Старый 14.10.2011, 18:50 Вверх   #10
Опытный пользователь
 
Аватар для JustStyle
JustStyle вне форума
Доп. информация
По умолчанию

Добился того, что смог сменить таблицу, из которой выводится информация так, что-бы не вылетала ошибка мускула. Теперь вопрос: как сменить столбы вывода с userid, usergroupid, displaygroupid, usertittle, adminid, bandate, lifdate, reason на player_id, admin_id, ban_created, ban_length, ban_reason? Ибо при выводе на страницу он показывает пользователей, зарегистрированных на форуме и берет информацию со страницы бользователя, а как быть если такого даже нету на форуме, просто выводился из бд?

Вот тот сайт, на котором есть такой переписанный скрипт (не сочтите за рекламу)
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 1 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


(Прошу не удалять ссылку, кладу под хайд дабы не индексировалось ботами)
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 00:54. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
 

Время генерации страницы 0.20064 секунды с 13 запросами