To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

1.12.7 i starsze - Ostatnie bany na forum (AmxBans)

kevin_ - 28-12-2008, 10:28
Temat postu: Ostatnie bany na forum (AmxBans)
Hej, mod bardziej dla CSo maniaków, widziałem parę próśb tutaj na forum o udostępnienie tego moda, jednak nikt nie chciał go udostępnić. Jest to moja pierwsza modyfikacja, którą pisałem od podstaw, więc miło byłoby gdybyście mi zwrócili uwagę na jakieś niedogodności.

+ Możliwość ukrycia/rozwinięcia listy banów
+ Standardowo wyświetla 5 ostatnich banów, po przez zmienna (w page_header.php) możemy zwiększyć liczbę
+ Nick zbanowanego jako odnośnik (nowa strona) do dokładnych informacji nt. bana
+ mod zintegrowany z forum (phpbb) nie żadne includy po przez pliki tpl
+ i takie tam.. ;-)

Testowane na AMXBans 5.1 by d3f3nd3r oraz skrypcie forum phpBB2 by Przemo 1.12.6
- Podczas instalacji AmxBans tabele amxbans wgrywamy do tej samej bazy co skrypt forum (u mnie to było przemo) > Obraz <
- Po instalacji struktura tabel, będzie wyglądać tak > Obraz <

~ Screeny:
1

~ Live Demo:
brak ;(

~ Konfiguracja:
(w page_header.php mamy zmienne wraz z opisem, zastosuj się do tych opisów!)
- $amxb_col = 'amx_bans';
- $l_banow = '5';
- $adres_amxbans = 'http://www.lobuz.net/amxbans/';

Radek - 28-12-2008, 15:48

jaco1992, o czym Ty piszesz? co byś musiał zrobić od nowa? w modzie kevina ustawiasz nazwę tabeli w zmiennej $amxb_col, w "modzie" dellka musisz grzebać w zapytaniu.

kevin_, przenieś kod:
Kod:
    $template->assign_vars(array(
         'ostatnie_bany'    => $lang['ostatnie_bany'],
        'nick_gracza'      => $lang['nick_gracza'],
        'ip_gracza'        => $lang['ip_gracza'],
        'powod_bana'       => $lang['powod_bana'],
        'czas_bana'        => $lang['czas_bana'],
        ));

przed pętlę.
Druga sprawa:
Kod:
    function czas_bana($czas) {
    if($czas!=0) {
        if ($czas<1440) {
            return $czas." minut";
        } else {
            $czas = round($czas/1440);
            if ($czas == 1) {
                return $czas." dzień";
            } else {
                return $czas." dni";
            }
        }
    } else {
        return "Na zawsze";
    }
    return false;
}

czemu nie ma tu obsługi langów?

Następnie:
Kod:
        'ostatnie_bany'    => $l_ostatnie_bany,
        'nick_gracza'      => $l_nick_gracza,
        'ip_gracza'        => $l_ip_gracza,
        'powod_bana'       => $l_powod_bana,
        'czas_bana'        => $l_czas_bana,

to jest niepotrzebne. Nie jest wykorzystywane w tpl, poza tym żadna ze zmiennych podanych wyżej nie istnieje.

Chyba coś Ci się pomieszało w instrukcji:
Kod:
<a href="http://localhost/przemo/web/ban_details.php?bid={amxbans.bid}" target="_blank">
;)

Więcej zastrzeżeń nie mam.

kevin_ - 28-12-2008, 16:30

RuseK napisał/a:
Następnie:
Kod:
'ostatnie_bany' => $l_ostatnie_bany,
'nick_gracza' => $l_nick_gracza,
'ip_gracza' => $l_ip_gracza,
'powod_bana' => $l_powod_bana,
'czas_bana' => $l_czas_bana,

to jest niepotrzebne. Nie jest wykorzystywane w tpl, poza tym żadna ze zmiennych podanych wyżej nie istnieje.

Usunięte.
RuseK napisał/a:
$template->assign_vars(array(
'ostatnie_bany' => $lang['ostatnie_bany'],
'nick_gracza' => $lang['nick_gracza'],
'ip_gracza' => $lang['ip_gracza'],
'powod_bana' => $lang['powod_bana'],
'czas_bana' => $lang['czas_bana'],
));

Przestawione.

RuseK napisał/a:
Chyba coś Ci się pomieszało w instrukcji:
Kod:
<a href="http://localhost/przemo/web/ban_details.php?bid={amxbans.bid}" target="_blank">
;)


Wpadka :) Zastanawiałem się nad dwiema opcjami
a) Użytkownik sam będzie zmieniał adres do amxbans w plikach tpl, gdzie jest mnóstwo kodu, i ktoś może się zgubić :(
b) W page_header utworzyć kolejną zmienną, którą wypełniamy adresem.
Teraz link wygląda tak:
Kod:

<a href="{amxbans.adres_amxbans}ban_details.php?bid={amxbans.bid}" target="_blank"><b>{amxbans.player_nick}</b></a>



RuseK napisał/a:
function czas_bana($czas) {
if($czas!=0) {
if ($czas<1440) {
return $czas." minut";
} else {
$czas = round($czas/1440);
if ($czas == 1) {
return $czas." dzień";
} else {
return $czas." dni";
}
}
} else {
return "Na zawsze";
}
return false;
}

czemu nie ma tu obsługi langów?


W jaki sposób proponujesz to rozwiązać?
Po: function czas_bana($czas) { wstawiłem zmienna $perm = 'Na zawsze';
i zamieniłem return "Na zawsze"; na return $perm; i działało, ale nie wiem jak ustawić aby zmienną był plik językowy pobierany z lang_polish/lang_main.php

Paczka uaktualniona, zgodnie z w/w poprawkami.
Pozdro

Radek - 28-12-2008, 17:29

po:
Kod:
function czas_bana($czas) {

dodajesz:
Kod:
global $lang;

i już możesz korzystać z tablicy $lang, np.
Kod:
return $lang['1_Day'];
itd.

jaco1992 - 28-12-2008, 18:09

kevin_ napisał/a:
- Podczas instalacji AmxBans tabele amxbans wgrywamy do tej samej bazy co skrypt forum (u mnie to było przemo) > Obraz <

RuseK, tak napisał ;]

kevin_ - 28-12-2008, 18:54

RuseK napisał/a:
czemu nie ma tu obsługi langów?


Poprawione. Załącznik uaktualniony.
Dzięki za pomoc Rusek.

Samix - 31-01-2009, 19:02

Witam mam pytanie a jak bazę mam na innym hostingu to gdzie wpisać localhost bazę itd bo tutaj automatycznie mi szuka z bazy na której jest forum
Grzelak - 12-02-2009, 12:20

Czy da sie ustawic na innej bazie mysql niz jest forum ?
jendrek9 - 13-02-2009, 16:32

Tak da się
Virginity - 15-02-2009, 14:07

hmmm... a da się ją użyć w GTA SAMP? :roll:
Seba123 - 15-02-2009, 15:32

Od kiedy amxbans współpracuje z GTA? Żal Cię koleś!
syspo - 04-03-2009, 19:23

Witam serdecznie :)

Samix napisał/a:
Witam mam pytanie a jak bazę mam na innym hostingu to gdzie wpisać localhost bazę itd bo tutaj automatycznie mi szuka z bazy na której jest forum
Grzelak napisał/a:
Czy da sie ustawic na innej bazie mysql niz jest forum ?
jendrek9 napisał/a:
Tak da się
Czy ktoś może mi pomóc przerobić tą modyfikację tak, aby łączyła się ona z zewnętrznym hostingiem?
Póki co nie mam możliwości aby amxbans działał na bazie danych, na której jest zainstalowane forum. Bazę mam na udostępnionym mi serwerze firmy Firehost. I tam też potrzebowałbym przekierować odwołania z tej modyfikacji.

Wiem, że będzie ta zmiana miała nastąpić w tym miejscu:
Kod:
$sql = "SELECT bid, player_ip, player_id, player_nick, admin_nick, ban_reason, ban_length FROM ".$amxb_col." ORDER by bid DESC LIMIT ".$l_banow." ";
if ( !($result = $db->sql_query($sql)) )


Myślałem nad tym aby jakoś wmontować następujący kod:
Kod:
$link = mysql_connect("sql.firehost.pl", "login", "haslo");
$flag = mysql_select_db("nazwa_db");
ale nie bardzo wiem jak "wpiąć" w ten kod.

Czekam na pomocne odpowiedzi :)

Dzięki i pozdrawiam
syspo

Boltex - 05-03-2009, 23:26

ja mam taki błąd
Kod:
Parse error: syntax error, unexpected T_VARIABLE in /home/boltos/public_html/counterchaos.pl/language/lang_polish/lang_main.php on line 1166

Bucu - 05-03-2009, 23:31

wrzuc ten plik zobacze co masz nie tak
Bucu - 05-03-2009, 23:51

Boltos, w zalaczniku masz zmodyfikowane pliki, powinno dzialac.

nie zapomnij o instalacji i konfiguracji ofkoz.



Powered by phpBB modified by Przemo © 2003 phpBB Group