Menü
Ingyenes
bejegyzés
itthon  /  Internet/ Változtassa meg a felső menüt. PdoMenu - menü létrehozása a MODX Modx függőleges menüjében

A felső menü módosítása. PdoMenu - menü létrehozása a MODX Modx függőleges menüjében

Menügeneráló részlet. Leválthatja a Wayfindert, és nagyobb rugalmasságot tesz lehetővé a paraméterek meghatározásában.

Például egyszerre több szülőből is össze tud építeni egy menüt, egyszerre és külön ágakként is megjelenítve őket.

Jelentős sebességnövekedés csak az első indításkor érhető el, a további Wayfinder az illetékes gyorsítótárnak köszönhetően nem rosszabb.

Lehetőségek

Alapértelmezés szerint a pdoMenu elfogadja az általános pdoTools paramétereket és néhány saját paramétert:

Név Alapértelmezett Leírás
& szülők Jelenlegi forrás A keresési eredményekhez tartozó szülők listája, vesszővel elválasztva. Ha felteszed & szülők = "0".- a minta nem korlátozott. Ha a szülő azonosítója kötőjellel kezdődik, akkor az ő és gyermekei kimaradnak a kiválasztásból.
& szint 0 (korlátlan) Generált menüszint.
& erőforrások Az eredményekben megjelenítendő erőforrások listája, vesszővel elválasztva. Ha egy erőforrásazonosító kötőjellel kezdődik, akkor az erőforrás kimarad a kijelölésből.
és sablonok Az eredmények szűrésére szolgáló sablonok listája, vesszővel elválasztva. Ha egy sablonazonosító kötőjellel kezdődik, akkor az azzal rendelkező erőforrások ki lesznek zárva a kijelölésből.
& ahol További lekérési paraméterek JSON-kódolású tömbje.
& displayStart 0 A menü indító csomópontjainak megjelenítésének engedélyezése. Hasznos, ha egynél több szülőt ad meg.
& kontextus A kijelölés korlátozása erőforrás-kontextus szerint.
& showHidden 0 A menüben rejtett erőforrások megjelenítése.
& showUnpubliced 0 Nem közzétett források megjelenítése.
& előnézet Nincs közzétéve 0 Engedélyezze a közzé nem tett erőforrások megjelenítését, ha a felhasználó jogosult erre.
& hideSubMenus 0 Az inaktív menüágak elrejtése.
& válassza ki A kiválasztandó mezők listája, vesszővel elválasztva. Megadhat például egy JSON-karakterláncot egy tömbbel & select = `(" modResource ":" azonosító, oldalcím, tartalom ")`
& rendezés menüindex Bármely rendezendő erőforrásmező, beleértve a TV paramétert is, ha meg van adva a paraméterben és TV-ket tartalmaz, például & sortby = `(" tvnév ":" ASC "," oldalcím ":" DESC ")`... Megadhat egy JSON-karakterláncot több mezőből álló tömbbel. Véletlenszerű rendezéshez adja meg & sortby = `RAND ()`
& sortdir ASC Rendezési irány: csökkenő vagy növekvő. Ha üresen hagyja a & sortby és & sortdir paramétereket, akkor a rendezés az erőforrások sorrendjében történik & erőforrások.
& limit 0 A mintaeredmények számának korlátozása.
& eltolás 0 Az eredmények kihagyása az elejétől. A kifejezetten meghatározottakkal együtt kell használni & limit
és ellenőrizze az engedélyeket Adja meg, hogy a felhasználónak milyen engedélyeket kell ellenőriznie például az erőforrások megjelenítésekor & checkPermissions = `lista`.
& countGyerekek 0 Az egyes kategóriák gyermek erőforrásainak pontos megszámlálása és megjelenítése a [[+ children]] helyőrzőben. További lekérdezéseket végez az adatbázisban, így alapértelmezés szerint le van tiltva.
& toPlaceholder Ha nem üres, a kódrészlet az összes adatot egy ilyen nevű helyőrzőbe menti, ahelyett, hogy a képernyőn jelenne meg.
& plPrefix wf. Az elhelyezett helyőrzők előtagja.
& Mutasd a naplót 0 További információk megjelenítése a részlet munkájáról. Csak az "mgr" kontextusban jogosultaknak.
& gyors mód 0 Gyors darabfeldolgozási mód. Minden nyers címke (feltételek, töredékek stb.) le lesz vágva.
& gyorsítótár 0 Részleteredmények gyorsítótárazása.
& cacheTime 3600 A gyorsítótár érvényességi ideje, másodpercben.
& rendszer -1 Az url-képzési séma átkerül a modX :: makeUrl ()-be, ezért szükség van a lehetséges opciókra. A speciális uri típus a függvény futtatása nélkül helyettesíti az erőforrás uri értékét.
és használja a WeblinkUrl-t 1 Hivatkozás létrehozása az erőforrásosztály alapján.
& rowIdPrefix Előtag id = "" az azonosító beállításához a darabban.
& ittId a generált menü aktuális erőforrásának azonosítója. Csak akkor kell megadnia, ha maga a szkript hibásan határozza meg, például amikor egy menüt egy másik kódrészletből jelenít meg.
és TV-ket tartalmaz A kiválasztandó TV-paraméterek listája, vesszővel elválasztva. Például & includeTVs = `akció, idő` helyőrzőket ad [[+ akció]] és [[+ idő]].
& TV-k előkészítése TV-paraméterek listája médiaforrásokból származó fájlokkal, amelyekhez teljes elérési utat kell generálni. Ha telepíted & TV előkészítése = `1` pontban meghatározott összes tévékészülék és TV-ket tartalmaz.
& processTV-k A feldolgozandó és megjelenítendő TV-paraméterek listája a beállításoknak megfelelően a rendszerkezelőben. Ha telepíted & processTVs = "1". pontban meghatározott összes tévékészülék és TV-ket tartalmaz... Lelassítja a munkát.
& tvPrefix A TV paramétereinek előtagja.

Sablon paraméterei

Ezek a paraméterek olyan darabokat állítanak be, amelyek sablonokat tartalmaznak a menük létrehozásához.

Név Leírás
& tplOuter A teljes menüblokk kialakításának darabja. Alapértelmezett: @INLINE
    [[+ wrapper]]
& tpl A menüelem tervezésének része. Ha nincs megadva, akkor az erőforrás mezők tartalma ki lesz nyomtatva a képernyőre. Alapértelmezett: @INLINE
  • [[+ menücím]] [[+ wrapper]]
  • & tplItt Az aktuális menüpont kialakításának egy része.
    & tplStart A gyökérelem regisztrációjának része, feltéve, hogy benne van & displayStart... Alapértelmezett: @INLINE

    [[+ menücím]]

    [[+ wrapper]]
    & tplParentRow A szülő tervének olyan része, amelynek leszármazottai nem felelnek meg a & tplCategoryFolder feltételeknek. Például: @INLINE
    & tplParentRowHere Az aktuális dokumentum tervének egy része, ha tartalmaz gyermekeket.
    & tplParentRowActive A leszármazottakkal rendelkező szülők regisztrációjának darabja az aktív menüágban.
    & tplCategoryFolder Különleges darab a kategóriához. A kategória gyermekes szülőnek minősül, amelynek a link_attributes mezőjében üres sablon vagy rel = "category" van.
    & tplInner A menü alpontjainak teljes blokkjának kialakításának darabja. Ha üres, akkor használni fogja & tplOuter... Például: @INLINE
    & tplInnerRow A menü egy alpontjának regisztrációs része. Például: @INLINE
    & tplInnerHere A menü aktív alpontjának regisztrációs része.

    CSS osztály paraméterei

    Ezek a paraméterek beállítják a [[+ osztálynevek]] és [[+ osztályok]] helyőrzők értékét a különböző menüpontokhoz. A [[+ osztálynevek]] helyőrző csak az osztálynevet jeleníti meg attribútum nélkül osztály = "", ellentétben a [[+ osztályok]] helyőrzővel.

    Példák

    Normál menükimenet a webhely gyökérből egy szintre:

    []

    Kimenet bizonyos szülők kizárásával és felhasználói engedélyek ellenőrzésével:

    []

    Két szülő menüjének megjelenítése egyszerre, a gyökérpontok megjelenítésével:

    []

    Az erőforrások két szintjének megjelenítése a beágyazott erőforrások számának megszámlálásával:

    [] `& tplParentRow =` @ INLINE

  • [[+ menücím]] ([[+ gyerekek]])
  • [[+ wrapper]] `& countChildren =` 1`]]



    Útkereső a MODX hivatkozáslistáinak rendezésére szolgál. A sablonok támogatásának köszönhetően lehetővé teszi a listák bármilyen szükséges formában történő megjelenítését:
    • Menü lista, táblázat, képek, ikonok stb. formájában.
    • Statikus menük
    • Menük különféle effektusokkal (legördülő menü, legördülő stb.)
    • helyszín térképe
    Példa hívásra:


    & rowTpl = `sorTpl`
    & outerTpl = `outerTpl`
    & hereClass = `aktív`
    & rowClass = `eNav_li`]]

    Kivonat paraméterei:

    & startId- a szülőoldal id-je, ha 0-t adsz meg, akkor az oldal gyökérből lesz. Az alapértelmezett az aktív oldal azonosítója

    & displayStart - dokumentum megjelenítése startIddel a menü címében, alapértelmezett hamis

    & szint- beágyazási mélység, alapértelmezés szerint 0 - minden szint

    & limit- korlátozza az oldalak számát a kimenetben (alapértelmezett 0 - nincs korlátozás)

    & ignoreHidden- figyelmen kívül hagyja a "Megjelenítés a menüben" oldal jelölőnégyzetét, pl ha 1-et ad meg, akkor az összes oldalt megjeleníti. Az alapértelmezett érték 0. Csak azok az oldalak jelennek meg, amelyeknél be van jelölve a „Megjelenítés a menüben” jelölőnégyzet

    & ph - a közvetlenül megjelenített eredmények helyettesítőjének neve. Az alapértelmezett érték 0.

    & hibakeresés- hibakeresési mód (alapértelmezett 0)

    & hideSubMenus - csak az aktív almenü kibontása (alapértelmezett 0)

    & RemoveNewLines- eltávolítja a soremelés karaktert a kimeneten (alapértelmezett 0)

    & textOfLinks- a menü hivatkozás nevéhez. Lehetséges opciók:menutitle, id, pagetitle, description, parent, alias, longtitle, introtext. Alapértelmezett menücím

    & titleOfLinks- a menü linkjének címéhez. Opciók:menutitle, id, pagetitle, description, parent, alias, longtitle, introtext. Alapértelmezett lap cím

    & rowIdPrefix- beállítja az azonosítót (rowIdPrefix + docId) minden elemhez. Alapértelmezett 0

    & includeDocs- a menübe kerülő dokumentumok azonosítója vesszővel elválasztva (alapértelmezés szerint nincs megadva)

    & Docsok kizárása - vesszővel elválasztott dokumentumok azonosítója, amelyek kikerülnek a menüből (alapértelmezett 0)

    & összefüggések- kontextus a menü létrehozásához. Az alapértelmezett az aktuális.

    & startIdContext - Annak a kontextusnak az azonosítója, amelyből a dokumentumok az eredmény kialakításához származnak.

    & config - Külső PHP-fájl a Wayfinder konfigurációjának tárolására (például: core / komponensek / wayfinder / konfigurációk).

    & rendszer - URL generálási formátum. Lehetséges értékek (a makeURL API-hívás alapján):

    1: (alapértelmezett) URL a site_url-hez viszonyítva;

    0: lásd http;

    1: lásd https;

    full: site_url-lel kezdődő abszolút URL;

    abs: a base_url karakterrel kezdődő abszolút URL;

    http: abszolút URL, a http sémába kényszerítve;


    https: egy abszolút URL, amely a https sémába van kényszerítve.

    & rendezés - Az a mező, amelyen a rendezés megtörténik. (alapértelmezett menüindex)

    A lehetőségek a következők:

    azonosító, menutitle, pagetitle, introtext, menuindex, közzétett, hidemenu, parent, isfolder, description, alias, longtitle, type, template

    & sorrend- Rendezési sorrend.„ASC” vagy „DESC”. Alapértelmezett ASC

    & ahol - JSON-stílusú szűrőparaméterek (Hol egyezik meg a MySQL-ben)... Például, ha el akar rejteni egy blogot vagy hírt a Cikkek kiegészítőből: & where = `[(" class_key:! = ":" Cikk ")]`
    Példák:
    csak a mappákat adja ki: & ahol = `isfolder = 1

    & ittId - Határozza meg a kódrészletben használandó aktuális azonosítót. Használja a [[* id]] értéket, ha a sablon a hereTpl paraméterrel van megadva, és az ActiveRowParentTpl nincs megfelelően alkalmazva a menüpontban. Alapértelmezés szerint az aktuális azonosító.
    Csak akkor kell megadnia, ha maga a szkript hibásan határozza meg, például amikor egy menüt egy másik kódrészletből jelenít meg.

    & ittTpl - A hereTpl sablon akkor használatos, ha az aktuális elem megjelenik a menüben.
    Lehetséges helyőrzők:
    [[+ wf.classes]] – a használt CSS-osztály megadásának helye (az osztály = "")
    [[+ wf.classnames]] - csak a CSS-osztály nevét tartalmazza (az osztály = "" nem tartalmazza)
    [[+ wf.link]] - a hivatkozás címe (href).
    [[+ wf.title]] - szöveg a link címéhez
    [[+ wf.linktext]] - hivatkozás címének szövege
    [[+ wf.wrapper]] - az almenü megjelenítésének helye
    [[+ wf.id]] - egyedi azonosító (id) megjelenítése
    [[+ wf.attributes]] - további linkattribútumok megjelenítése
    [[+ wf.docid]] - az aktuális elem dokumentumazonosítója
    [[+ wf.subitemcount]] -elemek száma a mappában
    [[+ wf.description]] - megjeleníti a leírás mező értékeit
    [[+ wf.introtext]] - az introtext mező értékeit jeleníti meg

    Példa sablon: [[+ wf.linktext]] [[+ wf.wrapper]]

    Sablon paraméterei

    Ezek a paraméterek határozzák meg a Wayfinder kimenetét generáló sablonokat tartalmazó darabokat.

    A Wayfinder for MODX Revolution jelenlegi verziójában a wf előtag helyőrzőivel érheti el egyéni tévéjét. pl [[+ my_TV]]

    Az írás idején csak az eredeti TV-értékek kerülnek visszaadásra – nem lesznek formázva. Például, ha a TV-készüléke egy kép – egy ilyen tévé szokásos használata a sablonon belül a teljes képcímkét adja vissza, de a Wayfinder sablonon belül – csak a kép elérési útja kerül visszaadásra.

    Ha szeretné kezelni a TV-t, akkor ezt úgy teheti meg, hogy meghív egy részletet a Wayfinder sorsablonon belül (& rowTpl. Például a tévékép neve ikonés általában a következő kódot használják a sablonban való kimenetre:

    ... ...

    De mivel ez nem teszi lehetővé a TV kezelését, ki kell cserélnie a következőre:

    ... ...

    És most a következő PHP kódot helyezzük a processTV kódrészletbe:

    getObject ("modResource", $ myId); return $ doc-> getTVValue ($ myTV);

    Ennek eredményeként egy teljesen feldolgozott TV-kép jelenik meg.

    & külsőTpl

    A külső tároló sablonját tartalmazó darab neve.

    Elérhető helyőrzők:

    • wf.classes – a Wayfinder paramétereiből vett osztályokat jeleníti meg (beleértve a class = "" attribútumot is)
    • wf.classnames – osztálynevek megjelenítése (class = "" nélkül)
    • wf.wrapper - megjeleníti a belső tartalmat (sor).
      [[+ wf.wrapper]]

    Az & innerTpl paraméter ugyanazt a helyőrző-készletet tartalmazza, mint az & outerTpl.

    & sorTpl

    A menüsor elemeinek sablonját tartalmazó csonknév.

    Elérhető helyőrzők:

    • wf.classes – osztálykimenet (beleértve a class = "" attribútumot)
    • wf.classnames - a megfelelő osztályok megjelenítése (class = "" nélkül)
    • wf.link - a href = "" attribútum értéke a menühivatkozáshoz
    • wf.title - a hivatkozás címszövegének neve a & titleOfLinks paraméterben megadott mezőből
    • wf.linktext – a & textOfLinks paraméterben átadott mezőben megadott aktív hivatkozás szövege
    • wf.wrapper – belső tartalmat jelenít meg, például egy almenüt
    • wf.id – az attribútum egyedi azonosítóját jeleníti meg. Meg kell adnia a & rowIdPrefix paramétert, hogy ez a helyőrző értéket kapjon. Az érték a docId előtag.
    • wf.attributes – Kinyomtatja az aktuális elem attribútumhivatkozását
    • wf.docid - az aktuális elem dokumentumazonosítója
    • wf.description - az aktuális elem leírása
    • wf.level – aktuális fészkelő szint

    Használati példa:

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

    Egy másik lehetőség:

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

  • Példák

    Első szint


    [[! Útkereső? & startId = `0` & level =` 1`
    & rowTpl = `sorTpl`
    & outerTpl = `outerTpl`
    & hereClass = `aktív`
    & rowClass = `eNav_li`]]

    Részletkód outerTpl



      [[+ wf.wrapper]]

    RowTpl darabkód



      [[+ wf.wrapper]]

    Második szint (ebben a példában a menü és az almenü elemei vizuálisan ugyanazon a szinten voltak

    [[! Útkereső? & startId = `0` & szint =` 2`
    & rowTpl = `rowTplFooterMenu`
    & outerTpl = `outerTplFooterMenu`
    & innerTpl = `innerTplFooterMenu`
    & innerRowTpl = `innerRowTplFooterMenu`
    & hereClass = `aktív`]]

    Részletkód outerTplFooterMenu



    [[+ wf.wrapper]]

    darabkód rowTplFooterMenu




    • [[+ wf.title]]


    • [[+ wf.wrapper]]

    darabkód innerTplFooterMenu

    [[+ wf.wrapper]]

    darabkód innerRowTplFooterMenu



  • [[+ wf.title]]


  • De ez nem nekünk való ;)

    Mindent a nullától fogunk megcsinálni. Miért volt erre szükségünk (nekem), mert már vannak kész lehetőségek? Mert én így szeretem. Mert szerintem ez a megközelítés a leghelyesebb. Mert a saját fejlesztés lehetőségével könnyen megérthetjük más kódját, megváltoztathatjuk, javíthatjuk a hibákat vagy kiegészíthetjük az adott esetben szükséges funkcionalitással. És a végén a saját készítés gyakran olyan kellemes!

    A további elbeszélés feltételezi, hogy az olvasó minimális ismeretekkel rendelkezik a PHP programozásról. Elméletileg azok az emberek, akik egyáltalán nem értik a kódot, képesek lesznek lemásolni a kódot és reprodukálni az alábbiakban tárgyalt összes lépést. Azonban lehet, hogy jobb, ha kész töredékeket használnak a la Ditto, mivel ezek egy csomó lehetőséget biztosítanak a külső konfigurációhoz anélkül, hogy belemennének a fő kódba.

    Nem akarok vitatkozni arról, hogy mi a jobb a felhasználónak - készen venni vagy saját fejlesztést végezni... Mind ebben, mind más esetben vannak előnyei és hátrányai. Nekem személy szerint több előnye van a második lehetőségnek. Ezenkívül minden olvasó maga dönt.

    Szóval, nézzük meg újra a miénket. Mivel oldalunkon elég sok különböző szoftverrész található, és valamit kezdeni kell, ezért programozzuk...

    Főmenü

    A "felső menü" kifejezés alatt a webhely tetején lévő oldalakra mutató hivatkozások halmazát értem (lásd az alábbi képet):

    A snitt létrehozásának első példáját nagyon részletesen leírom, a jövőben elsősorban a leglényegesebb részleteknél fogok kitérni.

    Hasonlítsuk össze az előző cikkben felépített felügyeleti rendszerben található webhelyfánkkal:

    Amint az ábrán látható, négy dokumentum van kiemelve a webhelyfán (nevezetesen a „Blog”, „A szerzőkről”, „Fotók” és „Visszajelzés”), amelyek ezt követően hivatkozásokat hoznak létre a felső menüben.

    Hadd emlékeztesselek arra is, hogy előre elrejtettünk olyan dokumentumokat, amelyeket nem szeretnénk megjeleníteni a menüben. Például a "Site Search" nevű dokumentum beállításaiból a "Megjelenítés a menüben" jelölőnégyzetet eltávolítottuk, a maradék két "Linkek" és "Kategóriák" dokumentumot pedig a jelölőnégyzet eltávolításával elrejtették a webhelyen. a „Közzététel” dokumentumbeállításokban (a dokumentumbeállítások „Oldalbeállítások” füle).

    Így az előző cikkben elkészítettük a vezérlőrendszer felső menüjét.

    Most térjünk át a tevékenységeink közvetlenül az oldalon való megjelenítésének kérdésére.

    Az oldalon található programok nagy részét az ún. "", azaz külön kódrészletek (külön függvényekként vagy szubrutinokként is felfoghatók) a PHP-ben. Ezért ahhoz, hogy a MODx-ben megvalósítsuk a felső menü megjelenítését, létre kell hoznunk egy új kódrészletet, programozni kell, és a megfelelő helyen fel kell hívni ezt a részletet a sablonban.

    Lépjünk a kezelőrendszerbe, nyissa meg az "Erőforrások" fület -> "Erőforrás-kezelés" -> a "Részletek" lapot, és kattintson az "Új kivonat" hivatkozásra. A "Részlet neve" mezőbe írja be a "TopMenu" kifejezést idézőjelek nélkül, és egyelőre csak mentsen el egy üres kódrészletet. Mentés után a "Snippets" fülön látni fogjuk a kódrészletünk nevét.

    Hadd emlékeztesselek arra, hogy sablonunkban a felső menüt áthelyeztük a "TOPMENU" részre. Váltson a "Cunks" fülre, és nyissa meg a "" darabot. Ennek a darabnak a tartalmában a következő kódot fogjuk látni:


    • Blog

    • A szerzőkről

    • Fénykép

    • Visszacsatolás

    Ez a kód hozza létre a menüt. Tegyük megjegyzésbe, és adjunk hozzá egy hívást a "TopMenu" részlethez a darabban:


    []

    Itt is egy kicsit el kell térnünk, hogy tisztázzuk ennek a konstrukciónak a jelentését []. A helyzet az, hogy az olyan konstrukciók segítségével, mint a [] vagy [! SnippetName!], a sablonjainkban, darabjainkban és akár csak az oldal bármely külön oldalán is meghívhatunk kivonatokat.

    Ebben az esetben a [] konstrukció hívást jelöl gyorsítótárban töredék, azaz egy dinamikus szubrutin hívása, melynek eredménye egyszer kerül kiszámításra és végrehajtásra, majd a későbbiekben az oldal betöltésekor, ahol ezt a kódrészletet hívják, az eredmény változatlan marad, mivel a részlet ismételt hívása már nem történik meg. Így kíméli a webszerverünk erőforrásait (és ez mindig nagyon fontos az erőforrás nagy forgalmánál).

    Vannak azonban olyan helyzetek, amikor folyamatosan újra kell futtatnia a kódrészletet, és nem tudja gyorsítótárazni az eredményeket. Ilyen esetekben a [! SnippetName!] konstrukció kerül felhasználásra, amely mindig kényszeríti a kódrészlet gyorsítótárazás nélküli végrehajtását. Analógia alapján ezt a konstrukciót hívják gyorsítótárazhatatlan töredék.

    Tehát mentsük el a "TOPMENU" részt, és frissítsük a webhely oldalát. Hmm, furcsa módon a felső menü eltűnt. De tényleg olyan csodálatos? A menü HTML kódját a csonkban kommentálva elrejtettük a megjelenítését a böngészőben (ezt az oldal HTML-forrása alapján ellenőrizhetjük). A "TopMenu" részletünk pedig nem csinál semmit, mivel még semmi nem került hozzá. Javítsuk ki ezt a hiányosságot :).

    Térjünk vissza a "Snippets" fülre, nyissuk meg a létrehozott "TopMenu" részletet, és próbáljuk meg tesztelni a képességeit... Türelem, haladó olvasóim, nem mindenki ismeri ezeket a részleteket.

    Először írjuk meg a legegyszerűbb kódot (normál PHP kód):

    echo "Tesztelés ...";
    ?>

    Mentés előtt válassza a "Szerkesztés folytatása" lehetőséget, mivel többször is módosítanunk kell majd a részletünk tartalmát, majd ezután elmentjük a részletet. Frissítsük az oldal oldalát és lássuk a felső menü helyére... nos, az igazat megvallva első ránézésre szinte semmi változást nem fogunk látni, kivéve a menü kissé kibővített kék hátterét. Nyomja meg a "CRTL + A" gombot az oldal összes szövegének kijelöléséhez, és látni fogjuk, hogy a részletünk továbbra is a "Tesztelés ..." szöveget jeleníti meg a menü helyén, csak a szöveg színe egyezik a háttér színével.

    Módosítsuk a kódrészletet a következőre:

    visszhang" Tesztelés...";
    ?>

    Most már tisztán látjuk, hogy a kódrészletünk működik, sőt (!) is megjelenít némi szöveget. Nos, ez rendben van, de nem elég a feladatunkhoz, hiszen gondoskodnunk kell arról, hogy a kódrészletünk a vezérlőrendszerből származó hivatkozásokat jelenítse meg, és pontosan ugyanabban a HTML kódban, mint amit a "TOPMENU" csonkban kommentáltunk.

    És megint egy kis figyelemelterelés...

    A MODx dokumentumkapcsolatainak teljes rendszere a következő elv szerint épül fel: minden "szülődokumentum" nullától sokig "gyermekdokumentumot" tartalmaz ("szülő" -> "gyermekek").

    A MODx adatbázisban minden dokumentumnak megvan a saját egyedi azonosítója: „ID” – ez az a szám, amelyet zárójelben látunk a webhelyfában az egyes dokumentumok mellett.

    Ez az egyedi azonosító egyébként csak egyetlen jelentést hordoz – egyedileg azonosít egy adott dokumentumot a vezérlőrendszerben. és semmi több! Kifejezetten erre a tényre összpontosítok, mivel többször is próbálkoztam ezen azonosítók megváltoztatására különféle célokból... Azonnal emlékeznie kell arra, hogy ez egyszerűen értelmetlen, ezért ne próbálja megváltoztatni ezeket a számokat. Egyáltalán nem érdemes rájuk nagyon figyelni, általában ezeket a számokat egyszerűen csak bizonyos dokumentumokra mutató hivatkozások generálására használják.

    A MODx adatbázisban minden dokumentumhoz külön "szülő" mező is készült. Ennek a mezőnek az értéke egy szám, amely vagy a szülődokumentum egyedi azonosítóját jelzi, vagy ha a dokumentum a fa gyökerében van, akkor nullát. Így mindig egyértelműen meg lehet határozni, hogy egy adott esetében melyik dokumentum a szülő.

    Ha látni szeretné, miről beszéltünk, nyissa meg a phpMyAdmin programot, válassza ki az adatbázisát, és keresse meg a (PREFIX) site_content táblát, ahol (PREFIX) a telepítés során megadott előtag. Sok mezőt fog látni, amelyek bizonyos dokumentumadatokat tárolnak, beleértve az "azonosító" - egyedi azonosítót, "szülő" - a szülődokumentum számát, az "oldal címe" - az oldal címe és mások.

    Tehát a dokumentumok MODx-ben való tárolásának és összekapcsolásának elvével kapcsolatos információk felhasználásával megérthetjük, hogyan szerezzük be a szükséges adatokat a felső menü hivatkozásainak megjelenítéséhez: meg kell találnunk az adatbázisban az összes olyan dokumentumot, amely a gyökérben található. oldalfa, pl nulla értéke van a "szülő" mezőben.

    Az SQL nyelv használatával egy hasonló lekérdezés van leírva, valahogy így (megpróbálhatja beírni ezt a lekérdezést a phpMyAdmin SQL beviteli mezőjébe, miután a "modx_"-t lecserélte az előtagjával):

    KIVÁLASZTÁS *
    FROM `modx_site_content`
    WHERE "szülő" = 0;

    Egy ilyen kérés azonban abszolút minden dokumentumot visszaküld nekünk a webhely gyökeréből, ami nem teljesen helyes, a fő feladat alapján - hogy csak azokra a dokumentumokra mutató hivatkozásokat jelenítsen meg, amelyek:

    • közzétett állapot (az adatbázisban a "közzétett" mező felelős ezért a tételért, ahol az érték = 1 azt jelenti, hogy a dokumentum megjelent, az érték = 0 - nem publikált).
    • nem törölve (a "törölt" mező, ahol az 1 törlődik és a 0 nem törlődik),
    • és amelyeknél be van állítva a „Megjelenítés a menüben” opció (a „rejtettmenü” mező, ahol 1 – elrejteni, 0 – megjelenítése a menüben).

    Ezen kívül egy kicsit előre futva azonnal rendezzük a dokumentumokat a "Pozíció a menüben" paraméter szerint, amely meghatározza az egyes hivatkozások pozícióját a menüben.

    Nos, az SQL szempontjából ez egyáltalán nem nehéz feladat, és így van megoldva:

    KIVÁLASZTÁS *
    FROM `modx_site_content`
    WHERE "közzétéve" = 1
    ÉS "szülő" = 0
    ÉS "törölve" = 0
    ÉS "hidemenu" = 0
    RENDEZÉS `menuindex` szerint ASC;

    Elméletileg minden SQL lekérdezés végrehajtható töredékekben közvetlenül PHP szkriptek segítségével, minden alkalommal összekapcsolva az adatbázist, és sok más rutinműveletet végrehajtva, újra és újra megismételve... De el kell fogadni, ez semlegesítené a keretrendszer használatának értelmét , ami minden bizonnyal az ellenőrző rendszerünk azóta A MODx egyéb előnyei mellett kész programinterfész eszközkészletet (API, Application Programming Interface) biztosít. Az API-k olyan szoftverfunkciók, amelyek számos adatfeldolgozási folyamatot egyesítenek és megkönnyítenek.

    Használjuk a kódrészletünkben a „getDocumentChildren” említett API-függvények egyikét. A "getDocumentChildren" függvény a következő adatokat kapja paraméterként:

    • $ id - a szülő dokumentum száma,
    • $ aktív - csak közzétett vagy nem publikált dokumentumok kiválasztása (1 vagy 0),
    • $ törölve - csak törölt vagy nem törölt dokumentumok kiválasztása (1 | 0),
    • $ mezők - az adatbázisból kiválasztott mezők,
    • $ hol vannak speciális feltételek, pl. WHERE záradék az SQL lekérdezésben,
    • $ rendezés – az a mező, amely alapján rendezni kell az eredményeket
    • $ irány - rendezési irány, lehet ASC vagy DESC, azaz. rendezés a legalacsonyabbtól a legmagasabb értékig vagy fordítva
    • $ limit - kérés korlátozás, i.e. LIMIT záradék az SQL-lekérdezésben

    $ eredmények = $ modx-> getDocumentChildren (
    $ id = 0,
    $ aktív = 1,
    $ törölve = 0,
    $ ahol = "hidemenu = 0",
    $ sort = "menuindex",
    $ dir = "ASC",
    $ limit
    );

    Nyomtatás ("

    Foreach ($ eredmények $ kulcsként => $ érték) (
    print_r ($ érték);
    }

    Nyomtatás ("");
    ?>

    Mentse el a kódrészletet, és frissítse az oldalt. A frissített "TopMenu" kódrészlet végrehajtása eredményeként megjelenik a tömbök listája és értékeik a "menuindex" mező értékei szerint rendezve, a legalacsonyabbtól a legmagasabbig. Próbálja meg módosítani a $ dir = "ASC" paramétert $ dir = "DESC" értékre - ennek eredményeként a tömbök újraépülnek, és a "menuindex" mező legmagasabb értékű dokumentuma jelenik meg első dokumentumként.

    A tapasztalt programozók számára valószínűleg világos, hogy a kapott eredmény már mindent megad, amire szüksége van egy linkekkel ellátott, kész menü felépítéséhez. Nos, szinte mindent. Mindenesetre folytatom: átírjuk a PHP kódot, hogy minél közelebb kerüljünk a kívánt eredményhez.

    $ eredmények = $ modx-> getDocumentChildren (
    $ id = 0,
    $ aktív = 1,
    $ törölve = 0,
    "id, pagetitle,published, menuindex, deleted, hidemenu, menutitle",
    $ ahol = "hidemenu = 0",
    $ sort = "menuindex",
    $ dir = "ASC",
    $ limit
    );

    $ items = "";
    $ output = "";

    Foreach ($ eredmények $ kulcsként => $ érték) (
    $ elem. = "


  • ". $ érték [" oldalcím "]."
  • \ n ";
    }

    Ha ($ elem! = "") (
    $ output = "

      \ n ";
      $ kimenet = $ tételek;
      $ kimenet. = "
    \ n ";
    }

    Vissza $ kimenet;

    Nem elemezzük részletesen a kódot, mivel ez a leggyakoribb PHP kód, semmi több. Ha valaki nem érti a konstrukciók jelentését, kérdezem a megjegyzésekben, vagy jobb esetben - a megfelelő támogatási fórumokon.

    Mentsük el az új kódrészletet, és frissítsük az oldalt. A kód végrehajtása eredményeként gyakorlatilag azt fogjuk látni, amit szerettünk volna elérni:

    Azok. ezek már automatikusan generált hivatkozások, amelyek szerkezete teljesen megismétli a MODx fában lévő dokumentumok szerkezetét. Ennek teszteléséhez próbáljon meg valamilyen tesztdokumentumot létrehozni a webhely gyökerében, és frissítse az oldalt.

    Ez azonban még nem minden. Bizonyára sokan észrevették már, hogy vannak linkek, de nincsenek linkek... Paradox :). Úgy értem, a menüben a dokumentumok nevei megjelennek, de a hivatkozások nem működnek. Ez logikus, mivel míg a hivatkozások kódjában a "#" jelenik meg a valódi elérési utak helyett.

    A probléma megoldásához meg kell ismerkedni a MODx egy másik rendkívül hasznos funkciójával: az oldal bármely belső oldalának címe megkapható a következő [~ id ~] konstrukcióval, ahol az id a szükséges dokumentum egyedi száma, azaz ugyanaz a szám szerepel zárójelben az egyes dokumentumok neve mellett a telephelyfában. Így egy ilyen [~ 1 ~] konstrukció hozzáadásával a sablon / darab / oldal tartalmához,

      • index - a „Blog” dokumentum álneve, ha a dokumentum álneveként „index”-et adtunk meg, ill.
      • 1.html, ha nem írtunk be semmit a "Blog" dokumentum "Alias" mezőjébe
    • ha a barátságos hivatkozások le vannak tiltva, akkor az index.php? id = 1 szöveget fogjuk látni

    Írjuk át a részletet a következő információk felhasználásával:

    $ eredmények = $ modx-> getDocumentChildren (
    $ id = 0,
    $ aktív = 1,
    $ törölve = 0,
    "id, pagetitle,published, menuindex, deleted, hidemenu, menutitle",
    $ ahol = "hidemenu = 0",
    $ sort = "menuindex",
    $ dir = "ASC",
    $ limit
    );

    $ items = "";
    $ output = "";

    Foreach ($ eredmények $ kulcsként => $ érték) (
    $ elem. = "


  • ". $ érték [" oldalcím "]."
  • \ n ";
    }

    Ha ($ elem! = "") (
    $ output = "

      \ n ";
      $ kimenet = $ tételek;
      $ kimenet. = "
    \ n ";
    }

    Vissza $ kimenet;

    Így a #-t [~ "-re változtattuk. $ Érték [" id "]." ~], azaz. Valójában a tömb minden egyes dokumentumának egyedi azonosítója behelyettesítésre kerül az [~ id ~] konstrukcióban. Ennek eredményeként egy menüt kapunk működő hivatkozásokkal.

    Már majdnem elértük az ideálist... Most azonban még van egy részlet, amit figyelembe kell venni: a tervező úgy döntött, hogy az aktív linket fehér háttérrel kell kiemelni, és ennek megfelelően a hivatkozás színét narancssárgára kell változtatni. .

    Ennek eléréséhez ismét felfedjük a MODx CMS titkait :). Az API-ban van elrejtve a $ modx-> documentIdentifier függvény, amely az aktuális oldal egyedi azonosítójának értékét adja vissza. Szükségünk lesz rá az aktív oldal meghatározásához és a menüből való kiválasztásához:

    $ eredmények = $ modx-> getDocumentChildren (
    $ id = 0,
    $ aktív = 1,
    $ törölve = 0,
    "id, pagetitle,published, menuindex, deleted, hidemenu, menutitle",
    $ ahol = "hidemenu = 0",
    $ sort = "menuindex",
    $ dir = "ASC",
    $ limit
    );

    $ cid = $ modx-> documentIdentifier;

    $ items = "";
    $ output = "";

    Foreach ($ eredmények $ kulcsként => $ érték) (
    if ($ érték ["id"] == $ cid) (
    $ active = "id = \" active \ "";
    }
    más (
    $ aktív = "";
    }
    $ elem. = "
    ". $ érték [" oldalcím "]."
    \ n ";
    }

    Ha ($ elem! = "") (
    $ output = "

      \ n ";
      $ kimenet = $ tételek;
      $ kimenet. = "
    \ n ";
    }

    Vissza $ kimenet;

    Nos, hogyan működött? Megtörtént!

    De nem gondoltad, hogy mindennek vége, igaz? És jogosan. Magunkra tesszük a legmagasabb lécet, a MODx maximális képességeit szeretnénk kihasználni. Ezért van még egy apró részlet, amit kihagytunk.

    Nézzük meg közelebbről a getDocumentChildren függvény segítségével kért mezők nevét: "id, pagetitle, published, menuindex, deleted, hidemenu, menutitle". Köztük van egy olyan mező, mint a "menutitle". Ahogy a neve is sugallja, ez a mező tárolható menü címe... A vezérlőrendszernek van egy "menüpont" beviteli mezője is. Ez a mező nem kötelező. A logika azonban az, hogy ha ez a mező ki van töltve, akkor a menüben a hivatkozás szövegét a felhasználó által megadottra kell cserélnünk. Nos, csináljuk így:

    /********************************
    Cím: TopMenu
    Cél: A felső menü megjelenítése
    Projekt: Demosite MODx
    ********************************/

    $ eredmények = $ modx-> getDocumentChildren (
    $ id = 0, // szülő dokumentum azonosítója
    $ active = 1, // Csak közzétett dokumentumok kiválasztása
    $ törölt = 0, // Csak a nem törölt dokumentumokat válassza ki
    "id, pagetitle, published, menuindex, deleted, hidemenu, menutitle", // Mezők kiválasztása az adatbázisból
    $ where = "hidemenu = 0", // Csak azokat a dokumentumokat válassza ki a menüben, amelyeket közzé kell tenni
    $ sort = "menuindex", // Dokumentumok rendezése a menüindex mező szerint
    $ dir = "ASC", // Dokumentumok rendezése növekvő sorrendben
    $ limit = "" // Nem állítunk be semmilyen korlátozást (a LIMIT paraméter az SQL lekérdezésben)
    );

    $ cid = $ modx-> documentIdentifier; // az aktuális oldal azonosítójának lekérése

    $ items = "";
    $ output = "";

    Foreach ($ eredmények $ kulcsként => $ érték) (
    if ($ érték ["id"] == $ cid) (
    $ active = "id = \" active \ "";
    }
    más (
    $ aktív = "";
    }
    if ($ érték ["menutitle"]! = "") (
    $ cím = $ érték ["menutitle"];
    }
    más (
    $ cím = $ érték ["oldalcím"];
    }
    $ elem. = "
    ". $ cím."
    \ n "; // menüelemek gyűjtése
    }

    // Ha legalább egy menüpontot talált,
    // létrehozza a menü HTML kódját
    if ($ elem! = "") (
    $ output = "

      \ n ";
      $ kimenet = $ tételek;
      $ kimenet. = "
    \ n ";
    }

    // Visszaadja a részlet eredményét
    return $ output;

    Most próbáljon meg szöveget beírni bármely dokumentum "Menütétele" beviteli mezőjébe... Minden működik? Csodálatos!

    PS: Talán néhány olvasó meg fog lepődni, hogy a menüben található linkekre kattintva az oldalak tartalma nem változik, bár úgy tűnik, hogy a böngésző címében szereplő elérési út alapján új oldalakra lépünk. Hidd el, ez teljesen normális, mert jelenleg minden oldal ugyanazt a sablont használja. Ebben a sablonban valójában csak a felső menüt tettük dinamikussá, a többi részlet változatlan. Később biztosan foglalkozunk ezzel, de egyelőre ne ess pánikba ;).

    Következtetés:

    Tehát még egy cikk a logikus következtetésre jutott.

    Tanulási eredmények:

    • Megpróbáltuk megérteni a MODx dokumentumok egyes beviteli mezőinek célját, és megvizsgáltuk ezeknek az információknak az adatbázisban való tárolását;
    • Megtudtuk az új speciális MODx konstrukciókat: [], [! SnippetName!], [~ Id ~];
    • Tanult egy speciális API elérhetőségéről, és használta az API néhány funkcióját;
    • Ezen ismeretek alapján hoztuk létre az új kódrészletünket MODx-ben!

    A webmester névjegykártyái egy kész weboldal beküldésekor igyekeznek minden folyamatot a lehető legnagyobb mértékben automatizálni, hogy az ügyfél a projekt átadása után ne rángassa meg őket apróságokon. Az egyik leggyakoribb probléma éppen az új menüpontok létrehozásával, szerkesztésével kapcsolatos.

    Ezért a webmesterek egyik fő feladata egy dinamikus menü létrehozása, amely lehetővé teszi a menüstruktúra szerkesztéséhez szükséges összes műveletet az adminisztrációs panelről.

    Ezt speciális MODx eszközökkel - töredékekkel lehet megtenni.

    Töredék Ez a php kód, amely a MODx sablonban fut, és lehetővé teszi a CMS adatbázisból származó információk megjelenítését.

    A kivonatok két típusra oszthatók:

    • gyorsítótárazott;
    • nem gyorsítótárazható.

    Különbségük a hívástervezésben van. Tehát például, ha van egy "SNIPNAME" nevű kódrészletünk, akkor egy nem gyorsítótárazott hívás esetén a szerkezet így fog kinézni:

    [! SNIPNAME!]

    Gyorsítótárazott verzió esetén ez így fog kinézni:

    []

    Itt felmerülhet a kérdés, hogy miért kell gyorsítótárazhatóvá tenni a részletet? A helyzet az, hogy a gyorsítótár használatakor a struktúra mentésre kerül, és nincs állandó hozzáférés az adatbázishoz, ami viszont növeli az oldalak betöltésének sebességét és csökkenti a szerver terhelését. De gyakran szembesülhet azzal a ténnyel, hogy a gyorsítótárba való belépés után a webmester végrehajt bizonyos műveleteket, de azok nem jelennek meg a webhelyen, megjelenítésükhöz először törölnie kell az elavult gyorsítótárat. Erről egy kicsit később beszélek. A nem gyorsítótárazott menüopciót fogjuk használni.

    A töredékek második fontos jellemzője: Extra lehetőségek, amely közvetlenül a konstrukció meghívásakor állítható be. A diagram így néz ki:

    [! SnippetName? & 1. paraméter = `paraméterérték` & 2. paraméter =` paraméterérték`!]

    Jelölje be a "?" - jelzést ad a rendszernek, hogy utána olyan paraméterek következnek, amelyeket alkalmazni kell a kódrészletre. Magukat a töredékeket pedig az „&” jel választja el, az értékeket pedig idézőjelek közé zárjuk. Ha rossz idézeteket adsz meg, semmi sem fog működni.

    Hogyan szabhatja testre a menüstruktúra dinamikus megjelenítését?

    A menü MODx-ben történő megjelenítéséhez egy részletet használunk:

    [! Útkereső!]

    "Tiszta formájában" nem tudjuk használni, hiszen ehhez beágyazott anyagok jelenléte szükséges, és csak a főoldalon fog megjelenni. Helyes lesz feltüntetni annak a cikknek az azonosítóját, amelyből érdemes számolni. Ezzel a módszerrel sokféle menüt készíthetünk ehhez az id segítségével. A gyakorlatban egyértelműbb lesz.

    Mivel most a Szülőpont "Main" id = 1 értékkel. Ekkor a szerkezetnek így kell kinéznie:

    Ezzel a konstrukcióval kihozhatod a menüt a gyermekelemek közül. Alkalmazzuk ezt a gyakorlatba.

    Lépjünk az "Elemek" - "Elemek kezelése" - "Csontok" fülre. Kiválasztjuk a "HEADER" darabot, és megtaláljuk benne a menü megjelenítéséért felelős kódot.

    ITTHON

    • itthon
    • rólunk
    • szolgáltatások
    • projektek
    • megoldásokat
    • munkahelyek
    • blog
    • kapcsolatokat

    Szúrjuk be a fenti kódrészletet a kód helyett:

    [Útkereső? & startId = `1`!]

    Mint látható, a menü össze van kötve, az url megváltozik a címsorban, bár a sablon változatlan marad, a következő leckéken javítjuk.

    De van két probléma:

    1.) Az aktív menüpont nincs kiemelve.

    2.) Nincs "Kezdőlap" menüpont.

    Javítsuk ki ezeket a hiányosságokat.

    Összekapcsoljuk az aktív menüpontot

    Alapértelmezés szerint a Wayfinder kódrészlet képezi az aktív menüelemet az "aktív" osztály mellett. Így nem kell további szkriptet hozzáadnunk, hanem csak módosítanunk kell az osztályt a css fájlban. Ehhez lépjen a sablonunkkal rendelkező mappába - /assets/templates/retina/css/style.css. Felhívjuk figyelmét, hogy a sablonmappa mappaneve eltérő lehet, minden attól függ, hogy milyen nevet adott meg az első leckéken. Nyissa meg ezt a fájlt, és keressen egy sort az aktív menüelem stílusaival. Ez a sorom van - 190, és itt van maga a kód:

    #navigáció a.nav-btn (margó-alsó: 15px; szövegdekoráció: nincs; kitöltés: 0 36px 0 10px; vonalmagasság: 30px; kijelző: blokk; háttér: url (képek / navigation.png) repeat-x 0 0; magasság: 30 képpont; pozíció: relatív;)

    Cserélje ki a ".nav-btn" osztályt az "active"-ra.

    Összekapcsoljuk az "Otthon"

    Így, ahogy Ön is tudja, eltávolítottuk a leányelemeket a „Főoldal” menüpontból. Ahhoz, hogy ezt az elemet előhívjuk, a teljes menünek ugyanazon a beágyazási szinten kell lennie.

    Először is ellenőrizzük, hogy a gyökérmappához való hozzáférés nyitva van-e. Ehhez lépjen az "Eszközök" - "Konfiguráció" - "Felhasználók" fülre. Ebben megtaláljuk a paramétert - " Hozzáférés engedélyezése a gyökérmappához"És állítsa az értéket" Igen "-re.

    Ezután válassza ki az elemet, mondjuk a "Szolgáltatások" lehetőséget, lépjen a szerkesztési oldalra, és kattintson az alábbi ikonra, ahogy a képernyőképen látható.

    Kattintás után a bal oldali anyagok oszlopban a szülő menüpontot kell kiválasztani, mi a ló mappát választjuk. Lásd az alábbi képernyőképet.

    Kattintson rá és mentse el cikkünket. Magának az anyagnak egy szinttel kell mozognia a "Fő"-vel.

    Ezt a műveletet az összes albekezdéssel együtt kell végrehajtani. A következő szerkezettel kell rendelkeznie.

    Ha most frissíti webhelye oldalát, akkor a menü eltűnik. Ennek az az oka, hogy a szülőkategória azonosítója megváltozott. Csináljunk rajta. Ehhez lépjen az "Elemek" - "Elemek kezelése" - "Csontok" fülre. Válassza ki a „HEADER” részt, és keresse meg benne a kódot:

    [Útkereső? & startId = `1`!]

    És válts erre:

    Ez az, a menü teljesen készen van, és megfelel a sablonnak.

    Ha észrevetted, a sablonból láthatod, hogy a láblécben van egy menü, ami pontosan megismétli az általunk most létrehozott opció elemeit. Ezért javaslom ennek a blokknak az azonnali javítását is. Ehhez lépjen az "Elemek" - "Elemek kezelése" szakaszba - A "Csunkok" lapon válassza ki a "LÁBLOMB" részt. Ebben megtaláljuk az alsó menü megjelenítéséért felelős kódot, helyette pedig beillesztjük a már megszokott konstrukciót.

    [Útkereső? & startId = `0`!]

    Íme, mit kell beszereznie.

    Ez minden mára. Ha kérdése van, írja meg a megjegyzésekben, megpróbálok válaszolni rájuk. A következő leckékig.

    Üdvözlet, kedves olvasók. Az utolsó leckében egy kicsit feltöltöttük az oldalt tartalommal (), most itt az ideje mindent bevinni a menübe hogy a felhasználók hozzájuk navigálhassanak.

    Dinamikus létrehozása menü MODX-ben részletet fogunk használni PdoMenu a csomagból pdoTools... Mielőtt elkezdené, tekintse át az alapvető dokumentációt.

    PdoMenu dokumentáció

    Lehetőségek

    Sablon paraméterei

    CSS osztály paraméterei

    Hivatalos példák


    a hivatalos dokumentációt itt olvashatja. Most pedig vessünk egy pillantást a legjellemzőbb menühívásokra.

    PdoMenu hívása

    1.opció... Ennek a statikus menünek a helyén hívja a pdoMenu kódrészletet, ehhez az erőforrásfában, a „ Az elemek"A töredékek részben bontsa ki az ágat pdoTools, majd kattintson a gombra pdoMenu kattintson a bal egérgombbal (ne engedje fel a gombot) és húzza ezt a részletet arra a helyre, ahol a menüt szeretné meghívni, majd a megnyíló ablakban adja meg a szükséges paramétereket, és kattintson a " Megment«.

    2. lehetőség... Csak kézzel írjuk meg a hívást.

    Tipikus példák

    Normál egyszintű menü

    Például nálunk van a legáltalánosabb menü, a következő html jelöléssel.

    Menühívással a következő kódot kaptuk:

    • & szülők = `0` - a szülők listája (esetemben nem korlátozom a választást, mivel úgyis csak bizonyos oldalakat fogok megjeleníteni);
    • & level = `1` - beágyazási szint (ebben az esetben nem);
    • & resources = `2,3,4,5` - a menüben megjelenítendő erőforrások listája;
    • & firstClass = `0` - osztály az első menüponthoz (nem bármelyik);
    • & lastClass = `0` - az utolsó menüpont osztálya (nem bármelyik);
    • & outerClass = `felső menü` - a menüburkoló osztálya (az ul-ban helyettesítve);
    • & hereClass = `current-menu-item` - az aktív menüelem osztálya (li-vel helyettesítve);
    • & rowClass = `menu-item` - egy menüsor osztálya (li-vel helyettesítve).

    Kétszintű egyéni bootstrap menü

    A statikus html kód így néz ki:

    A kimeneti kódja a következő lesz:

    Szintén a következő leckében adok még pár következtetést a legördülő menükből, a bootstrap alapján (és ez azoknak szól, akik nem értették a lényeget. Nos, akkor megtesszük.

    Első pillantásra minden bonyolultnak tűnik, de ez nem így van, olvassa el részletesebben a dokumentációt, tegyen fel kérdéseket a megjegyzésekben, biztosan segítek.