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ę
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?
|
|
|