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 - Ajax time before posting

lui754 - 07-11-2009, 17:37
Temat postu: Ajax time before posting
Ajax time before posting

Odliczanie czasu po którym możemy wysłać kolejny post, podobny jak na DW

Kod:
#############################################################
## Modyfikacja dostosowana do phpbb2 by przemo 1.12.6p1 przez lui754
##
##############################################################
## MOD Title:Ajax time before posting
## MOD Author: lui754
##
## MOD Description:Odliczanie czasu po którym możemy wysłać kolejny post, podobny jak na DW.
##
##
## Installation Level: Easy
## Installation Time: 14 minutes
##
## Files To Edit:
##    includes/functions_post.php 
##    posting.php
##    quick_reply.php
##    posting_body.tpl
##    quick_reply.tpl
##    includes/functions_post.php
##    templates/subSilver/index_body.tpl
##
##
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
## Generator: Phpbb.ModTeam.Tools
##############################################################
## Zalecane: Przed wykonaniem instrukcji zrób kopie zapasową wszyskich plików oraz bazy danych
##############################################################

Polaczek - 07-11-2009, 17:39

Super! Gratuluję!
MaTeK_ - 07-11-2009, 17:41

No . To jest orginalny pomysł i na pewno go wykorzystam . Gratuluję :D
Seba123 - 07-11-2009, 18:27

Stanowczo odradzam, niby fajne, niby małe, a zapytania do SQL lecą [w każdym viewtopic o ile jest szybka odpowiedź dodatkowe zapytanie, to samo w posting).
lui754 - 07-11-2009, 18:39

Te zapytania są małe i nie generują się długo. Obciążenie jest znikome. Fakt +1 zapytanie ale czas wczytywania strony nie zmieni się.

Zresztą każdy może sobie sprawdzić i w razie czego usunąć.

kevin_ - 07-11-2009, 20:16

Seba123 napisał/a:
Stanowczo odradzam, niby fajne, niby małe, a zapytania do SQL lecą [w każdym viewtopic o ile jest szybka odpowiedź dodatkowe zapytanie, to samo w posting).


Dokładnie, ale i tak patrząc na niektóre mody to użytkowników nie interesuje co wpychamy do kodu. W PunBB jest ciekawe rozwiązanie, bo jest dodana kolumna "last_post" do tabeli users, można byłoby (jak ktoś tak oczywiście woli) zmodyfikować skrypt i zamiast brać SELECT bla bla, to $userdata['last_post'] a jak wiemy Userdata jest już wliczone jako zapytanie SQL.

/Wygaszam post.

[ Komentarz dodany przez: arcy: 08-11-2009, 13:04 ]
Nie wygaszaj. Ludzie, którzy zacytują Twoje zdanie będą niezrozumiali gdy zniknie Twój post.

Seba123 - 08-11-2009, 12:30

kevin_, właśnie o tym pomyślałem - autorzy modów po prostu nie myślą - dodać po prostu do phpbb_users kolumnę lastpost, przez co będzie to widoczne później w userdata i aktualizować ją po prostu co napisanie (czyli wykonana akcja!) posta. Później zwykły if pomoże, gdyż wszystko będzie załadowane, a pobranie o jednego tinyinta więcej nie obciąży.
cwierzbas - 08-11-2009, 19:04

a jak zrobić, jak piszemy 1 post to aby nie odliczało?
lui754 - 09-11-2009, 00:11

ok dodałem optymalizacje. Mam nadzieję, że nie będziecie już narzekać.
Aktualizacja:
1. Wykonaj zapytanie SQL
2. Edytuj plik functions_post.php
3. W plikach posting.php oraz quick_reply.php zamień:

Kod:
//
// Flood control
//
if ( $userdata['user_level'] != ADMIN && $userdata['user_level'] != MOD )
{
    $sql = "SELECT MAX(post_time) AS last_post_time
        FROM " . POSTS_TABLE . "
            WHERE poster_id = " . $userdata['user_id'];
           
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, 'blad flood', '', __LINE__, __FILE__, $sql);
        }
        $row = $db->sql_fetchrow($result);
        $czas = CR_TIME - $row['last_post_time'];
        $czas = $board_config['flood_interval'] - $czas;
}


na:
Kod:
//
// Flood control
if ( $userdata['user_level'] != ADMIN && $userdata['user_level'] != MOD )
{
        $czas = CR_TIME - intval($userdata['last_post_time_s']);
        $czas = $board_config['flood_interval'] - $czas;
}


i to by było na tyle ;]


btw.
cwierzbas napisał/a:
a jak zrobić, jak piszemy 1 post to aby nie odliczało?

Odlicza tylko wtedy gdy nie możemy wysłać posta. Sprecyzuj pytanie.

Anonymous - 26-07-2010, 11:14

Czy rzeczywiście tak bardzo to obciąża bazę jak niektórzy mówią?
kevin_ - 26-07-2010, 11:53

Scoobany, wszystko jest OK z tym modem, nie obciążą i nie obciążał bo jedno zapytanie typu 'select max(czas_post) from posty where autor = id limit 1' nie zabije Ci serwera
bolek_stw - 28-08-2010, 12:56

nie czyta mi ą ś to co mam zrobić ?

login bolek_test
hasło 12345

Black - 23-07-2011, 13:15

Gdzie mogę zmienić czas?
Polaczek - 23-07-2011, 13:24

W panelu administacyjnym jest gdzies w konfiguracji ogolnej. Nie pamietam dokladnie gdzie, poszukaj.
d4mi4n - 11-12-2011, 15:22

A da rade edytować czas na krótszy?


Powered by phpBB modified by Przemo © 2003 phpBB Group