Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Struktura stron (kategoria>strona>podstrona)
chfast
post 29.09.2003, 22:21:05
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
Go to the top of the page
+Quote Post
kliszaq
post 30.09.2003, 08:24:56
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
Go to the top of the page
+Quote Post
spenalzo
post 30.09.2003, 08:35:07
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.


--------------------

Go to the top of the page
+Quote Post
kliszaq
post 30.09.2003, 11:55:51
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
Go to the top of the page
+Quote Post
spenalzo
post 30.09.2003, 11:57:17
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?


--------------------

Go to the top of the page
+Quote Post
kliszaq
post 30.09.2003, 12:12:01
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
Go to the top of the page
+Quote Post
Puciek
post 30.09.2003, 12:30:40
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%)
XX---


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.


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
chfast
post 30.09.2003, 14:12:36
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
Go to the top of the page
+Quote Post
spenalzo
post 30.09.2003, 22:15:44
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.


--------------------

Go to the top of the page
+Quote Post
chfast
post 30.09.2003, 22:40:02
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
Go to the top of the page
+Quote Post
DeyV
post 1.10.2003, 09:36:39
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..."
Go to the top of the page
+Quote Post
Puciek
post 1.10.2003, 11:18:24
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%)
XX---


Wystarczy odpowiednia pętla i auto sprawdzanie linków


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
mhs
post 1.10.2003, 13:38:44
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?
Go to the top of the page
+Quote Post
scanner
post 1.10.2003, 13:44:21
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.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
mhs
post 1.10.2003, 14:09:10
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...
Go to the top of the page
+Quote Post
Seth
post 1.10.2003, 14:18:21
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.
Go to the top of the page
+Quote Post
scanner
post 1.10.2003, 14:38:51
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 smile.gif


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
chfast
post 1.10.2003, 18:23:27
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
Go to the top of the page
+Quote Post
itsme
post 1.10.2003, 18:38:17
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
Go to the top of the page
+Quote Post
chfast
post 1.10.2003, 18:41:16
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
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 24.06.2025 - 09:18