-
1. Data: 2009-08-17 13:29:42
Temat: Jak oprogramować logikę podświetlania opcji menu?
Od: "Marek" <m...@s...interia.pl>
Witam,
Mam problem natury koncepcyjnej. Otóż jest sobie CMS. Wyświetla on pewną
strukturę menu, którego pozycje wskazują na jakieś dokumenty. Klikamy na
pozycji menu, strona musi przeładować się. Chciałbym aby kliknięty przycisk
menu został podświetlony. Wymyśliłem więc, że do URL dopiszę ID przycisku
menu, który ma być podświetlony. Wtedy jednak bezpośrednie wejście na dany
URL nie podświetli tego przycisku. Mógłbym też badać URL strony i
podświetlać te pozycje menu, które go zawierają. Też źle... więcej niż jeden
przycisk w menu może mieć ten sam URL. WIęcej jest takich sprzeczności. Jak
to zrobić optymalnie? Jakie stosujecie zasady?
--
Pozdrawiam,
Marek
-
2. Data: 2009-08-17 13:48:27
Temat: Re: Jak oprogramować logikę podświetlania opcji menu?
Od: ant <a...@n...tld>
Marek wrote:
> Mam problem natury koncepcyjnej. Otóż jest sobie CMS. Wyświetla on pewną
> strukturę menu, którego pozycje wskazują na jakieś dokumenty. Klikamy na
> pozycji menu, strona musi przeładować się. Chciałbym aby kliknięty
> przycisk menu został podświetlony. Wymyśliłem więc, że do URL dopiszę ID
> przycisku menu, który ma być podświetlony. Wtedy jednak bezpośrednie
> wejście na dany URL nie podświetli tego przycisku. Mógłbym też badać URL
> strony i podświetlać te pozycje menu, które go zawierają. Też źle...
> więcej niż jeden przycisk w menu może mieć ten sam URL. WIęcej jest
> takich sprzeczności. Jak to zrobić optymalnie? Jakie stosujecie zasady?
Zend_Navigation http://framework.zend.com/manual/en/zend.navigation.
html
Może wyglądać początkowo strasznie, ale później to już miód i maliny.
-
3. Data: 2009-08-17 18:56:21
Temat: Re: Jak oprogramować logikę podświetlania opcji menu?
Od: "Marek" <m...@s...interia.pl>
> Zend_Navigation http://framework.zend.com/manual/en/zend.navigation.
html
> Może wyglądać początkowo strasznie, ale później to już miód i maliny.
Widzę, że ktoś się napracował :-)
Ciekaw jestem czy to rozwiązuje w/w problemy. Czy gdzieś można efekt pracy
tego cuda zobaczyć?
Przeanalizowałem na szybko tą bibliotekę... czy to przypadkiem nie jest
dedykowane HTMLowi? Menu Helper zawiera metodę renderMenu(), w której piszą,
że daje to listę ul. Jeśli tak, to niestety nie przyda się mi to narzędzie
gdyż często system menu generuję w postaci XML. Ponadto chyba tylko
przenoszone są w tej bibliotece podstawowe parametry dla opcji w menu. Nie
widziałem czy da się ustawić np. identyfikator okna w jakim ma się otworzyć
łącze z menu. Albo czy można też uwzględnić jakieś charakterystyczne dla
danego CMS informacje w postaci atrybutów opcji menu?
-
4. Data: 2009-08-17 21:02:41
Temat: Re: Jak oprogramować logikę podświetlania opcji menu?
Od: Artur Muszyński <a...@u...wytnijto.com.pl>
Marek pisze:
> Witam,
>
> Mam problem natury koncepcyjnej. Otóż jest sobie CMS. Wyświetla on pewną
> strukturę menu, którego pozycje wskazują na jakieś dokumenty. Klikamy na
> pozycji menu, strona musi przeładować się. Chciałbym aby kliknięty
> przycisk menu został podświetlony. Wymyśliłem więc, że do URL dopiszę ID
> przycisku menu, który ma być podświetlony. Wtedy jednak bezpośrednie
> wejście na dany URL nie podświetli tego przycisku. Mógłbym też badać URL
> strony i podświetlać te pozycje menu, które go zawierają. Też źle...
> więcej niż jeden przycisk w menu może mieć ten sam URL. WIęcej jest
> takich sprzeczności. Jak to zrobić optymalnie? Jakie stosujecie zasady?
Słusznie by było, gdyby menu odwzorowywało mapę witryny jednoznacznie.
Nawet jeśli w wielu miejscach nawigujesz do tego samego widoku, id
powinno być unikalne. To pomaga potem chociażby cofnąć się do właściwego
miejsca, ale rozwiąże też twój problem.
artur
-
5. Data: 2009-08-17 22:21:16
Temat: Re: Jak oprogramować logikę podświetlania opcji menu?
Od: ant <a...@n...tld>
Marek wrote:
>> Zend_Navigation http://framework.zend.com/manual/en/zend.navigation.
html
>> Może wyglądać początkowo strasznie, ale później to już miód i maliny.
> Widzę, że ktoś się napracował :-)
> Ciekaw jestem czy to rozwiązuje w/w problemy. Czy gdzieś można efekt
> pracy tego cuda zobaczyć?
<http://www.zendcasts.com/zend_navigation-dynamicall
y-creating-a-menu-a-sitemap-and-breadcrumbs/2009/06/
>
> Przeanalizowałem na szybko tą bibliotekę... czy to przypadkiem nie jest
> dedykowane HTMLowi? Menu Helper zawiera metodę renderMenu(), w której
> piszą, że daje to listę ul. Jeśli tak, to niestety nie przyda się mi to
> narzędzie gdyż często system menu generuję w postaci XML. Ponadto chyba
> tylko przenoszone są w tej bibliotece podstawowe parametry dla opcji w
> menu. Nie widziałem czy da się ustawić np. identyfikator okna w jakim ma
> się otworzyć łącze z menu. Albo czy można też uwzględnić jakieś
> charakterystyczne dla danego CMS informacje w postaci atrybutów opcji menu?
Generalnie możesz wszystko ;) Napisz po prostu klasę, która dziedziczy
po odpowiedniej i zmień metody odpowiedzialne za ul li na produkujące
wymagany przez Ciebie XML. Ale to chyba w najgorszym wypadku.
Tu jest chwila dyskusji o ul'ach
<http://framework.zend.com/wiki/display/ZFPROP/Zend_
Navigation+-+Robin+Skoglund>
No i wychodzi na to, że ten problem rozwiążesz przy pomocy tego:
<http://framework.zend.com/manual/en/zend.view.helpe
rs.html#zend.view.helpers.initial.navigation.menu>
-
6. Data: 2009-08-17 22:30:02
Temat: Re: Jak oprogramować logikę podświetlania opcji menu?
Od: ant <a...@n...tld>
Rzuć też okiem tutaj:
<http://www.youtube.com/results?search_query=zend_na
vigation>
-
7. Data: 2009-08-18 21:56:57
Temat: Re: Jak oprogramować logikę podświetlania opcji menu?
Od: "Marek" <m...@s...interia.pl>
Dziękuję za obszerne informacje :) Wydaje się to faktycznie nietrudne.
-
8. Data: 2009-08-18 22:09:12
Temat: Re: Jak oprogramować logikę podświetlania opcji menu?
Od: "Marek" <m...@s...interia.pl>
> Słusznie by było, gdyby menu odwzorowywało mapę witryny jednoznacznie.
Jest pewien przypadek, który ma rację logicznego bytu a nie spełania w/w.
Otóż menu linkuje do jakiegoś dokumentu z pewnej logicznej grupy dokumentów
(fizycznie należą one do wspólnej kategorii). Gdy otwiera się którykolwiek z
tych dokumentów to automatycznie rysowane jest drugie menu niezależne od
w/w, zawierające de facto listing zawartości całej kategorii. Kliknięcie na
jakimkolwiek linku w tym drugim menu nie powinno zmieniać podświetlenia z
menu głównego bo cały czas jesteśmy w sekcji danej mimo, że teraz dokument o
innym ID jest wyświetlany.
Reasumując - w tym przypadku przycisk w menu głównym kieruje w tle do całej
grupy dokumentów mimo iż zawiera ID konkretnego jednego dokumentu. ID
konkretnego dokumentu oznacza w zasadzie dokument satrtowy w danej
kategorii.
> Nawet jeśli w wielu miejscach nawigujesz do tego samego widoku, id powinno
> być unikalne.
ID opcji menu czy ID dokumentu, do którego opcja menu ma linkować ?
> To pomaga potem chociażby cofnąć się do właściwego miejsca, ale rozwiąże
> też twój problem.
Tu musisz mi dorzucić parę słów wyjaśnienia bo nie załapałem :(