Premiera Iron CMS-a!

Z nieukrywaną dumą informuję, że skrypt który zacząłem tworzyć dokładnie 114 dni temu (20.12.10) został w końcu doprowadzony do stanu używalności. Dziś, o godzinie 14:40 nadszedł czas zaprezentować go światu.

Premiera odbyła by się chwilę wcześniej, gdyby nie to, że nie mogłem się dostać do phpMyAdmina na sobak.pl i tym samym zdebugować pewnego zapytania (na localhoście działało, tu nie). Przez około 5 godzin męczyłem się z instalatorem. Dodatkowo ponad godzinę straciłem, czekając aż panel administracyjny 1&1 raczy się załadować., ale, tak, udało się! :) Iron CMS 1.0 jest gotowy!

O tym, że jego przepisywanie od nowa zbliża się do końca informowałem tutaj. Zajęło mi to dokładnie 20 dni (z małymi przerwami). Podczas tego "procesu" skupiłem się głównie na poprawie logiki, wydajności i błędów ze starszych wydań (były 4 wydania prezentowane tylko znajomym).

  • poprawiłem dziesiątki nieoptymalnych miejsc. Trzykrotne łączenie się z bazą w jednym pliku, czy pobieranie tej samej wartości kilkanaście razy pod rząd? Takie rzeczy tylko w starych wersjach Irona (tak, ochrzciłem CMS-a mianem żelazka :D (joke)) :)
  • poprawiłem stare funkcjonalności. Np. f-cja kosza dostępna od wersji 0.3 została rozszerzona o możliwość wyrzucania artykułów. Wcześniej były to tylko podstrony.
  • nowa wersja starego szablonu. Jak już napisałem w zapowiedzi skryptu, użyłem gotowego szablonu. Podczas przepisywania CMS-a na nowo, znalazłem jego nowszą wersję. Został mocno poprawiony HTML i CSS i doszło m. in. górne menu. Dodatkowo dorzuciłem lekką modyfikację szablonu od siebie.
  • możliwość ustawienia oddzielnego theme'u dla panelu administracyjnego
  • zalążek rang użytkowników
  • znaczna poprawa bezpieczeństwa
  • dodany instalator
  • poprawa przejrzystości panelu administracyjnego
  • zmiana wielu rozwiązań pod względem logistycznym
  • setki, naprawdę setki rzeczy o których zapomniałem bądź pisać nie warto...

Skrypt został napisany z użyciem możliwości z PHP5 (wersja czwarta musi odejść do lamusa...) i bazy danych MySQL.

Trochę statystyki

Wielkość skryptu (zdekompresowane)

  • 0.1 - 26.4 kB
  • 0.2 - 2.87 MB
  • 0.3 - 1.48 MB
  • 0.4 - 2.32 MB
  • 1.0 - 344 KB

Skąd tak duża różnica? Od wersji 0.2 w skład skryptu wszedł JS-owy edytor WYSIWYG - TinyMCE. W 0.3 go "lekko" odchudziliśmy (z m4tx'em) - stąd taki spadek rozmiaru. W 0.4 doszło troszkę nowych rzeczy, a IronCMS 1.0 został pozbawiony edytora WYSIWYG, zastąpiono go BBCodem. Jego rozmiar jest podwójnym sukcesem, bo poprzez rozbicie theme'u na theme dla strony i oddzielny dla panelu, ilość obrazków de facto nam się podwoiła.

Dlaczego nie WYSIWYG lecz BBCode?
Otóż stwierdziłem, że skryptów idiotoodpornych powstało już mnóstwo. Zdaję sobie sprawę, że to może zawęzić ilość użytkowników Irona (ale spójrzmy obiektywnie - ile ludzi tak czy siak będzie go używać? :P). Poza tym - znajomość BBCode, to nie jest jakaś magiczna sztuka.

Linie kodu (kliknij aby powiększyć)

Podziękowania

  • dla Rhina za rozwiązanie niezliczonej ilości moich błędów i przeoczeń
  • dla Pawła1503 i m4tx'a za betatesty
  • dla CapaciousCore'a, za naprawdę fachowe porady dotyczące skryptu.

DOWNLOAD IRON CMS 1.0

9 komentarzy do “Premiera Iron CMS-a!

  1. Warning: require_once(webs/error_404.php) [function.require-once]: failed to open stream: No such file or directory in /homepages/30/d342851964/htdocs/cms/index.php on line 207

    Fatal error: require_once() [function.require]: Failed opening required 'webs/error_404.php' (include_path='.:/usr/lib/php5') in /homepages/30/d342851964/htdocs/cms/index.php on line 207
    Coś nie działa.

    • Sobak pisze:

      Ktoś testując CMS-a postanowił go umyślnie popsuć. Wywalił stronę główną do kosza, resztę skasował. Zniszczył też większość menu. Stąd były błędy. W swojej łatwowierności liczyłem, że nikomu nie będzie zależeć na tak prymitywnej rozrywce, ale pomyliłem się…

      Jak na razie działa ;)

      PS: HTTP 500 na Twojej stronie…

  2. powinna być składania markdown (extra). nie wiadomo gdzie jesteśmy w ACP. Brak ładu i składu w ACP/dodaj *. „Nowa strona w webs/” rozciąga menu po najechaniu. Podwójne slashowanie. XHTML. do kodu nie zaglądałem, zrobię to później.

  3. Sobak pisze:

    powinna być składania markdown (extra).

    Dobry pomysł

    Brak ładu i składu w ACP/dodaj *

    Chodzi Ci o menu, czy o same formularze? Formularze właśnie poprawiam.

    nie wiadomo gdzie jesteśmy w ACP.

    Myślisz o jakiś breadcumbs’ach, czy po prostu zmiana wyglądu aktualnej zakładki w menu?

    Podwójne slashowanie.

    Możesz jaśniej?

    XHTML.

    Wałkowane na Forumwebie już setki razy (nie masz łatwo z przekonywaniem o tym ;)). Wysyłanie xHTML 1.0 jako text/html nie jest dobrą praktyką, ale jest poprawne.

    Nie mogę go wysłać na sztywno jako application/xhtml+xml, bo IE starsze niż 8 tego nie obsłuży. W takim wypadku rozsądnym wyjściem, poza aktualnym tj. wykorzystaniem obecnego rozwiązania (dopuszczonego podobno właśnie ze względu na IE), wydaje mi się mime zależny od browsera.

    Przy okazji zauważyłem białe znaki przed DTD. Już poprawiam ;)

    • Podwójne slashowanie: masz na serwerze magic_quotes i nie wyłączasz. Patrz artykuł \’ or 1=1 — (oryginalnie wysłany bez backslasha).

      s/, ale jest poprawne.//
      s|1.0 jako text/html||

      I od razu lepiej. (dla nie-uniksowców: przeczytajcie odpowiednie zdanie bez tych fragmentów. Do tego ewentualnie
      s/Wysyłanie/Używanie/

  4. Sobak pisze:

    Tak, czytałem, że niby chcą 5zł za naprawę tego. Żałosne. Przy okazji zmiany hostingu kup domenę :P (a najlepiej wcześniej, to jak dasz 301 to nie stracisz prawie pozycji w google).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *