Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zawartość case do zmiennej ?!
Forum PHP.pl > Forum > Przedszkole
php11
Witam serdecznie smile.gif

Dzięki Wam tworzę "własny cms".

  1. switch ($_GET['page']) {
  2. case 'start':
  3. $id = '1';
  4. $title = 'title dla przegladarki';
  5. $opis = 'meta - opis';
  6. $slowa = 'meta - słowa';
  7. $h1 = 'tytuł artykułu';
  8. $tresc = 'nazwa pliku z zawartością artykułu';
  9. $modulTytul = '';
  10. $modulTresc = '';
  11. break;
  12. }


Tak, jak powyzej generuję sobie strony.
Wszystko działa pięknie, tyle, że menu muszę wpisywać ręcznie.
Mogę do kazdego case dopisać zmienne z linkami, ale nie wiem, jak je wyciągnąć i automatycznie zbudować menu.

Z góry dziękuję za pomoc smile.gif
darko
W cmsie powinieneś skorzystać z routingu, a nie pchać wszystko do switcha. Zobacz wątek.
php11
Darko, bardzo dziekuję za odpowiedź.

Mój cms napisałem w cudzysłowie wink.gif To 10 - 15 podstron.
Tyle, że wkurza mnie ręczne robienie menu.

Przeczytałem tamten wątek i... za bardzo nie kumam smile.gif

Jeżeli jest sposób na wyciąganie zmiennej z case to mnie to zadowoli.

Dzięki smile.gif


p.s. Teraz pomyslałem, że linki powienienem mieć oddzielnie, w innym case. Tylko jak to mam zrobić?
darko
Nawet najprostszy router jest dokładnie tym, czego szukasz, zerknij na przykład. Ostatecznie zamiast pisania routera trzymaj dane do wyświetlenia dowolnej strony w bazie.
php11
Jeszcze raz bardzo dziekuję smile.gif

Pewnie ja tego nie rozumiem, więc jeszcze raz:
Pragnę zrobić tak, że za pomocą pętli wyświetlę menu. Informacje potrzebne do zbudowania linka trzymam w case dla każdej "podstrony".

Kurde, sorry za lamerstwo.
Proste linki robię w .htaccess.
darko
Jak Ci się rozrośnie cmsik, to te informacje, które trzymasz w case dla każdej podstrony najlepiej będzie przenieść do bazy danych i po stronie backendu umożliwić ich edycję jakimś prostym formularzem. Oszczędzi Ci to pisania wielu instrukcji case na każdej podstronie, poza tym cmsy oparte o pliki są mniej skalowalne niż te, oparte o bazę danych.
php11
Wreszcie zrozumiałem, co napisałeś smile.gif

Tak, znam trochę cms-y i wiem, jak działają. Szczególnie jeden.

Nie robię nic wielkiego i nigdy nic wielkiego z tego nie będzie.
Po prostu, zamiast tworzyć listę z pozycjami menu, chciałbym wyręczyć się automatem - php, a nie wiem, jak smile.gif
darko
W takim razie raz tworzysz tablicę na podstawie tego, co masz w case'ach, serializujesz ją do pliku. Przy każdym żądaniu na początku wczytujesz i deserializujesz tablicę, nastęnie sprawdzasz czy
występuje w niej klucz section i jeżeli występuje, to masz już wszystkie dane do wyciągnięcia pod tym kluczem. Rozwiązanie lekkie i dla mikrorozwiązań w miarę wydajne. Przykładowa tablica:


  1. array('start' => array('id' => '1',
  2. 'title' => 'title dla przegladarki',
  3. 'opis' => 'meta - opis',
  4. 'slowa' => 'meta - słowa'),
  5. 'kontakt' => array('id' => '2',
  6. 'title' => 'title dla przegladarki2',
  7. 'opis' => 'meta - opis2',
  8. 'slowa' => 'meta - słowa2')
  9. // itd.
  10. );
php11
"deserializujesz" cza aby na pewno mnie nie obrażasz?! wink.gif

Dzięki wielkie, sprawdzę Twoje rozwiązanie (jak mi sie uda) i dam znać.

Spokojnej niedzieli...
php11
Dzięki raz jeszcze.
Walczę z odczytaniem tych tablic sad.gif
darko
http://www.php.net/manual/en/function.unserialize.php
Pokaż, jak walczysz.
php11
Wcale nie jestem pewien, czy chcesz to ogladać...
  1. $menuTablica = array ('aaaaa' => array(
  2. 'menuId' => '01',
  3. 'menuTitle' => 'title aaaaa',
  4. 'menuLink' => 'link aaaaa'),
  5. 'bbbbb' => array(
  6. 'menuId' => '02',
  7. 'menuTitle' => 'title bbbbb',
  8. 'menuLink' => 'link bbbbb'),
  9. );
  10.  
  11. echo '<hr />';
  12. print_r($menuTablica);
  13. echo '<hr />';
  14. print_r($menuTablica[aaaaa]);
  15. echo '<hr />';
  16. print_r($menuTablica[bbbbb]);
  17.  


Zupełnie nie wiem, jak wyłuskać poszczególne wartości...
darko
a gdzie serialize / unserialize i zapis do pliku?
php11
Dzieki, za Twoją cierpliwość smile.gif

Eee... Do tego jeszcze nie doszedłem.

p.s. To mnie raczej przerasta, ale dzieki za poświęcony czas.
Pozostanę przy ręcznym menu smile.gif
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.