![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Tworze engine serwisu. 1. Zapisywać nazwy stron i informacje o nich(id, auth, tpl) w bazie danych czy w inny sposob? 2. Jak zorganizować i zapisać strukturę stron (kategoria -> strona -> podstrona) aby na podstawie tych informacji automatycznie tworzyć np. mapę serwisu, menu... -------------------- pozdrawiam, chfast
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 11.09.2003 Skąd: Giżycko/Wawa Ostrzeżenie: (0%) ![]() ![]() |
Powiem tylko jak ja zawsze robilem takiego typu serwisy:
na stronie indexowej robilem cos a'la tpl, czyli powiedzmy header, body, footer, gdzie header i footer byly includowane do kazdego dzialu, a w sekcji body byl link typu index.php?dzial=dzial1, dzial1 zapisywalem w pliku dzial1.jakiesdziwnerozszerzenie np. dzial1.www, zeby ciezko bylo znalezc te pliczki... no a na stronie dzial1 link do kolejnej podstrony... -------------------- WWJD?
GG 4004548 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dziwne rozszerzenie... wiesz, jak sie skrypt wysypie to pokazuje gdzie jest błąd, razem z katalogiem. A załozę się że rozszerzenie .www nie jest przetwarzane przez serwer, więc chakier :-) dostanie wszystko jak na dłoni - hasełka itd.
Stosuj rozszerzenie .php. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 11.09.2003 Skąd: Giżycko/Wawa Ostrzeżenie: (0%) ![]() ![]() |
no, ale jak masz ustawione w apaczu, zeby www kompilowal jak php, to nie powinien wywalac bledu..., achodzi raczej u umieszcenie kodu zwyklego html'a a nie hasel itp., przeciez to byloby zbyt proste do zhakierowania, poza tym odnosnie indexowania takich stron to sie jeszcze nawet nigdy nad tym nie zastanawialem....
-------------------- WWJD?
GG 4004548 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Na zdalnym serwerze też tak masz ustawione?
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 11.09.2003 Skąd: Giżycko/Wawa Ostrzeżenie: (0%) ![]() ![]() |
nie mam, aczkolwiek juz raczej nie stosuje w/w metody
-------------------- WWJD?
GG 4004548 |
|
|
![]()
Post
#7
|
|
![]() TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%) ![]() ![]() |
Cytat 1. Zapisywać nazwy stron i informacje o nich(id, auth, tpl) w bazie danych czy w inny sposob?
Używaj bazy danych o mniejwięcej takiej strukturze: Kod ID|Autor|Plik
Cytat 2. Jak zorganizować i zapisać strukturę stron (kategoria -> strona -> podstrona) aby na podstawie tych informacji automatycznie tworzyć np. mapę serwisu, menu...
Rób układ folderu i potem pobieraj wszystkie nazwy z folderów i generój odnośniki, następnie otwieraj każdy folder i znowu generuj odnośniki. Dzięki czemu możesz wygenerować mapę strony bez ograniczenia folderów. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Rób układ folderu i potem pobieraj wszystkie nazwy z folderów i generój odnośniki, następnie otwieraj każdy folder i znowu generuj odnośniki. Dzięki czemu możesz wygenerować mapę strony bez ograniczenia folderów.
Pomysł jest godny zainteresowania, ale widze kilka problemów. 1. Czy to wydajny sposób? Bo przy każdem wczytaniu strony przeba prześledzić wszystkie foldery. 2. Gdy otrzymujemy w zmiennej $_GET['id'] ID strony to trzeba "zkatalogować" wszystkie strony (patrz wyżej). Cieżka taką stronę odnaleźć. Nie jest to chyba optymalny sposób. Ta zabawa z folderami podsunęła mi pewien pomysł. Co myślicie o tym, żeby zapisać do bazy danych coś takiego: Kod +----+---------+------------------------------+
| ID | NAME | PATH | +----+---------+------------------------------+ | 1 | strona1 | strona/podstrona/strona1.xml | | | | | Dzięki temu bez problemu możemy odczytać jacy są "przodkowie" danej strony (np. explode()) . Jednocześnie dany plik może być w tym samy folderze co jego "przodkowie" (bo można includować tylko ostatnią część zmiennej $PATH). Wtedy stworzenie czegoś na wzór Kod Jesteś w: Strona Główna -> Dział -> Poddział -> Strona1 to "pikuś". Z mapą serwisu też nie powinno być problemu.
Chce się jeszcze dowiedzieć jak to jest rozwiązane w modułach obsługujących np. artykuły czy download. -------------------- pozdrawiam, chfast
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Do tej struktury dodaj sobie pole "parent" gdzie bedziesz zapisywał ID katalogu nadrzędnego.
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
O to mi wcześniej chodziło, tylko że nieudolnie to przedstawiłem.
Kod +----+---------+-------------+-------------+
| ID | NAME | FILE | PARENTS | +----+---------+-------------+-------------+ | 1 | strona1 | strona1.xml | id1/id2/id3 | | | | | | -------------------- pozdrawiam, chfast
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
takie roziwązanie ma tytlko 1 wadę.
Przeniesienie jednego 'katalogu' lub usuniecie, zmiana nazwy itp. powoduje, że musisz przeskanować całą bazę i poprawić/ wygenerować wszystkie ścieżki od nowa. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#12
|
|
![]() TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%) ![]() ![]() |
Wystarczy odpowiednia pętla i auto sprawdzanie linków
-------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
moja propozycja:
informacje nt. kategorii, stron i podstron przechowywac w nastepujacej strukturze bazy danych Kod +-------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | kat_id | int(10) unsigned | | PRI | NULL | auto_increment | | kat_nazwa | varchar(20) | | | | | | kat_opis | varchar(255) | | | | | | kat_aktywna | enum('0','1') | | | 0 | | +-------------+------------------+------+-----+---------+----------------+ +----------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+------------------+------+-----+---------+----------------+ | strony_id | int(10) unsigned | | PRI | NULL | auto_increment | | kat_id | int(10) unsigned | | | 0 | | | strona_nazwa | varchar(20) | | | | | | strona_opis | varchar(255) | | | | | | strona_aktywna | enum('0','1') | | | 0 | | +----------------+------------------+------+-----+---------+----------------+ +----------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+------------------+------+-----+---------+----------------+ | podstr_id | int(10) unsigned | | PRI | NULL | auto_increment | | strony_id | int(10) unsigned | | | 0 | | | podstr_nazwa | varchar(20) | | | | | | podstr_opis | varchar(255) | | | | | | podstr_aktywna | enum('0','1') | | | 0 | | +----------------+------------------+------+-----+---------+----------------+ wowczas bedziemy mieli mozliwosc swobodnego dodawania kategorii... itd - przyklad zamieszczonych danych ponizej Kod KATEGORIE:
sport motoryzacja komutery ... STRONY //dotyczy kategorii: sport pilka nozna koszykowka ... PODSTRONY: //dotyczy stron: koszykowka nba polska liga ... przy takiej strukturze bedziemy mogli np. aktywowac i deaktywowac dane kategorie, strony... (wszystkie pola w nazwie aktywna) kod sql [sql:1:b89299cbb0] CREATE TABLE kategorie ( kat_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, kat_nazwa CHAR(20) NOT NULL, kat_opis VARCHAR(255) NOT NULL, kat_aktywna ENUM('0','1') NOT NULL, PRIMARY KEY (kat_id) ); CREATE TABLE strony ( strony_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, kat_id INTEGER UNSIGNED NOT NULL, strona_nazwa CHAR(20) NOT NULL, strona_opis VARCHAR(255) NOT NULL, strona_aktywna ENUM('0','1') NOT NULL, PRIMARY KEY (strony_id) ); CREATE TABLE podstrony ( podstr_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, strony_id INTEGER UNSIGNED NOT NULL, podstr_nazwa CHAR(20) NOT NULL, podstr_opis VARCHAR(255) NOT NULL, podstr_aktywna ENUM('0','1') NOT NULL, PRIMARY KEY (podstr_id) ); [/sql:1:b89299cbb0] co o tym sadzicie? |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Podstrona nie może już mieć podstrony. A to kiepsko. nakłada limity.
-------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Podstrona nie może już mieć podstrony. A to kiepsko. nakłada limity.
Tak, zgadza się. Jednak wydaje mi się, że można z góry założyć pewną strukturę serwisu. Przecież z drugiej strony nie można dodawać w nieskończoność kategorii, podkategorii, podpod... To byloby chyba gorsze rozwiazanie niz to, ktore przedstawilem... |
|
|
![]()
Post
#16
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
To zalezy czy serwis ma byc rozbudowany czy nie (np. strona domowa).
Moze jednak sie okazac, ze bedziemy chcieli miec np taki uklad: glowna->strony_domowe->uzytkownik->download->... W tym przypadku przydala by sie nie skonczona mozliwosc tworzenia podstron. |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Starajmy się tworzyć rzeczy uniwersalne, lub przynajmniej modułowe
![]() -------------------- |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat takie roziwązanie ma tytlko 1 wadę.
Przeniesienie jednego 'katalogu' lub usuniecie, zmiana nazwy itp. powoduje, że musisz przeskanować całą bazę i poprawić/ wygenerować wszystkie ścieżki od nowa. Niekoniecznie. W polu 'PARENTS' podajemy id rodziców. Nie zabrania nam to zmienić nazwy pliku dla danego identyfikatora. Faktem jest, że identyfikatory nie mogą już być zmieniane, ale przecież coś musi być stałe, żeby połączyć odpowiednie rekordy ze sobą. Propozycja mhs nie bardzo mi się podoba. Tak samo jak w mojej bazie rekordy są łączone przez id. Ale trzeba użyć już wiekszej ilości tablic. Poza tym np. w tablicy 'podstrony' znajdowały by się strony zupełnie nie związane ze sobą tematycznie. Może i tablica nie jest do oglądania, ale po co taki bałagan? -------------------- pozdrawiam, chfast
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarząd Postów: 1 512 Pomógł: 2 Dołączył: 22.04.2002 Skąd: Koszalin ![]() |
Cytat Cytat Podstrona nie może już mieć podstrony. A to kiepsko. nakłada limity.
Tak, zgadza się. Jednak wydaje mi się, że można z góry założyć pewną strukturę serwisu. Przecież z drugiej strony nie można dodawać w nieskończoność kategorii, podkategorii, podpod... To byloby chyba gorsze rozwiazanie niz to, ktore przedstawilem... nie sadze nalezy nie ograniczac mozliwosci zas twoje rowiazanie jest ..... proste - proste gdyz wiadomo o co chodzi; proste - gdyz nie wysililes sie za bardzo :-) proponoje zainteresowac sie systemami do przechowywania drzewek |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat proponoje zainteresowac sie systemami do przechowywania drzewek Jakieś propozycje?
-------------------- pozdrawiam, chfast
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 09:18 |