- Otwartość kodu (licencja GNU/GPL lub podobna własna)
- Obiektowość (> php 5)
- Integracja z bazą danych dzięki PDO (> php 5.1)
- Lekki silnik będący jedynie interfejsem do obsługi modułów
- Przerzucenie maksymalnej ilości kodu do modułów
- Obsługa wielojęzyczności poprzez moduł gettextowy (pliki *.mo)
- Część prezentacyjna: system szablonów (najprawdopodobniej Smarty)
A teraz zasada działania modułów na przykładzie modułu "aktualności":
- Moduł dostarcza 2 widoki: "lista newsów" oraz "news", a także model pobierający z bazy dane
- Użytkownik tworzy nową gałąź serwisu (np. ROOT/aktualnosci) nadając jej widok "lista newsów"
- Widok "lista newsów" pozwala na dodawanie sobie podstron (np. ROOT/aktualnosci/news1), które mogą korzystać jedynie z widoku "news"
- Każdy widok jest powiązany z plikiem konkretnym plikiem szablonu
Co o tym myślicie?
Nie mam jeszcze zielonego pojęcia jak rozwiązać w taki projekcie obsługę wielu jezyków - tak, żeby można było tłumaczyć bezpośrednio w panelu biorąc pod uwagę to, że niektóre wyrażenia do przetłumaczenia będą w bazie danych, a niektóre już w szablonie.