System PHP-Nuke doczekał się licznych następców. Szczególne miejsce w tym gronie zajmuje PostNuke. Zwiększone bezpieczeństwo, system skórek, poprawność generowanego kodu HTML oraz uproszczona procedura instalacyjna to najbardziej rzucające się w oczy zalety PostNuka.
Systemy CMS wywodzące się z systemu PHP-Nuke
Lista systemów CMS opartych na PHP-Nuke liczy kilkanaście pozycji. W rozdziale 2.6 dokumentacji systemu PHP-Nuke wymienione są systemy PostNuke, Envolution, MyPHPNuke oraz Xoops.
Dalsze informacje na ten temat znajdziemy w Wikipedii pod adresem: http://en.wikipedia.org/wiki/PHP-Nuke/. Wikipedia wymienia kolejne trzy systemy OpenPHPNuke, phpWebSite oraz OcPortal (informacje na temat ostatniego systemu są podane na stronie http://en.wikipedia.org/wiki/OcPortal/). Wreszcie w serwisie http://www.cms.rk.edu.pl znajdziemy informacje na temat CMSów: AlertNuke, Proxima, HalNuke, CrossNuke oraz MD-Pro.
PostNuke
Głównymi cechami, które odróżniają PostNuke od protoplasty PHP-Nuka są bezpieczeństwo, system skórek, standaryzacja kodu HTML generowanego przez portal, uproszczona administracja oraz prostsza procedura instalacyjna.
Bieżąca wersja systemu ma numer 0.750 i jest dostępna na naszej płycie CD lub na stronie projektu: http://www.postnuke.com. Na witrynie http://www.post-nuke.pl znajdziemy natomiast informacje na temat tłumaczeń systemu PostNuke na język polski, zaś pod adresem http://jeffrey.shaffner.name/betasite/ znajduje się przewodnik w formacie PDF.
Do instalacji Post-Nuke służy skrypt install.php. Instalacja odbywa się za pośrednictwem skryptu install.php. Nie musimy, tak jak to miało miejsce w przypadku systemu PHP-Nuke, wykonywać skryptów SQL. Baza danych zostanie utworzona przez skrypt install.php. Po instalacji należy usunąć zarówno plik install.php, jak i folder install.
Panel administracyjny
Struktura portalu prowadzonego w systemie PostNuke jest niemal identyczna jak w przypadku systemu PHP-Nuke. Treść portalu jest podzielona na tematy, sekcje oraz artykuły, zaś do zarządzania strukturą serwisu służą bloki i moduły. Panel administracyjny portalu został przedstawiony na rys. 2.
Uruchamiając nowy portal będziemy musieli skorzystać co najmniej z czterech ikon panelu sterowania: Add story, Blocks, Settings oraz Topics. Globalne ustawienia portalu, takie jak tytuł, stopkę, logo czy skórkę, modyfikujemy korzystając z ikony Settings. Ikona Topics służy do definiowania tematów. Artykuły dodajemy za pomocą ikony Add story, natomiast ikona Blocks pozwoli na zmodyfikowanie systemów menu dostępnych w portalu.
Portal o twórczości Edgara Alana Poe
Jako przykład zastosowania systemu przygotujemy serwis prezentujący opowiadania Alana Edgara Poe. Treść opowiadań pochodzi z biblioteki Projekt Gutenberg dostępnej pod adresem http://www.promo.net/pg/. Pliki tekstowe z treścią opowiadań są zawarte w archiwum {stala}edgar-alan-poe-txt-all.zip{/stala}. Pliki tekstowe zostały sformatowane w taki sposób, że akapity nie zawierają znaków złamania wiersza. Plik {stala}edgar-alan-poe-pseudo-html.zip{/stala} zawiera teksty opowiadań sformatowane znacznikami {html}
{/html} oraz {html}
{/html}.Dodajemy do portalu temat (ang. topic) Edgar Alan Poe. Po uruchomieniu serwisu i zalogowaniu na konto administratora przechodzimy do panelu administracyjnego i wybieramy ikonę Topics. Dodajemy nowy temat p.t. Edgar Alan Poe. Jako ikonę podajemy nazwę poe.gif. Następnie usuwamy dwa domyśle tematy: Linux oraz PostNuke.
Teraz w portalu jest zdefiniowany jeden temat: Edgar Alan Poe.
Następnie przystępujemy do dodania do portalu artykułów. W panelu administracyjnym wybieramy ikonę Add story. Jako treść artykułu podajemy jeden z utworów zawartych w archiwum {stala}edgar-alan-poe-pseudo-html.zip{/stala} (tekst wzbogacony o elementy P), np. opowiadanie THE PIT AND THE PENDULUM, zapisane w pliku {stala}the_pit_and_the_pendulum.html{/stala}.
W tym celu otwieramy plik {stala}the_pit_and_the_pendulum.html{/stala} dowolnym edytorem plików tekstowych, zaznaczamy całość (Ctrl+A) i wykonujemy operację kopiuj (Ctrl+C). Przechodzimy do okna przeglądarki i wklejamy skopiowaną treść do pola edycyjnego zatytułowanego Body text. Przewijamy zawartość pola Body text na sam początek, zaznaczamy pierwszą linię zawierającą tytuł opowiadania THE PIT AND THE PENDULUM. Zaznaczony tytuł wycinamy (Ctrl+X) z pola Body text i wklejamy do pola Title, znajdującego się na górze strony. Teraz zmieniamy temat artykułu. Ustalamy Topic na Edgar Alan Poe. Na koniec ustalamy format tekstu wprowadzonego w polu Body text na HTML. Służy do tego lista rozwijana znajdująca się poniżej pola Body text.
Artykuł jest gotowy do umieszczenia w bazie danych. Naciskamy przycisk Submit, dostępny na dole strony. Ujrzymy podgląd artykułu. Jeżeli nie popełniliśmy żadnej pomyłki i artykuł wygląda poprawnie, przechodzimy do dolnej części strony. Zmieniamy opcję listy rozwijanej z Preview story na Post Story i ponownie naciskamy przycisk Submit. Tym razem artykuł zostanie umieszczony w portalu. W identyczny sposób dodajemy kolejne opowiadania.
W archiwum {stala}edgar-alan-poe-pseudo-html.zip{/stala} znajduje się 67 opowiadań. W celu ułatwienia dodania opowiadań do bazy danych, skrypt {stala}sql-edgar-alan-poe_opowiadania.sql{/stala} zawiera instrukcje w języku SQL, które dodadzą do bazy danych zarówno temat, jak i wszystkie 67 opowiadań. Skrypt ten jest zawarty w archiwum {stala}sql-edgar-alan-poe_postnuke.zip{/stala}. W celu wykonania skryptu SQL wystarczy uruchomić dołączony plik o rozszerzeniu .bat. Czynność tę należy wykonać bez dodawania do bazy danych tematu. Skrypt SQL dodaje do bazy danych zarówno temat, jak i opowiadania.
Kolejnym etapem konfiguracji portalu jest modyfikacja ustawień bloków. Przechodzimy do panelu administracyjnego i wybieramy ikonę Blocks. Deaktywujemy wszystkie bloki poza Main Menu, Search, Login oraz Past Articles.
Teraz dodajemy do menu opcję zatytułowaną Edgar Alan Poe. Chcemy, by opcja ta wyświetlała listę wszystkich opowiadań. W tym celu musimy najpierw poznać hiperłącze, które wyświetla listę opowiadań. Wracamy do strony głównej, po czym w menu Past Articles (lewa strona portalu) klikamy hiperłącze Older articles (na samym dole menu Past Articles). Strona, którą ujrzymy, zawiera listę wszystkich opowiadań. Klikamy pole adres w przeglądarce i kopiujemy do schowka zawarty tam adres.
Wracamy do administracji blokami i włączamy edycję menu głównego. Służy do tego hiperłącze Edit w kolumnie Options. Oczywiście klikamy hiperłącze Edit znajdujące się w wierszu, który w kolumnie Title zawiera tekst Main Menu. Usuwamy wszystkie pozycje poza Home, Administration, Logout oraz Serch. W celu usunięcia wybranej pozycji, należy zaznaczyć opcję w kolumnie Delete wybranego wiersza. Usunięcie potwierdzamy naciskając przycisk Commit changes. Ponownie wchodzimy do edycji menu głównego i zmieniamy nazwę opcji Home na What’s new? Dokonamy tego modyfikując tekst w polu Title. Następnie dodajemy puste pole poniżej opcji What’s new? W tym celu zaznaczamy opcję Insert blank after w pierwszym wierszu i potwierdzamy zmiany przyciskiem Commit changes. Ponownie wracamy do edycji menu głównego i w wolnym wierszu, poniżej wiersza What’s new?, wprowadzamy tytuł Edgar Alan Poe, zaś w polu URL wklejamy skopiowany uprzednio adres.
Wracamy do administracji blokami i wyłączamy blok Past Articles. Blok ten był potrzebny do ustalenia adresu, który wkleiliśmy w menu głównym.
Na koniec zmieniamy ustawienie portalu. W panelu administracyjnym klikamy ikonę Settings. Zmieniamy tytuł portalu (Site name), hasło reklamowe portalu (Site slogan), słowa kluczowe (Meta keywords) oraz stopkę (Footer line).
Teraz przygotowujemy ikonę portalu. Plik powinien nazywać się {stala}logo.gif{/stala} i mieć wymiary 261×69. Gotowe logo zapisujemy w folderze {stala}PostNuke-0.750/html/images/{/stala}.
Utworzymy jeszcze plik GIF o wymiarach 1×1, którego jedyny biały piksel jest przezroczysty. Plik ten nazwiemy poe.gif i zapiszemy w folderze {stala}PostNuke-0.750/html/images/topics/{/stala}. W panelu administracyjnym tematów (ikona Topics) zmieniamy ustawienia tematu Edgar Alan Poe. Podajemy nazwę ikony {stala}poe.gif{/stala}. Dzięki temu unikniemy symbolu nieznalezionego obrazu z ikoną tematu na niektórych stronach portalu. Przykładowe ikony są zawarte w pliku {stala}ikony.zip{/stala}.
Portal jest gotowy. Strona główna portalu została przedstawiona na rys. 3.
Modyfikacja skórki portalu
System PostNuke jest rozprowadzany z kilkoma skórkami. W celu zmiany skórki portalu należy najpierw udostępnić skórkę, po czym dokonać zmiany. Do udostępniania skórek służy ikona Xanthia panelu administracyjnego. Po jej wybraniu ujrzymy listę dostępnych skórek. Skórki należy aktywować. W tym celu klikamy hiperłącza Add theme w kolumnie Actions.
Następnie przechodzimy do ikony Settings panelu administracyjnego. Teraz możemy przystąpić do zmiany skórki systemu. Korzystając z listy rozwijanej Default theme for this site, wybieramy interesujący nas temat. Wybór potwierdzamy przyciskiem Save changes u dołu strony. Rys. 4 przedstawia portal po zastosowaniu czterech różnych skórek.
Po wyłączeniu części modułów panel administracyjny zawiera nieco mniej ikon. Rys. 5 przedstawia panel administracyjny portalu otrzymanego po wykonaniu ćwiczenia pierwszego.
Usunięcie portalu
Portal wykonany w systemie PostNuke składa się z bazy danych oraz plików zawartych w folderze {stala}PostNuke-0.750{/stala} (folder ten jest zawarty w katalogu htdocs). W celu usunięcia portalu wykonanego w pierwszym ćwiczeniu należy usunąć zarówno folder {stala}PostNuke-0.750{/stala}, jak i bazę danych postnuke. Do usunięcia bazy danych możemy użyć operacji Usunięcie, dostępnej w systemie phpMyAdmin lub zapytania:
DROP DATABASE postnuke;
Portal zawierający dział Download
Kolejne ćwiczenie pokazuje, z jaki sposób wzbogacić portal o dział Download. Zainstalujemy od nowa system PostNuke, po czym korzystając ze skryptu {stala}sql-edgar-alan-poe_postnuke.zip{/stala} dodamy temat Edgar Alan Poe i wszystkie 67 artykułów.
Dział Download możemy podzielić na kategorie oraz podkategorie. Wykorzystując ikonę Download w panelu administracyjnym dodamy do systemu trzy kategorie: opowiadania w formacie tekstowym (każde opowiadanie będzie stanowiło osobną pozycję), opowiadania w formacie HTML (każde opowiadanie będzie stanowiło osobną pozycję) oraz komplet opowiadań (każda pozycja tego działu będzie zawierała wszystkie opowiadania; poszczególne pozycje działu Download będą się różniły formatem).
Danymi, które umieścimy w systemie, będą spakowane pliki o rozszerzeniu .zip. Pierwsza kategoria plików, zawarta w archiwum {stala}separate-html.zip{/stala}, to spakowane pliki, z których każdy zawiera jedno opowiadanie w formacie HTML. Druga kategoria plików, zawartość archiwum {stala}separate-txt.zip{/stala}, to spakowane pliki, z których każdy zawiera jedno opowiadanie w formacie TXT. Wreszcie trzecia kategoria plików, pliki zawarte w {stala}all.zip{/stala}, to archiwa zawierające wszystkie opowiadania.
W ten sposób goście naszego portalu będą mogli:
- przeczytać każde opowiadanie online,
- pobrać każde opowiadanie w formacie TXT,
- pobrać każde opowiadanie w formacie HTML,
- pobrać wszystkie opowiadania w jednym pliku; każde opowiadanie będzie zawarte w osobnym pliku w formacie TXT,
- pobrać wszystkie opowiadania w jednym pliku; każde opowiadanie będzie zawarte w osobnym pliku w formacie HTML,
- pobrać spakowany plik PDF zawierający teksty wszystkich opowiadań.
Po dodaniu do portalu trzech kategorii działu Download, przystępujemy do dodawania poszczególnych wpisów. Każdy wpis działu Download wskazuje adres URL. Zatem dodając do systemu poszczególne pozycje działu Download, musimy również zadbać o to, by adresy URL wskazywały pliki zawarte na serwerze. W folderze PostNuke-0.750 otwieramy folder download. W folderze tym umieszczamy dalsze trzy foldery: {stala}separate-txt{/stala}, {stala}separate-html{/stala} i all. W folderach tych umieszczamy pliki wypakowane z archiwów {stala}separate-txt.zip{/stala}, {stala}separate-html.zip{/stala} i {stala}all.zip{/stala}. W systemie powinny pojawić się m.in. pliki: {stala}htdocs/PostNuke-0.750/download/separate-txt/ligeia.zip{/stala} oraz {stala}htdocs/PostNuke-0.750/download/separate-html/the_oval_portrait.zip{/stala}. Pierwszy z powyższych plików zawiera treść opowiadania pt. Ligeia w spakowanym pliku tekstowym, zaś drugi zawiera tekst opowiadania pt. The Oval Portrait w spakowanym pliku .html.
Gdy umieściliśmy na serwerze pliki, możemy przystąpić do dodawania wpisów działu Download. Przechodzimy do panelu sterowania, klikamy ikonę Download, po czym korzystając z formularza Add a new download wprowadzamy dane kolejnych opowiadań do bazy danych. Lista rozwijana Category powinna zawierać trzy wcześniej dodane kategorie. Adresem pliku jest na przykład ścieżka {stala}/PostNuke-0.750/download/separate-txt/ligeia.zip{/stala}.
Kolejno dodajemy 137 wpisów (opowiadań jest 67; zatem mamy 67 plików zawierających poszczególne opowiadania w formacie TXT oraz 67 plików zawierających opowiadania w formacie HTML; pozostałe 3 pliki to archiwa: wszystkie opowiadania w formacie TXT, wszystkie opowiadania w formacie HTML oraz książka PDF).
Skrypt {stala}nuke_downloads_downloads-calosc.sql{/stala} zawarty w archiwum {stala}sql-nuke_downloads_downloads-calosc.zip{/stala} dodaje do systemu wszystkie 137 wpisów oraz trzy kategorie.