show_menu2, version 4.9 x
Show_Menu2 on koodinpätkä CMS WebsiteBaker-sivustolle. Koska WebsiteBaker 2.7 se on mukana CMS.
entinen show_menu-funktio korvataan kokonaan ja laajennetaan ohjelmalla show_menu2. Kaikki valikon luomiseen tarvittavat tiedot luodaan yhdellä tietokantakyselyllä. Laaja säätömahdollisuuksia syntyy HTML-koodi kaikki mahdolliset valikkotyypit (luettelot, leivänmurut, sitemaps, jne.) voidaan luoda.
- installaatio
- käyttäen Show_Menu2
- FAQ
- funktio
- HTML-Lähtö
- parametri
- Lisäasetukset
- Formaattijouset
- Formaattijonot
- Formatteri
ehdollinen muotoilu
installationup
koska show_menu2 on yleensä websitebakerissa, asennusta ei tarvita. Jos sitä ei odotusten vastaisesti ole olemassa, voit ladata sen täältä.
käytettäessä SHOW_MENU2up
käyttääksesi show_menu2: ta sinun on muokattava mallia, johon haluat valikon ilmestyvän. Huomaa: jos vanhat valikkopuhelut korvataan, on käytettävä myös vastaavia uusia parametreja, jotka show_menu2 tarvitsee.
useimmissa tapauksissa riittää vakiokutsu, jossa on vähintään 4 parametria show_menu2. Tässä tapauksessa käytetään oletusarvoja, tämä luo valikon, joka näyttää nykyisen sivun ja alasivut nykyisen sivun:
show_menu2(0, SM2_ROOT, SM2_START, SM2_TRIM);
huomaa: puhelu show_menu2 on PHP ja on yleensä liitettävä PHP koodin merkkejä (ellei puhelu on jo sisällä PHP koodi):
<?php show_menu2(0, SM2_ROOT, SM2_START, SM2_TRIM); ?>
tämä oletusvalikko luo jo kokonaisen listapohjaisen valikon, jossa on useita luokkia, jotka mahdollistavat helpon muotoilun css: n avulla. Esimerkiksi luokka ”menu-current” lisätään nykyisen valikon kohteen <li> tagiin. Lisäksi jokainen alitemppujen valikon kohta sisältää luokan ”menu-expand”. Tämä mahdollistaa luoda hyvin eriytetty CSS sääntöjä kunkin valikon kohde.
esimerkiksi:
li.menu-expand { font-weight: bold; }li.menu-current { background: red; }
osa ”HTML-lähtö” sisältää yksityiskohtaisen kuvauksen siitä, mitkä luokat on määritetty mihinkin elementtiin. Käyttämällä erilaisia parametreja show_menu2-funktiokutsussa on myös mahdollista luoda varsin laajoja ja erilaisia valikkorakenteita. Jos haluat esimerkiksi näyttää vain valikkokohteet valikkorakenteen ylimmältä tasolta, voit käyttää seuraavaa kutsua:
show_menu2(0, SM2_ROOT, SM2_START, SM2_TRIM);
tai esimerkiksi näyttää enintään kaksi nykyisen sivun alatasoa:
show_menu2(0, SM2_CURR+1, SM2_CURR+2, SM2_TRIM);
on paljon mahdollisuuksia luoda erilaisia valikkorakenteita. Lukuisia esimerkkejä löytyy Demon verkkosivuilta: KLICK
FAQup
Q: I ’ m not a programmer. Eikö ole olemassa yksinkertaisempaa dokumentaatiota?
A: Ei, koska tämä on jo yksinkertainen dokumentaatio.
Q: Miten voin luoda pudotusvalikon?
A: tällä ei ole mitään tekemistä show_menu2: n kanssa. Luodaksesi pudotusvalikon sinun tarvitsee vain säätää vastaavan mallin CSS-koodia. Tarvittavat muutokset löytyvät esim.” allcss2 ” – mallista WebsiteBaker Addon Repository -> https://addon.websitebaker.org/
K: Miksi valikko katoaa, kun olen käyttänyt hakutoimintoa monikielisellä WebsiteBaker-sivulla?
A: käytetystä mallista puuttuvat tarvittavat rivit:
<input type="hidden" name="referrer" value="" />
<input type="hidden" name="referrer" value="<?php echo defined('REFERRER_ID')?REFERRER_ID:PAGE_ID;?>" />
K: monikielinen? Kuulostaa hyvältä. Miten teet sen?
A: https://help.websitebaker.org/en/designerguide/multilingual-websites.php
K: joka kerta kun sivua kutsutaan, SM2 luo seuraavan varoitusviestin:
”show_menu2 error: $aOptions is invalid. Ryhmän 1 lippuja ei toimiteta!”
A: Funktiolle siirrettiin vääriä arvoja tai väärä määrä arvoja.
katso parametrit-kohdasta oikeat lippuarvot, jotka siirtyvät $aOptions-parametrille.
kysymys: Miten käytän eri luokkaa/kuvaa/väriä/widget jokaisen merkinnän valikosta?
A: käytä formaattia $aItemOpen-merkkijonossa. Luo ainutlaatuinen luokka tai id kunkin valikon kohde, sitten viittaus, että kohde CSS tai Javascript tehdä mitä haluat.
jokaiselle valikkokohteelle lisätään yksilöllinen luokka (tai vastaava):
"<li><a href="" target="" class=" p"></a>"
… luodaan valikon kohteita kuten …
<li><a href="/pages/foo/bar.php" target="_top" class="menu-top p45">Top Menu</a>
viittaa tähän CSS: ssä kuten:
a.p45 { color: red; }
voit lisätä yksilöllisen tunnisteen jokaiselle valikkokohteelle (tai vastaavalle):
"<li><a href="" target="" class=""></a>"
… luodaan valikon kohteita kuten …
<li><a href="/pages/foo/bar.php" target="_top" class="menu-top">Top Menu</a>
viittaa tähän CSS: ssä kuten:
a#p45 { color: red; }
huomaa, että ID voidaan käyttää vain, jos kyseinen valikko luodaan ja näytetään vain kerran sivulla (koska HTML ID: n on oltava ainutlaatuinen sivun sisällä).
FUNCTIONup
täydellinen kutsu ja oletusparametrien arvot show_menu2: lle ovat seuraavat:
show_menu2( $aMenu = 0, $aStart = SM2_ROOT, $aMaxLevel = SM2_CURR+1, $aOptions = SM2_TRIM, $aItemOpen = '</a>', $aItemClose = '</li>', $aMenuOpen = '', $aMenuClose = '</ul>', $aTopItemOpen = false, $aTopMenuOpen = false);
kohdassa ”parametrit” on yksityiskohtainen kuvaus kustakin yksittäisestä parametrista.
kutakin parametria on käytettävä täysin oikein. Seuraavat säännöt voivat auttaa:
$aMenu = 0 on useimmissa tapauksissa paras arvo.
$aStart on oltava joko sivutunnus tai ”SM2_” – alkuinen arvo.
$aMaxLevel voi saada vain ”SM2_” – alkuisia arvoja.
$aOptions muutamaa erikoistapausta lukuun ottamatta vain ”SM2_” – alkuiset arvot ovat sallittuja.
kaikki muut parametrit sisältävät (HTML) tagit, jotka ohjaavat valikon ulostuloa.
alkaen $aItemOpen jokainen parametri voidaan siirtää arvo false saada vastaavan oletusarvon.
tätä voidaan käyttää esimerkiksi numeroidun listan luomiseen, kun oletusarvoja käytetään vielä yksittäisissä valikkokohtissa:
show_menu2(0, SM2_ROOT, SM2_ALL, SM2_ALL, false, false, '<ol>', '</ol>');
huomaa: jopa ja myös $aOptions kaikki parametrit on läpäistävä nimenomaisesti!
HTML-Lähtö
HTML-lähtö riippuu pitkälti siitä, mitkä parametrit funktiolle siirretään. Tästä riippumatta jokaiselle valikolle käytetään aina seuraavia luokkia, jolloin yksittäisillä valikon kohteilla voi tarvittaessa olla myös useita luokkia.
Luokka | tehtävä |
---|---|
menu-top | vain ensimmäinen valikon kohta. |
menu-vanhempi | mikä tahansa päävalikon kohde. |
menu-nykyinen | vain nykyisen sivun valikon kohta. |
menu-sisarukset | kaikki nykyisen sivun ”sisarukset”. |
valikko-lapsi | mikä tahansa nykyisen sivun alivalikko. |
valikko-laajenna | mikä tahansa valikko, jossa on alivalikko. |
menu-ensimmäinen | minkä tahansa valikon tai alivalikon ensimmäinen kohde. |
valikko-viimeinen | minkä tahansa valikon tai alivalikon viimeinen kohde. |
valikko-n | jokainen valikon kohta, jossa N tarkoittaa kyseisen valikon absoluuttista syvyyttä alkaen numerosta 0. joten ylin taso on aina menu-0, seuraava taso on menu-1 ja niin edelleen. |
menu-child-n | jokainen nykyisten sivujen alivalikko, jossa N tarkoittaa alivalikon suhteellista syvyyttä alkaen numerosta 0. |
esimerkki HTML-tulosteesta:
<ul class="menu-top menu-0"> <li class="menu-0 menu-first"> ... </li> <li class="menu-0 menu-expand menu-parent"> ... <ul class="menu-1"> <li class="menu-1 menu-expand menu-first"> ... <ul class="menu-2"> <li class="menu-2 menu-first"> ... <li class="menu-2 menu-last"> ... </ul> </li> <li class="menu-1 menu-expand menu-parent"> ... <ul class="menu-2"> <li class="menu-2 menu-expand menu-current menu-first"> ... ** CURRENT PAGE ** <ul class="menu-3"> <li class="menu-3 menu-child menu-child-0 menu-first"> ... <ul class="menu-4"> <li class="menu-4 menu-child menu-child-1 menu-first"> ... </li> <li class="menu-4 menu-child menu-child-1 menu-last"> ... </li> </ul> </li> <li class="menu-3 menu-child menu-child-0 menu-last"> ... </li> </ul> </li> <li class="menu-2 menu-sibling menu-last"> ... </li> </ul> </li> <li class="menu-1"> ... </li> <li class="menu-1 menu-expand menu-last"> ... <ul class="menu-2"> <li class="menu-2 menu-first menu-last"> ... </li> </ul> </li> </ul> </li> <li class="menu-0 menu-last"> ... </li> </ul>
PARAMETERup
$aMenu
$aStart
SM2_ROOT+n
SM2_ROOT+1 alkaa kerros ylimmän tason alapuolella
SM2_ROOT+2 alkaa kaksi tasoa ylimmän tason alapuolella
SM2_CURR+n
SM2_CURR+1 sisarukset aloittavat nykyisen tason alapuolella olevan kerroksen kaikilla alitasoilla.
page_id
Kaikki tämän sivun alivalikot näkyvät. (Sivun tunnus voidaan määrittää muokkaamalla sivua admin-taustajärjestelmässä, se näkyy selaimen osoiterivillä: http://SITE/admin/pages/modify.php?page_id=35
$aMaxLevel
alkaa $astartin määrittämältä tasolta tässä määritettyyn tasoon asti.
SM2_ALL
SM2_CURR + n
SM2_CURR+3 Kaikki kantavirta + 3 alitasot
SM2_START + n
tasot näkyvät riippumatta siitä, millä tasolla nykyinen sivu on.
SM2_START+1 aloitustaso + yksi taso alle.
SM2_MAX + n
nykyisen tason alapuolella olevia kerroksia ei näytetä.
SM2_MAX+1 lähtötaso ja yksi taso sen alapuolella.
$aOptions
esimerkiksi määrittelemään sekä trimmi että PRETTY, käytä : (SM2_TRIM / SM2_PRETTY).
ryhmä 1
——-
tästä ryhmästä on aina ilmoitettava yksi lippu. Nämä liput määrittävät, miten valikkopuun sisaruselementit tukahdutetaan tuotoksessa.
SM2_ALL
A-1 -> B-1 -> B-2 -> C-1 -> C-2 (CURRENT) -> D-1 -> D-2 -> C-3 A-2 -> B-3 -> B-4
SM2_TRIM
kaikki alivalinnat kohteista, jotka eivät ole polulla.
poistetaan.
A-1 -> B-1 -> B-2 -> C-1 -> C-2 (CURRENT) -> D-1 -> D-2 -> C-3 A-2
SM2_CRUMB
menun kohteen ja kaikki siihen johtavat valikkokohteet.
A-1 -> B-2 -> C-2 (CURRENT)
SM2_SIBLING
A-1 -> B-2 -> C-1 -> C-2 (CURRENT) -> D-1 -> D-2 -> C-3
ryhmä 2
——-
nämä liput ovat valinnaisia, ne voidaan yhdistää millä tahansa numerolla.
SM2_NUMLUOKKA
SM2_ALLINFO
tämä aiheuttaa melko suuren muistinkulutuksen, ja sen tulisi olla
, joten sitä tulee käyttää varoen.
tämä tarkoittaa esimerkiksi sitä, että hakusanat, sivukuvaus ja
kaikki muut käytettävissä olevat tiedot, joita ei normaalisti ole
, voidaan ladata.
huomaa: tämä lippu on asetettava schow_menu2: n ensimmäisellä kutsulla
voidaan käyttää kyseistä valikkotunnusta tai yhdessä
: n kanssa sm2_nocachen kanssa, muuten sillä ei ole vaikutusta.
SM2_NOCACHE
SM2_PRETTY
rivi murtuu luettavaan muotoon. Tämä on erityisen hyödyllistä, kun vianetsintä valikkotulostetta.
SM2_BUFFER
SM2_CURRTREE
vain nykyisen valikkohaaran valikkokohteet näkyvät.
tarvittaessa tämä lippu voidaan yhdistää mihin tahansa ryhmään 1 kuuluvaan lippuun.
SM2_ESCAPE
tätä voidaan vaatia vanhemmissa WebsiteBaker-asennuksissa.
luoda kelvollinen HTML-lähtö.
SM2_SHOWHIDDEN
käytä yksityisiä sivuja aikaa, kun haluat sivujen olevan piilossa, paitsi silloin, kun olet aktiivinen. Jos haluat kuitenkin yhteensopivuuden release 4.8: n kanssa, anna tämä lippu, jotta piilotetut sivut tulevat näkyviin, kun ne ovat aktiivisia.
SM2_XHTML_STRICT
SM2_NO_TITLE
tälle parametrille on olemassa myös Laajennettu tila, jossa vaihtoehdot ohitetaan assosiatiivisena joukkona. Katso lisätietoja Lisäasetukset-osiosta. Useimmissa sovelluksissa tätä ei kuitenkaan vaadita.
$aItemOpen
jos tämä parametri on epätosi, oletusformaattijono
”</a> ” varmistaa yhteensopivuuden Websitebakerin standardifunktion show_menu () kanssa.
koska muotoileminen CSS-luokilla on usein helpompaa, kun sitä sovelletaan <a> tagiin, on suositeltavaa käyttää seuraavaa muotomerkkijonoa: ”<li></a>”.
tätä parametria voidaan käyttää myös valikon muotoiluluokan ilmentymänä. Tarkempi kuvaus löytyy FORMATTER-osiosta. Jos formater on määritetty tässä, kaikki argumentit jälkeen $aItemOpen ohitetaan.
$aItemClose
jos tämä parametri on epätosi, käytetään oletusarvoa ” < / li>”.
$aMenuOpen
jos tämä parametri on epätosi, käytetään oletusarvoa”.
$aMenuClose
jos tämä parametri on epätosi, käytetään oletusarvoa ” < / ul>”.
$aTopItemOpen
$atopmenuopan
ADVANCED OPTIONSup
$aoptions-parametria voidaan käyttää kahdella tavalla. Ensinnäkin, kuten edellä parametrit-osiossa on kuvattu, tämän tyypin pitäisi riittää valtaosaan käyttötapauksista. Kuitenkin, jotta voidaan käsitellä erityisiä vaihtoehtoja erityistapauksissa, vaaditut arvot on annettava assosiatiivinen array.
huomaa: tässä vaaditaan myös SM2_* – liput, jotka on läpäistävä ”lipuina”.
tämä määrittelee joukon tasoja, jotka näytetään aina suhteessa $aStart-järjestelmässä määriteltyyn valikkotasoon. Tämän vuoksi sm2_trim-lippu jätetään huomiotta näille tasoille.
tämän taulukon käyttämiseksi on suositeltavaa ensin luoda se ja sitten toimittaa $aOptions-parametri luodulla matriisilla:
$options = array('flags' => (SM2_TRIM|...), 'notrim' => 1); show_menu2(0, SM2_ROOT, SM2_CURR+1, $options);
FORMAT STRINGSup
seuraavia tageja voidaan käyttää $aitemopenin ja $amenuopenin formaattijonoissa, ja ne tulisi korvata vastaavalla tekstillä.
<a> tunniste ilman luokkaa:
'<a href="" target="">' |
|
<a> Luokka:
'<a href="" target="" class="">' |
|
<li> tagi luokalla:
'<li class="">' |
|
<ul> Luokka:
'<ul class="">' |
|
luettelo tämän sivun luokista | |
valikon otsikon teksti (HTML-entiteetti karkasi, ellei SM2_NOESCAPE-lippua ole asetettu) |
|
URL levykuvatiedostoon, jossa on normaali-representaatio | |
aktiivisen / hover-näytön sisältävän kuvatiedoston URL | |
sivun otsikkoteksti (HTML-entiteetti karkasi, ellei SM2_NOESCAPE-lippua ole asetettu) |
|
SIVUAIHEISEN kuvatiedoston URL | |
< a> tagin sivujen URL-osoite | |
< a> tagin sivukohteet | |
nykyisen valikkokohteen Sivutunnus. | |
päävalikkokohteen Sivutunnus. | |
sivu taso, tämä on sama numero käytetään ”menu-N” CSS tag. | |
nykyisen valikon kohtien sisarusten lukumäärä. | |
kaikkien sisarusten lukumäärä Tässä valikossa. | |
kunto (katso kohta ”Ehdollinen muotoilu” lisätietoja) |
seuraavat tunnisteet ovat käytettävissä vain, jos sm2_allinfo-lippu on asetettu.
sivun kuvaus | |
sivun avainsanat |
Ehdollinen muotoilu ylös
ehdollinen muotoilulauseke voi olla jokin seuraavista muodoista:
B
tämä voi olla mikä tahansa merkkijono, joka ei sisällä merkkiä”}”.
saattaa sisältää. Se voi sisältää minkä tahansa muotomerkkijonon osiosta
Formaattimerkkijonot”, mutta ei muuta kuntotestiä (koska merkkiä”} ” ei sallita).
C
tämä voi olla mikä tahansa merkkijono, joka ei sisällä merkkiä”}”.
saattaa sisältää. Se voi sisältää minkä tahansa muotomerkkijonon osiosta
Formaattimerkkijonot”, mutta ei muuta kuntotestiä (koska merkkiä”} ” ei sallita).
ehto on yhden tai useamman boolelaisen vertailun yhdistelmä.
jos tarvitaan useampi kuin yksi vertailu, se on yhdistettävä muihin vertailuihin
voidaan linkittää käyttämällä / / (boolean or – OR) tai && (boolean and – AND).
yksi vertailu koostuu vasemmasta operandista, operaattorista ja oikeasta operandista.
esim. X = = Y-missä X on vasen operandi, = = operaattori ja Y oikea operandi.
Luokka | tarkista, onko tämä luokka olemassa. Vain ”= = ”ja”!= ”operaattorit ovat sallittuja. Tällöin operaattoreilla on merkitys ”Sisältää” tai ”ei sisällä” sijasta ”on yhtä suuri”tai” ei ole yhtä suuri”. |
taso | sivutason tarkistaminen. |
sib | Tarkista sisarusten määrä nykyiseltä sivulta. |
sibCount | Tarkista sisarusten kokonaismäärä nykyisestä valikosta. |
tunnus | tarkista sivun tunnus. |
target | target-spesifikaation tarkistaminen. |
< | alle |
<= | pienempi tai yhtä suuri kuin |
== | yhtä suuri |
!= | ei yhtä suuri |
>= | suurempi tai yhtä suuri kuin |
> | suurempi kuin |
Luokka | yksi ”menu – *” – luokan nimistä, jotka on määritelty” Output ” – osiossa. |
taso | Tarkista sivutaso seuraavia arvoja vastaan:
|
id | tarkista sivun tunnus seuraavia arvoja vastaan:
|
sib | positiivinen kokonaisluku eli” sibCount”, jolla voi tarkistaa sisarusten määrän tästä valikosta. |
sibCount | positiivinen kokonaisluku |
kohde | merkkijono, joka edustaa mahdollista kohdemääritystä. |
alivalikko | |
jos valikon ensimmäinen merkintä on | |
ei ole valikon ensimmäinen kohde | |
jos valikon viimeinen merkintä on | |
sijaitsee ylimmällä tasolla | |
ei ole huipputasolla | |
jos valikon toinen merkintä on | |
jos valikossa on useampi kuin yksi merkintä | |
on valikossa joka ei ole täsmälleen 2 kohdetta | |
on rinnakkaistallennusvalikossa tai rinnakkaistallennusvalikon alivalikossa | |
on nykyisen id: N pääpiste | |
merkkijono ”_self” sisältyy target-attribuuttiin. |
jos lisätään jokin muu lauseke, se toteutetaan kaikissa muissa tapauksissa.
esimerkiksi ”foo” suoritetaan aina, kun if-tarkistus on väärä, joten:
ei ole valikon toinen kohta | |
ei ole valikossa, jossa on enemmän kuin kaksi merkintää |
on valikon ensimmäinen merkintä tai neljäs tai korkeampi merkintä | |
jos Nykyinen merkintä on ja sillä on alivalikko |
huomaa:
kaikki tarkastukset tehdään siinä järjestyksessä, jossa ne on merkitty, koska:
- mahdollisia silmukoita ei tarkisteta (kaikki tarkistukset suoritetaan aina).
- tarkastuksia ei ole ryhmitelty (sulkuja tarkastuksista ei tueta)
- molemmilla näillä asioilla on sama arvo.
FORMATTERup
Huomio: Tämä on kehittynyt ja harvoin käytetty ominaisuus!
laajan PHP-ohjelmoinnin tuntemuksen avulla on mahdollista käyttää ennalta määriteltyä
formatointia show_menu2: ssa omillaan.
in the include.PHP show_menu2 näet, miten kirjoittaa formatter.
käytettävä API näyttää tältä:
class SM2_Formatter{ // called once before any menu is processed to allow object initialization function initialize() { } // called to open the menu list function startList($aPage, $aUrl) { } // called to open the menu item function startItem($aPage, $aUrl, $aCurrSib, $aSibCount) { } // called to close the menu item function finishItem() { } // called to close the menu list function finishList() { } // called once after all menu has been processed to allow object finalization function finalize() { } // called once after finalize() if the SM2_NOOUTPUT flag is used function getOutput() { }};
Websitebaker on julkaistu GNU General Public License-lisenssillä