| Zespół Deweloperów: | Senior Developer: Wim Albers Developer/SB Integration: Niels Vandekeybus Project Management & Testing: Robert Anthony Pitera
Wersja: |
Wsparcie: | Forum Badwords2 na www.schoolastech.com also TSMF Badwords2 Forum (Graciously donated by Two Shoes Mambo Factory)
Strona domowa: | www.schoolastech.com
### Badwords2 Text Filtering/Flushing Component - Wersja Dodatek PHP API - Komponent dla systemów zarządzania treścią i dynamicznych portali: Joomla 1.x i Mambo Open Source 4.5.x
Zespół Developerów Badwords2 Senior Developer - Wim Albers (walb) Developer/SimpleBoard Integration Assistance - Niels Vandekeybus (progster) Project Management/QA & Testing - Robert Anthony Pitera (rpitera/kaizen) Specjalne podziękowania dla Jana De Graafa i Two Shoes Mambo Factory za Project Assistance and Support. Polska adaptacja Stefan Wajda Koordynator Polskiego Centrum Joomla! http://www.joomla.pl http://www.joomlademo.pl Oparty na oryginalnym komponencie 'Badword Filter', który napisał Pravin Hegde, wersji rozszerzonej (Extended) 'Badword Filter', której autorem jest Wim Albers oraz sugestiach, jakie sformułował Robert Anthony Pitera. Badwords2 Text Filtering/Flushing Component jest bezpłatnym wolnym programem upowszechnianym na warunkach licencji GNU/GPL License. |
#### + Co to jest? Komponent Badwords2 Text Filtering/Flushing jest w gruncie rzeczy dodatkiem Joomla 1.x i Mambo Open Source 4.5.x i wyższych. W gruncie rzeczy, bo jak dodatek [mambot] działa w warstwie API, a więc wykonuje na zawartości jakąś operację, zanim zostanie ona pokazana na stronie. Dodatkowe, specjalne rozwiązanie przygotowano dla integracji z komponentem SimpleBoard Forum wydanym przez Two Shoes Mambo Factory, ale instrukcje integrujące mogą być włączone do innych komponentów i modułów. Integracja Badwords2 z SimpleBoard będzie dokonana w przyszłym wydaniu forum, jako część dystrybucji, ale pliki integrujące umieszczone są również w tym wydaniu Badwords2. Badwords2 wspiera Joomla 1.x i Mambo Open Source 4.5.x oraz wyższe, ale wersja Badword Extended autorstwa Wima Albersa dostępna jest również dla wcześniejszych wersji Mambo.
#### + Jak działa? ##### Podstawowe właściwości Zastępowanie gwiazdkami liter w słowach niepożądanych, definiowanych za pomocą panelu administracyjnego komponentu (tzn. "BrzydkiWyraz" wyświetlany jest jako "***********" Wyszukiwanie i filtrowanie słów niepożądanych bez względu na wielkość liter. Zastosowanie we wzorcach słów niepożądanych znaku specjalnego (*) do wykrywania alternatywnyh form wyrazu (m.in.gramatycznych) Zachowywanie w bazie danych oryginalnego tekstu - NIEDESTRUKCYJNY charakter, nie niszczy autentycznych wpisów. Pełne zarządzanie za pomocą panelu administracyjnego Joomla!/Mambo Jedna linia w API przeprowadza filtrowanie/oczyszczanie każdego komponentu Joomla/Mambo. Możliwość włączania i wyłączania funkcjonalności Badwords2 filtering/flushing. Tworzenie w panelu administracyjnym słownika słów niepożądanych niezależnych od stosowanego w witrynie języka. panel Możliwość (opcja) zaawansowanego filtrowania w wyniku zastosowania wyrażeń regularnych, konfigurowanych w panelu administracyjnym. Opcja zezwalania użytkownikom ze specjalnymi prawami na używanie niestosownych słów.
##### + SimpleBoard - Właściwości integracji (*tylko* SB 1.1.0 Stable) Filtrowanie niepożądanych słów we WSZYSTKICH widokach, także z RSS, PDF i poczcie elektroniczej. Automatyczne rozpoznawanie administratorów oraz moderatorów i wyświetlanie w NIEPRZEFILTROWANYCH tekstów. Przesyłanie do moderatora pocztą elektroniczną powiadomień z tekstem przefiltrowanym i nieprzefiltrowanym Filtrowanie wyników wyszukiwania, wyświetlanie przefiltrowanych wyników wyszukiwania. Uniemożliwienie użytkownikom końcowym wyszukania tekstó ze słowami niecenzuralnymi, wpisanymi do słownika - rezultat wyszukiwania = 0. Dołączony moduł "Last 5 Posts" ("Ostatnie 5 postów")z funkcją filtrowania/czyszczenia ##### + AkoComment - właściwości integracji (*tylko* AkoComment 2.0) Filtrowanie niepożądanych słów w komentarzach Automatyczne rozpoznawanie edytorów, publikatorów oraz administratorów i wyświetlanie NIEPRZEFILTROWANYCH tekstów Przesyłanie do administratora pocztą elektroniczną powiadomień z tekstem przefiltrowanym i nieprzefiltrowanym Wsparcie dla konfiguracji wiadomości Zakładka Integracja z BW2 w Ustawieniach komponentu, umożliwiajaca włączenie bądź wyłączenie filtrowania. ##### + AkoBook - właściwości integracji (*tylko* AkoBook 3.4.2) Filtrowanie niepożądanych słów we wpisach do Księgi Gości Automatyczne rozpoznawanie edytorów, publikatorów oraz administratorów i wyświetlanie NIEPRZEFILTROWANYCH tekstów Przesyłanie do administratora pocztą elektroniczną powiadomień z tekstem przefiltrowanym i nieprzefiltrowanym Wsparcie dla konfiguracji wiadomości Zakładka Integracja z Bw2 w Ustawieniach komponentu, umożliwiajaca włączenie bądź wyłączenie filtrowania. ##### + CommunityBuilder - właściwości integracji (*tylko* CommunityBuilder 1.0 RC1) Filtrowanie niestosownych słów w zakładce forum Simpleboard - w temtach postów i nazwach użytkowników. Automatyczne rozpoznawanie administratorów oraz moderatorów i wyświetlanie w NIEPRZEFILTROWANYCH tekstów. ##### + Mambot bot_badwords2 Zastępowanie liter niecenzuralnych słów w tytułach i tekstach artykułów. AUTOMATYCZNE rozpoznawanie użytkowników ze specjalnymi uprawnieniami (z grupy Special) - wyświetlanie w ich widoku nieprzekształconych, oryginalnych tekstów.
#### + Jak zainstalować Badwords2? Aby korzystać z właściwości komponentu Badwords2, zainstaluj komponent jedną ze standardowych procedur instalacyjnych dla Joomla!/Mambo (z pakietu albo z katalogu na serwerze). Wykonaj następujące czynności: Wybierz w panelu administratora opcję Instalatory => Komponenty. Znajdź i wskaż na Twoim dysku lokalnym spakowany pakiet instalacyjny albo wskaż katalog na serwerze, do którego przesłałeś rozpakowane pliki pakietu instalacyjnego. Naciśnij przycisk Wczytaj i zainstaluj Korzystając z integratorów Badwords2 z dodatkowymi składnikami dla Joomla/Mambo opracowywanmi przez różnych programistów, a załączonymi do pakietu dystrybucyjnego Badwords2, zapoznaj się z objaśnieniami w plikach README.TXT, włączonych do spakowanych pakietów. WAŻNE : przeczytaj każdą instrukcję integracji BARDZO UWAŻNIE. W każdym przypadku będziesz zastępować plik należący do oryginalnej dystrybucji plikiem z wersji Badwords2. Jeśli wprowadzałeś jakiekolwiek specjalne modyfikacje w oryginalnych skryptach, prawdopodobnie zechcesz je zachować. Stąd możesz wykonać integrację z Badwords 2 "ręcznie" przez porównanie oryginalnego skryptu ze skryptem integrującym z Badwords2. We wszystkich przypadkach nasz zmodyfikowany kod jest skomentowany. Wyszukaj w skrypcie słowo " badword ", aby znaleć modyfikacje.
#### + Jak stosować Badwors2? Badwords2 jest dodatkiem do API, pracuje w tle, nie wymaga jakiejkolwiek interwencji administratorów. Dysponujesz jednak kilkoma możliwościami dostosowania Badwords 2 do Twoich specyficznych potrzeb.
##### + Słownik wyrazów niecenzuralnych W słowniku znajdziesz dwa przykładowe nieprzyzwoite słowa ("złeslowo1" i "zleslowo2" ), z których możesz skorzystać do przetestowania komponentu. Możesz je, oczywiście, zmienić na dowolne inne. Aby dodać nowy wyraz do słownika, kliknij ikonę lub odsyłacz "Nowy" w pasku narzędzi, następnie wpisz w polu formularza nowe słowo i kliknij odsyłacz lub ikonę "Zapisz". Aby zmodyfikować wyraz umieszczony w słowniku, zaznacz w wykazie pole wyboru obok tego wyrazu, a następnie kliknij ikonę lub odsyłacz "Edytuj" w pasku narzędzi. Możesz również po prostu kliknąć na słowo. Przejdziesz do formularza edycji. Zmień wpisany tekst, a następnie kliknij odsyłacz lub ikonę "Zapisz". Aby usunąć wyraz ze słownika, zaznacz pole wyboru obok tego słowa w wykazie, a następnie kliknij ikonę lub odsyłacz "Usuń" w pasku narzędzi. Badwords2 może filtrować słowa w ich dosłownym brzmieniu. Ale łatwo i skutecznie możesz również zapobiec próbom omijania przez użytkowników reguł filtowania sztuczkami typu zastąpienie jednego znaku przez inny, np. "U" z "V". Posłuż się odpowiednim wzorcem słowa w słowniku, pamiętając o możliwości takich prób. Wpisane w wykazie słowa są ciągami (strumieniami znaków), możesz używać Badwords2 z dowolnym językiem. Dodatkowo interfejs Badwords2 zawiera wsparcie dla języka angielskiego, holenderskiego i polskiego. Jeśli jesteś zainteresowany przygotowaniem tłumaczenia dla Twojego rodzimego języka, prosimy o kontakt! Chętnie włączymy Twój język do dystrybucji komponentu i wyrazimy Ci stosowne podziękowania! Badwords2 wspiera używanie w słowach wzorcowych znaków specjalnych, umożliwiających wyszukiwanie niecenzuralnych wyrazów zastosowanych w różnych formach alternatywnych. Najlepiej poznać sposób zastosowania znaku specjalnego na przykładach zamieszczonych poniżej, pokazujących skutki zastosowania uniwersalnego znaku "*" na początku lub końcu słowa "pieprz". UWAGA: JAKO ZNAK SPECJALNY MOŻESZ ZASTOSOWAĆ TYLKO GWIAZDKĘ! Jeśli potrzebujesz większej elastyczności, rozważ wykorzystanie wyrażeń regularnych.
###### + Przykłady zastosowania znaku specjalnego Jeśli zdefiniowane słowo = "pieprz" (dokładnie, ciąg "pieprz" jest jednym całym słowem), to rezultat filtrowania będzie następujący: pieprz = ****** Pieprzę = Pieprzę Popieprzony = Popieprzony popieprz = popieprz Pieprzony = Pieprzony pieprz go = ****** go Jeśli zdefiniowane słowo = "*pieprz" (dokładnie, ciąg "*pieprz" jest jednym całym słowem I/LUB jest poprzedzony jakimikolwiek innymi znakami, to rezultat filtrowania będzie następujący: pieprz = ****** Pieprzę = Pieprzę Popieprzony = Popieprzony popieprz = po****** Pieprzony = Pieprzony pieprz go = ****** go Jeśli zdefiniowane słowo = "pieprz*" (dokładnie, ciąg "*pieprz" jest całym słowem I/LUB zawiera jakieś znaki po tym ciągu), to rezultat filtrowania będzie następujący: pieprz = ****** Pieprzę = ******ę Popieprzony = Popieprzony popieprz = popieprz Pieprzony = ******ony pieprz go = ****** go Jeśli zdefiniowane słowo = "pieprz*" (dokładnie, ciąg "*pieprz*" jest całym słowem I/LUB zawiera jakieś znaki przed tym ciągiem i po tym ciągu), to rezultat filtrowania będzie następujący: pieprz = ****** Pieprzę = ******ę Popieprzony = Po******ony popieprz = po****** Pieprzony = ******ony pieprz go = ****** go
##### + Wyrażenia regularne Wyrażenie regularne (w skrócie: regex albo regexp) są sposobem porównywania ciągów ze znakami specjalnymi, które zastępują większe porcje ciągu docelowego. Prawdopodobnie znasz już takie znaki specjalne, jak * [gwiazdka], która w wyrażeniu *.txt oznacza, że należy wyszukać w katalogu wszystkie pliki, z rozszerzeniem .txt. Gwiazdka zastępuje tutaj wszystkie znaki nazwy. Ekwiwalentne wyrażenie regularne miałoby następujący kształt: .*\.txt Zastosowanie wyrażeń regularnych nie jest wymagane, by Badwords2 wykrywał i filtrował niecenzuralne fragmenty tekstu. Jeśli nie jesteś dobrze zaznajomiony ze stosowaniem wyrażeń regularnych, ich składnią, proponujemy Ci pozostawić przykład tak, jak został umieszczony. Jeśli chcesz zapoznać się bliżej z tą problematyką, skorzystaj z poradnika zamieszczonego TUTAJ - http://weblogtoolscollection.com/regex/regex.php, objaśniającego podstawy, przykłady stosowania, funkcje PHP korzystające z wyrażeń regularnych. Uproszczone zasady wyrażeń regularnych w stylu POSIX, z którego korzysta Badwords2, są następujące: Znaki, które nie są znakami specjalnymi, są porównywane dosłownie. Przykładowo - litera we wzorcu jest porównywana z literą w ciągu. Znak specjalny ^ oznacza tylko początek ciągu, a znak $ oznacza tylko koniec ciągu. Znak specjalny . [kropka] oznacza dowolny znak Znak specjalny * [gwiazdka] oznacza zero (0) lub więcej miejsc wystąpienia poprzedniego wyrażenia regularnego. Znak specjalny + [plus] oznacza jedno lub więcej miejsc wystąpienia poprzedniego wyrażenia. Zestaw znaków otoczony nawiasami kwadratowymi zastępuje dowolny z tych znaków, np. [ab] zastępuje zarówno a, jak i b. Można również podać zakres znaków w nawiasach, używając kreski: [a-c] zastępuje a, b lub c Znaki specjalne poprzedzone znakiem ukośnika \ tracą specjalne znaczenie i są porównywane dosłownie. Aby dodać nowe wyrażenie regularne, wybierz tę opcję z menu administratora, a następne kliknij w pasku narzędzi ikonę lub odsyłacz "Nowy" i wpisz je w polu tekstowym. Możesz redagować lub usuwać wyrażenia regularne, używając instrukcji omówionych powyżej w punkcie Słownik nieprzyzwoitych wyrażeń..
##### + Użytkownicy ze specjalnymi prawami Badwords2 pozwala Ci w łatwy sposób "upoważnić" użytkowników ze specjalnymi uprawnieniami do stosowania w swoich tekstach słów wykluczonych, umieszczonych w słowniku nieprzyzwoitych wyrażeń. Aby dodać użytkownika ze specjalnymi uprawnieniami, wybierz odpowiednią opcję z menu komponentu, a następnie kliknij w ikonę lub odsyłacz Nowy i wpisz w polu formularza nazwę użytkownika Joomla!/Mambo. Podobnie jak poprzednio - możesz modyfikować lub usuwać użytkowników z uprawnieniami specjalnymi, używając instrukcji omówionych powyżej w punkcie Słownik nieprzyzwoitych wyrażeń. Uwaga: Nadając to uprawnienie, musisz użyć ściśle takiej nazwy użytkownika, jaka znajduje się w rejestrze użytkowników witryny w polu Nazwa użytkownika. Upewnij się, że wprowadziłeś poprawną nazwę.
##### + Ustawienia Znaczenie opcji konfiguracyjnych wskazują etykiety ekranowe i dodatkowe objaśnienia. Włącz filtrowanie - włącza lub wyłacza filtrowanie przez Badwords2. ("Tak" - włącza filtrowanie nieprzyzwoitych słów. Ustawienie domyślne, UWAGA: "Nie" - wyłącza filtrowanie nieprzyzwoitych słów w CAŁYM Joomla!/Mambo!, we wszystkich komponentach, w których jest zaimplementowane) Zastosuj wyrażenia regularne - włącza lub wyłacza korzystanie przez Badwords2 z wyrażeń regularnych. ("Nie" - nie korzystaj w filtrowaniu z wyrażeń regularnych (ustawienie domyślne), "Tak" - zastosuj wyrażenia regularne w filtrowaniu. Akceptuj odstępstwa użytkowników z grupy Specjal - Umożliwia użytkownikom ze specjalnymi uprawnieniami stosowanie wyrazów umieszczonych w słowniku niecenzuralnych ("Tak" Użytkownicy z listy ze specjalnymi uprawnieniami mogą używać dowolnych słów i wyrażeń (ustawienie domyślne), "Nie" - ŻADEN użytkownik nie może stosować nieprzyzwoitych słów, włącznie z moderatorami i administratorami.)
##### + O Badwords 2 Pokazuje numer wersji komponentu, podziękowania, informacje kontaktowe, informacje o wsparciu oraz ten plik pomocy.
#### + Jak mogę dodać Badwords2 Flushing/filtering do "Applikacji XYZ"? Badword Extended Filter: cenzor nieprzyzwoitych tekstów jest komponentem, działającycm w warstwie programowej. Filtruje teksty zawierajace nieprzyzwoite słowa i wyrażenia. Zamiast zawierającego je tekstu, wyświetla komunikat informujący, iż tekst został ocenzurowany (treść komunikatu należy zadeklarować w pliku komunikatów językowych komponentu Joomla/Mambo i użyć zmiennej lub wpisać bezpośrednio do skryptu). Włącz plik components/com_badwords2/class.badwords2.filter.php do pliku .php komponentu instrukcją: require_once( 'components/com_badwords2/class.badwords2.filter.php' ); Wywołaj: Badword::Filter(text, user) , aby w rezultacie API zwróciło następujący wynik: 1 - "true" - jeśli tekst zawiera nieprzyzwoite słowo, czyli dokona zastąpienia tekstu komunikatem 0 - "false"- jeśli tekst nie zawiera nieprzyzwoitych słów, czyli wyświetli wprowadzony tekst Badwords2 Text Filtering/Flushing: cenzor nieprzyzwoitych słów jest komponentem, działającycm w warstwie programowej. Filtruje nieprzyzwoite słowa i wyrażenia w tekstach generowanych przez składniki (komponenty) Joomla/Mambo. W odnalezionych słowach zastępuje niecenzuralne fragmenty gwiazdkami. Włącz plik components/com_badwords2/class.badwords2.filter.php do pliku .php komponentu instrukcją: require_once( 'components/com_badwords2/class.badwords2.filter.php' ); Wywołaj: Badword::Flush(text, user) , aby w rezultacie API: zastąpiło znakiem "*" każdy znak w słowie lub wyrażeniu zawierajacym niecenzuralny tekst (w każdym znalezionym przypadku). ###### + Przykłady zastosowania Dodaj następujące linie w stosownych miejscach skryptu php komponentu // Filtrowanie niecenzuralnych tekstów require_once( 'components/com_badwords2/class.badwords2.php' ); // $msg to tekst do przefiltrowania // $my to użytkownik Joomla/Mambo - zmienna globalna $expletivesExist = Badword::filter($msg, $my); if ($expletivesExist == 0) { // wykonaj polecenie: ( instrukcje - wpisz je tutaj) } else { // filtruj wiadomość i wyświetl komunikat błędu: (instrukcja wyświetlająca komunikat błędu ) } Przykład zastosowania kmponentu do filtrowania zawartości artykułów [contents]. W skrypcie strony frontowej components/com_content.php przed wysłaniem zawartości do bazy danych - w Mambo 4.5.2.3 odszukaj: function saveContent (linia 1269). Wstaw przed lub za $isNew = $row->id < 1; (linia 1278) // Filtrowanie // Znajdz niecenzuralne slowa i zamien je ciagiem **** require_once( 'components/com_badwords2/class.badwords2.php' ); // n.p. $row->title jest tekstem do przefiltrowania // $my jest użytkownikiem Mambo - zmienna globalna $row->title = Badword::flush($row->title, $my); $row->introtext = Badword::flush($row->introtext, $my); $row->fulltext = Badword::flush($row->fulltext, $my); // End Filtrowanie nieprzyzwoitych slow W skrypcie zaplecza - administrator/components/com_content/admin.content.php - w Mambo 4.5.2.3 odszukaj: function saveContent (linia 560). Wstaw przed lub za stałą $isNew = ( $row->id < 1 ); (linia 572) // Znajdz niecenzuralne slowa i zamien je ciągiem **** require_once( $GLOBALS['mosConfig_absolute_path'] . '/components/com_badwords2/class.badwords2.php' ); // np. $row->title jest tekstem do przefiltrowania // $my jest użytkownikiem Mambo - zmienna globalna $row->title = Badword::flush($row->title, $my); $row->introtext = Badword::flush($row->introtext, $my); $row->fulltext = Badword::flush($row->fulltext, $my); // End Filtrowanie nieprzyzwoitych slow Wynikiem będzie przefiltrowana treść.