Ja natomiast wymyśliłem coś prostszego.
Jeżeli podczas pisania i dodawania nowego wątku (kliknięciu Wyślij) w temacie nowego wątku pojawi się słowo PROBLEM użytkownik jest automatycznie przekierowywany z powrotem do tworzenia tematu i pojawia się informacja o treści: "Zanim ponownie wpiszesz w tytule tematu słowo PROBLEM zapoznaj się z REGULAMINEM" (komunikat można zmienić na bardziej dokładny, typu: "Zmień słowo PROBLEM w tytule tematu na inne, zgodnie z REGULAMINEM forum"). Wykorzystałem obecny w skrypcie EMPTY_SUBJECT a do wyszukania tekstu "problem" użyłem funkcji php: preg_match
Nie jest to żaden cenzor, itp. (można dodać inne niechciane słowa niezgodne z regulaminem, ale tu chodzi dokładnie o "problem"). Rozwiązanie działa tylko w przypadku dodawania nowych tematów. Mod nie dotyczy innych tytułów na forum, jak tytuły prywatnych wiadomości, nie blokuje żadnych komunikatów systemowych, itd.
Czy jest kontrowersyjny? Niech użytkownicy odpowiedzą na to pytanie w ankiecie...
Modyfikacja:
1. Edycja pliku posting.php
Wyszukaj:
Kod: Zaznacz cały
// Parse subject
if (!$preview && !$refresh && utf8_clean_string($post_data['post_subject']) === '' && ($mode == 'post' || ($mode == 'edit' && $post_data['topic_first_post_id'] == $post_id)))
{
$error[] = $user->lang['EMPTY_SUBJECT'];
}
Kod: Zaznacz cały
if (!$preview && !$refresh && utf8_clean_string($post_data['post_subject']) !== '' && ($mode == 'post' || ($mode == 'edit' && $post_data['topic_first_post_id'] == $post_id)))
{
$sTytul= utf8_clean_string( $post_data['post_subject'] );
if( preg_match( "/problem/i", $sTytul ) ) $error[]= $user-> lang['PROBLEM'];
}
Wyszukaj:
Kod: Zaznacz cały
'EMPTY_SUBJECT' => 'Musisz wpisać temat pisząc nową wiadomość.',
Kod: Zaznacz cały
'PROBLEM' => 'Zanim ponownie wpiszesz w tytule tematu słowo PROBLEM zapoznaj się z <a href="http://ubuntu.pl/forum/viewtopic.php?t=143075">REGULAMINEM</a>.',