Chciałbym was spytać w jaki sposób zarządzać stronami gdy tworzy się CMS'a. Na chwilę obecną moje umiejętności pozwalają mi tylko na zarządzanie stronami w taki sposób, że w bazie danych mam 2 kluczowe pola: ID oraz PARENT_ID, które określają numer strony oraz numer strony nadrzędnej (rodzica) do którego należy jakaś podstrona.
Spróbuje w miarę przejrzyście opisać o co mi chodzi. Jeśli coś opisze źle to proszę o poprawienie.
Np jeśli mam pierwszą (ITEM) stronę z wartościami ID = 1 oraz PARENT_ID = 0 to jest ona oznaczona jako podstawowa, a jeśli mam mam drugą strone (SUBITEM) z wartościami ID = 2 oraz PARENT_ID = 1 to przynależy ona do strony ITEM. Krótko mówiąc SUBITEM jest podstroną ITEM. W menu na stronie wyświetla się ta strona gdy najedzie sie myszką na ITEM.
Takie rozwiązanie jest ok, jeśli chodzi o proste strony. Lecz gdy chciałbym np dodać stronę "Galeria", to już mam problem z jej identyfikacją w kodzie (strona galeria posiada w bazie danych osobną tabelę, gdzie są umieszczane informacje dotyczące zdjęć, ich lokalizacji, nazwy plików itp).
W kodzie pobieram dane z tabeli STRONY
$r = mysql_query('select * from strony where parent_id = 0'); // pobierz strony podstawowe
if($r){
while($row = mysql_fetch_array($r))
{
echo "<a href='index.php?id={$row['id']}'>$row['nazwa_strony']</a>";
$r = mysql_query('select * from strony where parent_id = {$row['id']}');
if(mysql_num_rows($r) > 0){
// wyświetl podrzędne strony
}
}
}
i jakoś to działa. W menu są wartości np: Home, O nas, Kontakt, Galeria.
Wyświetlenie zawartości strony
if ($_GET['fsid']) {
$fsid = $_GET['fsid'];
$sqlCommand = "SELECT body,title FROM strony WHERE id='$fsid' ";
}
else {
$fsid = '1';
$sqlCommand = "SELECT body,title FROM strony WHERE id='$fsid' ";
}
if(isset($_GET['fsid']) && isset($_GET['ssid'])) {
$ssid = $_GET['ssid'];
$sqlCommand = "SELECT body,title FROM strony WHERE id='$ssid' ";
}
$query = mysql_query($sqlCommand) or die (mysql_error());
while ($row = mysql_fetch_array($query))
{
$body = $row['body'];
$title = $row['title'];
}
No i ładnie się wyświetla zawartość pola body(tresc, jak zwal tak zwał). Natomiast gdy chcę wyświetlić galerię to sprawdzam to tak:
if(isset($_GET['title']) && $_GET['title'] == 'galeria')
{
//pobierz dane z tabeli galeria i wyświetl zdjęcia
}
i tak z każdą niestandardową stroną. Tak więc plik index.php jest nieciekawie zorganizowany.
Stąd moje pytanie. Jak to można rozwiązać, zeby to miało ręce i nogi?
Może jakiś tutorial znacie który by mnie nakierował?
Dzięki za wszelkie sugestie.
Ten post był edytowany przez Yourek dnia: 10 Luty 2012 - 10:05

Zaloguj się
Rejestracja
Pomoc



ASUS OC School
Ostatnio dodane tematy
Nowe artykuły
Najnowsze pliki

Wróć do góry
Multi cytowanie