Viacúrovňová ponuka MODX pomocou Bootstrapu. PdoMenu - vytvorenie menu v MODX Wayfinder, názvy medzi rozsahom sa nezobrazujú

Domov / Inštalácia zariadenia

Ale to nie je pre nás ;).

Všetko urobíme od začiatku. Prečo sme to (ja) potrebovali, keď už existujú hotové možnosti? Pretože takto sa mi to páči viac. Pretože si myslím, že tento prístup je najsprávnejší. Pretože vieme, ako vytvoriť svoj vlastný, môžeme ľahko pochopiť kód niekoho iného, ​​zmeniť ho, opraviť chyby alebo ho doplniť o funkcie potrebné v konkrétnom prípade. A nakoniec, vyrobiť si vlastné je často také pekné!

Nasledujúci príbeh bude predpokladať, že čitateľ má minimálne znalosti o programovaní v PHP. Teoreticky tí ľudia, ktorí kódu vôbec nerozumejú, budú môcť kód skopírovať a reprodukovať všetky akcie, o ktorých sa bude diskutovať nižšie. Môže však byť pre nich lepšie použiť hotové úryvky a la Ditto, pretože poskytujú veľa možností externej konfigurácie bez toho, aby sa dostali do hlavného kódu.

Nechcem polemizovať o tom, čo je pre užívateľa lepšie – vziať si hotový alebo si vyvinúť vlastný... Oba prípady majú svoje pre a proti. Pre mňa osobne je viac výhod v druhej možnosti. Tiež sa každý čitateľ rozhodne sám.

Poďme sa teda opäť pozrieť na tie naše. Keďže na našej webovej stránke je pomerne veľa rôznych softvérových častí a niekde musíme začať, tak poďme naprogramovať...

Horné menu

Pod pojmom „horné menu“ rozumiem súbor odkazov na stránky v hornej časti webu (pozri obrázok nižšie):

Prvú ukážku tvorby úryvku popíšem veľmi podrobne v budúcnosti sa zameriam hlavne na najvýraznejšie detaily;

Porovnajme to s naším stromom stránok v systéme správy, ktorý sme vybudovali v predchádzajúcom článku:

Ako je možné vidieť na obrázku, v strome stránky sú zvýraznené štyri dokumenty (konkrétne „Blog“, „O autoroch“, „Fotografie“ a „ Spätná väzba"), ktorý následne vytvorí odkazy v hornom menu.

Dovoľte mi tiež pripomenúť, že predtým sme skryli dokumenty, ktoré nechceme zobrazovať v ponuke. Napríklad v nastaveniach dokumentu s názvom „Vyhľadávanie na stránke“ sme odstránili začiarkavacie políčko „Zobraziť v ponuke“ a zvyšné dva dokumenty „Odkazy“ a „Kategórie“ na stránke sme skryli zrušením začiarknutia políčka „Publikovať“ v poli nastavenia dokumentu (karta „Nastavenia stránky“) v nastaveniach dokumentu).

V predchádzajúcom článku sme teda pripravili horné menu v ovládacom systéme.

Prejdime teraz k problematike zobrazovania našich akcií priamo na stránke.

Väčšinu programov na stránke vykonávajú tzv. "", t.j. jednotlivé časti kódu (možno ich chápať aj ako jednotlivé funkcie alebo podprogramy) v PHP. Preto, aby sme v MODx implementovali zobrazenie horného menu, musíme vytvoriť aj nový snippet, naprogramovať ho a v šablóne na správnom mieste pridať volanie tohto snippetu.

Prejdeme do systému správy, otvoríme kartu „Zdroje“ -> „Správa zdrojov“ -> kartu „Úryvky“ a klikneme na odkaz „Nový úryvok“. Do poľa „Názov úryvku“ zadajte „TopMenu“ bez úvodzoviek a zatiaľ len uložte prázdny úryvok bez kódu. Po uložení uvidíme názov nášho úryvku na karte „Úryvky“.

Dovoľte mi pripomenúť, že v našej šablóne sme umiestnili hornú ponuku do časti „TOPMENU“. Prepnime na kartu "Chunks" a otvorme " " blok. V obsahu tohto bloku uvidíme nasledujúci kód:


  • Blog

  • O autoroch

  • Fotografie

  • Spätná väzba

Tento kód tvorí naše menu. Poďme to okomentovať a pridať volanie do úryvku „TopMenu“ v časti:


[]

Tu opäť budeme musieť trochu odbočiť, aby sme vysvetlili význam tejto konštrukcie []. Faktom je, že pomocou konštrukcií ako [] alebo [!SnippetName!] môžeme volať úryvky kdekoľvek v našich šablónach, blokoch a dokonca aj na ľubovoľnej jednotlivej stránke lokality.

V tomto prípade konštrukcia [] označuje hovor cacheovateľnéúryvok, t.j. volanie dynamického podprogramu, ktorého výsledok sa vypočíta a vykoná raz a následne pri načítaní stránky, kde sa volá tento snippet, bude výsledok nezmenený, pretože úryvok sa už znova nevolá. Týmto spôsobom šetríme zdroje na našom webovom serveri (a to je vždy veľmi dôležité, keď je zdroj vysoký).

Sú však situácie, keď potrebujete útržkový kód stále znova spúšťať a výsledky nemôžete uložiť do vyrovnávacej pamäte. V takýchto prípadoch sa používa konštrukcia [!SnippetName!], ktorá vždy vynúti vykonanie úryvku bez ukladania do vyrovnávacej pamäte. Analogicky sa táto konštrukcia nazýva volanie neuložiteľné do vyrovnávacej pamäteúryvok.

Uložme teda časť „TOPMENU“ a aktualizujme stránku lokality. Hmm, napodiv horné menu zmizlo. Ale je to naozaj také prekvapujúce? Zakomentovaním kódu HTML ponuky v bloku sme skryli jeho zobrazenie v prehliadači (skontrolujte to pri pohľade na zdrojový kód HTML stránky). Ale náš úryvok „TopMenu“ nerobí nič, pretože doň ešte nič nebolo pridané. Napravme tento nedostatok :).

Vráťme sa na záložku „Úryvky“, otvorme vytvorený úryvok „TopMenu“ a skúsme otestovať jeho možnosti... Trpezlivosť, moji pokročilí čitatelia, nie každému sú tieto detaily známe.

Najprv napíšme najjednoduchší kód (bežný kód PHP):

echo "Testovanie...";
?>

Pred uložením vyberte „Pokračovať v úpravách“, pretože budeme musieť zmeniť obsah nášho úryvku viackrát a potom úryvok uložíme. Obnovme stránku webu a pozrime sa na miesto horného menu... no, úprimne povedané, na prvý pohľad neuvidíme takmer žiadne zmeny, okrem mierne rozšíreného modrého pozadia menu. Stlačíme "CRTL+A" na výber celého textu na stránke lokality a uvidíme, že náš úryvok napriek tomu zobrazuje text "Testovanie..." namiesto ponuky, len farba textu zodpovedá farbe pozadia .

Zmeňme útržkový kód na nasledujúci:

ozvena" Testuje sa...";
?>

Teraz jasne vidíme, že náš úryvok funguje a dokonca (!) zobrazuje nejaký text. To je skvelé, ale na našu úlohu to nestačí, pretože musíme zabezpečiť, aby náš úryvok zobrazoval odkazy z riadiaceho systému a presne v tom istom kóde HTML, ktorý sme komentovali v časti „TOPMENU“.

A opäť trochu rozptýlenia...

Celý systém vzťahov medzi dokumentmi v MODx je postavený na princípe: každý „nadradený dokument“ obsahuje od nuly po veľa „podriadených dokumentov“ („rodič“ -> „deti“).

Každý dokument v databáze MODx má svoj vlastný jedinečný identifikátor „ID“ - toto je číslo, ktoré vidíme v zátvorkách v strome stránok vedľa každého dokumentu.

Mimochodom, tento jedinečný identifikátor má len jeden význam – jednoznačne identifikuje konkrétny dokument v systéme riadenia a nič viac! Osobitne zdôrazňujem túto skutočnosť, pretože som sa stretol s opakovanými pokusmi o zmenu týchto identifikátorov na rôzne účely... Treba si hneď zapamätať, že je to jednoducho zbytočné, preto sa nepokúšajte tieto čísla meniť. Nemali by ste im venovať veľkú pozornosť; zvyčajne sa tieto čísla jednoducho používajú na generovanie odkazov na určité dokumenty.

MODx databáza vytvára pre každý dokument aj špeciálne „rodičovské“ pole. Hodnota tohto poľa je číslo označujúce buď jedinečný identifikátor nadradeného dokumentu, alebo, ak je dokument v koreni stromu, nulu. Vždy tak môžete jednoznačne určiť, ktorý doklad je pre daný doklad nadradený doklad.

Aby ste jasne videli, o čom sme práve hovorili, otvorte phpMyAdmin, vyberte svoju databázu a nájdite tabuľku (PREFIX)site_content, kde (PREFIX) je vaša predpona, ktorú ste zadali počas inštalácie. Uvidíte mnoho polí, v ktorých sú uložené špecifické údaje dokumentu, vrátane „ID“ – jedinečný identifikátor, „nadradený“ – číslo nadradeného dokumentu, „názov stránky“ – názov stránky a iné.

Takže pomocou týchto informácií o princípe ukladania a spájania dokumentov v MODx môžeme pochopiť, ako získať potrebné údaje na zobrazenie odkazov v hornom menu: musíme nájsť v databáze všetky dokumenty, ktoré sa nachádzajú v koreňovom adresári stránky. strom, t.j. majú v poli „rodič“ hodnotu nula.

Používanie jazyk SQL, podobná požiadavka je popísaná asi takto (Môžete skúsiť zadať túto žiadosť vo vstupnom poli SQL v phpMyAdmin po nahradení "modx_" vašou predponou):

VYBRAŤ *
Z `modx_site_content`
WHERE "rodič" = 0;

Takáto žiadosť nám však vráti úplne všetky dokumenty z koreňového adresára webu, čo nie je úplne správne, na základe hlavnej úlohy - zobrazovať odkazy iba na tie dokumenty, ktoré majú:

  • zverejnený stav (v databáze je táto položka reprezentovaná poľom „zverejnené“, kde hodnota = 1 znamená, že dokument je zverejnený a hodnota = 0 znamená nepublikovaný).
  • undeleted (pole „vymazané“, kde 1 je vymazané a 0 nie je vymazané),
  • a ktoré majú nastavenú možnosť „Zobraziť v menu“ (pole „skryť menu“, kde 1 znamená skryť a 0 znamená zobraziť v menu).

Navyše, pri pohľade trochu dopredu, dokumenty okamžite zoradíme podľa parametra „Pozícia v menu“, ktorý určí pozíciu každého odkazu v našej ponuke.

No z pohľadu SQL je to úplne jednoduchá úloha a dá sa vyriešiť takto:

VYBRAŤ *
Z `modx_site_content`
KDE „zverejnené“ = 1
A „rodič“ = 0
A „odstránené“ = 0
AND "skryť menu" = 0
ORDER BY `menuindex` ASC;

Teoreticky je možné všetky SQL dotazy vykonávať v úryvkoch priamo pomocou PHP skripty, pripájať databázu zakaždým nanovo a robiť mnoho ďalších rutinných operácií, opakovať ich znova a znova... Ale, vidíte, to by negovalo zmysel používania rámca, ktorým náš systém riadenia určite je, pretože MODx okrem iných výhod poskytuje hotová súprava finančných prostriedkov softvérové ​​rozhranie(API, aplikačné programové rozhranie). API sú softvérové ​​funkcie, ktoré zjednocujú a uľahčujú mnohé procesy spracovania údajov.

Využime v našom úryvku jednu zo spomínaných funkcií API „getDocumentChildren“. Funkcia „getDocumentChildren“ prijíma nasledujúce údaje ako parametre:

  • $id – číslo nadradeného dokumentu,
  • $active - vybrať iba zverejnené alebo nezverejnené dokumenty (1 alebo 0),
  • $deleted - vybrať iba vymazané alebo nevymazané dokumenty (1 | 0),
  • $fields - polia, ktoré sú vybrané z databázy,
  • $kde - osobitné podmienky, t.j. KDE stav SQL dotaz,
  • $triediť – pole, podľa ktorého sa majú zoradiť výsledky
  • $direction - smer triedenia, môže nadobúdať hodnoty ASC alebo DESC, t.j. triediť od najmenšej po najväčšiu hodnotu alebo naopak
  • $limit - limit žiadosti, t.j. LIMIT podmienka v dotaze SQL

$results = $modx->getDocumentChildren(
$id = 0,
$aktívny = 1,
$vymazané = 0,
$where = "hidemenu = 0",
$sort="index ponuky",
$dir="ASC",
$limit
);

Tlač ("

Foreach($results as $key => $value) (
print_r($hodnota);
}

Tlač ("");
?>

Uložte úryvok a obnovte stránku. V dôsledku vykonania aktualizovaného úryvku „TopMenu“ uvidíte zoznam polí a ich hodnôt zoradených podľa hodnôt poľa „menuindex“ od najmenšieho po najväčšie. Skúste zmeniť parameter $dir="ASC" na $dir="DESC" - v dôsledku toho sa polia prebudujú a dokument s najvyššou hodnotou poľa "menuindex" sa zobrazí ako prvý dokument.

Skúsení programátori pravdepodobne chápu, že získaný výsledok už poskytuje všetko, čo potrebujete na zostavenie hotového menu s odkazmi. No skoro všetko. V každom prípade budem pokračovať: prepíšme kód PHP, aby sme sa čo najviac priblížili požadovanému výsledku.

$results = $modx->getDocumentChildren(
$id = 0,
$aktívny = 1,
$vymazané = 0,
"id, názov stránky, zverejnené, index ponuky, odstránené, skryť menu, názov ponuky",
$where = "hidemenu = 0",
$sort="index ponuky",
$dir="ASC",
$limit
);

$items = "";
$výstup = "";

Foreach($results as $key => $value) (
$items .="


  • ".$value["pagetitle"]."
  • \n";
    }

    Ak ($items != "") (
    $output = "

      \n";
      $výstup .= $položky;
      $output .="
    \n";
    }

    Return $output;

    Kód nebudeme podrobne rozoberať, keďže ide o najbežnejší PHP kód, nič viac. Ak niekto nerozumie významu akýchkoľvek konštrukcií, zanechajte komentár, alebo ešte lepšie, prejdite na príslušné fóra podpory.

    Uložíme nový útržkový kód a obnovíme stránku. V dôsledku vykonania kódu uvidíme takmer to, čo sme chceli získať:

    Tie. Ide už o automaticky generované odkazy, ktorých štruktúra úplne opakuje štruktúru dokumentov v MODx strome. Ak to chcete otestovať, skúste vytvoriť testovací dokument v koreňovom adresári lokality a obnovte stránku.

    To však nie je všetko. Mnohí si už asi všimli, že sú tam odkazy, ale žiadne odkazy... Paradox :). Mám na mysli, že názvy dokumentov sú zobrazené v menu, ale odkazy na ne nefungujú. Je to logické, keďže zatiaľ kód odkazu namiesto skutočných ciest zobrazuje „#“.

    Na vyriešenie tohto problému sa musíte dozvedieť o ďalšej mimoriadne užitočnej funkcii MODx: adresu ľubovoľnej internej stránky webu je možné získať pomocou nasledujúcej konštrukcie [~id~], kde id je jedinečné číslo požadovaný dokument, t.j. rovnaké číslo uvedené v zátvorkách vedľa názvu každého dokumentu v strome lokality. Takže pridaním takejto konštrukcie [~1~] do obsahu šablóny/kúsku/stránky

      • index – alias dokumentu „Blog“, ak sme ako alias dokumentu zadali „index“, príp
      • 1.html, ak sme do poľa „Prezývka“ pri dokumente „Blog“ nič nezadali
    • ak sú priateľské odkazy zakázané, uvidíme text index.php?id=1

    Prepíšme úryvok pomocou týchto informácií:

    $results = $modx->getDocumentChildren(
    $id = 0,
    $aktívny = 1,
    $vymazané = 0,
    "id, názov stránky, zverejnené, index ponuky, odstránené, skryť menu, názov ponuky",
    $where = "hidemenu = 0",
    $sort="index ponuky",
    $dir="ASC",
    $limit
    );

    $items = "";
    $výstup = "";

    Foreach($results as $key => $value) (
    $items .="


  • ".$value["pagetitle"]."
  • \n";
    }

    Ak ($items != "") (
    $output = "

      \n";
      $výstup .= $položky;
      $output .="
    \n";
    }

    Return $output;

    Zmenili sme teda # na [~".$value["id"].."~], t.j. v skutočnosti je pre každý dokument z poľa jeho jedinečné ID nahradené vo vnútri konštrukcie [~id~]. V dôsledku toho dostaneme ponuku s pracovnými odkazmi.

    Ideál sme takmer dosiahli... Aj teraz je tu však ešte jeden detail, ktorý treba vziať do úvahy: dizajnér určil, že náš aktívny odkaz by mal byť zvýraznený bielym pozadím a farba odkazu by sa mala zmeniť na oranžovú.

    Aby sme to dosiahli, opäť odhalíme tajomstvá MODx CMS :). V API je ukrytá funkcia $modx->documentIdentifier, ktorá vracia hodnotu jedinečného identifikátora aktuálnej stránky. Budeme ho potrebovať na určenie aktívnej stránky a jej zvýraznenie v ponuke:

    $results = $modx->getDocumentChildren (
    $id = 0,
    $aktívny = 1,
    $vymazané = 0,
    "id, názov stránky, zverejnené, index ponuky, odstránené, skryť menu, názov ponuky",
    $where = "hidemenu = 0",
    $sort="index ponuky",
    $dir="ASC",
    $limit
    );

    $cid = $modx->identifikator dokumentu;

    $items = "";
    $výstup = "";

    Foreach($results as $key => $value) (
    if ($value["id"] == $cid) (
    $aktívny = " id=\"aktívny\"";
    }
    inak(
    $aktívny = "";
    }
    $items .="
    ".$value["pagetitle"]."
    \n";
    }

    Ak ($items != "") (
    $output = "

      \n";
      $výstup .= $položky;
      $output .="
    \n";
    }

    Return $output;

    No a ako to dopadlo? Podarilo sa!

    Ale nemysleli ste si, že tým to všetko skončí, však? A je to tak správne. Nastavili sme si najvyššiu latku, chceme využiť maximálne možnosti MODx. A preto je tu ešte jeden malý detail, ktorý nám ušiel.

    Pozrime sa bližšie na názvy polí, ktoré požadujeme pomocou funkcie getDocumentChildren: „id, pagetitle, publishing, menuindex, delete, hidemenu, menutitle“. Medzi nimi je pole ako "menutitle". Ako už názov napovedá, toto pole môže ukladať názov menu. Riadiaci systém má aj vstupné pole „Položka menu“. Toto pole je voliteľné. Logika je však taká, že ak je toto pole vyplnené, potom musíme text odkazu v menu nahradiť tým, ktorý zadal používateľ. No, urobme toto:

    /********************************
    Názov: Hlavné menu
    Účel: Zobrazte hornú ponuku
    Projekt: MODx Demosite
    ********************************/

    $results = $modx->getDocumentChildren(
    $id = 0, // ID nadradeného dokumentu
    $active = 1, // Vyberte iba publikované dokumenty
    $deleted = 0, // Vyberte iba nevymazané dokumenty
    "id, pagetitle, publishing, menuindex, delete, hidemenu, menutitle", // Výber polí z databázy
    $where = "hidemenu = 0", // Vyberte len tie dokumenty, ktoré je potrebné zverejniť v menu
    $sort="menuindex", // Usporiadanie dokumentov podľa poľa index ponuky
    $dir="ASC", // Usporiadanie dokumentov vo vzostupnom poradí
    $limit = "" // Nenastavujeme obmedzenia (parameter LIMIT v SQL dotaze)
    );

    $cid = $modx->identifikator dokumentu; //získame ID aktuálnej stránky

    $items = "";
    $výstup = "";

    Foreach($results as $key => $value) (
    if ($value["id"] == $cid) (
    $aktívny = " id=\"aktívny\"";
    }
    inak(
    $aktívny = "";
    }
    if ($value["menutitle"] != "") (
    $title = $value["menutitle"];
    }
    inak(
    $title = $value["názov stránky"];
    }
    $items .="
    ".$title."
    \n"; //zozbiera položky ponuky
    }

    // Ak sa nám podarilo nájsť aspoň jeden položka menu,
    // vytvorenie kódu ponuky HTML
    if ($items != "") (
    $output = "

      \n";
      $výstup .= $položky;
      $output .="
    \n";
    }

    // Vráti výsledok úryvku
    návrat $výstup;

    Teraz skúste zadať nejaký text do vstupného poľa „Položka ponuky“ akéhokoľvek dokumentu... Funguje všetko? Úžasné!

    P.S.: Niektorých čitateľov možno prekvapí, že pri sledovaní odkazov v našej ponuke sa obsah stránok nemení, aj keď sa zdá, že súdiac podľa cesty v adrese prehliadača prechádzame na nové stránky... Verte mne je to úplne normálne, pretože Absolútne všetky stránky momentálne používajú rovnakú šablónu. V tejto šablóne sme v skutočnosti urobili zatiaľ len hornú ponuku dynamickou, všetky ostatné detaily zostali nezmenené. Určite sa do toho pustíme neskôr, ale zatiaľ - nepanikárte ;).

    Záver:

    Takže ďalší článok dospel k logickému záveru.

    Výsledky školenia:

    • Snažili sme sa pochopiť účel niektorých vstupných polí v dokumentoch MODx a pozreli sme sa na ukladanie týchto informácií do databázy;
    • Dozvedeli sme sa o nových špeciálnych MODx dizajnoch: [], [!SnippetName!], [~id~];
    • Dozvedeli sme sa o dostupnosti špeciálneho API a využili sme niektoré funkcie API;
    • A na základe týchto poznatkov sme vytvorili náš nový úryvok v MODx!

    Začnime lekciou 8 MODx Revolution pre začiatočníkov. Pripomínam, že robíme webovú stránku na štúdium MODx Revolution. V minulej lekcii sme sa pozreli na koncept úryvkov, čo sú kúsky PHP kódu, ktoré nám umožňujú pridať funkcionalitu na náš web. V tejto lekcii sa pozrieme na špeciálny úryvok - Wayfinder a použijeme ho na vytvorenie dynamického menu pre našu webovú stránku.

    Čo je Wayfinder?

    Wayfinder je úryvok, ktorý zobrazuje neutriedený zoznam odkazov na zdroje v strome vašej lokality, typ výstupu zoznamu závisí od volania úryvku a parametrov tohto volania. Vo všeobecnosti to znamená, že keď do svojej šablóny umiestnite volanie Wayfinder, začne hľadať zdroje, ktoré spĺňajú parametre v nej uvedené, a vráti zoznam odkazov na tieto zdroje v nezoradenom formáte zoznamu alebo vo formáte, ktorý definujete.

    Prečo používať Wayfinder?

    Wayfinder zvyčajne používam na vytváranie dynamickej navigácie na webe, teda menu. Od väčšiny HTML šablóna ov použite na vytváranie ponúk neusporiadané zoznamy, potom je to Wayfinder perfektný nástroj na tieto účely. Pri vytváraní lokality môžete svoje adresy URL pracne vkladať do navigačnej ponuky, rovnako ako ste to robili predtým na statickej lokalite HTML. Zároveň vždy, keď potrebujete odstrániť alebo vytvoriť stránku, musíte vykonať príslušné zmeny vo svojom menu, zmeniť adresy URL. Použitím úryvku Wayfinder na dynamické generovanie ponúk sa vyhnete týmto bolestiam hlavy, pretože automaticky rozpozná zmeny a podľa toho zmení vašu ponuku.

    Wayfinder je pomerne flexibilný nástroj a umožňuje vám určiť, aké zdroje zahrnúť alebo vylúčiť z ponuky, aká je šablóna ponuky, ako hlboko je ponuka vašej stránky. Limit vašich schopností určuje váš HTML/CSS kód.

    Ako používať Wayfinder?

    Ako sme už spomenuli v predchádzajúcej lekcii, syntax na volanie úryvkov vyzerá takto: [[!somesnippet]]

    Toto je len základné volanie a nestačí, okrem toho musíme definovať niektoré vlastnosti tohto volania. V prípade Wayfinderu je potrebné definovať vo vlastnostiach minimum, kde v strome zdrojov by mal Wayfinder začať vytvárať zoznam zdrojov. Preto pri volaní úryvku Wayfinder musíte zadať aspoň jeden parameter – počiatočné ID. Základné volanie úryvku Wayfinder v tomto prípade bude vyzerať takto:

    Toto volanie povie Wayfinderu, aby začal v koreni stromu ( ID 0 znamená koreňový adresár lokality) a zobrazuje všetky zdroje, ktoré sú zverejnené a ktoré nemajú začiarknuté políčko Skryť z ponuky.

    Ak sa pozrieme na šablónu, ktorú používame, môžeme vidieť hornú ponuku s niekoľkými možnosťami a rozbaľovacími zoznamami.

    Poďme sa pozrieť na šablónu a výstupný kód toto menu:

    Ako vidíte, toto je vnorený neusporiadaný zoznam. Nahradme tento kód základným volaním Wayfinder a uvidíme, čo dostaneme. Vymažte vyššie uvedený kód a vložte ho na jeho miesto:

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

    Ak používate rovnakú šablónu ako ja, váš kód bude vyzerať asi takto:

    Uložte šablónu a pozrite sa domovskej stránke, malo by to vyzerať takto:

    Fantastické! Môžete vidieť, že naše predchádzajúce menu, ktoré malo viacero možností, bolo teraz nahradené jednoduchým menu s jedinou položkou – Domov. To nám hovorí, že Wayfinder funguje tak, ako má, a preberá jednu stránku z našej lokality a zobrazuje jej názov ako položku ponuky.

    Poďme vytvoriť niekoľko ďalších zdrojov. Chystám sa pridať stránku About s 3 podradenými stránkami (MODx, Tutorials, Contact a FAQ). Pre svoju lokalitu môžete vytvoriť ľubovoľné zdroje alebo stránky. Cieľom tohto cvičenia je vytvoriť niekoľko zdrojov, aby mal Wayfinder čo zobrazovať.

    Dokončil som vytváranie stránok a strom zdrojov mojej lokality vyzerá takto:

    Teraz máme niekoľko stránok, pozrime sa, ako volanie Wayfinderu vygeneruje ponuku pre našu stránku:

    Dobrou správou je, že všetky naše stránky sa objavili v ponuke a kliknutím na každú položku ponuky sa dostaneme na príslušnú stránku. (Ak chcete otestovať tento prvok, pridajte nejaký text na každú stránku, napríklad na stránke O aplikácii môžete pridať „Toto je stránka O aplikácii“ a táto správa sa zobrazí pri otvorení stránky. Nezabudnite, že pre každú stránku musíme definovať šablónu stránke, ale v momentálne Nebudem sa tým trápiť).

    Zlou správou je, že formátovanie ponuky je poškodené, ale môžeme to opraviť. Kliknite kliknite pravým tlačidlom myši myšou na webovú stránku a pozrite sa na zdrojový kód (alebo na to použite firebug), teraz to uvidíte Wayfinder vygeneruje HTML takto:

    • Domov
    • O
      • MODx CMS
      • Kódovacia podložka
        • Blog
        • Služby
    • Kontaktujte nás
    • Návody
    • FAQ

    Ako môžete vidieť, vyzerá to veľmi podobne ako náš pôvodný statický kód s niekoľkými výnimkami. Najprv sa vygeneroval Wayfinder

    © 2024 ermake.ru -- O oprave PC - Informačný portál