Dokumentacja techniczna CMSphere EASY na podstawie wdrożenia dla Gminy Wieliszew Michał Rygielski, 24.02.2012
Spis treści 1. Wstęp...3 2. Opis panelu administracyjnego...3 2.1. Struktura oraz opis plików systemowych...3 2.2. Moduły...5 3. Opis strony frontendowej...6 3.1. Opis najważniejszych zmiennych...6 3.2. Opis i struktura plików...7
1. Wstęp. System CMSphere EASY zbudowany jest na zasadzie programowania strukturalnego. Nie wykorzystuje modelu MVC (Model-View-Controller). Cało kod (po za tym, który jest przygotowany) programista musi napisać samemu. CMSphere EASY nie jest system podobnym do np. Drupala, gdzie posiadamy jeden panel Administracyjny, w którym większość można wyklikać co powoduje tworzenie się strony frontendu. W systemie EASY cały CMS to tak naprawdę backend czyli tylko zaplecze. Do budowy widoku frontendu stworzone są skryptu umożliwiające komunikację z bazą danych serwisu. System umożliwia w standardzie tworzenie nieograniczoną ilość wersji językowych oraz tzw. multiportali (czyli serwisów obsługiwanych w ramach jednego panelu administracyjnego). CMSphere EASY nie posiada komunikacji opartej na znacznikach unicode, dlatego też przy dodawaniu nowych wersji językowych programista musi odpowiednio oprogramować poszczególne teksty. Wszelkie skrypty po stronie frontendu służące do obsługi poszczególnych modułów (jeśli nie są napisane) należy napisać samemu. 2. Opis panelu administracyjnego. 2.1. Struktura oraz opis plików systemowych _class / functions.php Plik zawierający różnego rodzaju funkcje pomocnicze np. do skalowania plików obrazu, tworzenia przyjaznych linków, przycinania tekstu oraz stronicowania. _javascript / Folder zawierający skrypty JavaScript używane we wszystkich modułach systemu CMS. _system / initlogin.php Skrypt odpowiedzialny za sprawdzanie czy użytkownik jest zalogowany do panelu administracyjnego. Sprawdzanie odbywa się na zasadzie odpytywania zmiennej $zalogowany, która posiadając parametr false nie wpuści użytkownika do systemu. W pliku zawarte są także wszystkie informacje na temat użytkownika. Gromadzone są w tzw. zmiennych podręcznych. Do takich zmiennych należą np. $LOGINID, $MAP_KEY oraz wszystkie zmienne pochodne $USER_ACCESS, które posiadają informację na temat uprawnień nadanych użytkownikowi (1 true, 0 false)
queryvars_inc.php Skrypt odpowiedzialny za łączenie wszystkich tablic zmiennych w jedną spójną. Dokładniej chodzi o to, że tablice $_SESSION, $_COOKIE, $_GET oraz $_POST łączone są w jedną, jednolitą tablicę, dzięki czemu wywołując zmienną $_GET['test'] można to zrobić za pomocą $test ob_start.inc.php, ob_stop.inc.php Skrypty służące do tzw. buforowania strony poprzez kompresję metodą GZIP w celu szybszego wywoływania skryptów przez Apache. header_ads.php, bottom_ads.php Pliki zawierające szablony dodatkowe umiejscowione w nagłówku i stopce strony. W pliki header znajduje się dodatkowo lista rozwijana dostępnych multiportali oraz wersji językowych. _template / Folder zawierający wszystkie style oraz obrazy zawarte w szablonie systemu administracyjnego. ofc-library / Folder zawierający skrypty generujące wykresy w module statystyk... / cms_menu.php Plik zawierający menu CMS z podziałem na uprawnienia. W przypadku dodawania nowego modułu lub jego usunięcia należy zakomentować odpowiednią linię. _config.php Plik konfiguracyjny zawierający niektóre definicje zmiennych. Dokument zawiera także dane konfiguracyjne do bazy danych. index.php Główny plik szablonu, w którym odpowiednie warunki odpowiedzialne są za wyświetlanie poszczególnych sekcji contentu. _func.php Dodatkowe funkcje pomocnicze..htaccess Plik ustawień serwerowych. W panelu administracyjnym nie wymagane są żadne modyfikacje.
2.2. Moduły Pliki modułów umieszczone są w głównym folderze systemu. users.php Moduł odpowiedzialny za wyświetlanie użytkowników (administratorów) systemu CMS, edytowanie uprawnień, dodawanie nowych oraz kasowanie niepotrzebnych użytkowników banery.php, baner_logo.php, baner_right.php, baner_promo.php Moduły służące do zarządzania banerami, każdy z plików może być wykorzystany do oddzielnych funkcji serwisu. W każdym pliku powinna znajdować się ukryta opcja KONFIGURACJA, w której można ustawić dodatkowe opcje dla danego baneru, dzięki czemu można ustawić np. wyświetlanie od daty do daty lub wymusić np. pokaz slajdów administracja.php Moduły służące do zarządzania serwisem. Znajdują się w nim opcje służące m.in. do zarządzania multiportalami, wersjami językowimi, treścią strony, kluczem do map Google. Od programisty oraz projektu zależy jakie opcje mają być dostępne dla przyszłych administratorów a co należy ukryć. aktualnosci.php, aktualnosci_tresc.php Moduł służący do dodawania nowych zajawek (aktualnosci.php) oraz do późniejszego rozbudowywania dalszego contentu. formularze.php, formularze_type.php Moduł służący do tworzenia tzw. dynamicznych formularzy. Dzięki temu narzędziu użytkownik jest w stanie samodzielnie wyklikać formularz, ankietę lub innego rodzaju treści które go interesują. forms.php, html_export.php Moduł służy do wyświetlania wyników poszczególnych formularzy. Aby go używać w sposób prawidłowy należy dodać nową pozycję na liście, przypisać jej konkretny formularz oraz ustawić docelowego maila. Dodatkowo moduł pozwala za pomocą skryptu html_export.php wyexportować wyniki pobrane z bazy danych do szablonu HTML kalendarium.php Moduł służy do tworzenia i zarządzania wpisami różnego rodzaju zdarzeń. Poszczególne wpisy można bez problemu wyświetlać następnie w skrypcie kalendarza. oferty_inwestycyjne.php, zamowienia_publiczne.php Moduły działające na podobnej zasadzie. Pozwalają na dodawanie nowych pozycji, uzupełnianie ich o treści, pliki, zdjęcia oraz pozycję na mapie.
struktura_strony.php, akapit_edycja.php Moduł pozwalający na zarządzanie listą struktury menu. Na zasadzie rekurencji można tworzyć zagłębienia teoretycznie w nieskończoność (ograniczenie znajduje się w pliku konfiguracyjnym). Z listy struktury można bezpośrednio przejść do edycji treści poszczególnych menu. Służy do tego skrypt akapit_edycja.php, za pomocą którego można w prosty sposób tworzyć treści podzielone na bloki (w każdym bloku znajdują się pola temat, nagłówek oraz treść). Do każdych bloków można dodatkowo dodawać pliki oraz zdjęcia. Można takie operacje wykonywać także z poziomu edytora WYSIWYG. statystyki.php Moduł służący do wyświetlania statystyk odwiedzalności jak i wyświetleń serwisu. galerie.php Moduł służący do tworzenia galerii zdjęciowych tylko z jednym poziomem (bez kategorii i podkategorii) video.php Moduł służący do tworzenia galerii filmowych YouTube tylko z jednym poziomem (bez kategorii i podkategorii). Obrazy filmów zaciągane są automatycznie do folderu uploadowanych plików SYSTEMFILE w głównym folderze polecane_strony.php Moduł służący do tworzenia listy np. polecanych stron. naglowek.php, stopka.php Moduł służący do edycji nagłówka lub stopki poprzez dodawanie treści lub zdjęcia. 3. Opis strony frontendowej. 3.1. Opis najważniejszych zmiennych. $stronaid identyfikator strony pobierany z tabeli `struktura_strony`, na podstawie tej zmiennej należy wyświetlać poszczególne zawartości menu $jezyk język, który używany jest po stronie WWW (automatycznie brany jest ten, który ustawiony został w multiportalu pierwszy w kolejności), poprzez tą zmienną należy komunikować się z innymi skryptami $SITE_STAT informacja o tym czy statystyki mają być włączone $SITE_STATADV informacja o tym czy statystyki zaawansowane (pobierające IP oraz wszystkie wejścia) mają być włączone $SITE_MOURNING czy włączony ma być tryb żałoby
$SITE_MAP_KEY zmienna zawierająca klucz map Google $SITE_TITLE pobiera tytuł strony, na której aktualnie się znajdujemy $SITE_DESC pobiera opis strony tzw. description $SITE_KEYS pobiera słowa kluczowe strony $poziomid pobiera poziom zagłębienia danej strony $nameid pobiera nazwę wybranej strony $urlid zawiera wartość (jeśli występuje) linku URL, który jeśli występuje można zastąpić w linku danego menu $zdjid zawiera odnośnik do pliku zdjęcia przypisanego do menu $stronamatka zawiera wartość głównej strony do której należy dana strona, w przypadku jeśli strona jest główna wartość będzie równa 0 $naleznoscid sprawdza czy dana strona należy do jakiejś innej strony menu czy może jest główna (równa 0) 3.2. Opis i struktura plików. class / _func.php Plik zawierający różnego rodzaju funkcje pomocnicze np. do skalowania plików obrazu, tworzenia przyjaznych linków, przycinania tekstu oraz stronicowania. system / _aktualnosci.php Gotowy skrypt pozwalający na wyświetlanie listy aktualności oraz poszczególnych wpisów _archiwum.php Gotowy skrypt pozwalający na wyświetlanie listy archiwalnych wpisów aktualności (archiwalne znaczą tyle, że jest to cała lista wszystkich aktualności) _formularz.php Gotowy skrypt pozwalający na wygenerowanie formularza utworzonego w module FORMULARZ _galerie.php Gotowy skrypt pozwalający na wyświetlanie listy galerii oraz poszczególnej jednej galerii _imieniny.php Gotowy skrypt pozwalający na wyświetlenie aktualnych imienin _kalendarium_pokaz.php Gotowy skrypt pozwalający na wyświetlenie wpisu w kalendarium wydarzeń
_mapa_strony.php Gotowy skrypt pozwalający wyświetlenie listy wszystkich elementów w strukturze strony. _oferty_inwestycyjne.php Gotowy skrypt pozwalający na wyświetlanie listy ofert inwestycyjnych oraz jednej poszczególnej inwestycji _video.php Gotowy skrypt pozwalający na wyświetlanie listy filmów video oraz jednego poszczególnego filmu _wyszukiwarka.php Gotowy skrypt pozwalający na wyświetlanie wyników wyszukiwania (zmienna kluczowa $search) _zamowienia_publiczne.php Gotowy skrypt pozwalający na wyświetlanie listy zamówień publicznych. _akapit_wyswietl.php Gotowy skrypt pozwalający na wyświetlanie contentu treści poszczególnych menu (kluczowa zmienna $stronaid) base.inc.php Plik konfiguracyjny zawierający ustawienia bazy danych.