Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> umuCMS - mój CMS - praca dyplomowa
PcPablo
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kielce

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


Witam, przyszedł czas na napisane pracy dyplomowej. Padło na CMSa którego sobie wymyśliłem. Przedstawiam i prosze o ocene i ew. zaproponowanie czegoś do logicznego schematu bazy danych:
(IMG:http://ikielce.pl/umuCMS.png)

Idea mojego systemu: Łatwy, szybki i wieloużytkownikowy

Wieloużytkownikowy to znaczy, że jeden kod ma obsługiwać wiele stron internetowych.

Wytłumaczę kilka tabel, które są na projekcie:

Administratorzy: Administrator główny, który tworzy i zarządza administratorami, którzy z kolei mogą dodawać i edytować użytkownió systemu (strony internetowe)

Jezyki: każda witryna może mogła mieć treści w wielu językach. Każdy zestaw menu będzie przyporządkowany do konkretnego języka.

Menu: Każda strona będzie mogła mieć różne menu, które będzie można umiejscawiać w różnych miejscach layoutu

Strony: Każda strona ma template wybrany z zestawu

Pola tresci: Dla każdej strony będzie się tworzyć oddzielne pola (np. tytul, tresc krotka, tresc długa, zdjecie_1 - wszystko jako oddzielny input)

Templaty: Tu ma się mieścić kod html, który będzie układał stronę w całość. Za treść wpisaną w pola treści będą odpowiadać zmienne wpisywane w templaty (np {tytul} {tresc_krotka} itp)

Tresci strony: Tekst/adres do pliku przyporządkowany do konkretnej strony i templatu.

Pluginy: mają być umieszczane w templatach także poprzez znaczniki {nazwa_pluginu} Pluginami mogą być: drzewo stron, kalendarz, pdf_export, zaawansowane drukowanie, wyszukiwarka, logowanie. Pluginy mogą mieć swoją bazę danych i będą dostępne dla witryny wtedy kiedy administrator na to pozwoli

Użytkownicy: każda Witryna może mieć wielu użytkowników: Adminów strony mogących uzupełniać treści i modyfikować wygląd dodawać użytkownikó zwykłych, użytkownik zwykły może tylko dodawać treści, czytelnik po zalogowaniu może czytać strony niedostępne dla ogółu.

Każdy użytkownik po założeniu będzie miał tworzoną oddzielną bazę danych, której adres i hasło będzie wpisywane przy tworzeniu. Automatyczne tworzenie użytkownika w bazie danych chyba będzie trudne do zrealizowania, więc trzeba będzie to ręcznie zrobić.

W layoucie ma być możliwość umieszczania menu, stron, pluginów.

W polach treści ma działać także kod PHP.

Narazie tyle (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Lonas
post
Post #2





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Pierwsza rzecz jaka mi się rzuca w oczy - uzytkownicy, administratorzy - przecież może to być jedna tabela z relacją do drugiej gdzie będą grupy do której użytkownik należy.

Grupa będzie miała przypisane uprawnienia i na tej podstawie możesz identyfikować uzytkownika.

Druga sprawa załozyłes chyba jednopoziomowe menu co w przypadku CMS nie jest za dobrym rozwiązaniem.

Ogolnie struktury Twojego CMS troche nie rozumiem. Chyba można to zrobić prościej. Po co Ci np. te pola tresci ?

Przecież możesz mieć jedną tablice w której trzymasz konkretny artykuł. Będzie miał relacje z id menu, flage języka i wszelkie inne atrybuty artykułu.

Tymczasem pozdrawiam
Go to the top of the page
+Quote Post
Pilsener
post
Post #3





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


- wystarczy jedna tabela z użytkownikami
- nie widzę kategorii/podkategorii - struktury drzewa - do każdej kategorii powinna być możliwość przypisania innego templatu oraz zainstalowania dowolnych pluginów
- jak zostanie rozwiązana kwestia styli? Piszę np. artykuł i na 6-tej stronie mam tabelkę, do której chcę dodać style - jak to będzie wyglądało?
- moim zdaniem obsługa wielu serwisów jest zbędna - wystarczy założenie, że każda kategoria jest autonomiczna i traktowana jak oddzielny serwis
- treść może pochodzić z różnych źródeł: jako plugin (fragment kodu html umieszczony na stronie), z systemu newsów, systemu artykułów etc. Każdy taki plugin/moduł powinien mieć własne templaty i konfigurację, użytkownik powinien mieć też możliwość dołączania własnych modułów

Ogólnie to napisanie elastycznego i dobrego CMS'a musi potrwać - radzę zacząć od struktury drzewa kategorii, dodawania, usuwanie, edycja kategorii, potem przypisywanie kategoriom pluginów, templatów i styli, na końcu pluginy - jak zrobisz drzewo kategorii to potem jakoś to pójdzie dalej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
PcPablo
post
Post #4





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kielce

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


Tabele Uzytkownicy i Administratorzy jest oddzielona dlatego że Administratorzy jest to tylko jedna tabela z konfiguracją użytkowników tylko do samego systemu, a Uzytkownicy są dla konkretnej strony obsługiwane przez system. Skoro ma być tak, że dla bezpieczeństwa dla każdej witryny ma być tworzona odzielna baza to także dla każdej witryny będzie oddzielna tabela z użytkownikami tej witryny. Myślę, że chyba jednak tabele: uprawnienia użytkowników i uprawnienia administratorów usunę i wpisze to na sztywno w systemie.
Cytat
Druga sprawa załozyłes chyba jednopoziomowe menu co w przypadku CMS nie jest za dobrym rozwiązaniem.

Menu nie będzie jednopoziomowe. Tabela Menu jest tylko deklaracją jakie ile i jakie Menu są na stronie. Samo drzewo menu będą tworzyły nazwy stron. Jak widać w tabeli Strony jest wpis "poprzednia strona" gdzie będzie wpisane ID strony nadrzędnej. Na tej podstawie ma być tworzone drzewo menu.
Cytat
Ogolnie struktury Twojego CMS troche nie rozumiem. Chyba można to zrobić prościej. Po co Ci np. te pola tresci ?

Zazwyczaj w systemach polami treści są: Tytuł, Tresc krótka i Tresc Dluga, co wrzuca się w template strony. Ograniczenie tego powoduje, że osoba uzupełniająca musi trochę znać html żeby zrobić jakiś podział treści, tabele, odstępy. Jeżeli sie zeschematyzuje, to kazdy będzie mógł tylko wpisywać prosty tekst/dodawac pliki to nie będzie potrzebna znajomość htmla i styli. Dzięki temu także użytkownik nie będzie miał okazji zepsuć wyglądu strony. cały wygląd będzie narzucony w templatach. Oczywiście także będzie możliwość wpisywania kodu html w jakieś pole treści. Podsumowująć: ustawiamy jaką treść ma mieć dana strona, tworzymy pola tej treści, ustawiamy wygląd danej strony w templacie i wpisujemy zmienne odpowiadające za treść, i treść uzupełnia się tylko czystym tekstem.
Cytat
Przecież możesz mieć jedną tablice w której trzymasz konkretny artykuł. Będzie miał relacje z id menu, flage języka i wszelkie inne atrybuty artykułu.

Przy tworzeniu strony najpierw ma się Dodawać języki w jakich strona ma funkcjonować, potem do każdego języka będzie się przyporządkowywać menu. Potem do danego menu będzie przyporządkowana pierwsza strona. Jeżeli bym w tabeli Strony umieścił relacje do Języka i menu to nie wiadomoby było dla jakiego języka należy to Menu, czyż nie?
Cytat
nie widzę kategorii/podkategorii - struktury drzewa - do każdej kategorii powinna być możliwość przypisania innego templatu oraz zainstalowania dowolnych pluginów

Template będzie się przyporządkowywać do konkretnej strony. Domyślnie strona ma mieć template taki sam jak template strony nadrzędnej z możliwością zmiany oczywiście.
Cytat
jak zostanie rozwiązana kwestia styli? Piszę np. artykuł i na 6-tej stronie mam tabelkę, do której chcę dodać style - jak to będzie wyglądało?

Style będą teoretycznie tylko potrzebne przy edytowaniu templatów, także tutaj może byc gdzieś jakiś input wyświetlający treść pliku ze stylami. Założenie jest takie że uzupełnianie strony już samą treścią ma się odbywać bez znajomości htmla/ styli ale jeżeli ktoś będzie chciał to można tego użyć i myśle, że będize także jakiś WYSWIG. Moznaby dodać zmienną w tabelli "Pola_tresci" czy dane pole ma mieć WYSWIG czy nie...
Cytat
- treść może pochodzić z różnych źródeł: jako plugin (fragment kodu html umieszczony na stronie), z systemu newsów, systemu artykułów etc. Każdy taki plugin/moduł powinien mieć własne templaty i konfigurację, użytkownik powinien mieć też możliwość dołączania własnych modułów

Tak właśnie, ale z racji że pluginy będą zróżnicowane, kady z nich będzie musiał mieć inną bazę danych i templaty, dlatego nie zawierałem za bardzo tego w tych schemacie.
Cytat
Ogólnie to napisanie elastycznego i dobrego CMS'a musi potrwać - radzę zacząć od struktury drzewa kategorii, dodawania, usuwanie, edycja kategorii, potem przypisywanie kategoriom pluginów, templatów i styli, na końcu pluginy - jak zrobisz drzewo kategorii to potem jakoś to pójdzie dalej.

Dzięki za rade, tak też zrobię.
Będę potrzebował pomocy bo w phpie to cienkawy jestem...
Go to the top of the page
+Quote Post
Black-Berry
post
Post #5





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Piszę CMS'a od kilku dobrych lat i widzę u Ciebie 1 główny błąd który kiedyś robiłem: za dużo tabel.

Oszczędzisz sobie dużo męki jeśli zredukujesz wszystko do:
- konta_uzytkowników
- struktura (moduły:artykuly, kategorie, ewentualnie menu jako węzły nadzrzędne kategorii); wszystko w 1 tabeli, oparte o nested sets tree
- jezyki

reszta jest zbędna.
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #6





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


A po co PHP w "polach treści"? Żeby ktoś ci server rozwalił?
Jak mówili poprzednicy userzy i admini to w zasadzie to samo, zmodyfikuj tylko tabelę z uprawnieniami, nie ma sensu tworzyć osobnych.
Go to the top of the page
+Quote Post
PcPablo
post
Post #7





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kielce

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


OK, oto poprawiony projekt:

(IMG:http://ikielce.pl/umuCMS_2.png)

W "użytkownikach" jest pole "należy do witryny" gdzie będzie znajdować numer witryny, do której należy użytkownik. A jeżeli wartość będzie 0 to znaczy że jest to Administrator i może obsługiwać wszystkie witryny.

W tabeli "Strony" dodałem pole "Layout", będzie tam wpisany plik layoutu, który ma wyświetlać daną strone (np strona glówna będzie inna niż pozostałe strony)

Nie wiem czy można zrobić powiązania między dwiema oddzielnymi bazami danych takie jak jest widoczne.

Co teraz sądzicie?
Go to the top of the page
+Quote Post
Black-Berry
post
Post #8





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Czy ta praca dyplomowa ma byc na rok 2010 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Nawet jesli okroisz ten projekt tak jak Ci napisałem wcześniej - do 3 tabel to będziesz miał problem żeby się wyrobić w pół roku.
Go to the top of the page
+Quote Post
dfs
post
Post #9





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 10.02.2009

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


Trochę odgrzebuję temat , ale mam podobny temat i chciałem zapytać czy robiłeś do tego wzorce projektowe??

Graficzne schemety co i jak działa??

Czy były one w standardzie UML?? czy tylko tak dl siebie kartka i ołówek, bez zamieszczania w pracy??
Go to the top of the page
+Quote Post

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: 20.09.2025 - 07:52