Panel Administratora odsłona II
Prace nad CMS o nieustalonej jeszcze nazwie trwają nadal. Jak można było przeczytać w ostatniej notce przeszedłem na drugą stronę barykady względem części ekipy z eXtreme. Dla tych, którzy są nie na czasie - poprzedni wpis, a teraz już relacja z postępów prac.
Zasadniczo od ostatniego razu do przodu posunęły się takie oto główne części:
- Cache, w tym cache selektywny pozwalający na to, aby dynamiczne elementy strony nie zostawały "zamrożone" oraz parę gadżetów pomagających odciążyć serwer.
- Integracja ze Smarty3, które choć jeszcze jest na etapie bet (Beta 8 to obecna wersja) zaczyna pracować coraz bardziej prawidłowo.
- Ograniczenie i optymalizacja zapytań MySQL oraz poprawki kodu HTML (te w głównej mierze zostaną wprowadzone na etapie przepisywania szablonów).
- Przepisanie plików lokalizacyjnych na bardziej przyjazne użytkownikowi CMS (głównie osobom, które będą w nim grzebać).
- Dalsze prace przy dopieszczaniu PA.
Teraz postaram się opisać na czym polega nowa, mam nadzieję ciekawa, forma budowania podstron w PA. Do tej pory stworzenie np. tworzenia, edycji newsów wymagało ponad 300 linii kodu. Obecnie potrzebne jest 1/3 z tego. Jeżeli zaś ograniczmy formatowanie kodu (czego nie polecam) to zyski są znacznie większe. Jednakże nie chodzi o to, aby licytować się objętością kodu. Miłym dodatkiem jest automatyczne generowanie formularza wraz z jego walidacją tak po stronie użytkownika (JavaScript) jak i po stronie serwera (PHP). Dzięki temu zostaje zwiększona kontrola nad wprowadzanymi danymi, a dla twórców wtyczek stworzenie podstrony PA, do zarządzania nią, będzie banalnie proste.
Mnie osobiście dodanie takowej zajmuje kilka do 10 min w zależności od wielkości wtyczki. Wiem, że nie zapomnę dopisać pola do zapytania w bazie bo jeżeli dodaje kolejne pole to automatycznie aktualizowane są wszystkie walidatory i zapytania. W związku z poprawkami lokalizacyjnymi (tzn. zamiana wartości numerycznych np. $locale['345'] na $locale['news_subject'] możliwym stało się dalsze uproszczenie tworzenia formularzy ponieważ o ile istnieje lokalizacja o takiej samej nazwie jak nazwa pola, a my nie podamy własnego opisu zostanie on automatycznie wybrany.
Do stworzenia listy rozwijalnej wystarczy podać zapytanie, z którego ma być utworzone (w naszym wypadku lista kategorii). Może to być również tablica. Tak samo w wypadku wyboru "radio". Do obrazów tworzone są automatycznie miniatury. Nie jest jeszcze całkiem gotowe wgrywanie plików bez przeładowywania strony, ale wszystko jest na dobrej drodze. Jest całe mnóstwo różnych bajerków i uproszczeń, ale wszystkie wylistuje i opiszę jak skończę całość. Oczywiście jako, że robię to od zera dostępna będzie do tego dokumentacja (z phpDocumentatora). Krótki kod poglądowy:
$form = new Form(DB_NEWS, array('lang' => $locale));
$form->addSeparator('news_required');
$form->addHidden('news_id', array(
'validate' => 'numeric'
));
$form->addHidden('news_datestamp', array(
'value' => time(),
'validate' => 'numeric'
));
$form->addTextbox('news_subject', array(
'validate' => array('required', 'length:5-200', 'list:alfa romeo;fiat panda', 'compare:!=Legia;>5;<=30')
));
$form->addSelect('news_cat', array(
'desc' => 'news_category',
'value' => dbquery("SELECT news_cat_id, news_cat_name FROM ".DB_NEWS_CATS." ORDER BY news_cat_name"),
'validate' => array('required', 'numeric')
));
$form->addTextarea('news_news', array(
'desc' => 'news_body',
'buttons' => true,
'colors' => true
));
$form->addSeparator('news_optional');
$form->addTextarea('news_extended', array(
'buttons' => true,
'colors' => true
));
$form->addDatetime('news_start');
$form->addDatetime('news_end', array(
'format' => 5, // dostępne są również inne formaty sam czas, sama data etc.
'value' => time()
));
$form->addSelect('news_visibility', array(
'value' => getusergroups()
));
$form->addCheckbox('news_draft', array(
'desc' => 'news_save_as_draft',
'value' => 1 // 1 i tak jest domyślną wartością, więc można pominąć, ale np. w PF jest w tym miejscu "yes"
));
$form->addCheckbox('news_sticky', array(
'checked' => true // czy ma być domyślnie zaznaczony (na screenach nie jest bo są wczytane informacje z istniejącego newsa)
));
$form->addCheckbox('news_breaks', array(
'checked' => true
));
$form->addCheckbox('news_allow_comments', array(
'checked' => true
));
$form->addCheckbox('news_allow_ratings', array(
'checked' => true
));
$form->addRadio('news_something', array(
'value' => array(
array('news_option1', 1),
array('news_option2', 2),
array('news_option3', 3),
array('news_option4', 4),
),
'validate' => 'required'
));
$form->addImage('news_image', array(
'value' => IMAGES_N,
'photo' => array(/* cała fura możliwości przycinanie, negatywy, zmiana rozmiaru, sepia, znak wodny */),
'thumb' => array()
));
$form->addSubmit('news_preview', array(
'desc' => '',
'value' => 'news_preview'
));
echo $form->create();
Oczywiście jest on nadmiarowy (jak np. walidatory dla tytułu, które są w tym miejscu nielogiczne) to tylko poglądowy przykład. Efektem jego wywołania jest ten oto skromy formularz:
Na czerwono zostało zaznaczone pole, które nie spełniało wymagań stawianych przez twórcę i należy je poprawić. Wysłanie formularza w tym momencie nie jest możliwe. Oczywiście każdą logiczną część wydzieloną separatorami można zwijać i rozwijać (klikając na belkę), możemy też uznać, że niektóre belki mają być domyślnie zwinięte.
W chwili obecnej "w ofercie" znajdują się następujące pola, które można wstawić do formularza:
- textbox - pole tekstowe,
- textarea - duże pole tekstowe,
- checkbox - pole zaznaczenia,
- radio - pole wyboru,
- select - lista rozwijalna,
- password - pole hasła,
- hidden - pole ukryte,
- file - wgrywanie plików, tak jednego jak i wielu, w tym również wgrywanie bez konieczności przeładowywania strony,
- image - wgrywanie obrazów wraz z ich modyfikacją (rozmiar, przycięcia, negatyw, etc.),
- separator - dzielenie formularza na logiczne fragmenty,
- datetime - możliwość wyboru daty i czasu,
- html - własny kod, któremu jednak nadal można zadać walidację, etc.
Dostępne walidatory to:
- compare - porównania: =, !=, >=, <=, >, <,
- length - długość: minimalna, maksymalna lub ich połączenie,
- list - czy przesłana wartość należy do pewnego zbioru,
- numeric - wartość liczbowa,
- regexp - test poprzez wyrażenie regularne.
- required - pole wymagane.
- unique - wartość niepowtarzalna.
Jeżeli ktoś z Was ma jeszcze inne pomysły na kontrolki, walidatory, które można dodać, a byłyby stosunkowo często wykorzystywane to proszę bardzo o propozycje - dorobi się. To samo tyczy się ogólnie samych formularzy. Wszelkie idee mile widziane, oczywiście na tym etapie dotyczące samych podstron PA.
Graficznie formularze są niedopracowane ponieważ po pierwsze jest to jeszcze czas zmian, po drugie grafik ze mnie żaden, a sam musiałem coś stworzyć.
Dla Waszej informacji prace przy tym CMS będą się posuwać coraz szybciej, ponieważ w kwietniu zaczynam seminarium dyplomowe i będzie trzeba zabierać się za pracę inżynierską (czyli to czym miało być EFV). Standardowo trzymajcie kciuki i rzucajcie pomysłami.
PS. Prawdopodobnie (po dzisiejszych zdarzeniach na forum EF związanych z zamykaniem mojego tematu) będzie mały problem z umieszczaniem informacji na EF.


Marzec 9th, 2010 - 21:49
Zadziwiasz mnie…
Marzec 9th, 2010 - 22:01
No zapowiada się ciekawiej niż się zapowiadało
Brawo! i powodzenia
Marzec 9th, 2010 - 22:15
Brawo
Bardzo podoba mi się opis z Twojej strony i będę trzymał kciuki za pomyślne ukończenie pracy nad projektem
Marzec 9th, 2010 - 22:48
Brawo!
Właśnie toporność tworzenia podstron/modułów (jak zwał tak zwał) do zarządzania była główną przyczyną porzucenia przeze mnie PF/EF na rzecz własnych rozwiązań.
W swoim systemie mam coś podobnego w OOP i uważam że to rozwiązanie sprawdza się jak najbardziej.
Raczej już nie wrócę (z różnych przyczyn) do ogólnodostępnych CMS, ale miło widzieć, gdy pojawia się coś dobrego od Polaka.
Marzec 10th, 2010 - 07:44
Super notka, miła słyszeć takie informacje.
Marzec 10th, 2010 - 12:31
Nie uszanowałeś mojej pracy, wiec prosiłbym Rafale o nie używanie ikonek, których jestem autorem.
Marzec 10th, 2010 - 12:40
Jak sam wcześniej napisałem wywalę je. Z nimi na pokładzie obawiam się, że mielibyście prawa do tego CMS, mojego domu, duszy i działki na Madagaskarze. Poprzednie rzeczy może bym Wam oddał, ale działka na Madagaskarze jest mi bardzo bliska.
PS. A propos szanowania mojej pracy ciekawe jak mają się prawa autorskie wszystkich moich pomocy, których Wam udzieliłem dla Waszych prywatnych zleceń… Zaś szanowanie mnie pokazałeś (i SebaZ pokazuje) swoje możliwości na EF.
Marzec 10th, 2010 - 13:22
Nie mnie oceniać. Mówiłeś tylko co zrobić bez bitu kodu.
Dziękuję.
Marzec 10th, 2010 - 13:24
Aha – zakresy szkoleń są nieopodatkowane. Niemniej możesz wystawić FV, to wrzucimy w koszta.
Marzec 10th, 2010 - 14:19
Bardzo ciekawie się zapowiada, a pytanie jakie się nasuwa to kiedy wyjdzie takie cudeńko i czy w ogóle będzie ogólnodostępne?
Marzec 10th, 2010 - 14:25
Pisałem to już w poprzedniej notce i w komentarzach do niej. Będzie ogólnodostępne, wyjdzie mam nadzieję dosyć szybko bo od kwietnia startuje mi seminarium dyplomowe i będzie trzeba zabrać się za pracę inżynierską.
Marzec 10th, 2010 - 22:18
Dobra robota !
A mam takie pytanie: zrobisz możliwość przejścia z EF 4.5 obecnie, nad którą pracuje EC (jak wyjdzie) czy to już będzie niezależne, Twój cms i koniec ?
Marzec 11th, 2010 - 11:29
Witam, metaxy jeżeli chodzi o ikonki, to z chęcią mogę je wykonać.
Marzec 12th, 2010 - 04:51
Z tego co się domyślam EF4.5 nie zostanie przepisany na KO3 ? Zrezygnowałeś też z OPT i bardzo fajnie.
Ja trzymam kciuki za projekt, powodzenia.
Marzec 12th, 2010 - 19:39
„Zaś szanowanie mnie pokazałeś (i SebaZ pokazuje) swoje możliwości na EF.”
Ciekawe historie opowiadasz drogi Rafale… Tonący brzytwy się chwyta? Prawda w oczy kole? Ałx, co za szkoda.
Marzec 12th, 2010 - 21:16
PA zrobione wspaniale. Będą dodane bajery jquery?
PS Hmm, odszedłeś z EF i nagle w piorunującym czasie zrobili już 36% ef 4.5, ciekawe, bardzo ciekawe…
Marzec 12th, 2010 - 21:49
Reyn to się nazywa rywalizacja.
Marzec 12th, 2010 - 21:59
Reyn PA będzie odpicowany w jQuery, metaxy juz kiedys pisał o tym.
Według mnie MetaxyCMS to bedzie przedsmak, przed tym co pojawi sie wraz z zakończeniem pracy dyplomowej.
Sebaz zawsze uważałem cię za dobrego programiste (wątki na PF to potwierdziły) ale powinieneś obdarzyć Rafała szacunkiem, bo to on robił za was czarną robote a teraz odwracacie kota ogonem (o usunietych niusach/tematach juz nie wspomnę bo to porażka).
A ja Rafale ponownie życzę powodzenia i trzymam kciuki.
Marzec 12th, 2010 - 22:01
Fajnie się zapowiada
Marzec 13th, 2010 - 00:01
Metaxy mógł byś zrobić krótki filmik z MetaxyCMSem tak jak extreme-crew to zrobiło z pokazem ef 4.5
Dzięki z góry
Marzec 13th, 2010 - 01:50
Ależ owszem, ja darze Rafała szacunkiem za jego umiejętności. Sprawa tyczy się czegoś innego, bo żadnej czarnej roboty nie odwalił. A obraz taki wyłonił tylko dlatego, że pisał takie, a nie inne teksty na swoim blogu.
News został usunięty, bo prezentował postawę Rafała, której się nikt nie spodziewał (pożegnaniem z użytkownikami nie był na pewno). Oceniasz nas po subiektywnej notce Rafała, a nas o zdanie nie pytasz. Powiem szczerze – nie poznasz go publicznie.
Marzec 13th, 2010 - 06:58
SebaZ dziękuję, że ukazujecie mi moje własne błędy i dajecie poznać się od strony nieomylnych i pokrzywdzonych przez moją osobę. Jak to dobrze, że są jeszcze takie latarnie, które swoim światłem pokazują mi drogę. Wy nieomylni – ja winny, dziękuję za otwarcie mi oczu.
Dziękuję również za blokowanie możliwości wypowiedzenia się na forum EF za pomocą opcji „zablokuj temat”. O światłości świata. I nie piernicz z łaski swojej, że nie wypowiadasz publicznie opinii bo choćby w owym temacie na forum sobie po mnie pojechałeś i zamknąłeś temat, żebym czasem nic nie napisał. Więc z łaski swojej wybądź z takimi tekstami stąd.
Marzec 13th, 2010 - 10:50
Po raz kolejny pokazujesz kim jesteś… brawo. bajo
Marzec 13th, 2010 - 12:35
Mam nadzieję, że już tu nie wrócisz. Na EF piszę posta nie mającego z Wami nic wspólnego – wciskasz te swoje żale i objeżdżasz mnie oraz blokujesz temat, tu napisałem notkę o PA – wpadasz i znów robisz dym. Przestań śmiecić, jak będę pisał o Was to się pusz. Teraz przestań z łaski swojej bo nie widzę słowa o PA. Jeszcze za chwilę zaczniesz się żalić na niskie zbiory manioku w Brazylii.
Marzec 13th, 2010 - 15:04
@ethreex
.
Wiem jak to się nazywa, głupi nie jestem
@metaxy
.
Cóż, obecnej sytuacji nie będę komentował, bo zaraz ktoś mnie zjedzie, ale powodzenia przy cms’ie i ogólnie
Marzec 14th, 2010 - 13:42
Kto kogo zaczął objeżdżać i kasować wypowiedzi? Na pewno nie ja, skoro ty możesz to i ja mogę, więc nie rób siebie takiego świętoszka.
Marzec 14th, 2010 - 13:47
Meliski? Rumianku? Powiedziałem – przestań upubliczniać swoje żale bo faktycznie zacznę Cię kasować. Jeżeli masz problemy emocjonalne znajdź sobie kolegę, przytul się do niego i wypłacz w koszulę. Nie mam ochoty czytać wypocin człowieka, który ma problemy z poprawnymi zachowaniami społecznymi. Będzie trzeba to chętnie dołożę się na Twojego terapeutę, jeżeli jeszcze nie masz to czas poszukać.
PS. Każdy kolejny komentarz nie związany z treścią notki wywalę i tyle, więc nie miej pretensji. Chcesz się wypowiedzieć o PA to się wypowiadaj, nie to znajdź sobie inne miejsce na swój ekshibicjonizm emocjonalny.
Marzec 14th, 2010 - 15:24
Siemka fajnie to wygląda, a tak z ciekawosci w ilu około % jesteś w trakcie zrobienia.
Dzieki z góry za odp. i pozdro
Marzec 14th, 2010 - 22:39
Cool jest, a jak z licencją i żeby kodowanie bazy itd. było tylko w UTF-8, bo w końcu teraz większość osób na to przechodzi
Marzec 16th, 2010 - 19:58
~Qutek co do samego projektu to wiem tyle co ty (czyli nic), ale wsparcie dla UTf-8 na pewno będzie (kohana juz w standardzie obsługuje utf-8).
A jak będą wyglądały linki ? Czy w niusach lub artykułach będzie wymagany identyfikator (nazwa.pl/news/1)?
Ja oczywiście czekam z wielką niecierpliwością (przyszły projekt mam zamiar oprzeć o „MetaxyCMS” )
Marzec 16th, 2010 - 20:08
poki289 – błagam przeczytaj dokładnie to co piszę od dłuższego czasu.
To co wydam teraz: oparte na PF7, żeby ludzie związani z PF, mający tam skórki i wtyczki mogli się bawić na czymś lepszym. Robione jest tylko dla Was. Licencja – najbardziej liberalna na jaką pozwoli bycie na podstawie PF7. Procent zaawansowania: 40-50%.
To co wydam prawdopodobnie na jesień to twór oparty o Kohanę. Będzie to moja praca inżynierska. Licencja? Do celów niekomercyjnych zupełnie darmo, jedyny wymóg link w stopce typu: „Engine: XZY”.
Marzec 18th, 2010 - 18:55
O co chodzi z tym ocenianiem? Opcja 1, 2, 3, 4? Czyżby ocenianie dostępne dla zalogowanych, niezalogowanych, tylko po napisaniu komentarza? Ma się rozumieć, że ocenienie będzie dostępne bez niepotrzebnego odświeżania całej strony?
Mam propozycje żeby dodać „szybki” przycisk włączania edytora TinyMCE, niektórzy z tego shit’u korzystają.
Druga propozycja; możliwość włączenia ankiety?
Kolejna… podgląd tekstu generowany automatycznie u góry, bez potrzeby klikania „Podgląd” też z separatorem rozwijanym…
Obrazki newsa; oprócz z dysku, wybór z serwera, odnośnik.
Pozdrawiam.
Marzec 18th, 2010 - 19:05
Napisałem, że jest to przykład redundantny (nadmiarowy) nie służący do dodawania newsów tylko do pokazania możliwości API, więc opcja 1… to tylko przykład.
Marzec 20th, 2010 - 17:19
Jeżeli nadal szukasz grafika i pomocnika to napisz do mnie na stronie UzumakiSubs.pl Chętnie pomogę. Pozdrawiam.
Marzec 20th, 2010 - 17:44
Siemka metaxy, czy mógł byś napisać w tym tygodniu np. dziś
jeszcze jakiegoś posta na blogu (To jest prośba) o metaxy-CMS i jakieś screeny mógł byś dał bo ostatniego posta dałeś 11 dni temu, dzięki z góry i pozdro
Marzec 20th, 2010 - 19:18
Medialnie to spieprzasz sprawę… Koło extreme-fusion’a jest wielki szum, czego brakuje u ciebie. Jak tak dalej pójdzie to większość wybierze nie twoje jednak dzieło.
Marzec 20th, 2010 - 20:31
Być może, wcale mi nie zależy (zupełnie) na wyborze mojego dzieła. Zacząłem to już robić to skończę, jeżeli EF zrobi coś super to też dobrze. Będę mógł się zająć pisaniem CMS z prawdziwego zdarzenia, a nie opartego na kulawym PF, co bym zrobił bardzo chętnie.
Na EF się bawią, ok ich plus. Ja nie mam na to czasu itd. Wzięli się wreszcie do roboty i super. A że ja nie lubię robienia akcji „że Wam jajka uschną” etc. to trudno.
Marzec 21st, 2010 - 13:29
~ebx a po co robić szum? Naobiecywać każdy potrafi, zamiast pisać notki można już wklepać kawał cennego kodu do „MetaxyCMS”.
Według mnie „MetaxyCMS” to będzie Demo pracy inżynierskiej, ale to tylko moje zdanie, pozdrawiam.
Marzec 21st, 2010 - 17:25
Ja życzę ci metaxy powodzenia. Już od dłuższego czasu śledzę twój blog i nie mogę się doczekać twojego CMSa. Mam plan na stronkę, ale nie chcę robić kolejnej strony na PHPFusion, czy Extreme, więc czekam na coś nowego i dobrego. Na pewno się nie zawiodę, tylko najgorsze w tym wszystkim jest to, że muszę czekać. Ale wytrzymam. Powodzenia.
Lipiec 31st, 2010 - 11:41
Good work ! Keep us posting, you are very good writer.