Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie CMS podstrony
mtk3d
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adbacz
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 18:56