Unofficial modifications
nieoficjalne modyfikacje for?w phpBB by Przemo

Modyfikacje mniejsze - Blokada pisania w ShoutBoxie po otrzymaniu ostrze?enia

qbs - Sro 03 Maj, 2006
Temat postu: Blokada pisania w ShoutBoxie po otrzymaniu ostrze?enia
Otw?rz: shoutbox_view.php
Znajd?:
PHP Code:
<?php

    if ( !$too_long && !$flood_msg && !$shoutbox_banned && $is_auth_send )
    {
        $msg_id = $db->sql_nextid();

        $sql = "INSERT INTO " . SHOUTBOX_TABLE . "
            VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
        }


        $start = CR_TIME - $shoutbox_config['delete_days'] * 86400;

        $sql = "DELETE FROM " . SHOUTBOX_TABLE . "
            WHERE timestamp < $start";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, 'Could not delete shoutbox messages', '', __LINE__, __FILE__, $sql);
        }

        sql_cache('clear', 'sb_count');
        }
    }


?>

Zamie? na:
PHP Code:
<?php

    if ( !$too_long && !$flood_msg && !$shoutbox_banned && $is_auth_send )
    {
        if ( $userdata['user_id'] > 1 )
        {
            $sql = "SELECT count(*) as ile FROM " . WARNINGS_TABLE . " WHERE userid = '" . $userdata['user_id'] . "' AND archive = '0'";
            if ( !($result = $db->sql_query($sql)) )
            {
                message_die(GENERAL_ERROR, 'Could not obtain warnings info', '', __LINE__, __FILE__, $sql);
            }
        }
        $warns = $db->sql_fetchrow($result);
        if ( $warns['ile'] < 1 )
        {

            $msg_id = $db->sql_nextid();

            $sql = "INSERT INTO " . SHOUTBOX_TABLE . "
                VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
            if ( !($result = $db->sql_query($sql)) )
            {
                message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
            }



            $start = CR_TIME - $shoutbox_config['delete_days'] * 86400;

            $sql = "DELETE FROM " . SHOUTBOX_TABLE . "
                WHERE timestamp < $start";
            if ( !($result = $db->sql_query($sql)) )
            {
                message_die(GENERAL_ERROR, 'Could not delete shoutbox messages', '', __LINE__, __FILE__, $sql);
            }

            sql_cache('clear', 'sb_count');
        }
        else
        {
            echo '<body onload="window.scrollTo(0,0);" />
            <table cellpadding="0" cellspacing="0" align="center"><tr><td align="center"><span class="gensmall">
            <b>' . $lang['Too_many_warns'] . '</b></span></td></tr></table>';
        }
    }


?>


Otw?rz: lang_main.php
Znajd?:
PHP Code:
<?php


//
// That's all Folks!
// -------------------------------------------------


?>

Przed tym, dodaj:
PHP Code:
<?php

$lang['Too_many_warns'] = 'Otrzyma?eś za du?o ostrze?e? by m?c pisa? w ShoutBoxie';


?>

m@rcin... - Czw 04 Maj, 2006

qbs, a u mnie jest zainstalowany "robocik" i ten plik ca?kiem inaczej wygl?da.. u mnie jest tak:
Kod
if ( !$too_long && !$flood_msg && !$shoutbox_banned && $is_auth_send )
{
$msg_id = $db->sql_nextid();

$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
include($phpbb_root_path . 'robot_data.'.$phpEx);
$rw_total = ( $user_wulg_warn - 1 );
$robot_wulg_message = ( $userdata['user_wulg'] == $rw_total ) ? $warning_text_a : $warning_text_b;

foreach ( $robot_words as $user_word => $robot_word )
{
if ( strstr(strtolower($msg), $user_word) )
{
if ( $robot_word == 'wulg' )
{
$sql = "UPDATE " . USERS_TABLE . " SET user_wulg = ( `user_wulg` + 1 ) WHERE user_id = '$sb_user_id'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user_wulg', '', __LINE__, __FILE__, $sql);
}

$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES(NULL, '$robot_id', '$robot_wulg_message', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert robot message', '', __LINE__, __FILE__, $sql);
}
}
else
{
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES(NULL, '$robot_id', '$robot_word', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert robot message', '', __LINE__, __FILE__, $sql);
}
}
}
}
if ( $userdata['user_wulg'] == $rw_total )
{
$sql = "INSERT INTO " . WARNINGS_TABLE . "
VALUES(NULL, '$sb_user_id', '$robot_id', '" . CR_TIME . "', '1', '$warn_reason', '0', '1')";

if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not insert warning', '', __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . USERS_TABLE . " SET user_wulg = '0' WHERE user_id = '$sb_user_id'";
$db->sql_query($sql);
}

$start = CR_TIME - $shoutbox_config['delete_days'] * 86400;

$sql = "DELETE FROM " . SHOUTBOX_TABLE . "
WHERE timestamp < $start";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not delete shoutbox messages', '', __LINE__, __FILE__, $sql);
}

sql_cache('clear', 'sb_count');
}
}

i jak to rozwi?za?? :roll:

DeX - Sob 27 Maj, 2006

Zainstalowa?em tego moda i co :?: Znaczy chodzi mi o to jak doda? ostrze?enie komu? w SB lub, gdzie co? w PA trzeba ustawi? :?: Pozdrawiam :!:
regua - Sob 27 Maj, 2006

DeX, :shock: :roll:
Daj komu? ostrze?enie, i on ju? nie b?dzie m?g? pisa? w SB. Ostrze?enia dajemy przez profil usera.
Zanim zadasz pytanie u?yj narz?du zwanego m?zgiem

SoNiAk - Sob 27 Maj, 2006

No no, ciekawy mod. Ju? si? biore za instalacje. Bronks 4u.
rumun2005 - Pon 29 Maj, 2006

m@rcin... napisał/a
qbs, a u mnie jest zainstalowany robocik i ten plik ca?kiem inaczej wygl?da.. u mnie jest tak:


Elo, r?wnie? mam zainstalowanego robota i nie wiem jak to zrobi?. Ma kto? jaki? pomys?? Bardzo prosz? o pomoc... pzdr

KaweX - Pią 09 Cze, 2006

robie ci?gle tak jak w instrukcji i ci?gle wyskakuje mi:

Kod
Parse error: syntax error, unexpected $end in /home/kawexxx/public_html/mdx/forum/shoutbox_view.php on line 530


a linia 530 to ?>

KnofeL - Pią 09 Cze, 2006

Gdzie? barakuje ci jakiego? ;)
Kod
}


I to napewno nie w linii 530 :) Tylko w tym miejscu w kt?rym wprowadza?e? modyfikacje ;)

KaweX - Pią 09 Cze, 2006

jest b??d w instrukcji ...

Kod
if ( !$too_long && !$flood_msg && !$shoutbox_banned && $is_auth_send )
{
$msg_id = $db->sql_nextid();

$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}


$start = CR_TIME - $shoutbox_config['delete_days'] * 86400;

$sql = "DELETE FROM " . SHOUTBOX_TABLE . "
WHERE timestamp < $start";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not delete shoutbox messages', '', __LINE__, __FILE__, $sql);
}

sql_cache('clear', 'sb_count');
}
}


zamie? na:

Kod
if ( !$too_long && !$flood_msg && !$shoutbox_banned && $is_auth_send )
{
if ( $userdata['user_id'] > 1 )
{
$sql = "SELECT count(*) as ile FROM " . WARNINGS_TABLE . " WHERE userid = '" . $userdata['user_id'] . "' AND archive = '0'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain warnings info', '', __LINE__, __FILE__, $sql);
}
}
$warns = $db->sql_fetchrow($result);
if ( $warns['ile'] < 1 )
{

$msg_id = $db->sql_nextid();

$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}



$start = CR_TIME - $shoutbox_config['delete_days'] * 86400;

$sql = "DELETE FROM " . SHOUTBOX_TABLE . "
WHERE timestamp < $start";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not delete shoutbox messages', '', __LINE__, __FILE__, $sql);
}

sql_cache('clear', 'sb_count');
}
else
{
echo '<body onload="window.scrollTo(0,0);" />
<table cellpadding="0" cellspacing="0" align="center"><tr><td align="center"><span class="gensmall">
<b>' . $lang['Too_many_warns'] . '</b></span></td></tr></table>';
}
}


brakowa?o jednej }

KnofeL - Pią 09 Cze, 2006

Przeice? twoja istrukcja jest taka sama jak ta od qbs'a albo ja jestem ?lepy
INIM - Pią 09 Cze, 2006

Te? mi si? tak wydaje.



Jak zmieni? by by?o to po 2, lub 3 warnie ??

KnofeL - Pią 09 Cze, 2006

Chyba w tej linijce
Kod
if ( $warns['ile'] < 1 )


Zmie? na np.
Kod
if ( $warns['ile'] < 3 )

INIM - Pią 09 Cze, 2006

Dzi?ki, piwko dla Ciebie.
KaweX - Pią 09 Cze, 2006

nie jest taka sama...

ja mam wi?cej }

KnofeL - Pią 09 Cze, 2006

Sprawidz?em to w sumie 7 razy w obu przypadkach jest tyle samo } jak i { :?
kidzior - Wto 20 Cze, 2006

I co, ju? kto? wymy?li?, jak powinno to brzmie?, kiedy ma si? zainstalowanego Robota?

Tak wygl?daj? te linie u mnie:

Kod

if ( !$too_long && !$flood_msg && !$shoutbox_banned && $is_auth_send )
{
$msg_id = $db->sql_nextid();

$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
include($phpbb_root_path . 'robot_data.'.$phpEx);
$rw_total = ( $user_wulg_warn - 1 );
$robot_wulg_message = ( $userdata['user_wulg'] == $rw_total ) ? $warning_text_a : $warning_text_b;

foreach ( $robot_words as $user_word => $robot_word )
{
if ( strstr(strtolower($msg), $user_word) )
{
if ( $robot_word == 'wulg' )
{
$sql = "UPDATE " . USERS_TABLE . " SET user_wulg = ( `user_wulg` + 1 ) WHERE user_id = '$sb_user_id'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user_wulg', '', __LINE__, __FILE__, $sql);
}

$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES(NULL, '$robot_id', '$robot_wulg_message', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert robot message', '', __LINE__, __FILE__, $sql);
}
}
else
{
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES(NULL, '$robot_id', '$robot_word', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert robot message', '', __LINE__, __FILE__, $sql);
}
}
}
}
if ( $userdata['user_wulg'] == $rw_total )
{
$sql = "INSERT INTO " . WARNINGS_TABLE . "
VALUES(NULL, '$sb_user_id', '$robot_id', '" . CR_TIME . "', '1', '$warn_reason', '0', '1')";

if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not insert warning', '', __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . USERS_TABLE . " SET user_wulg = '0' WHERE user_id = '$sb_user_id'";
$db->sql_query($sql);
}
$start = CR_TIME - $shoutbox_config['delete_days'] * 86400;

$sql = "DELETE FROM " . SHOUTBOX_TABLE . "
WHERE timestamp < $start";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not delete shoutbox messages', '', __LINE__, __FILE__, $sql);
}

sql_cache('clear', 'sb_count');
}
}


By?bym bardzo wdzi?czny za pomoc. :)

Lordzi - Pią 30 Cze, 2006

KnofeL, odemnie te? masz piwo :twisted:
kris_yul - Sro 05 Lip, 2006

No mam ten sam problem z linijk? 530 rzekomo. Co mam z tym zrobi?, czemu nikt nie da? rozwi?zania??

[ Dodano: Sro 05 Lip, 2006 ]
Trezba doda? na ko?cu tego kodu co trzeba wklei? jedno }

KaweX - Sro 05 Lip, 2006

przeczytaj m?j post na pierwszej stronie
tam jest poprawka w instrukcji

kris_yul - Sro 05 Lip, 2006

Sory, ale Twoja poprawka te? nie dzia?a?a, bo jest taka sama jak orygina?. :)
KnofeL - Sro 05 Lip, 2006

Spr?bujcie tego:

Znajd?:
PHP Code:
<?php

if ( !$too_long && !$flood_msg && !$shoutbox_banned && $is_auth_send ) 

$msg_id = $db->sql_nextid(); 

$sql = "INSERT INTO " . SHOUTBOX_TABLE . " 
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')"; 
if ( !($result = $db->sql_query($sql)) ) 

message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql); 



$start = CR_TIME - $shoutbox_config['delete_days'] * 86400; 

$sql = "DELETE FROM " . SHOUTBOX_TABLE . " 
WHERE timestamp < $start"; 
if ( !($result = $db->sql_query($sql)) ) 

message_die(GENERAL_ERROR, 'Could not delete shoutbox messages', '', __LINE__, __FILE__, $sql); 


sql_cache('clear', 'sb_count'); 

}


?>


Zmie? na:
PHP Code:
<?php

if ( !$too_long && !$flood_msg && !$shoutbox_banned && $is_auth_send ) 
{

if ( $userdata['user_id'] > 1 ) 
{
$sql = "SELECT count(*) as ile FROM " . WARNINGS_TABLE . " WHERE userid = '" . $userdata['user_id'] . "' AND archive = '0'"; 

if ( !($result = $db->sql_query($sql)) ) 
{
message_die(GENERAL_ERROR, 'Could not obtain warnings info', '', __LINE__, __FILE__, $sql); 
}
}

$warns = $db->sql_fetchrow($result); 

if ( $warns['ile'] < 1 ) 
{
$msg_id = $db->sql_nextid(); 

$sql = "INSERT INTO " . SHOUTBOX_TABLE . " 
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')"; 
 

if ( !($result = $db->sql_query($sql)) ) 
{
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql); 


$start = CR_TIME - $shoutbox_config['delete_days'] * 86400; 

$sql = "DELETE FROM " . SHOUTBOX_TABLE . " 
WHERE timestamp < $start"; 

if ( !($result = $db->sql_query($sql)) ) 

message_die(GENERAL_ERROR, 'Could not delete shoutbox messages', '', __LINE__, __FILE__, $sql); 


sql_cache('clear', 'sb_count'); 

}

else 
{
echo '<body onload="window.scrollTo(0,0);" /> 
<table cellpadding="0" cellspacing="0" align="center"><tr><td align="center"><span class="gensmall"> 
<b>' . $lang['Too_many_warns'] . '</b></span></td></tr></table>'; 



?>

KaweX - Sro 05 Lip, 2006

dzia?a bo ja te? mia?em 530 b??d i chodzi?o o jedn? }
kris_yul - Sro 05 Lip, 2006

Ale ja ju? w moim pierwszym po?cie napisa?em, ?e trzeba doda? jedno }. Knofel nie ma co modyfikowa? :)
KnofeL - Sro 05 Lip, 2006

To ?e trzeba doda? jedno } to wiem, tyle tylko ?e tam ?andego } nie brakuje :?

Ale jak patrze na plik shoutbox_view.php to wydaje mi si? ?e to co mamy podmeni? powinno wyglaa? tak:
PHP Code:
<?php

    if ( !$too_long && !$flood_msg && !$shoutbox_banned && $is_auth_send )
    {
        $msg_id = $db->sql_nextid();

        $sql = "INSERT INTO " . SHOUTBOX_TABLE . "
            VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
        }

        $start = CR_TIME - $shoutbox_config['delete_days'] * 86400;

        $sql = "DELETE FROM " . SHOUTBOX_TABLE . "
            WHERE timestamp < $start";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, 'Could not delete shoutbox messages', '', __LINE__, __FILE__, $sql);
        }

        sql_cache('clear', 'sb_count');
    }


?>


Czyli nie zmieniamy dw?ch ostatnich klamr tylko jedn?.

Dlaczego, bo jak zliczmy klamry w tym co poda? qbs mam 3 klamry { i a? 4 }

My?le ?e jak dodacie jeszcze jedn? klamr? na koniec - po podmianie - nie powinni?cie mie? problem?w ;)

grzech1991 - Wto 29 Sie, 2006

Mam kolejny problem po napisaniu u?ytkownika z warnem w sb nic nie ma i jest ok ale nie wy?wietla mu si? ?aden text czy mo?e kto? lookn?? co jest ?le? z g?ry dzi?kuj?

Kod
$lang['Pruning_unread_posts'] = 'Twoje konto przekroczy?o maksymaln± ilo¶? nieprzeczytanych post?w: <b>%s</b> Zosta?y usuni?te informacje o nieczytanych postach z wyj±tkiem post?w napisanych przez ostatnie: <b>%s</b> dni<br />Ilo¶? usuni?tych nieczytanych post?w: <b>%s</b><br /><br />Aby nie otrzymywa? tego komunikatu, przeczytaj oznaczone tematy, lub oznacz wszystkie jako przeczytane.<br />W ka?dej chwili mo?esz skorzysta? z wyszukiwarki post?w aby odszuka? posty napisane w ci±gu ostatniego wybranego czasu.';
$lang['Too_many_warns'] = 'Otrzyma?e¶ jedno ostrze?enie, nie mo?esz pisa? w ShoutBoxie.';

//
// That's all Folks!
// -------------------------------------------------

?>

cezarylee - Nie 03 Gru, 2006

?adnie dziala :)
warna - Pon 04 Gru, 2006

W razie by kto? chcia? dopisa? fragment, ?eby nie obejmowa?o to admina, to niech znajdzie:
Kod
if( $userdata['user_id'] > 1 )


na

Kod
if( $userdata['user_id'] > 1 && $userdata['user_level'] != ADMIN )


Mo?e si? komu? przyda :]

Raknor - Pią 15 Cze, 2007

A mo?e by tak, pierwsze ostrze?enie trwa przez 30 minut. Natomiast otrzymanie drugiego ostrze?enie, trwa tyle ile sobie ustawili?my w panelu administracyjnym (PA -> Og?lne -> Ostrze?enia u?ytkownik?w -> Czas trwania ostrze?enia).

:?:

InTWO - Wto 04 Wrz, 2007

Wszystko dzia?a w/g opisu qbs

Piwko sie nale?y ;)


Powered by phpBB modified by Przemo © 2003 phpBB Group