Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wyświetlanie na jakiej podstronie jest użytkownik
Forum PHP.pl > Forum > Przedszkole
pionas
Cześć,

od kilku dni zastanawiam się jak zrobić zautomatyzowanego breadcamp'a (takiego jak w wordpress czy joomla).
Jak wy sobie poradziliście z tego typu działaniami?
Stworzyliście osobną klasę, czy do podstron dodajecie jakieś informacje, które generują całość?
Może w bazie przechowujecie informację o modułach i na ich podstawie to wyświetlacie?

Pytam bo chcę dopisać go do swojej strony, a nie mam pojęcia od czego zacząć wink.gif

Pozdrawiam i dziękuję
Sephirus
Pracując w jakimkolwiek frameworku MVC nie jest to zadanie trudne - przykładowo wystarczy zrobić sobie ogólnie dostępną tablicę modułów, kontrolerów i akcji

  1. $nav = array(
  2. 'modul' => array(
  3. 'kontroler' => array(
  4. 'akcja' = 'To jest ta akcja'
  5. )
  6. )
  7.  
  8. );
  9.  


Teraz wystarczy sprawdzić po kolei moduł, kontroler i akcję, podstawić opdowiednio do tabeli i mamy wynik do wpisania w tym naszym polu "gdzie jesteś".
Aby zrobić coś w stylu: "strona => artykuly => ze swiata => Najnowsza wersja PHP 8.0 już w sprzedaży!" wystarczy dodać jeszcze tablicę nazw wyświetlanych dla modułów (artykuly) i kontrolerów (ze swiata)

  1. $navModules = array('articles' => 'artykuly');
  2. $navControllers = array('world' => 'ze swiata');


I robisz jakiś jeden skrypt który sczytuje dane moduł/kontroler/akcja i używa odpowiednich tablic by wyświetlić zawartość paska "gdzie jesteś".
by_ikar
Ewentualnie jeżeli chciałbyś coś w rodzaju listy użytkowników i kto gdzie jest, to jeżeli masz w bazie danych tabelę w której umieszczasz użytkowników online (sesja, ip, czas ostatniej wizyty ect) możesz do tego dodać jeszcze jedną kolumnę z tym o czym pisał @Sephirus wtedy przy każdym wejściu na stronę, jak aktualizujesz dane w tabeli z użytkownikami online, zaktualizuj też jego miejsce gdzie się znajduje. Wtedy będziesz mógł zrobić tak jak jest tutaj na forum na samym dole, informację jacy użytkownicy są na tej samej stronie.
pionas
O faktycznie, fajna sprawa, tylko masz jeszcze jakiś pomysł na jeszcze większe zaautomatyzowanie tego?
Obecnie muszę dodać moduły, kontrolery i akcje do tablicy, może dodać je do jakieś tabeli w bazie?
Może coś takiego:
nav_module:
id_modulu
modul // unikalna nazwa przekazana w zmiennej/adresie strony identyfikująca dany moduł
text // tekst który ma być wyświetlany zamiast nazwy modułu


nav_kontroler:
id_kontroler
id_modul
kontroler // unikalna nazwa przekazana w zmiennej/adresie strony identyfikująca dany kontroler
text // tekst który ma być wyświetlany zamiast nazwy kontrolera

nav_akcja:
id_akcja
id_kontrolera
akcja // unikalna nazwa przekazana w zmiennej/adresie strony identyfikująca daną akcję
text // tekst który ma być wyświetlany zamiast nazwy akcji

I potem może coś takiego:
Kod
SELECT akcja.text akcja, kontroler.text kontroler, modul.text modul FROM akcja, kontroler, modul WHERE akcja.akcja='{nazwa_akcja}' and akcja.id_kontrolera=kontroler.id_kontroler and modul.id_modul=kontroler.id_modulu
Sephirus
No to nie ma dużego znaczenia - tak czy siak będziesz musiał pamiętać o aktualizacji tych tablic czy to w PHP czy w BD smile.gif

Zależy to też od wielkości serwisu. Możesz też zrobić to tak jak pisaliśmy za wyłączeniem samej akcji.

jeżeli to na przykład będzie strona -> artykuły -> ze świata -> Nowe PHP już w sprzedaży!

To widać na pierwszy rzut oka że "ze świata" to kategoria a "Nowe PHP..." to nazwa/tytuł artykułu - można więc zatem w samej akcji (gdzie najlepiej będzie stwierdzić gdzie jesteśmy dodać linijkę która właśnie ustali kategorię i tytuł - i tak najprawdopodobniej będzie gdzieś pobierana.

Wszystko zależy od samej struktury strony - sęk w tym by właśnie jak najbardziej to zautomatyzować ale nie powodować przy tym wielu dodatkowych zapytań do bazy czy skomplikowanej edycji.

To już zadanie dla Ciebie wink.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.