Czasowe usuwanie wiadomosci w DVZ_Shoutbox.

Założony przez  Csfrag.

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.
<?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ę.
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.
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.
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.
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
<?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!
Matslom napisał 20.05.2015, 18:32:
Pamiętaj o oznaczaniu wątków jako rozwiązane.



Użytkownicy przeglądający ten wątek:

1 gości