Software Development

OpenCms oczami developera – część 1

Grudzień 9, 2015 0
Podziel się:

Zapewne każdy z Was miał w większym lub mniejszym stopniu do czynienia z jakąś odmianą systemu zarządzania treścią, czyli tak zwanego CMS (ang. Content Management System). Większość spotkała się z nazwami WordPress, Drupal, Joomla. Ja chciałbym Wam przybliżyć, być może mniej znany, jednak posiadający równie duże możliwości system OpenCms.

GARŚĆ FAKTÓW

OpenCms jest oprogramowaniem typu Open Source, działającym w oparciu o licencję GNU Lesser General Public License (LGPL) w wersji 2.1. W związku z tym jest on całkowicie wolny od kosztów licencyjnych, zarówno w przypadku użytkowania do celów prywatnych jak i komercyjnych oraz w przypadku modyfikowania kodu źródłowego. Oparty jest o Javę (JEE) oraz XML i można go stosować na dowolnej platformie sprzętowej oraz systemie operacyjnym. Dzięki temu sprawdzi się zarówno w środowisku wyłącznie Open Source’owym, wykorzystującym system operacyjny Linux, bazę danych MySQL, serwer WWW Apache i kontener aplikacji webowych Apache Tomcat, jak i w środowisku typowo komercyjnym, opartym o technologie takie jak: Windows NT, IIS, BEA Weblogic, Oracle. Pierwsza wersja systemu trafiła na rynek w roku 1999 i bazowała na MhtCms. Od tego czasu system jest ciągle rozwijany. Aktualna wersja to 9.5.2, jednak trwają już zaawansowane prace nad wersją 10, która kilku miesięcy jest w fazie testów alfa.

JAK TO DZIAŁA

Podobnie jak większość systemów tego typu, również OpenCms przechowuje zawartość stron i dane w wirtualnym systemie plików (ang. Virtual File System, VFS). System ten opiera się na bazie danych i jest jej częścią. W związku z tym wybór odpowiedniej bazy i jej konfiguracja ma kluczowe znaczenie z punktu widzenia wydajność działania systemu i szybkość ładowania zawartości. Należy przy tym zaznaczyć, że OpenCms oferuje wsparcie dla szerokiego wachlarza baz danych: MySQL, PostgreSQL, HSQLDB, Oracle, MSSQL oraz DB2. Przy czym dla zwiększenia wydajności OpenCms daje możliwość eksportowania zawartości z VFS do RFS (ang. Real File System) i jej synchronizowanie. Z punktu widzenia wydajności działania ważne jest również, iż system oferuje zaawansowane funkcje cache’owania zawartości.

Zawartość w OpenCms jest definiowana przy użyciu plików typu XML schema (XSD) i przechowywana w formie plików XML w wirtualnym systemie plików (bazie danych). W dalszej kolejności system template’owy bazujący na plikach JavaServer Pages tworzy strony internetowe w oparciu o pliki XML. Przy czym OpenCms umożliwia tworzenie zarówno zawartości nieuporządkowanej poprzez edytory WYSYWIG jak i uporządkowanej (ang. structured content – np. news’y, event’y, newsfeed’y itp.), możliwej do wykorzystania na różnych stronach i w różnych elementach.

Z PUNKTU WIDZENIA UŻYTKOWNIKA

Interfejs użytkownika OpenCms działa przy pomocy przeglądarki i w zależności od wersji systemu oferuje możliwość edycji zawartości na danej stronie (tzw. inline editing) i/lub poprzez dedykowany edytor bazujący na formularzach. Elementy zawartości, takie jak obrazy, elementy html czy pliki tekstowe przechowywane są we wbudowanych galeriach określonego typu, co ułatwia ich wykorzystanie na różnych stronach. Z kolei użytkownicy o uprawnieniach administratora (tzw. „power users”) mają dostęp do dodatkowego interfejsu administracyjnego, umożliwiającego między innymi zarządzanie uprawnieniami i dostępami użytkowników, zarządzanie projektami i powiązanymi z nimi stronami, obsługę newsletterów, tworzenie kopii bezpieczeństwa, zarządzanie indeksami wyszukiwania, tworzenie harmonogramów, import dodatkowych modułów i wiele innych funkcji. Użytkownicy z uprawnieniami edycji zawartości (tzw. „content menager’s”) mają również dostęp do sekcji administracyjnej, lecz w znacznie okrojonej formie, m.in. zarządzania galerią zdjęć czy sekcją download, tworzeniem linków poglądowych, importowaniem i eksportowaniem zawartości stron.

W celu usprawnienia działania edytor zawartości OpenCms począwszy od wersji 8 został w całości napisany przy pomocy HTML5. Edytor generowany jest automatycznie na podstawie plików XSD w zależności od konfiguracji danej sekcji. W przypadku edycji dokumentu bezpośrednio w widoku strony system umożliwia zarządzanie elementami i ich układem dzięki mechanizmowi „drag and drop”. Dodatkowo z tego poziomu możliwy jest szybki dostęp do podstawowych czynności administracyjnych, jak manipulowanie mapą strony, tworzenie nowych elementów zawartości czy jej publikowanie. Przy czym należy również zauważyć, że poza wbudowanym edytorem istnieje również opcja inkludowania zewnętrznego edytora, według własnego uznania.

WYBRANE MOŻLIWOŚCI

OpenCms jest dostarczany jest wraz z dużym zestawem zaawansowanych widżetów, które mogą być łatwo wykorzystane w edytorze zawartości bez konieczności programowania (począwszy od wersji 9.5 system umożliwia również tworzenie template’ów i layout’ów bez konieczności kodowania). Zwłaszcza galeria oferuje szeroki zestaw funkcji do zaawansowanej obróbki zdjęć, jak np. kadrowanie i zmiana rozmiaru obrazu. OpenCms posiada również wbudowany mechanizm zarządzania modułami, który umożliwia wygodne dostosowywanie funkcji przez import gotowych rozwiązań, tworzenie własnych lub ich export i przygotowanie do wdrożenia na innych maszynach. Moduły te mogą dostarczać szablony do wykorzystania na stronach www, nowe typy strukturyzowanych elementów zawartości czy dodatkowe rozwiązania frontendowe, jak np. tworzenie albumów fotograficznych, interaktywne formularze online i wiele innych.

System zapewnia zintegrowane środowisko przepływu pracy z trybem testowym Offline i trybem live – Online. Wszelkie zmiany zawartości dokonywane są w trybie Offline, dostępnym użytkownikom z uprawnieniami edycji. Tryb ten pozwala na modyfikowanie zawartości i jej weryfikowanie oraz podgląd bez wpływu na docelową treść danej strony. Dopiero po zatwierdzeniu zmian, całość jest publikowana przez osobę z odpowiednimi uprawnieniami do trybu Online, dostępnego dla wszystkich użytkowników.

OpenCms umożliwia oczywiście tworzenie witryn w wielu językach. W tym celu tworzy się w strukturze folderów danej strony jeden folder najwyższego poziomu dla każdego języka. Na każdym z tych folderów ustawia się właściwości lokalizacji i języka. W ten oto prosty sposób wszystkie podfoldery i podrzędne strony będą dziedziczyć ustawienia regionalne ich folderu nadrzędnego. Przy czym w przypadku, gdy strona będzie dostępna w kilku lokalizacjach rozpoczyna się od utworzenia strony w jednym z ustawień lokalnych folderów, po czym wystarczy stworzyć powiązanie do tej strony w folderach innych lokalizacji, dla których chce się mieć dostępną stronę.

Wraz w wprowadzeniem OpenCms 7 duże zmiany nastąpiły w kwestii zarządzania wewnętrznymi linkami. Silnik relacji zawartości systemu nieustannie czuwa by struktura linków i powiązań między stronami i plikami lokalnymi pozostała nienaruszona w przypadku modyfikacji nazwy powiązanych elementów, ich przeniesienia czy próby usunięcia. Dotyczy to zarówno poszczególnych plików jak i całych, złożonych struktur modyfikowanych elementów w wirtualnym systemie plików OpenCms. Dzięki temu podczas modyfikowania zasobów, linki które mogą ulec uszkodzeniu zostaną wykryte, odpowiednio zakomunikowane i wyświetlone. Ma to miejsce zarówno gdy zmiany wpływają na pliki inkludowane w danym elemencie jak i gdy dany, modyfikowany plik jest inkludowany w innym, nadrzędnym.

Więcej informacji o systemie znajdziecie na stronie domowej projektu oraz na stronie OpenCms wiki.

W kolejnej części przedstawię OpenCms z punktu widzenia developera pracującego nad rozwojem portali intranetowych dla firmy Bayer AG.

Oceń ten post
Tagi: ,
Mariusz Skawiński
Autor: Mariusz Skawiński
Absolwent programu kształcenia kadr informatycznych CODE 2.0, freelancer. Pasjonat nowych technologii i programowania, a także lotnictwa, motoryzacji i podróży.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz