Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tworzenie CMS podstrony
mtk3d
post 3.07.2014, 14:46:09
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
SmokAnalog
post 3.07.2014, 18:33:47
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Ściągnij sobie WordPressa i się pobaw smile.gif
Go to the top of the page
+Quote Post
mtk3d
post 3.07.2014, 20:39:26
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.07.2014

Ostrzeżenie: (0%)
-----


W wordpressie da się dodawać tylko czyste strony, a w joomli do podstron można dodawać moduły z tego co pamiętam.
Go to the top of the page
+Quote Post
SmokAnalog
post 3.07.2014, 20:42:00
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


W WordPressie możesz zrobić wszystko co chcesz praktycznie, tylko czasem trzeba wtyczkę ściągnąć.

Możesz np. zrobić panel do dodawania pasków bocznych i potem z poziomu edytora strony wybierać co ma na nim być. To tylko pomysł na gorąco - możesz robić co tylko wymyślisz smile.gif
Go to the top of the page
+Quote Post
adbacz
post 3.07.2014, 20:55:36
Post #5





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 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 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 wink.gif Jeśli masz jakieś pytania to wal śmiało.
Go to the top of the page
+Quote Post
sf
post 4.07.2014, 07:46:06
Post #6





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Cytat(mtk3d @ 3.07.2014, 15:46:09 ) *
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.


Na Twoim miejscu zainteresowałbym się jakimś frameworkiem, to rozwiązuje duże problemy jak chodzi o architekturę aplikacji.

Cytat
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ą.


Jak piszesz swój CMS to skupiłbym się na poznaniu co to jest routing, controller i akcja. W warstwie prezentacji view helpery.

Nie bazowałbym na takich rozwiązaniach jak wordpress bo kod jest przestarzały, powinni to już dawno przepisać.

Ten post edytował sf 4.07.2014, 07:47:45


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
aras785
post 4.07.2014, 08:26:03
Post #7





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Cytat(sf @ 4.07.2014, 08:46:06 ) *
Na Twoim miejscu zainteresowałbym się jakimś frameworkiem, to rozwiązuje duże problemy jak chodzi o architekturę aplikacji.



Jak piszesz swój CMS to skupiłbym się na poznaniu co to jest routing, controller i akcja. W warstwie prezentacji view helpery.

Nie bazowałbym na takich rozwiązaniach jak wordpress bo kod jest przestarzały, powinni to już dawno przepisać.


Chłopak nie ma nawet pojęcia jak się robi dynamiczne strony php/mysql, a Ty mu mówisz o takich rzeczach biggrin.gif
Go to the top of the page
+Quote Post
SmokAnalog
post 4.07.2014, 09:44:29
Post #8





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(sf @ 4.07.2014, 08:46:06 ) *
Nie bazowałbym na takich rozwiązaniach jak wordpress bo kod jest przestarzały, powinni to już dawno przepisać.

To prawda, kod WordPressa woła o pomstę do nieba, tylko nie mówcie tego fanom WordPressa, bo Was zlinczują. Ja kiedyś dostałem po głowie za to, bo przecież główne hasło WordPressa to "Code is poetry" (LOL) biggrin.gif

Ale chłopak pyta o to jak to wygląda od strony panelu (ideę), a nie o kod. A tu WordPress radzi sobie dobrze.

Ten post edytował SmokAnalog 4.07.2014, 09:45:50
Go to the top of the page
+Quote Post
mtk3d
post 4.07.2014, 13:36:50
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.07.2014

Ostrzeżenie: (0%)
-----


Cytat(sf @ 4.07.2014, 08:46:06 ) *
Na Twoim miejscu zainteresowałbym się jakimś frameworkiem, to rozwiązuje duże problemy jak chodzi o architekturę aplikacji.

Właśnie biorę się za poznanie codeigniter'a


Cytat(aras785 @ 4.07.2014, 09:26:03 ) *
Chłopak nie ma nawet pojęcia jak się robi dynamiczne strony php/mysql, a Ty mu mówisz o takich rzeczach biggrin.gif

Po czym wnioskujesz że nie potrafię tworzyć dynamicznych stron?


Dziękuję wszystkim za odpowiedzi, jeśli podczas tworzenia będę miał jeszcze jakieś problemy to się zgłoszę.
Go to the top of the page
+Quote Post
SmokAnalog
post 4.07.2014, 13:43:28
Post #10





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


To nie framework rozjaśni Ci ten problem, tylko CMS.
Go to the top of the page
+Quote Post
aras785
post 4.07.2014, 14:05:22
Post #11





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Cytat(mtk3d @ 4.07.2014, 14:36:50 ) *
Po czym wnioskujesz że nie potrafię tworzyć dynamicznych stron?


Odp:

Cytat(mtk3d @ 3.07.2014, 15:46:09 ) *
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.

Go to the top of the page
+Quote Post
mtk3d
post 4.07.2014, 14:14:48
Post #12





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.07.2014

Ostrzeżenie: (0%)
-----


Chodziło mi tutaj o to, jak to rozwiązać, aby użytkownik miał możliwość wybierania, czy na danej stronie ma być tylko jego tekst, czy jakiś komponent. Na to być może niezbyt dobrze sformułowane pytanie świetnie odpowiedział adbacz.
Go to the top of the page
+Quote Post
aras785
post 4.07.2014, 14:35:06
Post #13





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Cytat(mtk3d @ 4.07.2014, 15:14:48 ) *
Chodziło mi tutaj o to, jak to rozwiązać, aby użytkownik miał możliwość wybierania, czy na danej stronie ma być tylko jego tekst, czy jakiś komponent. Na to być może niezbyt dobrze sformułowane pytanie świetnie odpowiedział adbacz.



W takim razie zwracam honor i życzę powodzenia przy projekcie.

Pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 5.06.2024 - 18:45