konto usunięte

Temat: Projektowanie CMS

Witam serdecznie,

Chciałbym poświęcić ten temat dyskusjom i wskazówkom odnośnie projektowania własnych systemów zarządzania treścią. Na co zwracać uwagę, jakich technik do tego używać, jak realizować swoje założenia? Może znacie jakieś warte polecenia artykuły na ten temat bądź macie własne doświadczenia, którymi chcecie się podzielić?

1) Oddzielenie interface'u od struktury danych
Z tym mam zawsze problem. Jakie zasady obrać, ustalić aby to się udało

2) Odłóż kodowanie na później
Rozpisz wszystko tysiąc razy na papierze, zanim zaczniesz to implementować. Przemyśl dokładnie czego chcesz i dopiero jak znajdziesz pomysły na cała funkcjonalność, które do tego nie będą się gryzły, zajmij się kodem

3) Uogólniaj
Zrób tak, aby jak najwięcej rzeczy, dało zrobić się tym samym. Być może jest tak, ze coś co wygląda w przeglądarce bardzo różnie z punktu widzenia kodu jest (prawie) tym samym.

Liczę na Was, Wasze wskazówki i linki do ciekawych tekstów na ten temat.

pozdrawiam,

Piotr
Sukces

konto usunięte

Temat: Projektowanie CMS

Co do tego, jak ładnie klepać kod - poczytaj sobie jak jest WordPress napisany :)
Mirosław O.

Mirosław O. netBOMB.pl

Temat: Projektowanie CMS

Wojciech Szkutnik:
Co do tego, jak ładnie klepać kod - poczytaj sobie jak jest WordPress napisany :)

jako przestroga przed najgorszym? ;)
Łukasz Plutecki

Łukasz Plutecki Agencja Interaktywna
NetArch,
www.plutecki.net

Temat: Projektowanie CMS

My po wielu przygodach z opensourcowymi cmsami zaczeliśmy pisać własne cmsy używając do tego frameworka PHPCake..
Na poczatku problemem w gplowych była wielojęzyczność, potem okazało się, że przy bardziej rozbudowanych systemach (np rezerwacyjnych gdzie cms to jakieś 20-40% całego systemu) gotowe systemy za bardzo nas ograniczały.. Chcieliśmy także udostępniać klientom dedykowany panel administracyjny (czyli tylko to co jest im potrzebne -> więcej się dostosowało gotowe rozwiązania, niz tworzyło nowe).

Z tego co wiem wiele cms'ów tworzonych jest także na drupalu, gdyż jest to bardziej środowisko niż gotowy system vide joomla... warto jednak najpierw poczytac o frameworkach, gdyż są one efektem wielomiesięcznej pracy z nastawieniem na łatwe tworzenie systemow webowych...
Grzegorz Brzeski

Grzegorz Brzeski Progamista PHP

Temat: Projektowanie CMS

Na początek to określ jakie cele mają być najważniejsze w tym cms.
Może ma być bardzo dobry i szybkim narzędziem do budowania kolejnych modułów ?
Do pkt 1 spróbuj użyć wzorca MVC
Pkt 2 dobre rozpisanie jest bardzo ważne ale i tak bedzię moment w którym zastanowisz się czy nie zacząć od początku ;)

konto usunięte

Temat: Projektowanie CMS

Witam,

Dziękuje za Wasze wypowiedzi. Chciałbym się teraz dowiedzieć więcej na temat szablonów. Prawdę mówiąc, nie za bardzo wiem jak się zabrać za mechanizm ich obsługi. Nie wiem w ogóle jak to powinno wyglądać i jak to zaprojektować. Mogę prosić o jakieś pomocne posty/linki jak to się robi?

pozdrawiam,

Piotrek
Społeczność

konto usunięte

Temat: Projektowanie CMS

Rozpiska na papierze - nie dla mnie.

Przemyśl sobie dobrze cały projekt przy piwku. Zastanów się, "czy są takie rzeczy, które nie wiem, jak zrobić?" jeśli są, przemyśl jak je wykonasz. Zaplanuj strukturę serwisu, sterownik i implementację klas.
MVC - głównie Smarty.

Piotrze, tworzysz po prostu nową klasę Smarty, budujesz szablony .tpl (jeśli sterownikiem jest np. index.php, to robisz dla niego index.tpl). W index.tpl w kodzie HTML wstawiasz znaczniki Smarty, jak np. {$menu}, {section}{/section} (pętle) itp.

W index.php natomiast przypisujesz zmienne do zmiennych smarty $smarty->assign('menu', $menu); i w dowolnym momencie w którym chcesz (w sterowniku, index.php) wywolujesz $smarty->display('index.tpl');, lub $smarty-fetch() dla buforowania.

Ja jak robię sterownik dla CMS'a, to przewaznie buduje to na case'ach

switch($_GET['action'])
{
case 'delete':

$klasa->delete();
$smarty->la lalala...
break;

default:

switch($_POST['action']) // obsluga formulrzy
{
case 'upload':
$klasa2->costam();
$smarty->display()...
break;

default:

$klasa ->strona glowna()
}

}

Jak nie jest ustawiony zaden POST lub GET z action to jest strona glowna, inaczej wykonuja sie odpowiednie metody klasy i smarty to przetrawia i wypluwa.

Do tego jakis ladny mod_rewrite i masz cmsa.

Z tekstow z netu moge Ci polecic http://www.gajdaw.pl/smarty/ - bardzo dobry tekst o smarty.

I tak jak mowisz, jak najwiecej zlepiania tego, co wykonuje sie 2 lub wiecej razy do 1 kodu. Upraszczanie kodu.

np zamiast

$zmienna1 = 0;
$zmienna2 = 0;

mozesz zrobic $zmienna1 = $zmienna2 = 0;

if($zmienna1 == 0) $zmienna2 = 1; else $zmienna2 = 0;

np. $zmienna2 = ($zmienna1 == 1 ? 0 : 1);

itp etc

pzdrJakub Świegot edytował(a) ten post dnia 30.11.07 o godzinie 15:45
Kuba Markiewicz

Kuba Markiewicz frontend developer,
freelancer

Temat: Projektowanie CMS

Dużo pożytecznej wiedzy można zdobyc czytając dokumentację do frameworka Symfony ;) Autorzy korzystają wielu dobrych i sprawdzonych praktyk programistycznych, wzorców projektowych itp. Można dowiedzieć się ciekawych rzeczy ...

http://www.symfony-project.org/book
Michał Pawłowski

Michał Pawłowski Software Development
Engineer

Temat: Projektowanie CMS

hm... moim zdaniem idealnym rozwiazaniem jest pisanie cms-a w sposob bardzo uniwersalny ... tzn ... tak aby jedna funkcja byla w stanie obsluzyc kazda tabele w bazie ... nie definiowac nigdzie pol w zapytaniach ... tylko napisac funkcje ktora sama sprawdza strukture i generuje odpowiedni obiekt... na podstawie obiektu Smarty generuje odpowiedni template gdyz w posiada on informacje na temat typu danych w danym polu... itp itd... podstawa to dynamizm moim zdaniem...

pozdr

p.s. co do modrewrite'a to 2 razy bym sie zastanowil ... sprawia ze system moze miec problemu na roznych konfiguracjach serwera...
np. formularz - dane ida postem ... mod rewrite... dostaje 301 i dopiero przekierowanie ... dane posta gina i mozna sie pocalowac w nos ...

konto usunięte

Temat: Projektowanie CMS

jeszcze sie z takim czyms nie spotkalem ;)

a napisalem dziesiatki cmsow z mod_rewrite i na kazdym serwerze jakos dzialalo. masz skisny serwer ;)

pozdro
Mirosław O.

Mirosław O. netBOMB.pl

Temat: Projektowanie CMS

wiesz, widziałem już takich "magików" co to robili RewriteRule dla formularzy :D

konto usunięte

Temat: Projektowanie CMS

tzn., w jakim sensie?

jesli chodzi o takie cos, ze w index.php wykorzystuję POSTy i GETy, to w formularzu zamiast action="index.php" daje np. action="send" i w .htaccess definiuje ^send$ index.php - i tak wykrozystuje zeby ladnie sobie wygladalo przy postowaniu. sprawdzalem na 4 serwerach, dzialalo bez zarzutu.
Michał C.

Michał C. Deputy Head of
Software Development

Temat: Projektowanie CMS

Jakub Świegot:
jeszcze sie z takim czyms nie spotkalem ;)

a napisalem dziesiatki cmsow z mod_rewrite i na kazdym serwerze jakos dzialalo. masz skisny serwer ;)

pozdro
To chyba wszystkie instalowales na tym samym serwerze ;)
Ostatnio tez pisalem mala rewriteRule. Na moich serwerach dzialalo, natomiast na home.pl juz odmowilo posluszenstwa. Dopiero pomoc techniczna pomogla, bo serwer home.pl byl zupelnie inaczej skonfigurowany od "moich"...Michał Czerwiński edytował(a) ten post dnia 07.12.07 o godzinie 12:37
Adam Brodziak

Adam Brodziak PHP, football, fun

Temat: Projektowanie CMS

home.pl nie używa Apache (jak większość hostingów), ale własnego serwera www. Stąd długo nie mieli mod_rewrite, a i ten działający nie jest w pełni kompatybilny.

konto usunięte

Temat: Projektowanie CMS

Piotrek, poczytaj też architekturze EAV http://en.wikipedia.org/wiki/Entity-Attribute-Value_model

Stosując EAV oraz zestaw podstawowych klas do obsługi bazy możesz budować bardzo elastyczne systemy CMS (i nie tylko). eZ Publish (http://ez.no), Magento (http://magentocommerce.com) są tego doskonałym przykładem.

Ps. Architekturę systemu zamiast na kartce projektuj korzystając z narzędzi typu CASE (http://pl.wikipedia.org/wiki/CASE). Wynik pracy nigdy nie zaleje Ci się kawą ani nie zginie w twórczym nieporządku na biurku ;)Andrzej Bernat edytował(a) ten post dnia 13.12.07 o godzinie 19:39



Wyślij zaproszenie do