![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio zaświtał mi pomysł na wykonanie zarządzania treścią w systemie cms. Moja koncepcja wygląda tak
Mamy tabele w bazie danych o nazwie "content". W tej tabeli znajdują się kolumny takie jak: Kod value | id | tpl Gdzie: I. value to wartość treści II. ID chyba wiadomo III. Nazwa przydzielonego szablonu Teraz przykład zastosowania mojej koncepcji a więc dodajemy sobie nowy rekord o wartości kolumny "value": Kod title: Nazwa artykuły; text: Jakiś tekst author: autor create-date: 28.08.2005 contact: php.diwi@gmail.com Tak więc moja wizja jest taka. W katalogu templates gdzie trzymamy szablony znajdują się podfoldery o nazwach page_"nazwa_szablonu". Wewnątrz każdego takiego podfolderu mamy 2 pliki: -config.inc -template.tpl config.inc przechowuje informacje na temat elementów danej strony, przykładowa budowa dla wyżej wymienionej treści będzie wyglądać tak: Kod title | varchar; text | big_varchar; author | varchar; create-date | date_format; contact | varchar; Co to oznacza ? A więc część przed znakiem "|" to nazwa elementu a po tym znaku to rodzaj wartości (Przyda się to potem przy tworzeniu formularza do dodawania treści) Dzięki takiemu rozwiązaniu możemy budować podstrony składającą się z bardzo dużej ilości elementów bez ograniczenia związanego z określonymi polami w formularzu dodawania treści. Co do drugiego pliku template.tpl to odpowiada on za wyświetlanie informacji i może on dla powyższego przykładu wyglądać tak: Kod <b>{content.title}</b> <p>{content.text}</p> <br /> <span>Autor: <a href="mailto:{content.contact}">{content.autor}</a></span> <br /><br /> Data dodania: {content.creation-date} Niestety co do szablonów to ich zawartość jest przydzielana na stałe ale można tworzyć nowe dlatego jest to dosyć elastyczne rozwiązanie. I teraz pytanie do was czy taka koncepcja jest dobra i czy iść w tą stronę ? Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
mi sie nie podoba... zreszta jak znam zycie to trzeba napisac 2-3 cmsy lub ( co jest lepszym rozwiazaniem ) popracowac / robic poprawki do 3 cmsow + jakis wlasny... i wtedy wyjdzie jakas lepsza koncepcja na to jak napisac taka aplikacje... wiec napisz pierwszego cmsa.. zobacz jak dzialaja inne i sam odpowiesz sobie na pytanie co bylo zle i dlaczego, zreszta wazne jest takze co Twoj cms ma robic.. dlaczego go piszesz, a nie korzystasz z gotowego? czym sie ma wyrozniac od juz istniejacych?
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hmm.. no cóż, mi się wydawała dobra dlaczego ? Jeżeli będe potrzebował zrobić sobie bazę produktów to nie będe klepał modułu do tego tylko w bardzo krótkim czasie zrobie sobie szablon w którym ustale sobie odpowiednie pola (w pliku config.inc) takie jak np:
-Nazwa produktu -Cena -Dane techniczne -Dodatkowe informacje Potem będe miał odrazu stworzone pola w panelu administracyjnym do dodawnia produktów ![]() Pozdrawiam |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 566 Pomógł: 18 Dołączył: 23.08.2003 Skąd: Łomża Ostrzeżenie: (0%) ![]() ![]() |
IMHO konstruktywne
![]() -------------------- *Note: No animals were killed durning the construction of this post.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
jak dla mnie bardziej sie przydaja takie pliki konfiguracyjne do walidacji
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat jak dla mnie bardziej sie przydaja takie pliki konfiguracyjne do walidacji Nie rozumiem. Możesz rozwinąć swoją myśl ? Pozdrawiam |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Diwi @ 2005-10-01 12:06:44) Nie rozumiem. Możesz rozwinąć swoją myśl ? mojavi.org .. sciagnij sobie wersje 3.0 i w katalogu samples masz plik validator.ini lub tutaj tez masz cos w tym stylu.. http://www.xisc.com/wiki/index.php/A_tutor...sing_validators jesli chcesz tworzyc cmsa to mozesz tez wykorzstac jakis framework, dzieki temu bedziesz mial mniej roboboty Ten post edytował sf 1.10.2005, 13:47:01 -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hmm.. a jaki framework polecalibyście do tego typu aplikacji ?
Pozdrawiam |
|
|
![]()
Post
#9
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Wybór frameworka zależy tylko i wyłącznie od Twoich preferencji i oczekiwań, a więc ściągnij na co się natrawisz i testuj, testuj
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Acha a teraz mam jeszcze pytanie co do koncepcji związanej z użytkownikami. Tak więc wszystko będzie wyglądać dosyć podobnie. Tabela users w bazie danych będzie miała taką strukturę:
Kod id | username | password | additional_info | group Przy czym: I. ID to chyba wiadomo (jak zwykle ![]() II. Username czyli nazwa użytkownika III. Password czyli hasło IV. Additional info czyli dodatkowe informacje które mogą wyglądać np. tak: Kod email: diwi@diwi.pl; gg: 3088731; tlen:; data_urodzenia: 31-12-9999; ranga: administrator; No i znowu tak jak w przypadku zarządzania treścią additional info zawiera dodatkowe informacje o użytkowniku ![]() V. Grupa do której należy użytkownik. Oczywiście każda grupa będzie posiadała określone prawa ![]() No i oczywiście czy takie rozwiązanie jest również dobre ? Pozdrawiam |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
a nie mozesz zrobic dla kazdej tej danej osobnej kolumny? dla nr gg osobna kolumne, dla ragni osobna kolumna itd., np. chcesz wyswietlic uzytkownikow, ktory dzis maja urodziny.. i co robisz? ;] wyciagasz wszystkie rekordy.. potem je obrabiasz w php i spradzasz? ;}
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ale takie rozwiązanie jest bardziej elastyczne dla klienta. Jeżeli nie zna się on wogóle na programowaniu ani bazach danych to napewno nie umie dodać sobie dodatkowej kolumny do tabeli. Tutaj wystarczy tylko dodanie odpowiedniej opcji w panelu administracyjnym. Co do wyciągania użytkowników którzy mają urodziny:
Aż tak trudno ułożyć takie zapytanie ![]() Pozdrawiam Edit: No cóż w sumie można by jeszcze robić alter table w panelu administracyjnym. Chociaż nie mam pewności czy zapytanie biorące dane z kolumny a nie pola typu text będzie wydajniejsze. W sumie także nie trzeba będzie robić explode przy oddzielaniu danych. Ten post edytował Diwi 1.10.2005, 20:11:25 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 742 Pomógł: 0 Dołączył: 14.12.2003 Skąd: Gdańsk, Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
a nie lepiejzrobic dodatkową tabelę z atrybuitami? tj tabela:
key |val | userid i przykładowy wpis key = gg val = 41843 userid = n kay = dbirth val = 30.01.1989 userid = n |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
NO tak ale wtedy zapychamy strasznie bazę rekordami. IMHO lepiej wrzucić wszystko do jednej kolumny niż mieć bardzo dużo rekordów. Wg twojego rozwiązania dla n liczby użytkowników miałbym tyle rekordów:
n = ilość userów v = ilość dodatkowych atrybutów ilosc_rekordow = n*v I jest jakiś sens zapychać tak bazę ? Jak dla mnie to lepiej puścić explode w skrypcie niż mieć zapchaną bazę ![]() Pozdrawiam |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 1 Dołączył: 23.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie podoba mi się to trzymanie całych obiektów w jednym polu, operacje na takiej tabeli są bardzo utrudnione, ale może u Ciebie to zda egzamin. Pozatym jak już to nie lepiej wrzucić tam xmla? a nie jakieś "nazwa: procesor" tylko <nazwa>procesor</nazwa> ponadto argument o dużej ilości argumentów do mnie nie trafia, po to są bazy by do nich pchać co popadnie
![]() ![]() -------------------- Słyszałem, że macie tutaj jakieś takie php... fajne to, dobre to jest?
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hmm.. pomysł z xml-em podoba mi się
![]() ![]() ![]() Pozdrawiam |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 1 Dołączył: 23.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Prasuj to domem, bo jabyś chciał robić na pregach to byłoby bez sensu wtedy lepiej tak jak proponujesz, ale mimo wszystko zachęcam do sposobu z atrybutami i wirtualnymi klasami contentu, a może zainteresuj się xslt i przerabiaj obiekty z bazy na xhtml odrazu, wtedy może nie dajesz użytkonikom większego wyboru jeśli chodzi o strukturę, ale w dobie css2 i css3 grafikę powinno się robić w stylach, podobnie jak pozycjonowanie a nie wykorzystywać do tego xhtml...
-------------------- Słyszałem, że macie tutaj jakieś takie php... fajne to, dobre to jest?
|
|
|
![]()
Post
#18
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie no ludzie, opanujcie się.
Trzymać w bazie XML'a, to szczyt braku umiejętności projektowania struktur danych i ich przechowywania! Poza tym poroniony pomysł. Najlepszym wyjściem jest trzymanie danych w tej sytuacji w bazie, w tabelach. Nawet jeśli miałyby mieś bardzo dużo pól. Dane są wtedy bardzo łatwo dostępne, bez problemu można po nich wyszukiwać, sortować, i.t.d. A z XML'em :?: Ciekawe jak byś zrobił cos w stylu:
Musiałbys pobrać wszystkie pliki XML sparsować porównać warunkami potem usunąć pola z bazy. A jak masz 10000 rekordów :?: Co wtedy :?: Szaleństwo i głupota. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat wszystko zachęcam do sposobu z atrybutami i wirtualnymi klasami contentu Sczerze mówiąc nie wiem o czym mówisz ![]() ![]() Pozdrawiam Edit: @Mike_Mech: Ale przy contencie tak niestety nie mam jak zrobić. Rozumiem przy userach da się to zrobić ale przy treści nie ma jak bo wtedy wszystko znowu zostaje przydzielone na stałe :/ Ten post edytował Diwi 1.10.2005, 22:48:19 |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 16.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
a nie mozesz zrobic dla kazdej tej danej osobnej kolumny? dla nr gg osobna kolumne, dla ragni osobna kolumna itd., np. chcesz wyswietlic uzytkownikow, ktory dzis maja urodziny.. i co robisz? ;] wyciagasz wszystkie rekordy.. potem je obrabiasz w php i spradzasz? ;} Rozwiązanie które proponujesz nie jest dobre, sprzyja powstawaniu redundancji. --- ~.rh- zwracaj uwagę na daty postów na które odpowiadasz. Ten wątek jest z przed prawie roku, jest duuuuże prawdpodobieństwo że jest nieaktualny. ~mike_mech |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 02:12 |