PHP-Nuke: wprowadzenie

Autor: Arkadiusz Tobiasz 20 października 2010

W tym wpisie postaram się Wam przybliżyć podstawowe pojęcia związane z systemem jakim jest PHP-Nuke. To tutaj dowiesz się jakie atuty posiada ten system oraz słabe strony nad którymi będzie trzeba popracować. Przedstawię także główne różnice między wersjami 7.x, a nowymi wersjami PHP-Nuke – 8.x. W krótki sposób przedstawię historię rozwoju systemu w ciągu ostatnich lat oraz jak wygląda sprawa licencji PHP-Nuke, którą wprowadził Francisco Burzi. Kończąc ten rozdział przedstawię, gdzie można pobrać i szukać pomocy odnośnie polskiej wersji PHP-Nuke.

1.    Czym jest PHP-Nuke?

PHP-Nuke, to System Zarządzania Zawartością (z ang. Content Managment System). Systemy te zwane popularnie CMS’ami są wykorzystywane do tworzenia, aktualizacji
i rozbudowy portali internetowych. Oparte są w przeważającej części o PHP i MySQL, co umożliwia tworzenie dynamicznych stron internetowych. Wprowadzanie treści i ich prezentacja odbywa się za pomocą prostych w obsłudze interfejsów użytkownika, zazwyczaj w postaci stron WWW zawierających formularze i moduły. Głównym zadaniem CMS’ów jest oddzielenie treści (informacji prezentowanych przez portal) od sposoby ich prezentacji (czyli wyglądu).

PHP-Nuke jest systemem bazującym na PHP i MySQL, ale obsługuje również inne bazy danych, takie jak MS Access, SQLite, MS SQL, Oracle czy PostgreSQL. System można całkowicie kontrolować od strony przeglądarki. PHP-Nuke jest forkiem[1] systemu newsów Thatware. System jest oparty na licencji GNU General Public License[2]. Od wersji 7.5 ostatnia wersja wydana przez Francisco Burzi jest udostępniona za opłatą. PHP-Nuke 7.5 była pierwszą wersją za którą użytkownik musiał zapłacić 10 dolarów. Licencja GNU GPL zezwala na taki proceder, ale warunkiem jest udostępnienie kodu źródłowego systemu. Oznacza to, że nabywca produktu posiada prawa do darmowego udostępnienia kodu źródłowego produktu. Płacić trzeba tylko za ostatnią wersję PHP-Nuke, poprzednie wersje udostępnione są nieodpłatnie na stronie domowej systemu – www.phpnuke.org. Warto również zaznaczyć, że wersja 8.1 była rozprowadzana za 12 dolarów. Od wersji 5.6 ukazuje się stopka z prawami autorskimi, czego wymaga licencja GNU GPL (sekcja 2c).

PHP-Nuke był wielokrotnie formowany przez różnych ludzi i z różnych przyczyn. Do najbardziej znanych forków PHP-Nuke należą:

  • Dragonfly CMS – bazowany na PHP-Nuke 6.5 z wbudowaną galerią Coppermine.
  • Nuke-Evolution – bazowany na PHP-Nuke, z wieloma poprawkami i modyfikacjami.
  • RavenNuke – bazowany na PHP-Nuke 7.6, z wieloma poprawkami, modyfikacjami, zgodny z XHTML 1.0.
  • PostNuke – bazowany na PHP-Nuke 5.0.
  • XOOPS – bazowany na PHP-Nuke oraz myPHP-Nuke.

Rysunek 1. Oficjalna strona najbardziej znanego forka PHP-Nuke - PostNuke

2.    Dlaczego wybrać PHP-Nuke?

W tym punkcie postaram się odpowiedzieć na pytanie: „Dlaczego wybrać PHP-Nuke,
a nie pisać swojej strony w statycznym HTML’u?” Pisanie w statycznym HTML’u jest dobre dla prostych i nieskomplikowanych stron, liczących 5 – 10 podstron, takich jak wizytówka firmy. Natomiast jeżeli chcemy stworzyć bardziej rozbudowany portal, to wtedy zazwyczaj większość osób wybiera CMS. Wybór gotowego systemu opartego o PHP i MySQL pozwala na lepszą interakcję z użytkownikami naszego portalu, bowiem zawiera takie elementy jak rejestracja użytkowników, system komentarzy czy forum. Gotowy CMS ułatwia nam zarządzanie stroną poprzez Panel Administracyjny, w którym znajdują się podstawowe opcje dotyczące zawartości strony (m.in. dodawanie newsów, edycja, usuwanie itp.). W związku z tym osoby tworzące wraz z nami stronę mają proste narzędzie, z którym sobie na pewno poradzą, bowiem nie muszą znać takich języków jak HTML czy PHP. Bowiem jeśli chcielibyśmy zmienić coś w stronie napisanej w HTML’u musimy edytować cały kod pliku najczęściej w notatniku. Natomiast jeśli chcemy zmienić dane na stronie opartej na CMS’ie czynimy to z poziomu przeglądarki za pomocą Panelu Administratora. W kod zagłębiamy się dopiero wtedy kiedy chcemy zmienić wygląd naszego portalu lub zmodyfikować jakieś funkcje.

Teraz co nieco o zaletach i wadach systemu jakim jest PHP-Nuke. PHP-Nuke jest najstarszym systemem rozwijanym w Internecie do dnia dzisiejszego. W związku z tym ma zarówno wielu przeciwników jak i zwolenników.

Głównym argumentem, którym kieruje się wielu użytkowników wybierających przy wyborze PHP-Nuke jest ogromna ilość bloków, modułów, dodatków, a także motywów graficznych, które są dostępne w Internecie. Istnieje bardzo dużo serwisów poświęconych wsparciu systemu PHP-Nuke, niestety większość dobrych stron jest obcojęzyczna, ale
o tym w dalszej części mojej książki (zobacz: Gdzie szukać dodatków?).

Rysunek 2. Oficjalna strona PHP-Nuke

Wiele osób uważa, że PHP-Nuke jest najbardziej „dziurawym” systemem spośród wszystkich CMS’ów. Ja osobiście się z tą teorią nie zgadzam, bowiem istnieje jeszcze bardziej dziurawy CMS, stworzony przez Polaków zwany JPortalem (już nie rozwijanym),
z którego korzysta nadal bardzo wiele osób. Istnieje wiele dodatków do PHP-Nuke, które zabezpieczą nasz portal przed atakami innych użytkowników i wtedy prawdopodobieństwo włamania na naszą stronę poprzez luki w kodzie maleje niemal do zera. W ciągu mojej pracy z PHP-Nukem, która trwa już pięć lat tylko raz zdarzyło mi się włamanie na mój portal, który w dodatku nie był zabezpieczony.

PHP-Nuke jest w moim odczuciu prostym systemem jeśli chodzi o stronę techniczną (sposób w jaki jest napisany). Dla osób znających trochę PHP i MySQL nie będzie problemem napisać dla niego swojego własnego modułu czy bloku. W pisaniu swoich dodatków można bazować na innych już napisanych i działających. W dalszej części postaram się Wam przestawić w jaki sposób można taki dodatek samemu napisać.

Minusem jest brak dobrego polskiego wsparcia dla systemu PHP-Nuke. Obecnie istnieją trzy portale poświęcone tej tematyce, na których jednak nie można znaleźć wielu dodatków i artykułów poświęconych PHP-Nuke. Istnieje jednak wiele dobrych stron obcojęzycznych, na których znajduje się sporo artykułów, ale niestety są one w języku angielskim.

Kolejnym minusem może być problem z optymalizacją. Jeżeli nasza strona będzie się rozwijać, w związku z tym będzie wzrastać liczba odwiedzin, co spowoduje większe obciążenie serwera. Momentami może prowadzić to do tego, że nasza strona będzie przeciążona. Jednak idzie zoptymalizować kod PHP-Nuke, wskutek czego zmniejszy się liczba zapytań do bazy danych. Można też postawić nasz portal na cache’u[3].

3.    Co nowego w wersjach 8.x?

Obecnie najnowszą dostępną wersją PHP-Nuke jest 8.1[4], wraz z nadejściem wersji 8.x weszło trochę zmian, które postaram się tutaj przedstawić. W wersjach 8.x większość plików odnoszących się do modułów Forums, Members_List oraz Private_Messages została przeniesiona z includes/ do module/Forum/includes/. BBtoNuke[5] znajduje się w wersji 2.0.21. Zmieniona została również funkcja odpowiadająca za programowanie artykułów na określony dzień i godzinę. Dodana została także funkcja info_box(), która wyświetla przyjazne oku obrazki przy komunikatach na stronie. Od wersji 8.0 znajduje się także ochrona przed atakami typu Dos/Flood, która chroni przed oglądaniem wielu podstroi w kilka sekund. Wraz z nadejściem PHP-Nuke 8.x jest dostępny instalator systemu (nie trzeba już ręcznie edytować pliku config.php) bazowany na Joomla Web Installer.

Od wersji 8.1 jest dostępny moduł AutoTheme, który pozwala korzystać z całkiem nowych funkcji związanych z wyglądem naszej strony. W tej wersji przebudowano całkowicie Ustawienia Preferencji w Administracji Portalu. Przeniesiona tam kilka zmiennych z pliku config.php i nie trzeba ich tam ręcznie ustawiać.

Rysunek 3. Konfiguracja strony w PHP-Nuke 8.1

Warto jeszcze podkreślić, że od wersji 7.8 został całkowicie przebudowany system banerów. Możemy wprowadzić kilka stref banerowych w naszym systemie, poprzez implementację odpowiedniego kodu w pliki PHP-Nuke. Dostępny jest również moduł Advertising, w którym możemy znaleźć plany reklamowe strony, statystyki strony oraz możliwość zalogowania się wydawców i administracji swoimi banerami. Można również dodawać banery w formie Flasha oraz kodu HTML czy JavaScript. Od wersji 7.7 dostępny jest edytor WYSIWYG, który jest obecny we wszystkich polach typu textarea. W znaczny sposób ułatwi to obsługę portalu przez zwykłych użytkowników, którzy nie znają HTML’a. Od tej wersji również wprowadzono tzw. system karma, którego głównym celem jest kontrola „niesfornych” użytkowników. W systemie dostępne są określone karmy, dzięki, którym będziemy mogli zabronić użytkownikom komentowania na portalu lub komentarze będą czekać na akceptację przez administrację.

4.    Krótka historia PHP-Nuke

Krótka historia PHP-Nuke opisana przez jego twórcę Francisco Burzi[6]:

PHP-Nuke jest wolnym oprogramowaniem na licencji GNU GPL wersja 2.0. PHP-Nuke jest rezultatem wielu lat administrowania stroną zwaną Linux Preview. Około sierpnia 1998 roku napisałem swój pierwszy kod w Perl’u, który nazwałem NUKE i używałem go przez około rok. Kiedy moja strona zaczęła się rozrastać potrzebowałem bardziej wydajnościowego systemu i zdecydowałem użyć Slash’a, takiego samego jak użyty na stronie Shlashdot. System ten był dobry, ale musisz naprawdę dobrze znać Perl’a, aby go zmodyfikować, wymaga zbyt dużo modułów, wymagał załadowania damn daemon, który pobierał całą moc procesora.

Wtedy odkryłem Thatware, dobry projekt, aby mieć stronę w PHP. Nauczyłem się PHP w mniej niż tydzień i zacząłem go modyfikować. Było zbyt wiele modyfikacji, aby je wspomnieć, praktycznie przepisałem ten system. Dodałem kilka fajnych dodatków, usunąłem trochę innych i po ponad 380 godzinach ciężkiej pracy w 3 tygodnie narodził się PHP-Nuke.

17 sierpnia 2000 roku sprzedałem LinuxPreview.org dla LinuxAlianza.com i teraz cały swój przeznaczam na dalszy rozwój PHP-Nuke.

Od stycznia 2001 roku do stycznia 2002 roku PHP-Nuke był finansowo wspierany przez MandrakeSoft, przez ludzi, którzy stworzyli Mandrake Linux. Dali mi i PHP-Nuke wiele tlenu i stworzyli możliwość powstania wielu dodatków.

Obecnie jestem sam w tym morderczym projekcie. Jest dużo pomocy od ludzi, którzy używają i rozwijają moduły i style. Teraz phpnuke.org jest wielką stroną z mnóstwem użytkowników oraz pomocnymi informacjami od użytkowników z całego świata. Są również silne społeczności użytkowników w każdym języku jaki możesz sobie wyobrazić.

5.    Licencja

PHP-Nuke jest wolnym oprogramowaniem opartym na licencji GNU General Public Licence. W związku z tym jeżeli chcemy korzystać z tego systemu musimy zostawić oryginalne informacje na temat autora kodu oraz stopkę z prawami autorskimi.

Francisco Burzi wprowadził komercyjną licencję, która zezwala na:

  • usunięcie każdych informacji prawach autorskich dla PHP-Nuke,
  • usunięcie Meta Tagu Generator z kodu źródłowego strony,
  • usunięcie stopki z prawami autorskimi,
  • usunięcie pliku copyright.php z każdego modułu autorstwa Francisco Burzi,
  • usunięcia numeru wersji z modułu statystyk,
  • usunięcie każdego odwołania do PHP-Nuke z całego kodu.

Licencja nie zezwala na:

  • usunięciu pliku copyright.php z modułów, których nie stworzył Francisco Burzi,
  • transferu licencji na inną stronę,

Wykupienie komercyjnej licencji odbywa się raz dla jednej specyficznej domeny, nie zważając na wersję systemu (dotyczy również aktualizacji skryptu). Wykupić komercyjną licencję można na stronie domowej projektu – www.phpnuke.org. Po zapłacie za licencję otrzymasz wiadomość upoważniającą Ciebie do usunięcia informacji o prawach autorskich.

Wykupienie licencji komercyjnej dla jednej strony to wydatek rzędu 300 dolarów. Przy wykupie kilku komercyjnych licencji dla swoich stron Francisco Burzi przewidział zniżki[7]. Niestety jest to dość spory wydatek patrząc na polskie realia.

Jeżeli nie masz wykupionej płatnej licencji usuwanie informacji o prawach autorskich jest nielegalne! Zazwyczaj takie strony nie otrzymują pomocy na stronach polskiego wsparcia PHP-Nuke.

6.    Polska wersja PHP-Nuke[8]

Teraz czas na opisanie kilku polskich lokalizacji PHP-Nuke. Najstarszą polską lokalizacją PHP-Nuke był system zwany Pandą tworzony przez pierwszy polski suport PHP-Nuke – www.nukepl.com. Niestety przestał on być rozwijany wiele lat temu, więc nie polecam z niego korzystać, gdyż bazował na starszych wersjach PHP-Nuke, które posiadały wiele luk bezpieczeństwa.

Następną polską lokalizacją był stworzony przez Mariusza Bednarza – TurboNuke, który bazował na PHP-Nuke 7.6. Był to bardzo rozbudowany system, który zawierał bardzo dużo dodatków, około 100, a sama skompresowana paczka z systemem zajmowała ponad 23 MB! Niestety ten polski fork PHP-Nuke nie jest już rozwijany, ukazała się tylko jego jedna wersja. Pomoc odnośnie tego forka można jednak znaleźć na stronie polskiego wsparcia PHP-Nuke – www.phpnuke.org.pl.

Kolejną wersją polską był PHP-Nuke 7.6.1, który zawierał wszystkie poprawki ze strony www.nukefixes.com oraz został pozbawiony zbędnym plików językowych, pozostały tylko języki: polski i angielski. Podobnie było z wersją 7.7.1, która zawierała poprawki ze strony nukefixes.com do dnia 30.06.2005 roku oraz kilka innych drobnych modyfikacji.

PHP-Nuke 7.9.0.3.2e PL jest następną większą polską lokalizacją systemu PHP-Nuke. Poprawiono w niej wiele niedociągnięć oraz usunięto wiele niepotrzebnych plików. Również w tej wersji po raz pierwszy pojawił się automatyczny instalator tabel dla
PHP-Nuke.

Kolejną wersją jest PHP-Nuke 8.0 PL by marbed przygotowana przez Mariusza Bednarza, które zawiera pełne spolszczenie tej wersji PHP-Nuke. Oprócz tego dodano kilka poprawek oraz dwa nowe moduły.

Ostatnią wersją jest PHP-Nuke 8.1.1 przygotowana przez Arkadiusza Tobiasza. Zawiera ona kompletne spolszczenie systemu. Oprócz tego poprawiono wyświetlanie polskich znaków, bowiem ten problem występuje w wersjach PHP-Nuke 8.x.


[1] Fork – to sytuacje, kiedy rozwój danego projektu nie prowadzi już tylko jedną drogą, ale rozwidla się na dwie lub więcej gałęzi.

[2] Nieoficjalne polskie tłumaczenie znajduje się na stronie http://gnu.org.pl/text/licencja-gnu.html.

[3] Cache to mechanizm, który generuje obraz dynamicznej strony w postaci strony HTML i przechowuje go w folderze tymczasowym, użytkownik odwiedzając stronę widzi jej obraz generowany co określony czas, nie prowadzi to do obciążania serwera (Apacze i MySQL), zob.: Cache portalu, str.

[4] Najnowszą wersję możesz ściągnąć ze strony www.phpnuke.com.pl.

[5] BBtoNuke jest to sportowany na potrzeby portalu skrypt forum phpBB.

[6] Opis zaczerpnięty z PHP-Nuke How To.

[7] Więcej na ten temat znajdziesz na stronie http://phpnuke.org/modules.php?name=Commercial_License.

[8] Wszystkie polskie wersje PHP-Nuke możesz ściągnąć z www.phpnuke.com.pl.

Odpowiedz

 

Arkadiusz Tobiasz student Akademii Ekonomicznej im. Karola Adamieckiego w Katowicach na specjalnościach informatyka ekonomiczna oraz rachunkowość. Więcej...

jQuery Validation i funkcja remote

Jakiś czas temu zwrócił się do mnie użytkownik z problemem. Chodzi o to, że korzysta on z pluginu walidacji jQuery, […]

Zend Framework: integracja z Uploadify

W tym wpisie postaram się przedstawić Wam w jaki sposób zintegrować skrypt Uploadify z Zend Frameworkiem. Dzięki temu będziemy mogli […]

Javascript: Czasowe wyświetlanie reklamy

Czasami chcemy, aby na pewnym elemencie naszej strony wyświetlała się reklama przez jakiś czas, a następnie zniknęła. W tym wpisie […]

Linux: backup wszystkich baz danych MySQL

Swego czasu pisałem o tym jak z poziomu konsoli można szybko i przyjemnie zrobić backup bazy MySQL. Wszystko jest ładnie […]