Meniu MODX pe mai multe niveluri folosind Bootstrap. PdoMenu - creând un meniu în MODX Wayfinder, numele dintre intervale nu sunt afișate

Acasă / Instalarea dispozitivului

Dar asta nu este pentru noi ;).

Vom face totul de la zero. De ce am avut (eu) nevoie de asta, deoarece există deja opțiuni gata făcute? Pentru că îmi place mai mult așa. Pentru că cred că această abordare este cea mai corectă. Pentru că, știind cum să-l dezvoltăm pe al nostru, putem înțelege cu ușurință codul altcuiva, îl putem schimba, remedia erori sau îl putem completa cu funcționalitatea necesară într-un anumit caz. Și, în cele din urmă, să-ți faci singur este adesea atât de drăguț!

Următoarea narațiune va presupune că cititorul are cunoștințe minime despre programarea PHP. Teoretic, acele persoane care nu înțeleg deloc codul vor putea să copieze codul și să reproducă toate acțiunile care vor fi discutate mai jos. Cu toate acestea, ar putea fi mai bine pentru ei să folosească fragmente gata făcute la fel, deoarece oferă o mulțime de opțiuni pentru configurarea externă fără a intra în codul principal.

Nu vreau să dezbat ce este mai bine pentru utilizator - să ia unul gata făcut sau să dezvolte propriul tău... Ambele cazuri au avantajele și dezavantajele lor. Pentru mine personal, există mai multe avantaje în a doua variantă. De asemenea, fiecare cititor va decide singur.

Așadar, să ne uităm din nou la al nostru. Întrucât există destul de multe părți diferite de software pe site-ul nostru web și trebuie să începem de undeva, așa că hai să programăm...

Meniul de sus

Prin termenul „meniu de sus” mă refer la un set de link-uri către pagini din partea de sus a site-ului (vezi imaginea de mai jos):

Voi descrie primul exemplu de creare a unui fragment în detaliu, în viitor, mă voi concentra în principal pe cele mai semnificative detalii.

Să-l comparăm cu arborele site-ului nostru din sistemul de management, pe care l-am construit în articolul anterior:

După cum se poate observa din figură, în arborele site-ului sunt evidențiate patru documente (și anume „Blog”, „Despre autori”, „Fotografii” și „ Feedback"), care va crea ulterior link-uri în meniul de sus.

Permiteți-mi să vă reamintesc că anterior am ascuns documente pe care nu dorim să le arătăm în meniu. De exemplu, în setările unui document numit „Căutare pe site” am eliminat caseta de selectare „Afișare în meniu” și am ascuns celelalte două documente „Linkuri” și „Categorii” de pe site, debifând caseta de selectare „Publicare” din setările documentului (fila „Setări pagină”) în setările documentului).

Astfel, în articolul precedent am pregătit meniul de sus în sistemul de control.

Să trecem acum la problema afișării acțiunilor noastre direct pe site.

Majoritatea programelor de pe site sunt realizate de așa-numitele. " ", adică bucăți individuale de cod (pot fi înțelese și ca funcții sau subrutine individuale) în PHP. Prin urmare, pentru a implementa o afișare a meniului de sus în MODx, trebuie să creăm și un nou snippet, să-l programăm și să adăugăm un apel la acest fragment în șablon în locul potrivit.

Să mergem la sistemul de management, deschidem fila „Resurse” -> „Gestionarea resurselor” -> fila „Fragmente” și faceți clic pe linkul „Fragment nou”. În câmpul „Numele fragmentului”, introduceți „TopMenu” fără ghilimele și pentru moment doar salvați fragmentul gol fără cod. După salvare, vom vedea numele fragmentului nostru în fila „Fragmente”.

Permiteți-mi să vă reamintesc că în șablonul nostru am plasat meniul de sus în porțiunea „TOPMENU”. Să comutăm la fila „Bucăți” și să deschidem porțiunea „ ”. În conținutul acestei bucăți vom vedea următorul cod:


  • Blog

  • Despre autori

  • Fotografii

  • Feedback

Acest cod este cel care creează meniul nostru. Să-l comentăm și să adăugăm un apel la fragmentul „TopMenu” în fragment:


[]

Aici, din nou, va trebui să divagăm puțin pentru a explica sensul acestei construcții []. Faptul este că cu ajutorul unor construcții precum [] sau [!SnippetName!] putem face apeluri către fragmente oriunde în șabloanele noastre, bucăți și chiar pe orice pagină individuală a site-ului.

În acest caz, construcția [] denotă un apel stocabil în cache fragment, adică apelarea unei subrutine dinamice, al cărei rezultat va fi calculat și executat o dată, iar ulterior la încărcarea paginii unde este apelat acest fragment, rezultatul va fi neschimbat, deoarece fragmentul nu mai este apelat din nou. În acest fel, economisim resurse pe serverul nostru web (și acest lucru este întotdeauna foarte important atunci când există trafic mare către resursă).

Cu toate acestea, există situații în care trebuie să reexecuți codul fragmentului tot timpul și nu poți stoca rezultatele în cache. În astfel de cazuri, se folosește constructul [!SnippetName!], care va forța întotdeauna executarea fragmentului fără cache. Prin analogie, această construcție se numește apel necacheabil fragment.

Deci, să salvăm fragmentul „TOPMENU” și să actualizăm pagina site-ului. Hmm, destul de ciudat, meniul de sus a dispărut. Dar este chiar atât de surprinzător? Comentând codul HTML al meniului în fragment, am ascuns afișarea acestuia în browser (verificați acest lucru uitându-ne la codul sursă Pagini HTML). Dar fragmentul nostru „TopMenu” nu face nimic, deoarece încă nu a fost adăugat nimic la el. Să corectăm acest neajuns :).

Să revenim la fila „Fragmente”, să deschidem fragmentul „TopMenu” creat și să încercăm să-i testăm capacitățile... Răbdare, cititorii mei avansați, nu toată lumea este familiarizată cu aceste detalii.

Mai întâi, să scriem cel mai simplu cod (cod PHP obișnuit):

ecou „Testare...”;
?>

Înainte de a salva, selectați „Continuați editarea”, deoarece va trebui să schimbăm conținutul fragmentului nostru de mai multe ori, iar după aceea vom salva fragmentul. Să reîmprospătăm pagina site-ului și să vedem în locul meniului de sus... ei bine, să fiu sincer, la prima vedere nu vom vedea aproape nicio modificare, cu excepția fundalului albastru ușor extins al meniului. Să apăsăm „CRTL+A” pentru a selecta tot textul de pe pagina site-ului și vom vedea că fragmentul nostru afișează totuși textul „Testing...” în locul meniului, doar culoarea textului se potrivește cu culoarea de fundal. .

Să schimbăm codul fragmentului în următorul:

ecou" Testare...";
?>

Acum putem vedea clar că fragmentul nostru funcționează și chiar (!) afișează ceva text. Ei bine, acest lucru este grozav, dar nu suficient pentru sarcina noastră, deoarece trebuie să ne asigurăm că fragmentul nostru afișează linkuri din sistemul de control și exact în același cod HTML pe care l-am comentat în partea „TOPMENU”.

Și din nou puțină distragere a atenției...

Întregul sistem de relații de documente din MODx este construit pe principiul: fiecare „document părinte” conține de la zero la multe „documente copil” („părinte” -> „copii”).

Fiecare document din baza de date MODx are propriul său identificator unic „ID” - acesta este numărul pe care îl vedem între paranteze în arborele site-ului de lângă fiecare document.

Apropo, acest identificator unic are o singură semnificație - identifică în mod unic un anumit document în sistemul de management si nimic mai mult! Subliniez în mod special acest fapt, deoarece am întâlnit încercări repetate de a schimba acești identificatori pentru o mare varietate de scopuri... Trebuie să vă amintiți imediat că acest lucru este pur și simplu inutil, așa că nu încercați să schimbați aceste numere. Nu ar trebui să le acordați prea multă atenție, de obicei, aceste numere sunt folosite pur și simplu pentru a genera link-uri către anumite documente.

Baza de date MODx creează, de asemenea, un câmp „părinte” special pentru fiecare document. Valoarea acestui câmp este un număr care indică fie identificatorul unic al documentului părinte, fie, dacă documentul se află la rădăcina arborelui, zero. Astfel, puteți determina întotdeauna fără ambiguitate care document este documentul părinte pentru un anumit document.

Pentru a vedea clar despre ce tocmai am vorbit, deschideți phpMyAdmin, selectați baza de date și găsiți tabelul (PREFIX)site_content, unde (PREFIX) este prefixul pe care l-ați introdus în timpul instalării. Veți vedea multe câmpuri care stochează date specifice ale documentului, inclusiv „ID” - un identificator unic, „părinte” - numărul documentului părinte, „pagetitle” - titlul paginii și altele.

Deci, folosind aceste informații despre principiul stocării și conectării documentelor în MODx, putem înțelege cum să obținem datele necesare pentru a afișa link-urile din meniul de sus: trebuie să găsim în baza de date toate documentele care se află la rădăcina site-ului copac, adică au valoarea zero în câmpul „părinte”.

Folosind Limbajul SQL, o solicitare similară este descrisă cam așa (Puteți încerca să introduceți această cerereîn câmpul de intrare SQL din phpMyAdmin, după înlocuirea „modx_” cu prefixul dvs.):

SELECTAȚI *
DIN `modx_site_content`
UNDE `părinte` = 0;

Cu toate acestea, o astfel de solicitare ne va returna absolut toate documentele de la rădăcina site-ului, ceea ce nu este în întregime corect, pe baza sarcinii principale - să afișam link-uri numai către acele documente care au:

  • stare publicată (în baza de date, acest articol este reprezentat de câmpul „publicat”, unde valoarea = 1 înseamnă că documentul este publicat, iar valoarea = 0 înseamnă nepublicat).
  • anulat (câmpul „șters”, unde 1 este șters și 0 nu este șters),
  • și care au setată opțiunea „Afișare în meniu” (câmpul „ascunde meniu”, unde 1 înseamnă ascunde și 0 înseamnă afișare în meniu).

În plus, privind puțin înainte, vom sorta imediat documentele după parametrul „Poziție în meniu”, care va determina poziția fiecărui link în meniul nostru.

Ei bine, din punct de vedere SQL, aceasta este o sarcină complet simplă și poate fi rezolvată astfel:

SELECTAȚI *
DIN `modx_site_content`
UNDE `publicat` = 1
ȘI „părinte” = 0
ȘI „șters” = 0
ȘI `hidemenu` = 0
COMANDA PENTRU `menuindex` ASC;

Teoretic, toate interogările SQL pot fi executate în fragmente direct folosind Scripturi PHP, conectând baza de date din nou și făcând multe alte operațiuni de rutină, repetându-le iar și iar... Dar, vezi, asta ar anula sensul folosirii unui cadru, ceea ce este cu siguranță sistemul nostru de management, deoarece MODx, printre celelalte avantaje ale sale, oferă gata setat fonduri interfata software(API, Interfață de programare a aplicațiilor). API-urile sunt funcții software care unifică și facilitează multe procese de prelucrare a datelor.

Să folosim una dintre funcțiile API menționate „getDocumentChildren” în fragmentul nostru. Funcția „getDocumentChildren” primește următoarele date ca parametri:

  • $id - numărul documentului părinte,
  • $activ - selectați doar documentele publicate sau nepublicate (1 sau respectiv 0),
  • $deleted - selectați doar documentele șterse sau neșterse (1 | 0),
  • $fields - câmpuri care sunt selectate din baza de date,
  • $unde - conditii speciale, i.e. WHERE starea in interogare SQL,
  • $sort - câmp după care rezultatele ar trebui să fie sortate
  • $direcție - direcția de sortare, poate lua valori ASC sau DESC, adică sortați de la cea mai mică la cea mai mare valoare sau invers
  • $limit - limită de solicitare, adică Condiție LIMIT în interogarea SQL

$rezultate = $modx->getDocumentChildren(
$id = 0,
$activ = 1,
$deleted = 0,
$unde = "hidemeniu = 0",
$sort="menuindex",
$dir="ASC",
$limită
);

Imprimare("

Foreach($rezultate ca $key => $value) (
print_r($valoare);
}

Imprimare("");
?>

Salvați fragmentul și reîmprospătați pagina. Ca urmare a executării fragmentului actualizat „TopMenu”, veți vedea o listă de matrice și valorile acestora, sortate după valorile câmpului „menuindex” de la cel mai mic la cel mai mare. Încercați să schimbați parametrul $dir="ASC" în $dir="DESC" - ca rezultat, matricele vor fi reconstruite și documentul cu cea mai mare valoare a câmpului „menuindex” va fi afișat ca prim document.

Programatorii cu experiență înțeleg probabil că rezultatul obținut oferă deja tot ce aveți nevoie pentru a construi un meniu gata făcut cu link-uri. Ei bine, aproape totul. În orice caz, voi continua: să rescriem codul PHP pentru a ne apropia cât mai mult de rezultatul dorit.

$rezultate = $modx->getDocumentChildren(
$id = 0,
$activ = 1,
$deleted = 0,
„id, pagetitle, published, menuindex, deleted, hidemenu, menutitle”,
$unde = "hidemeniu = 0",
$sort="menuindex",
$dir="ASC",
$limită
);

$items = "";
$ieșire = "";

Foreach($rezultate ca $key => $value) (
$articole .="


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

    Dacă ($articole != "") (
    $ieșire = "

      \n";
      $ieșire .= $articole;
      $ieșire .="
    \n";
    }

    Returnează $ieșire;

    Nu vom analiza codul în detaliu, deoarece acesta este cel mai obișnuit cod PHP, nimic mai mult. Dacă cineva nu înțelege semnificația vreunei construcții, vă rugăm să lăsați un comentariu sau, mai bine, accesați forumurile de asistență relevante.

    Să salvăm noul cod de fragment și să reîmprospătăm pagina. Ca rezultat al executării codului, vom vedea aproape ceea ce am vrut să obținem:

    Aceste. Acestea sunt deja link-uri generate automat, a căror structură repetă complet structura documentelor din arborele MODx. Pentru a testa acest lucru, încercați să creați un document de testare în rădăcina site-ului și reîmprospătați pagina.

    Cu toate acestea, asta nu este tot. Mulți probabil au observat deja că există link-uri, dar nu există link-uri... Paradox :). Adică numele documentelor sunt afișate în meniu, dar linkurile către ele nu funcționează. Acest lucru este logic, deoarece deocamdată codul de legătură afișează „#” în loc de căi reale.

    Pentru a rezolva această problemă, trebuie să aflați despre o altă caracteristică extrem de utilă a MODx: adresa oricărei pagini interne a site-ului poate fi obținută folosind următoarea construcție [~id~], unde id este număr unic documentul solicitat, adică același număr indicat între paranteze lângă numele fiecărui document din arborele site-ului. Astfel, prin adăugarea unei astfel de construcții [~1~] în conținutul șablonului/bucății/paginii,

      • index – alias al documentului „Blog”, dacă am introdus „index” ca alias al documentului, sau
      • 1.html, dacă nu am introdus nimic în câmpul „Nickname” pentru documentul „Blog”.
    • dacă linkurile prietenoase sunt dezactivate, vom vedea textul index.php?id=1

    Să rescriem fragmentul folosind aceste informații:

    $rezultate = $modx->getDocumentChildren(
    $id = 0,
    $activ = 1,
    $deleted = 0,
    „id, pagetitle, published, menuindex, deleted, hidemenu, menutitle”,
    $unde = "hidemeniu = 0",
    $sort="menuindex",
    $dir="ASC",
    $limită
    );

    $items = "";
    $ieșire = "";

    Foreach($rezultate ca $key => $value) (
    $articole .="


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

    Dacă ($articole != "") (
    $ieșire = "

      \n";
      $ieșire .= $articole;
      $ieșire .="
    \n";
    }

    Returnează $ieșire;

    Deci am schimbat # în [~".$value["id"].."~], adică. de fapt, pentru fiecare document din matrice, ID-ul său unic este înlocuit în interiorul construcției [~id~]. Ca rezultat, obținem un meniu cu link-uri de lucru.

    Aproape am atins idealul... Cu toate acestea, chiar și acum mai există un detaliu care trebuie luat în considerare: designerul a stabilit ca legătura noastră activă să fie evidențiată cu un fundal alb și, în consecință, culoarea linkului să fie schimbată în portocaliu.

    Pentru a realiza acest lucru, vom dezvălui din nou secretele MODx CMS :). Ascunsă în API este funcția $modx->documentIdentifier, care returnează valoarea identificatorului unic al paginii curente. Vom avea nevoie de el pentru a determina pagina activă și pentru a o evidenția în meniu:

    $rezultate = $modx->getDocumentChildren (
    $id = 0,
    $activ = 1,
    $deleted = 0,
    „id, pagetitle, published, menuindex, deleted, hidemenu, menutitle”,
    $unde = "hidemeniu = 0",
    $sort="menuindex",
    $dir="ASC",
    $limită
    );

    $cid = $modx->documentIdentifier;

    $items = "";
    $ieșire = "";

    Foreach($rezultate ca $key => $value) (
    dacă ($valoare[„id”] == $cid) (
    $activ = " id=\"activ\"";
    }
    altfel(
    $activ = "";
    }
    $articole .="
    „.$value[„pagetitle”].”
    \n";
    }

    Dacă ($articole != "") (
    $ieșire = "

      \n";
      $ieșire .= $articole;
      $ieșire .="
    \n";
    }

    Returnează $ieșire;

    Ei bine, cum a ieșit? A funcționat!

    Dar nu credeai că toate astea se vor termina aici, nu-i așa? Și pe bună dreptate. Ne-am stabilit cel mai înalt standard, vrem să folosim capacitățile maxime ale MODx. Și, prin urmare, mai există un mic detaliu pe care l-am omis.

    Să ne uităm îndeaproape la numele câmpurilor pe care le solicităm folosind funcția getDocumentChildren: „id, pagetitle, published, menuindex, deleted, hidemenu, menutitle”. Printre acestea există un câmp precum „menutitle”. După cum sugerează și numele, acest câmp poate stoca titlul meniului. Sistemul de control are, de asemenea, un câmp de introducere „Articol de meniu”. Acest câmp este opțional. Totuși, logica este că dacă acest câmp este completat, atunci trebuie să înlocuim textul linkului din meniu cu cel introdus de utilizator. Ei bine, hai să facem asta:

    /********************************
    Nume: Meniul de sus
    Scop: Afișează meniul de sus
    Proiect: MODx Demosite
    ********************************/

    $rezultate = $modx->getDocumentChildren(
    $id = 0, // ID-ul documentului părinte
    $activ = 1, // Selectați doar documentele publicate
    $deleted = 0, // Selectați doar documentele neșterse
    „id, pagetitle, published, menuindex, deleted, hidemenu, menutitle”, // Selectați câmpuri din baza de date
    $where = "hidemenu = 0", // Selectați doar acele documente care trebuie publicate în meniu
    $sort="menuindex", // Sortați documentele după câmpul menuindex
    $dir="ASC", // Sortează documentele în ordine crescătoare
    $limit = "" // Nu setăm restricții (parametru LIMIT în interogarea SQL)
    );

    $cid = $modx->documentIdentifier; //obține ID-ul paginii curente

    $items = "";
    $ieșire = "";

    Foreach($rezultate ca $key => $value) (
    dacă ($valoare[„id”] == $cid) (
    $activ = " id=\"activ\"";
    }
    altfel(
    $activ = "";
    }
    dacă ($value["menutitle"] != "") (
    $titlu = $valoare["menutitle"];
    }
    altfel(
    $title = $value["pagetitle"];
    }
    $articole .="
    „.$titlu”.
    \n"; //colectați elemente de meniu
    }

    // Dacă am reuși să găsim măcar unul element de meniu,
    // creează codul de meniu HTML
    dacă ($articole != "") (
    $ieșire = "

      \n";
      $ieșire .= $articole;
      $ieșire .="
    \n";
    }

    // Returnează rezultatul fragmentului
    returnează $ieșire;

    Acum încercați să introduceți ceva text în câmpul de introducere „Element de meniu” al oricărui document... Funcționează totul? Uimitor!

    P.S.: Unii cititori ar putea fi surprinși că atunci când urmați linkurile din meniul nostru, conținutul paginilor nu se modifică, deși se pare că, judecând după calea din adresa browserului, trecem la pagini noi... Credeți eu, acest lucru este absolut normal, pentru că Absolut toate paginile folosesc în prezent același șablon. În acest șablon, de fapt, am făcut doar meniul de sus dinamic, toate celelalte detalii rămân neschimbate. Cu siguranță vom intra în asta mai târziu, dar deocamdată - nu vă panicați ;).

    Concluzie:

    Deci, un alt articol a ajuns la concluzia sa logică.

    Rezultatele antrenamentului:

    • Am încercat să înțelegem scopul unora dintre câmpurile de intrare din documentele MODx și am analizat stocarea acestor informații într-o bază de date;
    • Am aflat despre noi modele speciale MODx: [], [!SnippetName!], [~id~];
    • Am aflat despre disponibilitatea unui API special și am profitat de unele funcții API;
    • Și pe baza acestor cunoștințe, am creat noul nostru fragment în MODx!

    Să începem lecția 8 din MODx Revolution pentru începători. Permiteți-mi să vă reamintesc că facem un site web pentru studiul MODx Revolution. În ultima lecție, ne-am uitat la conceptul de fragmente, care sunt bucăți de cod PHP care ne permit să adăugăm funcționalități site-ului nostru. În această lecție ne vom uita la un fragment special - Wayfinder și îl vom folosi pentru a crea un meniu dinamic pentru site-ul nostru.

    Ce este Wayfinder?

    Wayfinder este un fragment care afișează o listă nesortată de legături către resurse în arborele site-ului dvs. tipul de ieșire a listei depinde de apelul de fragment și de parametrii acestui apel. În termeni generali, aceasta înseamnă că atunci când plasați un apel Wayfinder în șablonul dvs., acesta începe să caute resurse care îndeplinesc parametrii specificați în acesta și returnează o listă de link-uri către acele resurse într-un format de listă nesortat sau într-un format definit de dvs.

    De ce să folosiți Wayfinder?

    De obicei folosesc Wayfinder pentru a crea navigare dinamică pe site, adică meniuri. Din moment ce majoritatea șablon HTML Folosiți liste neordonate pentru a crea meniuri, atunci Wayfinder este instrumentul perfectîn aceste scopuri. Când creați un site, puteți introduce cu grijă adresele URL în meniul de navigare, așa cum ați făcut înainte într-un site HTML static. În același timp, de fiecare dată când trebuie să ștergeți sau să creați o pagină, trebuie să faceți modificările corespunzătoare în meniul dvs., să schimbați adresele URL. Utilizarea fragmentului Wayfinder pentru a vă genera dinamic meniurile evită această durere de cap, deoarece detectează automat modificările și vă modifică meniul în consecință.

    Wayfinder este un instrument destul de flexibil și vă permite să determinați ce resurse să includeți sau să excludeți din meniu, care este șablonul de meniu, cât de profund este meniul site-ului dvs. Limita capacităților dvs. este determinată de codul dvs. HTML/CSS.

    Cum se utilizează Wayfinder?

    După cum am menționat deja în lecția anterioară, sintaxa pentru apelarea fragmentelor arată astfel: [[!somesnippet]]

    Acesta este doar un apel de bază și nu este suficient, pe lângă acesta trebuie să definim câteva proprietăți ale acestui apel. În cazul Wayfinder, minimul care trebuie definit în proprietăți este locul în care Wayfinder ar trebui să înceapă să construiască o listă de resurse în arborele de resurse. Astfel, la apelarea fragmentului Wayfinder, trebuie să specificați cel puțin un parametru - ID-ul inițial. Apelul de bază către fragmentul Wayfinder în acest caz va arăta astfel:

    Acest apel îi spune Wayfinder-ului să înceapă de la rădăcina arborelui ( ID 0 înseamnă rădăcina site-ului) și arată toate resursele care sunt publicate și care nu au o bifă în caseta de selectare Ascundeți din meniuri.

    Dacă ne uităm la șablonul pe care îl folosim, putem vedea un meniu de sus cu mai multe opțiuni și liste derulante.

    Să aruncăm o privire la șablonul și codul care iese acest meniu:

    După cum puteți vedea, aceasta este o listă neordonată imbricată. Să înlocuim acest cod cu un apel de bază Wayfinder și să vedem ce obținem. Ștergeți codul de mai sus și inserați în locul lui:

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

    Dacă utilizați același șablon ca și mine, codul dvs. va arăta cam așa:

    Salvați șablonul și uitați-vă la pagina de start, ar trebui să arate așa:

    Fantastic! Puteți vedea că meniul nostru anterior, care avea mai multe opțiuni, a fost acum înlocuit cu un meniu simplu cu un singur element - Acasă. Acest lucru ne spune că Wayfinder funcționează așa cum ar trebui și ia o pagină de pe site-ul nostru și își afișează titlul ca element de meniu.

    Să mai creăm câteva resurse. Voi adăuga o pagină Despre cu 3 pagini copil (PAgini MODx, Tutoriale, Contact și Întrebări frecvente). Puteți crea orice resurse sau pagini pentru site-ul dvs. Scopul acestui exercițiu este de a crea mai multe resurse, astfel încât Wayfinder să aibă ceva de afișat.

    Am terminat de creat pagini și arborele de resurse ale site-ului meu arată astfel:

    Acum avem mai multe pagini, să vedem cum apelarea Wayfinder va genera un meniu pentru site-ul nostru:

    Vestea bună este că toate paginile noastre au apărut în meniu și făcând clic pe fiecare element de meniu suntem duși la pagina corespunzătoare. (Pentru a testa acest element, adăugați ceva text în fiecare pagină, de exemplu pe pagina Despre puteți adăuga „Aceasta este o pagină Despre” și acest mesaj va apărea când pagina este deschisă. Rețineți că trebuie să definim un șablon pentru fiecare pagina, dar în în acest moment nu am de gând să-mi fac griji).

    Vestea proastă este că formatarea meniului este întreruptă, dar o putem remedia. Clic clic dreapta mouse-ul pe pagina web și uită-te la codul sursă (sau folosește firebug pentru asta), vei vedea asta acum Wayfinder generează HTML astfel:

    • Acasă
    • Despre
      • MODx CMS
      • Padul de codare
        • Blogul
        • Serviciile
    • Contactaţi-ne
    • Tutoriale
    • FAQ

    După cum puteți vedea, acesta arată foarte asemănător cu codul nostru static inițial, cu câteva excepții. În primul rând, Wayfinder a generat

    © 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații