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:


  • Powitanie

  • Projektuj blog

  • Teczka

  • Nasza firma

  • Skontaktuj się z nami

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:


[!Wskazywacz? &startId=`0`!]

&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:

  • Dom

  • Projektuj blog

  • Teczka

  • O firmie

  • Łączność

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

  • . Nie będziemy przepisywać fragmentu kodu, ale zmiana klasy w stylach nie stanowi problemu.

    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:


    [!Wskazywacz? &startId=`0` &level=`1`!]

    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:

    [[Wskazywacz? &startId=`0`]]

    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:

  • [+wf.tekst linku+][+wf.wrapper+]
  • 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:

  • [ +wf.linktext+][ +wf.wrapper+]
  • 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
      [[+opakowanie]]
    &tpl Fragment projektu elementu menu. Jeśli nie zostanie określony, zawartość pól zasobów zostanie wydrukowana na ekranie. Domyślnie: @INLINE
  • [[+tytuł menu]][[+opakowanie]]
  • &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

  • [[+tytułmenu]] ([[+dzieci]])
  • [[+opakowanie]]` &countDzieci=`1` ]]



    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
    Przykład połączenia:


    &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: [[+wf.linktext]][[+wf.wrapper]]

    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).
      [[+wf.wrapper]]

    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:

    [[+wf.linktext]][[+wf.wrapper]]

    Inna opcja:

  • [[+wf.linktext]] - [[+wf.description]] [[+wf.wrapper]]

  • 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]]