Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 3.07.2014 Ostrzeżenie: (0%)
|
Witam!
Zainteresowałem się programowaniem PHP ok. 5-6 lat temu, nauczyłem się programować strukturalnie. Po ok roku, zacząłem pisać swój system newsów na bazie MySQL, niestety nie udało mi się go dokończyć zgodnie z założeniami (padł mi laptop i straciłem dane z dysku), ale główne funkcje działały. Teraz wróciłem do nauki tego języka, jestem na etapie nauki programowania obiektowego. Postanowiłem, że do końca wakacji napiszę swój własny CMS. I z tym wiąże się moje pytanie. W jaki sposób generowane są podstrony w CMS'ach? Wiem że działa to na bazie danych, ale nie bardzo rozumiem w jaki sposób są dodawane na podstronie np artykuły, lub mapa strony. Wymyśliłem sobie, że może to działać, poprzez dodawanie odpowiednich "modułów" na podstawie treści dodatkowej kolumny danej podstrony w bazie danych. W głowie mam mniej więcej plan jakby to działało, ale chciałbym mimo wszystko dowiedzieć się w jaki sposób jest to rozwiązane w popularnych CMS'ach, żeby nie iść zbyt okrężną drogą. Pozdrawiam i liczę na pomoc. Ten post edytował mtk3d 3.07.2014, 15:50:24 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%)
|
Jesli mówisz, że chcesz napisac do końca wakacji system CMS, ale powiedzmy, że rozpoczynasz naukę OOP (długa przerwa) to najlepszym wyjściem jest zaczęcie od projektowania. Najpierw napisz sobie na kartce to, co chcesz by system posiadał. W tym wypadku chcesz by były podstrony, ok. Ale na jakiej zasadzie? Czysty tekst?
W niektórych systemach CMS jest to rozwiązane na zasadzie wtyczki czy komponentu. To ona jest odpowiedzialna za dany typ podstrony. Typów podstron można wymieniać mnogości: artykuł, kategoria, galeria, produkt, kontakt itp. I teraz tak, każdy komponent jest odpowiedzialny za inny typ strony. Tak tak Ty, jesteś w swojej pracy odpowiedzialny za programowanie, nie będziesz zajmował się pisaniem faktur czy sprzątaniem (IMG:style_emoticons/default/wink.gif) Dalej można to rozwiązać na dwa sposoby: 1. Komponent jest częścią aplikacji samą w sobie. To w nim dzieje się dodawanie, edycja, usuwanie i wszystkie inne opcje danego typu podstrony. Sam system CMS daje tylko szkielet aplikacji dla komponentów, by one mogły działać (Joomla!, WordPress). 2. Komponent daje tylko definicję typu podstrony, czyli to jak ma ona wyglądać, jakie ma mieć pola do wpisania (formularz dodawania artykułu czy produktu), jak ma się zachowywać. A system CMS odpowiedzialny jest w całości za zarzadzanie tymi podstronami w taki sposób, jak zdefiniował to dany komponent. Oczywiście zdaję sobie sprawdę, że są jeszcze inne możliwości, ale takie tylko przyszły mi do głowy. Pierwszy jest o wieeeele łatwiejszy i polecam Ci go. Bo z drugim to staniesz w miejscu na samym początku (bez urazy, początki są trudne zawsze, a gdy się wejdzie na zbyt głęboką wode, to się odechciewa dalszej nauki). Zalety: - Każdy komponent możesz nstalować, usuwać oddzielnie. - Każdy komponent jest odpowiedzialny tylko i wyłącznie za swój typ podstrony. - Każdy komponent jest odpowiedzialny za zarzadzaniej swoimi podstronami, to w nim odbywa się edycja. Możesz ta edycję rozwiązac tak, jak tego w danym miejscu potrzebujesz. Hmm, chyba nie ma wad (IMG:style_emoticons/default/wink.gif) System CMS obsługiwac powinien podstawowo tylko routing, czyli włączenie danego komponentu na zasadzie tego, co znajduje się w adresie URL. W tedy to gry wchodzi komponent i to on dalej sprawdza co dokłądnie jest w adresie URL i wyświetla daną podstronę, oczywiście za pomocą metod udostępnianych przez system CMSa. Troche się rozpisałem, ale mnie wena twórcza złapała, sam jestem projektantem systemu CMS i mógłbym o tym pisać całymi godzinami (IMG:style_emoticons/default/wink.gif) Jeśli masz jakieś pytania to wal śmiało. |
|
|
|
mtk3d Tworzenie CMS podstrony 3.07.2014, 14:46:09
SmokAnalog Ściągnij sobie WordPressa i się pobaw 3.07.2014, 18:33:47
mtk3d W wordpressie da się dodawać tylko czyste strony, ... 3.07.2014, 20:39:26
SmokAnalog W WordPressie możesz zrobić wszystko co chcesz pra... 3.07.2014, 20:42:00
sf Cytat(mtk3d @ 3.07.2014, 15:46:09 ) I... 4.07.2014, 07:46:06 
aras785 Cytat(sf @ 4.07.2014, 08:46:06 ) Na T... 4.07.2014, 08:26:03 
SmokAnalog Cytat(sf @ 4.07.2014, 08:46:06 ) Nie ... 4.07.2014, 09:44:29
mtk3d Cytat(sf @ 4.07.2014, 08:46:06 ) Na T... 4.07.2014, 13:36:50
SmokAnalog To nie framework rozjaśni Ci ten problem, tylko CM... 4.07.2014, 13:43:28
aras785 Cytat(mtk3d @ 4.07.2014, 14:36:50 ) P... 4.07.2014, 14:05:22
mtk3d Chodziło mi tutaj o to, jak to rozwiązać, aby użyt... 4.07.2014, 14:14:48
aras785 Cytat(mtk3d @ 4.07.2014, 15:14:48 ) C... 4.07.2014, 14:35:06 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 18:56 |