Witryna CMS - PHP Fusion

 

CMS
Wikipedia

System zarządzania treścią
System zarządzania treścią (ang. Content Management System, CMS) jest to aplikacja internetowa lub ich zestaw, pozwalająca na łatwe utworzenie serwisu WWW oraz jego późniejszą aktualizację i rozbudowę przez redakcyjny personel nietechniczny. Kształtowanie treści i sposobu ich prezentacji w serwisie zarządzanym przez CMS odbywa się za pomocą prostych w obsłudze interfejsów użytkownika, zazwyczaj w postaci stron WWW zawierających rozbudowane formularze i moduły.

Informacje ogólne
 Podstawowym zadaniem platform CMS jest oddzielenie treści (zawartości informacyjnej serwisu) od wyglądu (sposobu jej prezentacji). Po wprowadzeniu nowych informacji przez uprawnionego redaktora system zapisuje je w bazie danych. Następnie system CMS generuje dynamicznie strony internetowe na podstawie treści pochodzącej z bazy danych oraz odpowiednich szablonów. Pozwala to na bardziej elastyczne a przede wszystkim wygodniejsze zarządzanie treścią niż ma to miejsce w przypadku zastosowania statycznych plików HTML. Wykorzystanie szablonów stron sprawia, że zmiana koncepcji graficznej całego serwisu sprowadza się do przygotowania i zamiany szablonu (tzw. skórki). Dzięki takiemu podejściu proces publikacji w Internecie staje się prostszy. Ponadto te same dane można prezentować jednocześnie w różnych formatach np. jako pliki PDF. W ostatnich latach platformy CMS znacznie ewoluowały, dodając m.in. możliwość elastycznej i dynamicznej modyfikacji już nie tylko treści, ale i struktury. Systemy zarządzania treścią zazwyczaj oparte są na bazach danych i językach skryptowych (server-side), lub specjalistycznym oprogramowaniu uruchamianym po stronie serwera. CMS może być formą oprogramowania klienckiego, które do aktualizacji strony może używać takich protokołów jak FTP. Coraz częściej wykorzystywane są złożone techniki opisu struktur dokumentów (np. XML). Najczęściej systemy CMS są napisane w językach takich jak: ASP, JSP, PHP, Python.

Historia
Za rok powstania systemu CMS można uznać rok 1995. Założyciele amerykańskiej firmy CNET Founders Halsey Minor i Jonathan Rosenberg stworzyli system PRISM (Presentation of Realtime Interactive Service Material). Zawierał on szereg rozwiązań stosowanych w obecnych systemach zarządzania treścią. Do szablonów wczytywane były dynamicznie treści z relacyjnej bazy danych. Rosenberg przypuszczał, iż znajdą się firmy chcące skorzystać z narzędzia jakie stworzyli. Plan biznesowy firmy CNET nie obejmował dalszego rozwoju oprogramowania. W tym samym czasie, Ross Garber i Neil Webber stworzyli firmę Vignette i przenieśli się z Anglii do Ameryki w poszukiwaniu rozwojowego środowiska publikacji witryn. Między firmami została podpisana umowa. Firma CNET miała otrzymywać 33% zysku ze sprzedaży.

Typy systemów CMS
W zależności od zastosowania systemy CMS podzielić można na kilka typów: na systemy zarządzania dokumentami (Document Management), wiedzą (Knowledge Management), zasobami cyfrowymi (Digital Asset Management), obiegiem treści (Enterprise Content Management), oraz na systemy zarządzania treścią znajdującą się na stronie internetowej (Web Content Management). Ostatni z wymienionych typów jest obecnie najpopularniejszy

Odmiany systemów CMS
Content Management Framework: to szkielet (tzw. zbiór narzędzi, bibliotek) służący do budowy systemów CMS. Systemy zbudowane na CMF są zazwyczaj kosztowne i wymagają pracy grupy programistów. (Przykłady: Vignette, Documentum, Zope, RedDot, INQUISE) Page-based systems: systemy o transparentnych konsolach. Pozwalają na edycję w ciele strony nie wymagają odrębnych konsoli do zarządzania treścią, są łatwe w nauce i nie wymagają dużego doświadczenia podczas wdrożenia. Bardziej zaawansowane aplikacje wykraczające poza tradycyjne zarządzanie treścią wymagają pracy programisty. (Przykłady: Plone, Typo3, Backend, TikiWiki) Module-based systems: systemy CMS bazujące na modułach to takie, które do prezentacji treści wykorzystują napisane do tego celu moduły/funkcje. Typowy system może zawierać zarządzanie wiadomościami, fora dyskusyjne, etc. Zalety tego typu systemów to możliwość szybkiego uruchomienia portalu. W przypadku braku modułu lub niskiego stopnia jego zaawansowania trzeba pisać taki moduł od nowa. Oznacza to konieczność pisania kodu, co w znacznym stopniu ogranicza możliwości szybkiego rozwoju portalu. (Przykłady: Drupal, Extreme Fusion, Sienn, eZ publish, Joomla!, Mambo, Zikula (poprzednia nazwa: PostNuke), PHP-Fusion, PHP-Nuke, XOOPS, Quick.Cms, Umbraco CMS, DotNetNuke, N2 ASP.NET CMS, AxCMS.net, Kentico CMS, mojoPortal, Sitefinity, Dolphin 7). Content object systems: systemy tego typu koncentrują się wokół tzw. obiektów, czyli małych części informacji, które można reprodukować w wielu miejscach strony WWW. Oprogramowanie tego typu wykorzystywane jest często jako systemy redakcyjne w czasopismach i wielkich wydawnictwach. (Przykłady: ActionApps, Rhythmyx, Quantum Content Managment).
Źródło:
http://pl.wikipedia.org/wiki/

Moodle to także System zarządzania treścią (CMS)
Pod adresem http://www.gnomio.com/ - można założyć darmową platformę Moodle. Po wybraniu języka polskiego i skonfigurowaniu podstawowych parametrów można rozpocząć tworzenie własnego kursu multimedialnego.

Serwery na których można utworzyć darmową witrynę CMS:
http://www.cba.pl/
http://www.yoyo.pl/

Systemy CMS
... to, np. Joomla!
http://www.joomla.pl/. Bardzo często jest jyż preinstalowana na serwerach CMS, stąd nie skorzystamy z tego uproszczonego rozwiązania i zainstalujemy PHP-Fusion http://mods.php-fusion.pl/

 

Tworzenie serwisu CMS
 


rys. 1

1. Pobranie oprogramowania.
Tworzenie serwisu rozpoczniemy od pobrania oprogramowania CMS. W naszym przypadku będzie to PHP-Fusion. W naszym przypadku będzie to wersja 7-01-05-pl lub do pobrania >tutaj<.
Nie instalujemy najnowszej wersji, bo brakuje w niej kilku przydatnych modółów, które należy doinstalować ręcznie. Do najnowszej wersji nie ma także jeszcze skórek, a to one decydują o estetyce naszej witryny.

   

rys. 2
2. Pobranie instrukcji.
Na stronie http://mods.php-fusion.pl/downloads.php można pobrać kurs PHP-Fusion do wersji 6.0 PL (bardzo podobny) lub do wersji 7.0 ENG. Jednak do prawidłowej instalacji wystarczy plik pomocy, który uzyskamy po rozpakowaniu instalki.
Poniżej najistotniejsze informacje z w/w pliku pomocy:


Instrukcja instalacji:

Przed instalacją upewnij się, że Twój serwer spełnia minimalne wymagania PHP-Fusion:

  • PHP 5

  • MySQL 4

Przed instalacją PHP-Fusion potrzebujesz utworzyć bazę danych MySQL. Możesz to zrobić poprzez panel zarządzający Twoim hostingiem lub w phpMyAdmin. Upewnij się, że masz pod ręką dane dostępu do MySQL, wliczając w to adres hosta, nazwę użytkownika, hasło oraz nazwę bazy danych, aby móc je podać podczas instalacji.

  1. Zanim wgrasz pliki na serwer, zmień nazwę pliku _config.php (umieszczonego w katalogu /files) na config.php.

  2. Wgraj zawartość katalogu /files na serwer.

  3. O ile nie uruchamiasz PHP-Fusion na lokalnym serwerze, w większości przypadków będzie potrzeba zmiany praw dostępu dla następujących plików i katalogów, by umożliwiały zapis dla wszystkich (CHMOD 777):

    • administration/db_backups/

    • downloads/

    • downloads/images/

    • downloads/submissions/

    • downloads/submissions/images/

    • forum/attachments/

    • ftp_upload/

    • images/

    • images/imagelist.js

    • images/articles/

    • images/avatars/

    • images/news/

    • images/news/thumbs/

    • images/news_cats/

    • images/photoalbum/

    • images/photoalbum/submissions/

    • robots.txt

    • config.php

    Informacja: Niektóre serwery nie pozwalają na ustawienie praw zapisu dla wszystkich (CHMOD 777), w takim wypadku należy użyć CHMOD 755.

  4. Przejdź na swoją stronę internetową, gdzie plik setup.php powinien uruchomić się automatycznie. Jeśli nie, potrzebujesz uruchomić plik setup.php ręcznie poprzez ręczne wpisanie pełnego adresu strony, po którym dopiszesz /setup.php. Przykład:
    http://www.yourdomain.com/setup.php.

  5. Postępuj według pojawiających się na ekranie wskazówek.

  6. Natychmiast po zakończeniu instalacji PHP-Fusion musisz zmienić prawa dostępu dla pliku config.php na tylko do odczytu (CHMOD 644) ORAZ usunąć plik setup.php z Twojego serwera.

 

Tworzenie witryny
 

rys. 3
1. Rejestracja witryny.
Witrynę CMS można utworzyć wyłącznie w serwisie, który  zapewnia dostęp do bazy danych MySQL. Niewiele serwisów oferuje tę usługę za darmo. My skorzystamy z http://www.yoyo.pl/, gdzie klikamy na obrazku z napisem "załóż konto".
Wówczas wypełniamy formularz - patrz obrazki po lewej stronie.
   

rys. 4
2. Aktywacja witryny.
Podczas rejestracji należy podać email, na który zostanie wysłany list, w którym należy kliknąć link potwierdzający rejestrację.
   

rys. 5
3. Konfiguracja.
Po potwierdzeniu utworzenia konta klikamy "Centrum zarządzania" - patrz obrazek po lewej stronie.
   

rys. 6
Teraz wybieramy "Tworzenie strony" - patrz obrazek po lewej stronie.
   

rys. 7
W otwartym okienku klikamy "Załóż stronę" - patrz obrazek po lewej stronie.
   

rys. 8
W wymyślamy i wpisujemy nazwę witryny.
   

rys. 9

Na tej samej stronie można wskazać jakie oprogramowanie CMS ma zostać automatycznie zainstalowane. My jednak wybieramy "Bez preinstalacji" oraz wymyślamy hasła do bazy MySQL. Nie jest to zalecane, ale aby nie pogubić się w gąszczu haseł proponuję w niniejszej witrynie zastosować wszędzie identyczne. Jeśli ktoś będzie chciał rozwijać ten projekt, to zawsze można je zmienić.

   

rys. 10
Uwaga!
Po wprowadzeniu wszystkich danych uzyskujemy podstawowe parametry tworzonej witryny. TE INFORMACJE TRZEBA ZACHOWAĆ! Szczególnie istotne są parametry połączenia FTP oraz połączenia do bazy  MySQL.

Po zanotowaniu parametrów strony (zachować np. w pliku tekstowym), klikamy "Edycja strony"

   

rys. 11
Na tym etapie katalog naszej strony na serwerze yoyo.pl jest już gotowy. Można skorzystać z narzędzi FYP zawartych na stronie, jednak przy częstej edycji, wygodniejsze jest skonfigurowanie klienta FTP.
   

rys. 12
3. Konfiguracja klienta FTP - w tym przypadku będzie to program FileZilla.
Proszę zwrócić uwagę, że wpisuję numer portu (uzyskany w powyżej omawianym kroku).

 

   

rys. 13

4. Przesyłanie plików PHP-Fusion na serwer Yoyo.pl
- wypakowujemy zawartość pliku php-fusion-7-01-05-pl.zip.
- wchodzimy do folderu files
-
zmieniamy
nazwę pliku _config.php (umieszczonego w katalogu files) na config.php.
- korzystając z FileZilli przerzucamy całą zawartość na serwer.
  Proponuję etapami (po jednym folderze).

Przy znaczniej liczbie plików do przesłania bardzo często zdarza sie, iż pojawiają się problemy z transferem.
Koniecznie należy obserwować zakładkę Nieudane transfery (rysunek po lewej stronie). Gdy pojawi się na niej jakaś liczba (punkt 1 na rysunku) po zakończeniu przesyłania należy: zaznaczyć nazwę serwera (punkt 2 na rysunku), kliknąć na nim prawym przyciskiem myszy i wybrać: Reset and requeue all (punkt 3 na rysunku).
W tym momencie pliki z nieudanych transferów zostaną przeniesione na zakładkę Pliki w kolejce. Teraz wystarczy kliknąć prawym przyciskiem myszy na nazwie serwera i wybrać opcję Rozpocznij.
 


rys. 14
5. FileZilla - ustawianie praw dostępu do plików i folderów
Odnajdujemy foldery i pliki:
  • administration/db_backups/ - (podpowiedź: w folderze administration klikam prawym na folderze: db_backups)

  • downloads/

  • downloads/images/

  • downloads/submissions/

  • downloads/submissions/images/

  • forum/attachments/

  • ftp_upload/

  • images/

  • images/imagelist.js

  • images/articles/

  • images/avatars/

  • images/news/

  • images/news/thumbs/

  • images/news_cats/

  • images/photoalbum/

  • images/photoalbum/submissions/

  • robots.txt

  • config.php
     

Na każdym klikamy prawym przyciskiem myszy i wybieramy opcję "Prawa pliku ...". Można ręcznie zaznaczać "ptaszki" jednak wygodniej w polu "Wartość numeryczna" wpisać 777.

   

rys. 15

6. Finalizacja ustawień na serwerze
Po ustawieniu w powyższym punkcie (rys. 14)wszystkich praw dostępu. Z poziomu strony (rys. 11) wchodzimy na własną stronę. W przypadku niniejszego kursu jest to: www.nauczaniezdalne.yoyo.pl. Automatycznie uaktywnia się plik: setup.php i następuje przekierowanie na   www.nauczaniezdalne.yoyo.pl/setup.php

W okienku (rys. 15) należy wybrać język polski (tradycyjne kodowanie ISO-8859-2) lub ewentualnie (utf8). W niniejszym kursie wybrano ISO-8859-2.

Teraz klikamy: "Następna".

   

rys. 16
Sprawdzamy, czy wszędzie jest opcja "zapisywalny" - jeśli nie, to w FileZilli dokonujemy odpowiednich poprawek.

Później przechodzimy: "Dalej".
   

rys. 17
Uwaga!
Tu wpisujemy dane, które zdobyliśmy na stronie (rys. 10) - są to parametry połączenia do bazy  MySQL wraz hasłem.

Później klikamy: "Dalej".
   

rys. 18
Po prawidłowym wpisaniu parametrów bazy otrzymujemy odpowiedni komunikat i przechodzimy: "Dalej".

 

   

rys. 19
Dodajemy głównego użytkownika witryny (to on będzie logował się na stronę) oraz Administratora (musi mieć inne hasło); przechodzimy "Dalej".
   

rys. 20
Otrzymujemy komunikat o powodzeniu instalacji.
Uwaga!
Przed kliknięciem "Zakończ"
 w FileZilli wchodzimy na serwer - kasujemy plik setup.php oraz zmieniamy prawa dostępu do pliku config.php na (644).

 Po dokonaniu w/w zmian klikamy "Zakończ".
 
   

rys. 21
Zostaniemy przekierowani na naszą stronę, w tym przypadku: www.nauczaniezdalne.yoyo.pl/setup.php. Otrzymamy komunikat o błędzie - nie ma już bowiem pliku setup.php. W adresie pomijamy wiec ten fragment setup.php
   

rys. 22
Strona jest gotowa. Możemy się logować hasłem użytkownika i dokonywać modyfikacji witryny.
   
Na kolejnych ćwiczeniach wszyscy pojawiają się z własną witryną w PHP-Fusion.
Na ćwiczeniach będziemy dokonywali jedynie jej modyfikacji.
Pamiętać o zabraniu danych niezbędnych do logowania.
Brak witryny skutkuje oceną 2.0!