Pierwsza stabilna wersja uBlog

Jakiś czas temu zacząłem prace nad prostym systemem zarządzania blogiem. Założenia były proste: stworzyć alternatywę dla Wordpressów i innych „prostych” systemów, które z prostotą już od dawna nie mają nic wspólnego.

Może niektórzy uznają, że przesadzam, ale moja niechęć do Wordpressa nie bierze się znikąd. Miałem wielokrotnie okazję, by używać tego systemu i za każdym razem mój próg WTF/min. był przekroczony. Dokumentacja dokumentacją, społeczność społecznością, ale jeśli nic nie da się wykoncypować na własną rękę, to jest problem. A napisanie prostej skórki dla jednego klienta wiązało się z ośmiogodzinnym maratonem złorzeczeń i przekleństw.

Nie mam potrzeby zbyt często stawiać takich prostych, blogowych stronek, ale od czasu do czasu konieczność się zdarza. Korzystanie z uCMS czasem jest nieuzasadnione, bo zamiast usiąść, machnąć skórkę i oddać stronkę w użytkowanie, muszę kilka dni ślęczeć i oprogramowywać masę rzeczy (uCMS nie jest systemem typu „plug & play”, trzeba się trochę nagimnastykować zanim coś się z tego wykluje). Potrzebowałem alternatywy — i właśnie wydałem jej pierwszą stabilną wersję.

Zacznę może od tego, co umożliwia uBlog.

Podstawowe założenie jest takie, że uBlog się instaluje i od razu wszystko „bangla” (nie wiem, skąd to słowo, ale znajomy dizajner kiedyś użył w rozmowie ze mną i wydało mi się przesłitaśne). Wystarczy się zalogować i od razu dodawać wpisy i strony, tagować treść, wrzucać załączniki itd. Nie testowałem jeszcze uBlog na żywym organizmie, ale w styczniu mam zlecenie na pierwszą stronkę z niego korzystającą, więc zobaczymy, na ile zda egzamin.

Druga sprawa to tworzenie skórek. Kiedyś stawiałem bloga dla pewnego kumpla. Gość jest frontendowcem i jego znajomość PHP jest… bez komentarza :). Kiedy dałem mu rzucić okiem na CMS siedzący pod maską niniejszego bloga, okazało się, że typowe dla uMVC wyświetlanie widoków (coś w stylu Zend Frameworka, ale każdy widok jest kompletnym obiektem, a nie tylko dynamicznie ładowanym skryptem) było dla niego przeszkodą, a nie ułatwieniem. Nie rozumiał, na jakiej zasadzie to wszystko działało, nie zna uMVC ani nawet gołego PHP. W specjalnie skleconej dla niego wersji użyłem więc uTemplate i okazało się, że robota ruszyła z kopyta. Po prostu uTemplate było bardziej lekkostrawne dla dizajnera. uBlog również korzysta z uTemplate, więc pisanie skórek nie powinno nastręczać większych problemów. Dodatkowo poszedłem tropem skórek Drupala i w komentarzu na początku każdego szablonu umieściłem w miarę kompletną informację na temat dostępnych zmiennych i skryptów widoków, które można sobie w szablonie osadzić. Minimalna orientacja w uTemplate i być może również helperach uMVC jest bardzo przydatna, ale łatwo je podchwycić analizując domyślną skórkę, więc przypuszczam, że nawet programista nieznający uTemplate ani uMVC (czyli większość) da radę to ogarnąć.

Trzecia sprawa: konfiguracja. O ile uCMS ma pojedynczą skórkę, o tyle uBlog korzysta z dynamicznego systemu i skórkę można zmienić jednym kliknięciem w panelu administratora. Podobnie jest z językiem strony i paroma innymi rzeczami (głównie duperelami typu automatyczne doklejanie skryptu Google Analytics, czy odnośnika do profilu Google+.

A co pod maską?

Cóż, silnik zapewnia uMVC, a cała reszta jest zbudowana na bazie bloga, który właśnie czytasz. Na niniejszej stronie CMS nie wymaga żadnych wypasów — ot, jest takim customowym potworkiem, który spełnia moje i tylko moje wymagania (zero wyglądu, UI w zasadzie tekstowe, żadnych powiadomień np. o błędzie walidacji formularza, brak przeglądarki plików w edytorze graficznym, wszystko wyświetlone w stylu tabelki mapującej bazę danych niemal jeden do jednego.

uBlog, oprócz kilku dodatkowych funkcji (np. ograniczone zarządzanie użytkownikami, czy zarządzanie menu), ma przede wszystkim taki interfejs użytkownika, że da się go bez specjalnego wstydu pokazać ludziom. Jasne, nie szata zdobi człowieka, nie ikonki zdobią interfejs użytkownika — ale na ładniejszym się lepiej pracuje.

Poza uMVC (a więc PHP 5.4) wśród wymagań w zasadzie nie ma nic, czego by nie miał praktycznie każdy linuksowy serwer: MySQL i rozszerzenie PDO, SimpleXML, ewentualnie rozszerzenie PECL intl — ale to ostatnie jest opcjonalne i jak nie jest dostępne, to co najwyżej nazwy języków zamiast ładniutkich „angielski (Wielka Brytania)” będzie „en_GB”, czyli od biedy nic straconego.

Jakby ktoś był zainteresowany, to na razie uBlog można pobrać albo z repozytorium (Mercurial), albo z załączonego do tego wpisu pliku1. Dokumentacji nie ma, choć nie wiem, czy jakaś rozbudowana dokumentacja w ogóle będzie potrzebna. Za jakiś czas postaram się spreparować dedykowaną stronkę z jakąś sensowną instrukcją obsługi i pisania skórek — tyle powinno wystarczyć.


  1. uBlog umarł śmiercią naturalną, repozytorium już nie istnieje i nie ma sensu tego dalej puszczać w świat. ↩︎


Komentarze

Andrzej

2012-12-16, 08:12

Hehe. Z tego samego powodu napisałem własny CMS. Musiałem kiedyś postawić stronę dla jakiejś galerii handlowej, która uparła się właśnie na WP (chociaż to nie był blog). Po kilku tygodniach złorzeczenia (delikatnie mówiąc) postanowiłem napisać coś własnego, chociaż z obsługi podobnego do WP, ale uproszczonego (zarządzanie danymi w WP to mordęga), szybszego, przenośnego i... W zasadzie tylko UX panelu admina mi się podobało w WP :)
Po miesiącu miałem już pierwszą wersję CMSa, nie tylko do blogów (chociaż spokojnie je obsługuje bez żadnych dodatków) ale też do serwisów firmowych. Tylko mój już nie wygląda tak ładnie jak Twój - minimum ikonek, proste buttony. Poszedłem w totalny minimalizm :)

Dominik Marczuk

2012-12-17, 01:04

Chwała niebiosom, nie tylko ja narzekam na WP! Już myślałem, że jestem jakiś dziwny :)

No ja też poszedłem w minimalizm na moich prywatnych blogach. Ale do ludzi to wolę startować z czymś względnie ładnym. Wiesz, nauczony doświadczeniem. Bo większość jednak ocenia pracę programisty po czymś, co de facto wcale nie musiało tak naprawdę być jego pracą: po wyglądzie. W tym sensie mój dizajner od "banglania" ma lepiej, bo on sprzedaje swoim klientom coś namacalnego: layout, logo, wizytówkę (tu nawet na papierze), kalendarz, plakat. Mojej pracy de facto klient nie widzi - więc wolę dać mu chociaż minimum świecidełek w postaci jakiegoś w miarę strawnego panelu admina.


Napisz komentarz


Szukaj wpisów


Chmura tagów