Navigációs funkciók - cms netcat
A példák elrendezésében háromféle navigáció létezik: egyszintű menü, többszintű menü és kenyérmorzsák.
A webhelyen található navigáció az alábbi funkciók segítségével alakul ki:
- nc_browse_level () - megjeleníti egy bizonyos szintű fészek menüjét;
- nc_browse_path () - kenyérmorzsák kibocsátása;
- nc_browse_path_range () - kenyérmorzsák (paraméterekkel);
- nc_browse_sub () - megjeleníti a menüt egy adott szakaszból;
- nc_cond_browse_sub () - megjeleníti a menüt egy adott szakaszból (feltételes);
- nc_browse_cc () - megjeleníti a szakasz adatblokkjait;
- nc_browse_catalogue () - adja ki a helyek menüjét.
Vessünk egy pillantást az egyes funkciókra.
A menü megjelenítéséhez három funkció van:
- nc_browse_level ($ szint, $ browse_template).
Készítsen egy bizonyos szintű fészekmenüt. - nc_browse_sub ($ browse_parent_sub, $ browse_template, $ ignore_check = 0, $ where_cond = "", $ level = 0)
A menü megjelenítése egy adott szakaszból. - nc_cond_browse_sub ($ browse_parent_sub, $ browse_template, $ where_cond = "")
Menü megjelenítése egy adott szakaszból, feltétellel. A funkció az előző egy speciális esete.
Egyszintű menü
A minta elrendezésének első típusú típusa egyszintű:
Az elrendezés elrendezésében a menü így néz ki:
Egyszintes menü létrehozásához használhatja az első vagy a második funkciót.
A szükséges paramétereket át kell adni a függvénynek:
- $ level - partíciós szint száma (a legmagasabb szint az 0 értéknek felel meg);
- $ browse_template - navigációs kimeneti sablon.
A navigációs kimeneti sablon az űrlap $ browse_template egydimenziós tömbje:
A navigációs sablonokban a következő makrováltozók állnak rendelkezésre:
- % NAME - az elem (szakasz) neve;
- % URL - a szakasz elérési útja;
- % PARENT_SUB - a szülőpartíció száma (csak partíciók esetén);
- % KEYWORD - a szakasz kulcsszava (csak partíciók esetén);
- % SUB a partíció száma;
- % COUNTER - a megjelenített elemek száma a listán (kezdődően nulla);
- % NEXT_LEVEL - Megjeleníti a következő menüszintet. Többszintű menük létrehozásakor használható.
- A (z) system_table mezőben% mezőnév egy tetszőleges változó, amelyet a rendszer táblázatok "Partíciók" blokkja határoz meg.
Néhány változó csak menük készítésére szolgál.
A navigáció kialakításának tömbje a következő elemekkel rendelkezhet:
Módosítsuk a $ browse_template tömböt a megadott html-kód szerint:
Tegye ezt a tömböt a navigációs kimeneti sablon mezőbe.
A sablonban a html-kód helyett írja be a függvényt:
A funkció 0-as száma jelzi a menü kimenetének szintjét. Ebben az esetben a gyökérpartíció összes eleme megjelenik.
Az ábrán a szürkével jelölt részek nem jelennek meg.
Most a webhely felső részének kódtöredéke így néz ki:
Többszintű menü
Az oldal oldalsó oszlopában többszintű menü található:
Abban az esetben, ha az oldalsó oszlopban a vízszintes menü (vagyis csak egy szint) alpontjainak megjelenítéséhez ugyanazt a funkciót kell használni, de az 1, 2 stb. Szintparamétert a fészekszinttől függően:
Ebben az esetben megjelenik egy adott szakasz alszekvenciája, és a funkciót a kimenethez használja:
A funkció egyszintű menü létrehozására és többszintű menüre is használható. A szükséges paramétereket át kell adni a függvénynek:
- $ browse_parent_sub az a szülőpartíció azonosítója, ahonnan a menüelemek generálásra kerülnek. A gyökérpartíciónak 0-as száma van.
- $ browse_template - navigációs kimeneti sablon. A függvényben át kell adni egy változót a menüszinttel és a sablon tömbjével.
Opcionális paramétereket is megadhat:
- $ ignore_check = 0 - ha a paraméter értéke 1, akkor az összes letiltott partíció megjelenik.
- $ where_cond = "" - a paraméter további mintafeltételeket határoz meg az Alagosztási táblázatból.
- $ level = 0
Az opcionális paraméterek használatát az alábbiakban ismertetjük.
A kódban a menü kimenete így néz ki:
Tegyük fel a többszintű menü kimeneti tömbjét:
Mivel a menü többszintű, egy új,% NEXT_LEVEL makróváltozót kell hozzáadni a navigációs sablonhoz.
Az elrendezésben a HTML kód helyett írja le a függvényhívást:
ahol 299 az a szülő szakasz száma, amelyből az alfejezetek megjelennek. A webhelytérképen így néz ki:
Tekintsük azt a példát, hogy mely esetekben használhatja az nc_browse_sub () és az nc_cond_browse_sub () függvények $_Hoi_kond paraméterét.
Tegyük fel, hogy a webhelytérkép körülbelül tizenöt elemet tartalmaz a gyökérpartícióban. Néhány elemet fel kell tüntetni a felső menüben, néhány alján. A tervezéstől függően a menük különböző helyeken helyezhetők el, és lehet, hogy több mint kettő.
A $ where_cond condition paraméter használata nélkül a feladat végrehajtása sokkal bonyolultabb. A megoldás egyszerű - a "Szekciók" blokk rendszer táblázataiban új mezőket kell felvenni.
A mezőknek annyinak kell lenniük, mint a menü típusai.
Ennek eredményeképpen a speciális beállítások lapon minden szakasz rendelkezik egy opcióval, amelyet a kívánt értékre kell állítani.
A kimeneti függvényben meg kell adnia a $ name_hold paramétert, amely tartalmazza a mező nevét. Például,
A menük megjelenítésének más esetére hasonló beillesztést kell végrehajtani.
Az s_browse_
Ha nincs elegendő makrováltozó, vagy ha a PHP feltételeket szeretné használni, használhatja az s_browse_ előtag funkcióit. benne egy belsõ tömb $ data [], és a template-ek eval () kerül végrehajtásra, így átadhatja a kódot a PHP sablonnak. Az $ data [] tömb tartalmazza az alagazdálkodási táblázat összes adatait a függvény által megjelenített aktuális alszakaszokról.
Például:
A sablonban további lekérdezéseket is használhat. Például meg kell jeleníteni az elemek számát a szakaszokban. Ehhez csatolja a lekérdezést a sablonhoz:
ahol XX a partíciókban lévő komponensek száma.
Vegye figyelembe a $ és a "jelek előtt a csíkokat, ezek kötelezőek, mivel a tömb feldolgozása és a beágyazott függvények végrehajtása az s_browse_ függvényen belül kell lennie, és nem a $ browse_sub tömb kezdeti szakaszában.
Fontos: a% NEXT_LEVEL makróváltozó nem érhető el az s_browse_ függvényekben.
Fontos: Az s_browse_ nem választja ki automatikusan a sablon szintjét, mint ahogy a% NEXT_LEVEL fájlban történik, ezért egy bizonyos sablonszintet kell átadnia, például amikor hívja a funkciót, például
A tömb következő szintjének megjelenítéséhez szükség van a függő hívás bejelentésére a következő szintre a sablonon belül és megjeleníteni, hogy a hívás az aktuális szint függvényében megy keresztül.
Továbbá a $ left_menu1 [1] következő szintű sablonja nem lesz elérhető az s_browse_sub függvényében, tehát a globalizáción keresztül kell hozzáférnie:
A 3 szint fészkelésének teljes példája:
Fontos: abban az esetben, ha a navigációs sablon leírása az összetett sablonban (előtag / rendszerbeállítások), akkor a sablon tömbjét a komponens hatókörétől a következőhöz kell adni:
Webhelytérkép
A webhelyen található összes szakasz (site map) listája ugyanúgy látható. A webhelytérképhez létre kell hoznia egy új szakaszt, és hozzá kell kapcsolódnia ahhoz a tervhez, amely elolvassa:
- a navigációs kimeneti sablonban írja be:
- a kártya kimeneti helyén regisztrálja a függvényhívást:
Ebben a példában minden sablonelem ismételten ugyanazt a mintát hívja a függvényre, és az aktuális kimeneti szakasz azonosítója a szekció számként kerül átadásra. Így egy oldalon teljes hierarchia van a webhelystruktúrában.
Kenyérmorzsák
Az oldal utolsó navigációs eleme a kenyérmorzsák. A következő funkciók felhasználásával alakul ki:
- nc_browse_path ($ browse_template)
Egy adott sablon kimenete - nc_browse_path_range ($, $, $ browse_template, $ fordított = 0, $ show = 0)
Kimenet a megadott paraméterekkel
Mint $ browse_template változók is szükséges megadni egy adatmátrixot. A kódban a zsemlemorzatok a sorban jelennek meg:
Készítsen egy tömböt a kimenethez:
és írja le a kimenetet az elrendezésben:
Utolsó nézet
A navigációs elemek adaptálva vannak, és most a "Navigation Output Templates" mezőben négy tömb tömbök vannak:
Az elrendezés felső része jelentősen csökkent, és most így néz ki:
- nc_browse_sub () - adja ki az adott szakasz alszekcióinak listáját a sablon $ sablon szerint
- nc_browse_catalogue () - a webhelyek kimeneti listája
- nc_browse_level () - egy bizonyos szintű menüt (szakaszok listáját) ad ki
- nc_browse_messages () - létrehoz egy listát oldalak objektumokkal
- nc_browse_path () - kimeneti útvonal "kenyérmorzsák"
- nc_browse_path_range () - a megadott tartomány elérési útja (kenyérmorzsák)