Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Własny CMS - problem z treścią podstron.
Forum PHP.pl > Forum > PHP
BenekeX2
Witam

Chciałbym stworzyć własny mini cms, który będzie z panelu administratora mógł tworzyć menu, podstrony i stopkę na początek.
Podstawy PHP znam SQL znam dość dobrze, wiec z MySQL nie będzie problemu.
Jestem na etapie projektowania tego wszystkiego sobie w głowie i na kartce i mam pewne pytanie:
Jak rozwiązać dodawanie podstron z panelu admina. Czy przesyłać całą zawartość do mysql i potem pobrać na stronę po odpowiednim id czy jak to zrobić żeby było optymalnie (wydaje mi się ze to kiepski pomysł) , bo np z menu nie ma problemu bo wyśle sobie do bazy adres i tytuł i potem pobiorę co będę chciał i porównam z aktualnym adresem.

Z góry dzięki za odpowiedz

Pozdrawiam
lobopol
Gdzieś dane strony musisz trzymać Najprostsza opcja to tabela (i dla takiej strony raczej najlepsza) w formie:
  1. page:
  2. -id
  3. -url //potrzebny jeżeli chcesz strony odpalać po ich nazwach, a nie id pamiętać trzeb o tym, aby walidować adresy i nie dopuszczać niepoprawnych. Dodatkowo pole powinno być unikalne
  4. -url_title //w menu link powinien mieć formę <a href="url">url_title</a>
  5. -title -meta title (niekonieczne)
  6. -description -meta description (niekonieczne)
  7. -keywords -meta keywords(niekonieczne)
  8. -content - sama treść strony czy plain text, czy bbcode czy html to już twoja wola
  9. -status (tinyint :P wolę niż enuma) 0 strona w koszu, 1 strona opublikowana, 2 strona nieaktywna, 3 strona np. promowana, 4 jak sobie wymyślisz inny itd.


Wyciągnięcie menu to bierzemy tylko url i url_title gdzie status = 1 lub 3(jeżeli mamy ten status)

Wyświetlenie strony szukamy w bazie czy jest strona o takim adresie jak w pasku i czy ma status 1 lub 3

Można to oczywiście na plikach zrobić, ale znacznie lepszą opcją jest baza
BenekeX2
jeżeli dodam pole url to chyba nie będę się musiał bawić z htaccessem w tym przypadku ?
GameMaker
Bez htacces nie otrzymaszm łatwych urli np :

http://costam.pl/1,lubie_tamt_i_owo.html

Tylko bedziesz musiał uzyc cos takiego :

http://costam.pl/?page=1
BenekeX2
a jak to jest w przypadku edytorów tekstów np takich jak tu jest na forum gdzie mogę np pogrubic, wyjustować i tak dalej, a tym sie pracuje ponowienie jak z formularzem ? bo jak dodam kilka podstron to chce miec możliwość odrazu edycji tej podstrony. Ten edytor też przechowuje tekst w bazie danych i pobiera go i aktualizuje na bierząco ?

lobopol
Poszukaj wysiwyg w google, mnóstwo ich jest (np. tinymce, fckeditor i wiele innych część http://www.queness.com/post/212/10-jquery-...h-text-editors)
BenekeX2
Mam taki kawałek kodu:

  1. if($_GET['id'] == '1')
  2. {
  3. echo'<a href="index.php?id=1&add=new"></a>';
  4.  
  5. if($_GET[add] == 'new') {
  6. echo"dodaj nowe";
  7. }
  8. }


po wejsciu na podstrone index.php?id=1 mam link do nastepnej po kliknieciu w niego dodaje mi tekst do poprzeniej, jak zrobić żeby po wejsciu na index.php?id=1&add=new wyświetlała sie tylko ta zawartość która na niej jest bo w tej chwili spełnia mi cały czas oba warunki
Daiquiri
Dodaj warunek w stylu:
  1. if ($_GET['id'] == '1' && !isset($_GET['add'])) // jeżeli w adresie jest $_GET['id'] równe 1 i nie ma ustawionego $_GET['add']
O ile dobrze Cię rozumiem.
BenekeX2
Chodzi mi o to że gdy wchodze w ?id=1 mam link do ?id=1&add=new. Jak klikne w ten link to wyświetla mi sie zawartość tej strony i dodana zawartość poprzedniej. A chce żeby wyświetlała się tylko zawartość add=new
Daiquiri
No to przecież dodając powyższy warunek (zamiast if ($_GET['id'] == 1) tak właśnie się stanie. Zobaczysz jego zawartość tylko wtedy, gdy $_GET['add'] nie zostanie ustawione. Potem wystarczy dodać drugi warunek poniżej ale już z "ustawionym" $_GET['add'].

Opcjonalnie dodać warunek if (!isset($_GET['add'])) przed wyświetleniem linka.
BenekeX2
Mam taki problem z połączeniem z MySQL. Wywala mi taki błąd

  1. Warning: mysql_connect() [FUNCTION.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)


Nastąpiło to wtedy gdy chciałem przenieść swoj skrypt z localhosta na serwer yoyo.pl zeby go przetestować. Na localu działa bez problemu.

Moj skrypt połączenia wygląda tak:

  1. <?php
  2. include ('db_config.php');
  3.  
  4. function db_connect() {
  5.  
  6. $connect = mysql_connect(HOST,USER,PASSWORD);
  7.  
  8. if(!connect) {
  9. }
  10. if(!$db = mysql_select_db(DB)){
  11. }
  12. return $connect;
  13. }
  14. ?>


plik config.php to zdefinowane paramety połączenia.

Jak myslicie gdzie może być błąd ?
Damonsson
Zmieniłeś te wszystkie parametry (HOST, USER, PASSWORD, DB) w db_config.php na takie jakie Ci przydzielono na yoyo.pl?
BenekeX2
no oczywisicie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.