Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] zarządzanie menu - przenoszenie pozycji
Forum PHP.pl > Forum > PHP
waldemi
Witam
Próbuję napisać prosty CMS, większość już mam zrobione, ale teraz utknąłem z takim problemem. Chcę zrobić zarządzanie menu (podobne jak w Joomli). Nie wiem jednak jak zrobić przenoszenie pozycji menu w górę lub w dół po kliknięciu na strzałkę. Od razu dodam że nie chodzi mi o gotowca tylko o sam sposób jak to zrobić.

Menu znajduje się w tabeli. Są w niej takie pola:
menu_id - wiadomo, numer kolejny wpisu w tabeli
menu_adres - adres strony (np. index.php, szukaj.php itp.)
menu_nazwa - nazwa wyświetlana (np. GŁÓWNA, SZUKAJ itp.)
menu_pozycja - menu lewe lub prawe
menu_poziom - kolejność w jakiej mają być wyświetlane pozycje poszczególnych menu
menu_status - aktywny lub nieaktywny

Interesuje mnie pole menu_poziom. Przykładowo mam w menu 5 pozycji:
1 - główna
2 - artykuły
3 - download
4 - szukaj
5 - forum

Teraz chcę zamienić miejscami pozycje 3 i 4. Jeśli numer pozycji 4 zmienię na 3 to będę miał dwie pozycje 3 a nie będę miał wogóle pozycji 4. Jak teraz zamienić "starą" pozycję 3 na 4?
Eagle
Przy przenoszeniu w górę zmieniasz Pozycję górnego na pozycję tego dolnego i na odwrót

Kod
ID | NAZWA   |POZYCJA
1  | Index   |1
2  |Szukaj   |2


Kod
ID | NAZWA   |POZYCJA
1  | Index   |2
2  |Szukaj   |1


A później w zapytaniu sortujesz wg. pozycji.
Darti
Ja stosowałem taki system:
1. podczas dodawania nowej pozycji dawałem ją na koniec (max() + 1)
2. przesuwałem zamieniając miejscami (u Ciebie menu_poziom) pozycje
3. w momencie usuwania zmieniałem pozycje o większym menu_poziom na menu_poziom = menu_poziom-1

i jakoś się trzymało "kupy" wszystko

pzdr
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.