Możliwości wyboru szablonu w serwisie blogowym
2007-08-06 17:03 | 0 Comments | django
Od prawie miesiąca jestem zaangażowany w przebudowę systemu blogowego, który napisałem kilka lat temu (e-blogi.pl). Pracować nad nim będę do początku października (W październiku zacznę pisać pracę dyplomową, więc nie będę miał czasu na tworzenie portalu).
Obecny system ma dosyć ograniczoną funkcjonalność. Możliwość pisania notek, komentowania ich, księga gości, katalog blogów... W tej chwili chciałbym się skupić na tworzeniu i obsłudze szablonu. Stary system szablonów był oparty o tagi, tak jak serwis blog.pl, bądź blogi.pl. Chce to zmienić...
W chwili obecnej zastanawiam się jakie możliwości edycji/dostosowania szablonu blogowego pozostawić użytkownikom. Chce, aby szablony miały profesjonalny wygląd, jak i funkcjonalność. Dobrze by było gdyby użytkownik, który nie miał styczności z html'em mógł wybrać sobie szablon dla siebie, oraz chodź w niewielkim stopniu dostosować go...
Widgety
Przejrzałem właśnie funkcjonalność wordpress. Mamy możliwość ułożenia widgetów na własnej stronie - ciekawa funkcjonalność - daje możliwość dostosowania wyglądu, a tego właśnie chcemy. Widgetów może być wiele zdefiniowanych w systemie.
- Kalendarz z notkami
- Lista linków
- Wcześniej zredagowany text
- RSS
- Reklamy google (?)
- ...
Możliwości na dobrą sprawę są wtedy nieograniczone. Tworząc nowe szablony, trzeba by było tworzyć plik konfiguracyjny. Z takiego pliku system mógłby wywnioskować ile kolumn bądź contenerów widgetów ma szablon.
Edytor
Chce w następnej fazie działania serwisu oddać użytkownikom aplikacje służącą do edycji szablonów, tak aby mogli tworzyć własne szablony, kategoryzować je, konfigurować. Do czego zmierzam, czy w takim wypadku udostępnić znów mechanizm oparty o tagi {archiwum}, {blog}, {...}, czego wolałbym uniknąć, bo ogranicza to w pewnym stopniu funkcjonalność szablonów i liczbę ich wariacji.
W takim razie musiałbym dać możliwość edycji źródeł szablonów z django. Pytanie czy jest to bezpieczne? To jest tak, jakby dać możliwość edycji szablonów smarty, można dobrać się kodu aplikacji i korzystając z API, można po prostu wyciągnąć wszystkie informacje z np: Bazy.
Inną opcją jest danie możliwości wstawienia tych tagów {...}, które zostaną skonwertowane na odpowiednie kody szablonów django w procesie parsowania szablonu użytkownika.
Następnym problemem jest normalizowanie wyglądu widgetów. Można zdefiniować dla każdego widgetu style, które można będzie nadpisać, umożliwiając tym samym dostosowanie widgetów do szablonu strony.