.beFrame 3.5 => BF5.0

Logika CMS-BF

Poniżej przeczytacie o zakresie aktualizacji jakim był dotknięty system BF5.0, a więc zaczynamy... Po pierwsze baza danych. Aktualizecję rozpocząłem od zmian modelu bazy danych. Nie były one co prawda zbyt duże (updaty dotyczyły raczej kwestii nazewnictwa, pojedynczych danych i ich typów). Wersja piąta systemu korzysta z tabel: widget (zawiera ona rekordy, które na bieżąco są dodawane i usuwane przez użytkownika, a także często ulegają modyfikacjom, np. aktualności na stronie internetowej, jakieś ważne wydarzenia, itd.), setup (to wszelkie ustawienia serwisu internetowego, tj. tytuł, opis i słowa kluczowe zdefiniowane dla strony internetowej, a także ikona favicon), gallery (baza wszystkich zdjęć podłączonych do stron portalu - w bazie przechowywana jest tylko ścieżka, natomiast fizyczny plik znajduje się na serwerze FTP), file (baza wszelkiej maści plików: PDF, JPG, PNG, DOC, przechowywanie zaprojektowane jest tak samo jak w przypadku plików do galerii zdjęć), popup (treść okienek pop-up pojawiających się w momencie wejścia na daną stronę), site (bardzo ważna tabela w bazie - znajdują się w niej nazwy wszystkich stron i podstron zaimplementowanych na strone internetowej), block (stałe bloki zdefiniowane w layout'cie serwisu WWW, takie jak informacja o cookies), slider (baza zdjęć podczepionych w sliderach, czyli ruchomych banerach - przeważnie zawiera ona obrazy do głównego slidera w serwisie (banner główny) - zasada magazynowania zasobów podobna jak w przypadku zdjęć i plików), type_slider (typy bannerów na stronie, np. banner główny, banner z przewijającymi się aktualnościami, itd.), type_widget (typy widgetów na WWW, np. wyizolowanie rekordów dotyczących newsów i wydarzeń sportowych - to i to dynamicznie modyfikowane), circle (okręgi wyliczeniowe, np. "ilość wypitych kaw", "liczba zadowolonych użytkowników"), log (rejestracja wszelkich działań administratora wykrytych w systemie BF5.0).

Kod źródłowy

Struktura kodu źródłowego. Tu zmieniło się dużo. Odseparowałem jeszcze bardziej od siebie poszczególne moduły systemu. Jednakże tworzą one logicznie cały czas ten sam zbiór co w wersji 3.5. Tylko teraz wszystko lżej, schludniej, spójniej, optymalniej i wydajniej. Przykładowo, aby wprowadzić dodatkowy język do systemu wystarczy teraz zdefiniować plik z tłumaczeniami dla danego języka i wgrać do odpowiedniego folderu. System wykryje nową definicję języka i kiedy trzeba automatycznie wszystko wczyta i umieści w odpowiednie sekcje. Wystarczy jeden nowy plik, nie trzeba szukać w systemie poszczególnych fraz. Ktoś powie to tylko język, to proste, ale na tej zasadzie działają pliki konfiguracyjne, klasy odpowiedzialne za pracę użytkownika z systemem danych, klasy obsługujące formularze, itd. Totalna izolacja i hermetyzacja. Każda sekcja ma swoje miejsce, żadna sobie na wzajem nie przeszkadza - komunikacja między nimi odbywa się tylko na płaszczyźnie przygotowanych specjalnie interfejsów. Czysto i schludnie. A co z kodem źródłowym i jego semantyką? A no źródło odświeżyłem najmocniej, skrypt zyskał na jakości, stare metody, czy funkcje (w elementach proceduralnych) zastąpiłem bardziej zoptymalizowanymi już tylko metodami zdefiniowanymi w klasach. Dodatkowo zastosowałem dynamiczne generowanie arkuszy stylów CSS, czyli LESS i wprowadziłem obowiązkowy RWD (po stronie klienta). Przetwarzanie i rendering przez przeglądarki zyskał mnóstwo na wydajności. Silnik systemu stał się już w pełni obiektowy (tak na marginesie to uważam, że w tej kwestii PHP-OOP naprawde zaczęło się do tego nadawać, brakuje mi jedynie algorytmów współbierznych i dziedziczenia po wielu klasach, ale jest i tak dobrze). Wracając do nowego obiektowego BF5.0 to teraz przedstawię jak ją (tę obiektowość) wykorzystałem, czyli czas na kilka świeżych jak bułki funkcjonalności. Ich też przybyło w stosunku do wersji 3.5 systemu.

Dokumentacja i DEMO

Wprowadziłem m.in. szyforowanie danych krytycznych (np. id usuwanego, modyfikowanego rekordu) wysyłanych POSTEM za pośrednictwem formularzy, tworzenie ścieżki URL na podstawie tytułu strony wprowadzonego przez administrotora, generowanie podczas renderingu strony ciał formularzy na podstawie obiektów klasy FORM.CLASS (wygoda podczas projektowania strony internetowej).
To pokrótce tyle. Resztę ciekawostek znajdziecie w dokumentacji systemu. Dokumentacja CMS/Framework BF5.0 znajduje się pod adresem: dokumentacja BF5.0.
Wersja demo: Demo BF5.0.
Panel Administratora: Panel BF5.0 (admin, 1234).

2018 - Internet.Media - Damian Krawiec, Zielona Góra, Lubuskie
m@internet.media.pl