Do stworzenia dynamicznego menu użyjemy gotowego fragmentu Wskazywacz. Snippet, jak miejmy nadzieję pamiętasz z poprzednich lekcji, to jest kawałek kod php, które możemy uwzględnić w naszym szablonie. Różnica w stosunku do fragmentów jest tylko w kodzie i metodzie wywołania. Jeśli nazwiemy kawałek z double nawiasy klamrowe, wtedy fragmenty są wywoływane za pomocą takich [!Nazwa_fragmentu!]- połączenie niebuforowane lub takie [[Nazwa Fragmentu]]- buforowane połączenie. Każdy fragment kodu musi zaczynać się od ale koniec ?> . Dodatkowo do każdego fragmentu kodu można przekazać specjalne wartości parametrów, które będzie przetwarzał. MODx ma już kilka gotowych fragmentów, z których będziemy korzystać w przyszłości.
skrawek wskazywacz służy do organizowania list linków dla MODx. Menu naszej strony to lista takich linków. Najpierw znajdźmy fragment kodu odpowiedzialny za wyświetlanie naszego menu. Menu jest w kawałku NAGŁÓWEK, oto jest:
Wytnijmy ten kod i zamiast tego napiszmy:
((MENU))
I wklej kod do nowego kawałka MENU, w opisie kawałka, który piszemy menu strony. Przeanalizujmy teraz ten kod.
Menu naszej strony internetowej to prosta, nieuporządkowana lista, zawarta w kontenerze z id="menu_szablonu". Wytnijmy tę listę z kontenera i zamiast tego wstawmy nasze wywołanie fragmentu kodu:
&startId=`0` to parametr o wartości 0, który informuje fragment kodu o identyfikatorze folderu, w którym znajdują się przetwarzane dokumenty. Wszystkie nasze dokumenty, które wyświetlimy w menu, znajdują się w folderze głównym, identyfikator folderu głównego wynosi zero. Zobaczmy, co mamy.
Nasze menu działa, tylko aktywna pozycja nie jest już podświetlona na biało:
Aby zrozumieć, dlaczego tak się stało, musimy przyjrzeć się źródło stron. W Mozilla Firefox robi się to tak: Zobacz >> Kod źródłowy strony lub po prostu naciskając skrót klawiaturowy Ctrl+U. Znajdujemy kod naszego menu:
Zwróć uwagę, że w kodzie źródłowym aktywny element miał class="bieżący", a nasz fragment kodu automatycznie przypisuje do aktywnego elementu class="aktywny". Zauważamy również moment, w którym w kodzie źródłowym klasa została zastosowana do tagu
a teraz do tagu
Znajdujemy w folderze C:/xampp/htdocs/site/www/assets/templates/ plik templatemo_style.css i otwórz go za pomocą Notepad ++. W tym pliku szukamy opisu aktualnej klasy, znajduje się on w 198 linia:
#templatemo_menu li .current(
dopełnienie lewe: 40px
kolor: #ffffff;
}
zastąpić klasę obecny na aktywny, pamiętając o ponownym przypisaniu go do tagu :
#templatemo_menu li.active a (
dopełnienie lewe: 40px
kolor: #ffffff;
}
Zapisujemy plik. Zobaczmy co się stało.
Nasze menu działało dokładnie zgodnie z zamierzeniami projektantów. Teraz możemy poruszać się po stronach naszej witryny za pomocą naszego menu głównego. Podczas dodawania innych dokumentów do folderu głównego zostaną one automatycznie wyświetlone w naszym menu. Aby zapobiec wyświetlaniu w menu niechcianych dokumentów, usuń ich zaznaczenie. Pokaż w menu. Możesz wymusić wykluczenie niechcianego elementu za pomocą parametru &excludeDocs=`lista dokumentów identyfikacyjnych do wykluczenia, oddzielonych przecinkami`.
Aby menu nie wyświetlało dokumentów podrzędnych, które stworzymy w następnych lekcjach, dodajmy parametr do wywołania snippet poziom, który określa ilość poziomów w menu, domyślnie będą wyświetlane wszystkie poziomy, ograniczymy to tylko do jednego poziomu:
Data publikacji: 02.07.2011
W tym prostym samouczku pokażę, jak dostosować menu.
Kiedyś zostałem poproszony o naprawienie błędu z menu na jednej stronie - niektóre pozycje uparcie nie chciały się ustawiać, ale zamiast tego czołgały się w nieoczekiwanych miejscach na stronie po najechaniu kursorem. Błąd nie był w krzywym CSS, jak początkowo zakładałem, ale w krzywym wywołaniu Wayfindera.
Co to jest Wayfinder- jest to fragment, który jest używany, gdy konieczne jest wymienienie dokumentów sekcji/s. W wyniku fragmentu generowana jest lista nieuporządkowana. Za pomocą różnych parametrów możesz z tą listą zrobić wszystko :) Możesz przeczytać więcej w dokumentacji lub wpisując w Google - „wayfinder modx wiki”.
Ważne notatki:
1. O czym jest MODx, jak zainstalować MODx, jak zorganizować strukturę dokumentów, jak zrobić szablon z html, co to jest chunk i tak dalej. W tej lekcji nie rozważam pytań dla początkujących.
2. Symbole zastępcze, których użyję w samouczku, są w formacie, który „rozumie” wersja Evo. Jaka jest różnica, patrz przykład:
Przyjrzyjmy się więc krok po kroku tworzeniu menu.
Krok 1
Do lekcji naszkicowałem następujące menu:
Tutaj dla jasności użyłem różne style do różne poziomy menu. Na stronie, w której naprawiono błąd z menu, było mniej więcej tak samo - każdy poziom menu ma swój własny styl.
Skład - szczegóły układu nie są objęte zakresem tej lekcji, więc otrzymałem ten kod:
Po zachwyceniu się kodem sami ustalamy, która klasa w naszym menu jest za co odpowiedzialna (tzn. jeśli grzebiecie w czyimś kodzie, we własnym powinno być jasne):
ul class="menu" - klasa całego menu
li class="top" - klasa pozycji menu najwyższego poziomu
a class="top_link" - klasa dla linków w elementach najwyższego poziomu
ul class="sub" - klasa podmenu
cóż, span class="down" do dekoracji przedmiotów najwyższego poziomu
Krok 2. Utwórz trzy dokumenty
Produkty
- Dostawa
- Dostawcy
W dokumencie „Produkty” tworzymy dokumenty podrzędne: „Truth Serum”, „Makropulos Remedy”, „Universal Remedies”.
Krok 3. Przenieś menu do osobnego fragmentu
W szablonie, w miejscu, w którym powinno znajdować się menu, usuń cały niepotrzebny kod (samo Kod HTML menu), zamiast tego piszemy
((menu))W ten sposób wyjmujemy menu w osobnym kawałku. Następnie tworzymy nowy chunk i nazywamy go menu. Na razie możesz skopiować kod menu, który stworzyłeś, do zawartości porcji. Dla jasności.
Przejdź do panelu administracyjnego w "Witryna"-> "Widok" - aby sprawdzić, czy wszystko jest w porządku ze ścieżkami do pliku stylu i zdjęć.
Stało się? Ok, ale to jeszcze nie menu. Tchnijmy w nią życie za pomocą Wayfindera.
Krok 4
Usuń całą zawartość fragmentu menu i zamiast tego wywołaj fragment Wayfinder.
Dopóki piszemy:
parametr startId- wskazuje, od którego dokumentu rozpocząć tworzenie listy. Mamy 0 - oznacza to, że lista jest utworzona z korzenia drzewa dokumentu.
Zobaczmy co się stało:
To jest działające i żywe menu. Zmień nazwy dokumentów, usuń, dodaj - menu zostanie utworzone zgodnie z drzewem dokumentów.
Krok 5
5.1. Teraz przywracamy wygląd menu do normy
Wayfinder domyślnie generuje prosty kod () , podane są wszystkie klasy list i elementów parametry specjalne po wywołaniu.
Na początku lekcji ustaliliśmy, które klasy css w naszym menu odpowiadają za co. Wayfinder ma opcje, których potrzebujemy: klasa zewnętrzna- klasa dla kontenera menu. W porównaniu z naszym układem otrzymujemy następujące wywołanie Wayfinder:
[[Wskazywacz? &startId=`0` &level=`2` &outerClass=`menu`]]oprócz parametrów z klasami podaj poziom zagnieżdżenia - &level=`2`.
Zwracamy uwagę na niedociągnięcia - brak klas dla pozycji menu najwyższego poziomu, brak tagów i klasę dla podmenu.
Wszystkie te niedociągnięcia są korygowane poprzez dodanie odpowiednich parametrów do wywołania Wayfinder.
5.2. Dodawanie klas do elementów i tagów najwyższego poziomu
Jest na to zmienna wierszTpl, który opisuje szablon dla pozycji menu, robimy taki szablon, do tego tworzymy chunk o nazwie rodzic:
W wezwaniu do Wayfinder dodaj &rowTpl=`rodzic` .
Nie zapomnij sprawdzić kodu źródłowego - prawie wszystko jest w porządku, podmenu pozostaje.
Do ustawienia podmenu używamy zmiennej innerRowTpl.
Utwórz porcję wewnętrzny:
Dodawanie zmiennej do wywołania Wayfinder innerRowTpl=`wewnętrzna` oraz zmienna określająca klasę kontenera podmenu &innerClass=`sub` .
Ostatnie wezwanie do Wayfindera wygląda tak:
[ ]To wszystko, nasze menu jest gotowe. Powodzenia!
Pozdrawiamy drodzy czytelnicy. W ostatniej lekcji wypełniliśmy witrynę pewną treścią (), teraz czas na umieść wszystko w menu aby użytkownicy mogli do nich nawigować.
tworzyć dynamiczne menu w MODX użyjemy fragmentu kodu PdoMenu z pakietu pdoNarzędzia. Zanim zaczniesz, przeczytaj główną dokumentację.
Dokumentacja pdoMenu
Opcje
Opcje szablonów
Opcje klas CSS
Oficjalne przykłady
oficjalna dokumentacja możesz przeczytać tutaj. A teraz przeanalizujemy najbardziej typowe wywołania menu.
Zadzwoń PdoMenu
opcja 1. Zamiast tego statycznego menu zadzwoń do pdoMenu fragmentu, w tym celu w drzewie zasobów, na zakładce „ Elementy” w sekcji snippets rozwiń gałąź pdoNarzędzia, a następnie kliknij pdoMenu lewym przyciskiem myszy (nie zwalniaj przycisku) i przeciągnij ten fragment do miejsca, w którym chcesz wywołać menu, a następnie wypełnij wymagane parametry w oknie, które się otworzy i kliknij " Ratować«.
Opcja 2. Po prostu ręcznie piszemy połączenie.
Typowe przykłady
Normalne menu jednopoziomowe
Na przykład mamy najpopularniejsze menu z następującymi znacznikami HTML.
Wynikiem jest następujący kod z wywołaniem menu:
- &parents=`0` - lista rodziców (w moim przypadku nie ograniczam wyboru, bo i tak wyświetlę tylko niektóre strony);
- &level=`1` - poziom zagnieżdżenia (w tym przypadku nie występuje);
- &resources=`2,3,4,5` - lista zasobów do wyświetlenia w menu;
- &firstClass=`0` - klasa dla pierwszej pozycji menu (nie której);
- &lastClass=`0` — klasa ostatni punkt menu (nie co);
- &outerClass=`top-menu` — klasa wrappera menu (podstawiona w ul);
- &hereClass=`current-menu-item` - klasa dla aktywnej pozycji menu (podstawiona w li);
- &rowClass=`menu-item` - klasa pojedynczego paska menu (podstawiona w li).
Dwupoziomowe niestandardowe menu ładowania początkowego
Statyczny kod html wygląda tak:
Jego kod wyjściowy będzie wyglądał następująco:
Również w następnej lekcji podam jeszcze kilka wyjść z rozwijanych menu opartych na bootstrapie (i to dla tych, którzy nie zrozumieli istoty. No cóż, zrobimy .
Na pierwszy rzut oka wszystko wygląda na skomplikowane, ale tak nie jest, przeczytaj dokumentację po więcej szczegółów, zadawaj pytania w komentarzach, na pewno pomogę.
Fragment kodu generowania menu. Może zastąpić Wayfinder i zapewnia większą elastyczność w określaniu opcji.
Na przykład może zbudować menu od kilku rodziców jednocześnie, wyświetlając ich zarówno razem, jak i jako osobne gałęzie.
Daje to znaczny wzrost prędkości tylko przy pierwszym starcie, wtedy Wayfinder nie jest szczególnie gorszy, dzięki kompetentnemu buforowaniu.
Opcje
Domyślnie pdoMenu akceptuje typowe opcje pdoTools i niektóre własne:
Nazwa | Domyślna | Opis |
---|---|---|
&rodzice | Bieżący zasób | Lista rodziców wyników wyszukiwania oddzielonych przecinkami. Jeśli umieścić &rodzice=`0`- próbka nie jest ograniczona. Jeśli identyfikator rodzica zaczyna się od myślnika, to i jego dzieci są wykluczone z selekcji. |
&poziom | 0 (nieograniczony) | Wygenerowany poziom menu. |
&Surowce | Lista zasobów do wyświetlenia w wynikach, oddzielona przecinkami. Jeśli identyfikator zasobu zaczyna się od łącznika, ten zasób jest wykluczony z wyboru. | |
&szablony | Lista szablonów do filtrowania wyników oddzielonych przecinkami. Jeśli identyfikator szablonu zaczyna się od łącznika, zasoby z nim są wykluczone z wyboru. | |
&gdzie | Tablica dodatkowych opcji wyboru zakodowanych w formacie JSON. | |
&displayStart | 0 | Włącz wyświetlanie początkowych węzłów menu. Przydatne przy określaniu więcej niż jednego „rodzica”. |
&kontekst | Ograniczenie wyboru według kontekstu zasobu. | |
&Pokaż ukryte | 0 | Pokaż zasoby ukryte w menu. |
&pokażNieopublikowane | 0 | Pokaż nieopublikowane zasoby. |
&podglądNieopublikowane | 0 | Włącz wyświetlanie nieopublikowanych zasobów, jeśli użytkownik ma do tego uprawnienia. |
&ukryj podmenu | 0 | Ukryj nieaktywne gałęzie menu. |
&Wybierz | Lista pól do wybrania oddzielonych przecinkami. Możesz określić ciąg JSON za pomocą tablicy, na przykład &select=`("modResource":"id,tytuł strony,treść")` | |
&Sortuj według | indeks menu | Dowolne pole zasobu do sortowania, w tym parametr TV, jeśli jest określony w parametrze &włącz telewizory, na przykład &sortby=`("tvname":"ASC","pagetitle":"DESC")`. Możesz określić ciąg JSON z tablicą wielu pól. W przypadku sortowania losowego określ &sortby=`RAND()` |
&sortuj | ASC | Kierunek sortowania: malejąco lub rosnąco. Jeśli pozostawisz parametry &sortby i &sortdir puste, sortowanie będzie przebiegać w kolejności zasobów w &Surowce. |
&limit | 0 | Ograniczenie liczby wyników próbek. |
&zrównoważyć | 0 | Pomiń wyniki od początku. Musi być używany w połączeniu z wyraźnie określonym &limit |
&sprawdź uprawnienia | Określ, które uprawnienia sprawdzić dla użytkownika podczas wyświetlania zasobów, na przykład &checkPermissions=`list`. | |
&liczDzieci | 0 | Dokładne liczenie zasobów podrzędnych każdej kategorii i wyświetlanie ich w symbolu zastępczym [[+children]]. Czy dodatkowe prośby w bazie danych, więc jest domyślnie wyłączone. |
&do symbolu zastępczego | Jeśli nie jest pusty, fragment kodu będzie przechowywać wszystkie dane w symbolu zastępczym o tej nazwie, zamiast być wyświetlanym. | |
&plPrefiks | wf. | Prefiks dla odsłoniętych symboli zastępczych. |
&Pokaż logi | 0 | Pokazać Dodatkowe informacje o pracy fragmentu. Tylko dla osób upoważnionych w kontekście „mgr”. |
&Szybki tryb | 0 | Tryb szybkiego przetwarzania porcji. Wszystkie nieprzetworzone tagi (warunki, fragmenty itp.) zostaną usunięte. |
&Pamięć podręczna | 0 | Buforowanie wyników fragmentu kodu. |
&Czas pamięci podręcznej | 3600 | Czas ważności pamięci podręcznej w sekundach. |
&schemat | -1 | Schemat generowania adresu URL jest przekazywany do modX::makeUrl(), więc możliwe opcje potrzebować . Specjalny typ uri zastępuje wartość uri zasobu bez uruchamiania funkcji. |
&użyj adresu URL łącza internetowego | 1 | Wygeneruj link, biorąc pod uwagę klasę zasobu. |
&rowIdPrefix | Przedrostek id="" do ustawiania identyfikatora w porcji. | |
&tutajId | id bieżącego zasobu dla wygenerowanego menu. Musisz ją określić tylko wtedy, gdy sam skrypt nieprawidłowo ją określi, na przykład podczas wyświetlania menu z fragmentu innego fragmentu. | |
&włącz telewizory | Lista parametrów telewizora do wyboru, oddzielona przecinkami. Na przykład &includeTVs=`akcja, czas` da symbole zastępcze [[+action]] i [[+time]] . | |
&przygotuj telewizory | Lista opcji TV, z plikami ze źródeł multimediów, dla których chcesz wygenerować pełne ścieżki. Jeśli ustawione &prepareTVs=`1`, wszystkie telewizory określone w &włącz telewizory. | |
&przetwarzaj telewizory | Lista parametrów telewizora do przetworzenia i wyświetlenia zgodnie z ich ustawieniami w menedżerze systemu. Jeśli ustawione &processTVs=`1`, wszystkie telewizory określone w &włącz telewizory. Spowalnia pracę. | |
&tvPrefiks | Prefiks ustawień telewizora. |
Opcje szablonów
Te opcje ustawiają porcje zawierające szablony do generowania menu.
Nazwa | Opis |
---|---|
&tplZewnętrzny | Chunkowy projekt całego bloku menu. Domyślnie: @INLINE
|
&tpl | Fragment projektu elementu menu. Jeśli nie zostanie określony, zawartość pól zasobów zostanie wydrukowana na ekranie. Domyślnie: @INLINE |
&tplTutaj | Fragment dekoracji aktualnej pozycji menu. |
&tplStart | Fragment projektu elementu głównego, pod warunkiem, że jest włączony &displayStart. Domyślnie: @INLINE [[+tytuł menu]][[+opakowanie]] |
&tplWiersz nadrzędny | Fragment dekorowania rodzica dziećmi, które nie spełniają warunków &tplCategoryFolder . Na przykład: @INLINE |
&tplTutaj wiersz nadrzędny | Fragment aktualnego stylu dokumentu, jeśli zawiera elementy potomne. |
&tplParentRowActive | Kawałek dekorowania rodziców z dziećmi w aktywnej gałęzi menu. |
&tplCategoryFolder | Fragment projektu kategorii specjalnej. Kategoria to element nadrzędny z dziećmi, który ma pusty szablon lub rel="category" w polu link_attributes. |
&tplInner | Kawałek do projektowania całego bloku podpunktów menu. Jeśli puste - użyje &tplZewnętrzny. Na przykład: @INLINE |
&tplWiersz wewnętrzny | Fragment do projektowania podpozycji menu. Na przykład: @INLINE |
&tplInnerTutaj | Fragment dla aktywnej podpozycji menu. |
Opcje klas CSS
Te parametry ustawiają wartość symboli zastępczych [[+classnames]] i [[+classes]] dla różne elementy menu. Symbol zastępczy [[+classnames]] wyświetla tylko nazwę klasy bez atrybutu klasa ="", w przeciwieństwie do symbolu zastępczego [[+classes]].
Przykłady
Zwykłe wyjście menu z katalogu głównego witryny na jeden poziom:
[]
Dane wyjściowe z wykluczonymi określonymi rodzicami i sprawdzonymi uprawnieniami użytkownika:
[]
Wyświetlanie menu od dwóch rodziców naraz, pokazując punkty główne:
[]
Wyświetlanie dwóch poziomów zasobów, zliczanie liczby zagnieżdżonych:
[]` &tplParentRow=`@INLINE
wskazywacz służy do organizowania list linków dla MODX. Dzięki wsparciu szablonów umożliwia wyświetlanie list w dowolnej potrzebnej formie:
- Menu w formie listy, tabeli, obrazków, z ikonami itp.
- Menu statyczne
- Menu z różnymi efektami (rozwijane, rozwijane itp.)
- mapa strony
&rowTpl=`rowTpl`
&outerTpl=`outerTpl`
&hereClass=`aktywny`
&rowClass=`eNav_li`]]
Opcje fragmentu:
&Identyfikator początkowy- identyfikator strony nadrzędnej, jeśli podasz 0, będzie on pochodził z katalogu głównego witryny. Wartość domyślna to identyfikator aktywnej strony.
&displayStart - pokaż dokument z startId w tytule menu, domyślnie false
&poziom- głębokość zagnieżdżenia, domyślnie 0 - wszystkie poziomy
&limit- ogranicz ilość stron na wyjściu (domyślnie 0 - bez limitu)
&ignorujUkryte- zignoruj checkbox strony "Pokaż w menu", tj. jeśli określisz 1, wyświetli wszystkie strony. Wartość domyślna to 0. Wyświetlane są tylko te strony, które mają zaznaczone pole wyboru „Pokaż w menu”.
&ph - nazwa substytutu, który zastępuje bezpośrednie wyjście. Wartość domyślna to 0.
&odpluskwić- tryb debugowania (domyślnie 0)
&ukryj podmenu - rozwiń tylko aktywne podmenu (domyślnie 0)
&usuńNoweLinie- usuwa znak końca linii na wyjściu (domyślnie 0)
&tekstOflinków- nazwa linku do menu. Możliwe opcje:menutitle, id, pagetitle, description, parent, alias, longtitle, introtext . Domyślna tytuł menu
&tytułLinków- tytuł linku do menu Opcje:menutitle, id, pagetitle, description, parent, alias, longtitle, introtext. Domyślna tytuł strony
&rowIdPrefix- ustawia id (rowIdPrefix + docId) dla każdego elementu. Domyślnie 0
&includeDokumenty- id dokumentów oddzielonych przecinkami, które znajdą się w menu (domyślnie nie określone)
&wyklucz dokumenty - id dokumentów oddzielonych przecinkami, które zostaną wykluczone z menu (domyślnie 0)
&konteksty- kontekst do generowania menu. Wartość domyślna to aktualna.
&startIdContext - Identyfikator kontekstu, z którego pobierane są dokumenty w celu utworzenia wyniku.
&konfiguracja - Zewnętrzny Plik PHP, aby zapisać konfigurację Wayfinder (przykład: core/components/wayfinder/configs).
&schemat - Format generowania adresu URL. Możliwa wartość(na podstawie wywołania makeURL API):
1: (domyślny) URL względem site_url;
0: patrz http;
1: patrz https;
pełny: bezwzględny adres URL zaczynający się od site_url;
abs: bezwzględny adres URL zaczynający się od base_url;
http: bezwzględny adres URL, wymuszony w schemacie http;
https: bezwzględny adres URL, wymuszony w schemacie https.
&Sortuj według - Pole do sortowania. (domyślna indeks menu)
Opcje:
ID, menutitle, pagetitle, introtext, menuindex, opublikowany, hidemenu, parent, isfolder, opis, alias, longtitle, typ, szablon&sortujPorządek- Porządek sortowania.„ASC” lub „DESC”. Domyślny ASC
&gdzie - Opcje filtrów w stylu JSON (Odpowiada miejscu w MySQL). Na przykład, gdy chcesz ukryć blog lub wiadomości z dodatku Artykuły: &where=`[("class_key:!=": "Artykuł")]`
Przykłady:
wyprowadza tylko foldery: & gdzie = `isfolder = 1
&tutajId - Zdefiniuj bieżący identyfikator do użycia we fragmencie. Użyj wartości [[*id]], jeśli szablon jest określony przy użyciu parametru hereTpl, a activeRowParentTpl nie jest poprawnie stosowane w elemencie menu. Domyślnie bieżący identyfikator.
Musisz ją określić tylko wtedy, gdy sam skrypt nieprawidłowo ją określi, na przykład podczas wyświetlania menu z fragmentu innego fragmentu.
&tutajTpl - Szablon hereTpl jest używany, gdy bieżąca pozycja jest wyświetlana w menu.
Możliwe symbole zastępcze:
[[+wf.classes]] - miejsce do określenia klasy CSS do użycia (zawiera class=" ")
[[+wf.classnames]] - zawiera tylko nazwę klasy CSS (nie zawiera class=" ")
[[+wf.link]] - adres (href) linku
[[+wf.title]] - tekst tytułu linku
[[+wf.linktext]] - tekst tytułu linku
[[+wf.wrapper]] - miejsce do wyświetlenia podmenu
[[+wf.id]] - wyświetla unikalny identyfikator (id)
[[+wf.attributes]] - wyświetl dodatkowe atrybuty linku
[[+wf.docid]] - identyfikator dokumentu dla bieżącego elementu
[[+wf.subitemcount]] - liczba elementów w folderze
[[+wf.description]] - wyświetla wartości pola opisu
[[+wf.introtext]] - wyświetla wartości pola introtekstowego
Przykład szablonu:
Opcje szablonu
Te opcje określają porcje zawierające wzorce, które wygenerują dane wyjściowe Wayfinder.
W obecna wersja Wayfinder for MODX Revolution, możesz uzyskać dostęp do swoich niestandardowych telewizorów za pomocą symboli zastępczych prefiksu wf. , na przykład [[+my_TV]]
W momencie pisania tego tekstu zwrócone zostaną tylko oryginalne wartości TV - nie zostaną sformatowane. Na przykład, jeśli Twój telewizor jest obrazem – typowe użycie takiego telewizora w szablonie zwróci cały znacznik pełnego obrazu, ale wewnątrz szablonu Wayfinder – zwrócona zostanie tylko ścieżka do obrazu.
Jeśli chcesz zająć się telewizją, możesz to zrobić, wywołując fragment w szablonie wiersza Wayfinder (&rowTpl . Na przykład obraz TV nazywa się Ikona i zwykle dla wyjścia w szablonie używany jest coś takiego jak ten kod:
... ...
Ale ponieważ to nie pozwoli ci obsłużyć telewizora, musisz go zastąpić:
... ...
A teraz wewnątrz fragmentu processTV umieszczamy następujący kod PHP:
getObject("modResource", $myId); return $doc->getTVValue($myTV);
W rezultacie zwracany jest w pełni przetworzony obraz telewizyjny.
&zewnętrznaTpl
Nazwa porcji zawierającej szablon kontenera zewnętrznego.
Dostępne symbole zastępcze:
- wf.classes - Wyświetla klasy wzięte z zestawu opcji Wayfinder (w tym atrybut class="")
- wf.classnames - wyświetla nazwy klas (bez class="")
- wf.wrapper - wyjście zawartości wewnętrznej (wiersza).
Parametr &innerTpl zawiera ten sam zestaw symboli zastępczych co &outerTpl .
&wierszTpl
Nazwa porcji zawierającej szablon elementów wiersza menu.
Dostępne symbole zastępcze:
- wf.classes - wyjście klasy (w tym atrybut class="")
- wf.classnames - wyjście odpowiednich klas (bez class="")
- wf.link - wartość atrybutu href="" dla linku menu
- wf.title - nazwa tekstu tytułu linku z pola określonego w parametrze &titleOfLinks
- wf.linktext - tekst dla aktywnego linku określonego w polu przekazanym w parametrze &textOfLinks
- wf.wrapper - wyświetla wewnętrzną zawartość, taką jak podmenu
- wf.id - wypisz unikalny identyfikator atrybutu. Musisz określić parametr &rowIdPrefix, aby ten symbol zastępczy mógł otrzymać wartość. Wartość to prefiks + identyfikator dokumentu.
- wf.attributes - Wyświetla referencję atrybutu dla bieżącego elementu
- wf.docid - identyfikator dokumentu bieżącego elementu
- wf.description - opis bieżącego elementu
- wf.level - aktualny poziom zagnieżdżenia
Przykład użycia:
Inna opcja:
Przykłady
Pierwszy poziom
[[!Wskazywacz? &startId=`0` &level=`1`
&rowTpl=`rowTpl`
&outerTpl=`outerTpl`
&hereClass=`aktywny`
&rowClass=`eNav_li`]]
Kod fragmentu zewnętrznego Tpl
[[+wf.wrapper]]
Kod fragmentu rowTpl
[[+wf.wrapper]]
Drugi poziom (w tym przykładzie pozycje menu i podmenu były wizualnie na tym samym poziomie)
[[!Wskazywacz? &startId=`0` &level=`2`
&rowTpl=`rowTplFooterMenu`
&outerTpl=`outerTplFooterMenu`
&innerTpl=`innerTplFooterMenu`
&innerRowTpl=`innerRowTplFooterMenu`
&hereClass=`aktywny`]]
Kod fragmentu OuterTplFooterMenu
[[+wf.wrapper]]
Kod fragmentu rowTplFooterMenu
[[+tytuł.wf]]
[[+wf.wrapper]]
Kod fragmentu innerTplFooterMenu
[[+wf.wrapper]]
Kod fragmentu innerRowTplFooterMenu
[[+tytuł.wf]]