Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Rekomendowane odpowiedzi

Opublikowano

Witam,

Chcę stworzy automatycznie generowane menu w swojej aplikacji. Polegać to by polegało na umieszczeniu w głównym szablonie kodu:

<ul class='tab_bar no_title'>
<if test="$is_array($menuItems) AND count($menuItems)">
<foreach loop="$menuItems AS $menuModule => $menuData">
<li>
<if test="$menuData['isActive']">
	{$menuData['menuTitle']}
<else />
	<a href="{$menuData['moduleUrl']}">{$menuData['menuTitle']}</a>
</if>
</li>
</foreach>
</if>
</ul>

Jeżeli istnieje menu dla specjalnego modułu, to zostanie ono wypełnione na podstawie danego menu, podobnego do tego w IP.Nexus - wiem, że wszyscy wiedzą jak wygląda menu tego produktu :-) Ma to na celu ustawienie menu w miejscach, w których uważam, że będzie sensowne, np. w administracji paroma danymi, ale np. dla strony transakcji, gdzie jest wiele informacji już nie, z 2 powodów:

  • Brak miejsca
  • Niepotrzebne menu dla tego typu strony

Czy jest jakiś sposób na to? O ile w modułach dałoby radę stworzyć interfejs i tam dodać takie metody o ile jak wyciągać nazwy modułów? Ustawiać prywatną, statyczną tablicę z tymi danymi? Efekt ma być taki, że dla niektórych stron będzie mój kod HTML, a dla niektórych widok jak w IP.Nexus, czyli obok menu, a obok treść.

Proszę o porady jak takie coś wykonać.

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

Opublikowano (edytowane)

A co, wolisz 2 zdania, że na jednej stronie chcę menu, a na drugiej nie? :-)

Problem jest chyba dosyć dobrze wyjaśniony. Wiesz jak wygląda lewe menu w IP.Nexus? Jeżeli tak, to wiesz jak wyglądają strony w IP.Nexus - dla pewnych moich modułów w aplikacji potrzebuje DOKŁADNIE takie samo działanie. A dla niektórych całość będzie zajmował moduł, bez menu. Nic tu trudnego nie ma, oprócz samego pomysłu jak to wykonać, aby przy aktualizacjach nie bawić się w szablonach, a w jednym, ewentualnie dwóch miejscach w kodzie :-)

PS. Mała poprawka do opisu - jeżeli dodam np. 3 linki w menu głównym ( one zapewne będą ze statycznej tablicy ), to jeżeli dodam menu to potrzebuje tego do konkretnego modułu - nie do konkretnej sekcji, bo załóżmy, że zakładka 'Administracja' będzie składała się z 3 sekcji:

  • Zarządzanie kontem
  • Zarządzanie płatnościami
  • Zarządzanie systemem

To są 3 osobne sekcje, a menu powinno wskazywać na te 3 linki. Nie wiem czy takie coś jest w ogóle wykonalne w obecnej architekturze IP.Board

Edytowane przez Largo

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

Opublikowano

Jedna tablica - każdy element w niej to:

  • zmienna logiczna, czy ma być generowane menu czy nie,
  • zmienna typu tablicowego - z owym menu.

Jeżeli Cię dobrze rozumiem to coś w ten deseń:

private static $_menuItems = array(	'administration' => array( 'generateMenu' => true,
														   'menuData'	  => array( 'menuUrl'   => 'section=account',
																					'isActive'  => $this->request['module'] == 'administration' && $this->request['section'] == 'account',
																					'menuTitle' => $this->lang->words['accountMenuLangBit']
																				   ),
																			 array( 'menuUrl'   => 'section=payments',
																					'isActive'  => $this->request['module'] == 'administration' && $this->request['section'] == 'payments',
																					'menuTitle' => $this->lang->words['paymentsMenuLangBit']
																				   )
														  ),
								'transactions'	 => array( 'generateMenu' => false,
														   'menuData'	  => array()
														  )
								);

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

Opublikowano (edytowane)

Tak, coś na wzór UCP.

Kumpel też mi doradzał interfejsy via UCP, ale tu jedno nie pasuje - mamy moduły i sekcje, jedynie po sekcjach możemy zaimplementować, a to nam podwoi/potroi/... tablice z danymi o innych sekcjach, do których użytkownik może nie mieć uprawnień. Mówisz, że takie rozwiązanie jest OK? A inne pomysły? Czy tylko ten pasuje do schematu?

PS. OK, wszystko git, tylko jak tą tablicę danych chcesz wypełnić? Nie mów, że w konstruktorze biblioteki mam tworzyć taką tablicę?

Edytowane przez Largo

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.