Temat: Budowa CMS

Witam wszystkich na początku. Tworzę strony z zamiłowanie ale chce na tym również zarabiać. Strony bez panelu administratora umie tworzyć, znam dobrze HTML, CCC oraz podstawy PHP. Obecnie uczę się MySQL i na podstawie różnych tutorialów i kursów chciałbym stworzyć mini CMS. Wiem że będzie krytyka w moim kierunku ale to ma być coś na zasadzie:

- przykładowo strona miasta
- na stronie głównej oczywiście newsy ( to już umie zrobić)
- podstrony np:
  - historia
  - wydarzenia
  - władze
  - atrakcje

I tu mam pytanie czy przy tworzeniu CMS każda podstano to nowa tabela w bazie danych i na zasadzie np systemu newsów wprowadza się dane do podstron? Tylko oczywiście odpowiednie rekordy?

Mam nadzieje że w miarę dobrze wyjaśniałem o co mi chodzi

Thumbs up Thumbs down

2

Odp: Budowa CMS

Widac, admina nie ma i burdel jest, ale mam nadzieje, ze to przeczytasz. : )

Tworze od 3 (teraz gdzies bedzie okolo 4) lat w PHP i MySQL, i postaram Ci sie pomoc z tym. ; )

Jesli chcesz miec newsy tworzysz przykladowa tabelke.
Tabela: `newsy`, a w niej:

`id` - auto_in..., int(11)
`temat` - varchar(100)
`tresc` - varchar(500)
`data` - date [czy jakos tak]

Cala tabelka ma miec utf8_general_polish czy cos w tym stylu. ;]

Potem dzieki id pobierasz poszczegolnego newsa, wyswietlasz jego dane (temat, tresc, date + ew. mozesz dodac jeszcze `autor`) - np.

<?php
$IdNewsa = (int)$_GET['id']; //Dodajemy (int) gdyz mamy pobrac tylko liczbe
$News = mysql_query("SELECT * FROM `newsy` WHERE `id` = ".$IdNewsa."); //Wyszukujemy newsa w bazie danych - gdzie ID powinno byc rowne $IdNewsa
if($News){ //Jesli istnieje taki news, wyswietlamy go
 echo 'Temat: '.$News['temat'].'<br/>Tresc: '.$News['tresc'].'<br/> Data: '.$News['data'].' / Autor: '.$News['autor'];
}else{ //Jesli nie ma takiego newsa, wyswietlamy komunikat
 echo 'Nie ma takiego newsa!';
?>

Zeby miec liste newsow, robisz tak i wyswietlasz je przez while() np.

<?php
$PobierzNewsy = mysql_query("SELECT * FROM `newsy`"); //Pobieramy wszystkie dostepne newsy
while($PobierzNews = mysql_fetch_array($PobierzNewsy)){ //Przepuszczamy newsy przez while() by otrzymac kazdego newsa pojedynczo
 echo 'Temat: '.$PobierzNews['temat'].'<br/>Tresc: '.$PobierzNews['tresc'].'<br/>Data: '.$PobierzNews['data'].' / Autor: '.$PobierzNews['autor'].' / <a href="news.php?id='.$PobierzNews['id'].'">Zobacz</a>'; //Wyswietlamy poszczegolnego newsa
}
?>

Jesli chodzi o podstrony to tworzysz tabele np. `strony`, i rekordy:

`id` - auto_inc..., int(11)
`nazwa`- varchar(100)
`tresc` - varchar(1000)

Ja preferuje bardziej varchar zamiast text bo czasami z text moga byc problemy. ; )

I potem jak w newsach, pobierasz i wyswietlasz - ale tylko jak w danym newsie! Nie w calej liscie.
Czyli: Przez ID sprawdzasz czy strona istnieje, jesli tak wyswietlasz jej zawartosc (temat, tresc), jesli jednak nie istenieje taka strona w bazie danych, wyswietlasz komunikat.

Mam nadzieje, ze pomoglem. : )
Przepraszam za brak znakow PL, ale mam problemy z systemem. : ]

Copyright (c) 2011 by EnergyBasser - Wszelkie Prawa Zastrzezone!
Zakaz rozpowszechniania kodow na innych stronach, forach itp. bez mojej zgody. Kody calkowicie pisane przeze mnie. Zastrzegam sobie prawo do nich.

Nowy Nick: EnergyBasser. ; )

3

Odp: Budowa CMS

No dzięki za chęci. Już coś sam wymyśliłem. I tak bede miał dwie bazy danych albo dwie tabele. Jedna to newsy a druga tabela to podstrony a każda podstrona to nowy rekord. Dobrze? Kolejna sprawa jak uzyskać odnośnik do tego rekordu czyli domojej podstrony? I tu mam dylemat prościej by było ręcznie wprowadzić w kodzie HTML hiperłącze do nowej podstrony a tworzyć ją w bazie poto abym później mógł ją łatwo edytować. Tylko nie wiem jak bedzie wyglądał taki odnośnik do tego rekordu. A można łatwo robić zeby z Panelu Administracyjnego dodawać w pliku index.php kolejne podstrony?
Czyli Tworze nową podstrone czyli nowy rekord w btabeli bazy damnych o naziwe przykładowo "Kontakt" i taki sam link Tworzy mi się w pliku index.php może troche namieszałem ale mam nadzieje że mnie zrozumiesz. Dzieki z góry

Thumbs up Thumbs down