Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nowe rozgałęzienia w menu
Forum PHP.pl > Forum > PHP
korniks
Witam,

napisałem sobie system do którego dodaje sobie moduły. Jeden moduł to zbiór kontrolerów, których akcje należy dodać (podlinkować) do głównego menu. Menu to jest wielopoziomowe, bo każdy nowy moduł to nowa zakładka , a każdy kontroler to podkategoria, która składa się z kolei z pod podkategorii. Moduły mają być dodawane przez administratora systemu z poziomu admina (Coś jak w wordpress instalacja wtyczek).

W tym momencie podczas dodawania nowego modułu, wzbogacanie menu o nowe linki wygląda tak, że najpierw dodaje główną kategorie, potem pobieram jego id i wciskam je do parent_id i dodaje podkategorie, która jeśli ma swoje podkategorie to znowu pobiera jego id i dodaje do parent_id ... etc. Nie trudno zgadnąć, że w przypadku dużej liczby zagnieżdżeń takie rozwiązanie jest kiepskie.

Innym rozwiązaniem na jakie wpadłem było przypisanie każdemu nowemu linkowi identyfikatora, przez co "zainstalowanie" takiego modułu staje się znacznie bardziej znośne bo polega jedynie na dodaniu do tabeli X nowych rekordów. Z kolei pojawia się tutaj ryzyko duplikacji tych kluczy, ponieważ za każdym razem pisząc nowy moduł muszę pamiętać jaki identyfikator już był użyty, żeby nie podlinkować czasem akcji nie tam gdzie trzeba.

tabela menu wygląda tak:


  1. CREATE TABLE IF NOT EXISTS `cp_menu` (
  2. `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `name` VARCHAR(50) NOT NULL,
  4. `parent_id` INT(11) UNSIGNED NOT NULL,
  5. `Location` INT(11) NOT NULL,
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=InnoDB






ma ktoś może pomysł jak można to lepiej rozwiązać?

ps. Jakby było coś nie jasne, dajcie znać.
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.