Strona WWW bez bazy danych SQL ?
Po co mi strona WWW oparta na plikach ?
Czasami zdaża się że potrzebujemy taką stronkę, gdy umieszczamy ją na jakimś darmowym serverze. Służyć ona może jako prosta strona www, wizytówka firmy, czy proste zaplecze SEO.
Wykonanie staycznej strony nie jest żadnym wyzwaniem. Problemem natomiast jest często dla początkujących webmasterów napisanie t.zw. silnika aplikacji, którego pracą możemy sterować za pomocą panela administratora (PA) bez ingerencji w kod.
Zacząć należy oczywiście od przemyśleń, warto najpierw poświęcić troszkę więcej czasu na zastanowienie się, ponieważ może nas spotkać sytuacja, w której chcąc zaimplementować jakąś nową funkcjonalność musimy przerabiać od początku cały skrypt.
Przy moim ostatnim skrypcie, nazwanym twórczo nosql, zacząłem prace od pliku konfiguracyjnego : config.php
Ustalam w nim domenę, podkatalog (w public_html o ile jest wymagany), nazwę layoutu oraz dostęp do PA. Pozwoli mi to w przyszłości na szybką asymilację w nowym środowisku ( ależ to fachowo brzmi :) ).
Plik index.php zawsze lubię mieć odchudzony - takie zboczenie z ZF. Definiuję w nim tylko katalog z klasą silnika i inkluduję plik konfiguracyjny.
Jak się można domyślić, całą brudną robotę odwala za nas ta klasa ... U mnie nazywa się ona nie inaczej jak : Mirvanos_CMS_Nosql . Co zawiera taka klasa ? Jest tam przedewszystkim funkcja do parsowania adresów ... Zaczerpnięta wiedza z działania Zend Framework, tworzę plik .htaccess i przekierowywuję wszystkie zapytania do severa, tak aby były one parsowane przez plik index.php , a co za tym idzie moją funkcję do parsowania url'i czyli np. parseRequestUrl().
Działanie jej jest banalne. Pobieramy $_SERVER['REQUEST_URI'] i sprawdzamy czy występuje on w tablicy, która zaserializowaną zapisujemy sobie w pliku. Można oczywiście zrobić to tak, jak w wspomnianym wcześniej ZF, ale jakoś wolałem sobie na sztywno zapisać wszystko w pliku z poziomu PA.
Dalej to już z górki ( o ile wcześniej było pod górkę), includujemy plik, który jest wartością w tablicy danego requesta .... Czyli np. nazywamy tablicę $request i w niej dajemy jako klucz dany uri a wartość nazwę pliku z akcją jaką ma wykonać. I znów można by to zrobić na wiele sposobów, np. akcja nazywa się tak samo jak request, lecz takie rozbicie pozwoli nam na zmiany/podmiany w PA - przypisujemy konkretną zapisana treść, do podanej akcji.
Treść ... aby wszystko działało szybko i fajnie, bez ingerencji w kod, zastosowałem skrypt TinyMCE (są jeszcze inne np.FCKEditor), ale ten ostatnio mi się spodobał ( teraz też w nim piszę ). Skrypt ten, zamienia nam pole typu textarea na rozbudowany edytor, łudząco przypominający Word'a ... W tym momencie , redaktor strony nie potrzebuje żadnej wiedzy z zakresu programowania.
Do skompletowania naszej klasy potrzeba jeszcze fumkcji do ładowania i parsowania szablonów oraz panel PA.
Do obsługi szablonów mamy mnóstow gotowych skryptów, nie będę tu żadnego polecał - jeśli ma to być prosty CMS to postanowiłem napisać jakieś proste fukcje , które umożliwią mi prostą zamianę znaczników w plikach xhtml . Robię to po prostu za pomocą str_replace ....
Panel Admina musi więc dysponować edytorem tinyMCE , który podpinamy pod większę pola textarea ... zapisane treści zapisauje w jakimś katalogu np. contents. W edytorze jest także formularz z dodawaniem/edycją/kasowaniem wszystkich możliwych akcji, menu, treści wyświetlanych w banerze - oczywiście wszędzie dajemy możlwiość edycji keywordsów i description. To w połączeniu z XHTML/CSS zgodne z standardami dajemy nam funkcjonalną stronę , która jest SEO FRIENDLY
To tyle ... od razu uprzedzam że nie ma to być jakiś typowy art, ale moje małe przemyślenia.
Skrypt , o którym między innymi pisałem, jest do sprzedania - Proszę nie krytykować tego jako paskudną formę reklamy :)