wersja skryptu MyBB 1.8.4
adres forum zbędny
na czym polega problem (screen, opis, komunikaty, nazwa i wersja wtyczki):
Witajcie, mam pewną prośbę. Czy jest jakaś możliwość, aby ustawic w DVZ shoutbox usuwanie wiadomości DANEMU UŻYTKOWNIKOWI np. po 10 minutach. Dokladnie chodzi mi o to, że mam na serwerach komende /zglos i informacja o zgłoszonym graczu idzie na dvz_shoutbox, lecz w ciagu jednego dnia robi sie wielki spam i tak mysle, czy istnieje mozliwosc ustaawienia w plikach lub w bazie, ze wiadomosci od DANEGO GRACZA mają się usuwac po np. 10 minutach
Plik nazwij sbpruning.php i wrzuć do inc/tasks
Zmień 0 w uid = 0 na uid tego użytkownika.
Kod PHP:
<?php
function task_sbpruning($task)
{
global $db;
$db->delete_query('dvz_shoutbox', 'uid = 0');
add_task_log($task, 'Czyszczenie dvz_shoutbox');
}
?>
Dodaj nowe zadanie w menadżerze zadań.
Powinno działać.
Prawdopodobnie działa, wiesz może jak ustawić takie zadanie CO 20 MINUT.
po wpisaniu w minutach */20 pojawia sie:
Ostrzeżenie (2)
Treść błędu:
mktime() expects parameter 2 to be long, string given
Lokalizacja:
File: inc/functions_task.php
Line: 317
Fragment kodu:
Plik Linia Funkcja
/inc/class_error.php 207 errorHandler->output_error
[PHP] errorHandler->error
/inc/functions_task.php 317 mktime
/admin/modules/tools/tasks.php 339 fetch_next_run
/admin/index.php 719 require
Po prostu wpisz tam 20.
* - oznacza każdą minutę.
Jak wpisze w minucie 20, a w godzinie * to bedzie np. 14:20, 15:20, 16:20
Czyli wyjdzie CO GODZINE
No to jeśli chcesz co 20 minut, wpisz tam 0,20,40.
Okej.
Ale tak zastanawiam się nad tym dłużej i nie dokońca o to mi chodziło. Przykładowo o 15:38 gracz na serwerze zgłosi czitera, wiadomosc wyswietla się na czacie i po 2 minutach zniknie, bo menadżer usunie ją o 15.40 Czy nie da się dodać do skryptu aby usuwał tylko te wiadomości które maja ponad 20 minut... Bo menadżer zadań usunie każdą niezależnie od godziny jej wyslania. I wtedy takie zgłoszenie danego gracza poprostu przepadnie.
Zamień na to
Kod PHP:
<?php
function task_sbpruning($task)
{
global $db;
$time_limit = TIME_NOW - 1200;
$db->delete_query('dvz_shoutbox', 'uid = 0 AND date < '.$time_limit);
add_task_log($task, 'Czyszczenie dvz_shoutbox');
}
?>
W momencie uruchomienia zadania usunie wiadomości które mają ponad 20 minut.
Jesteś mistrzem!
Pięknie dziękuje!