Haladó használat
Egyéni JavaScript-függvény feltételként, váltási típusok, a feltételek kézi lefuttatása, tudnivalók és ismert hibák.
Egyéni JavaScript-függvény
Szekció neve “Egyéni JavaScript-függvény”Feltételként saját JavaScript-függvényt is használhatsz: az első paraméterbe a függvényhívást írd.
A JavaScript-fájlodban:
function my_custom_callback() { return true;}A PHP-fájlodban:
'visible' => [ 'my_custom_callback()', true ]A függvény bármilyen értéket visszaadhat, és az összehasonlításhoz bármelyik operátort használhatod. Például ha a függvény egy tömböt ad vissza:
function dummy_function() { return [ 'foo', 'bar', 'baz' ];}akkor a feltétel így szólhat:
'hidden' => [ 'dummy_function()', 'contains', 'bar' ]Váltási típusok
Szekció neve “Váltási típusok”Alapértelmezés szerint a bővítmény a jQuery .show() és .hide() metódusát használja, ami a CSS display tulajdonságnak felel meg. Ha három meződ van (A, B és C), alapból egymás alatt jelennek meg. A Columns kiegészítővel egymás mellett. Ha a B mező rejtve van, a C mező a B helyére ugrik.
Ha azt szeretnéd, hogy a rejtett mező helye üresen maradjon (A, üres hely, C), a CSS visibility tulajdonságra kell váltanod. Add hozzá a meta boxhoz a toggle_type beállítást:
'toggle_type' => 'visibility',Négy váltási típus áll rendelkezésre:
| Érték | Hatás |
|---|---|
display |
Az elem eltűnik, a helyét a következő elem foglalja el (alapértelmezett). |
visibility |
Az elem láthatatlan lesz, de a helye megmarad. |
slide |
Az elem animálva becsúszik, illetve kicsúszik. |
fade |
Az elem animálva elhalványul, illetve előtűnik. |
A feltételek kézi lefuttatása
Szekció neve “A feltételek kézi lefuttatása”Ha kóddal módosítod egy mező értékét, a változásról nem keletkezik esemény, ezért a többi mezőre vonatkozó feltételek nem futnak le magukban. Ilyenkor JavaScriptből futtasd le őket:
let $scope = $( '.scope' );rwmb.runConditionalLogic( $scope );A .scope annak a burkoló elemnek a választója, amely az érintett mezőket tartalmazza. Lehet egy mezőcsoport, egy tetszőleges div, vagy akár az egész oldal. A futtatás után a burkolón belüli mezők a többi mező aktuális értéke szerint jelennek meg vagy rejtődnek el.
Include/Exclude, Show/Hide vagy Conditional Logic?
Szekció neve “Include/Exclude, Show/Hide vagy Conditional Logic?”A meta boxok láthatóságát három Meta Box-kiegészítő is szabályozhatja: az MB Include Exclude, az MB Show Hide és az MB Conditional Logic. A fő különbség a működési módjukban van.
MB Include Exclude (PHP-alapú):
- A meta box teljesen kikerül a szerkesztőből, HTML sem készül belőle.
- Mivel nincsenek beviteli mezők, meta érték sem mentődik.
- Az oldal újratöltése nélkül nem lehet újra megjeleníteni.
MB Conditional Logic és MB Show Hide (JavaScript-alapú):
- A meta box HTML-je megjelenik, a mezők csak el vannak rejtve, ezért az értékeik mentéskor elküldődnek és az adatbázisba kerülnek.
- Az oldal újratöltése nélkül újra megjeleníthetők.
A Conditional Logic és a Show Hide közti különbség: a Conditional Logic nemcsak meta boxokat, hanem mezőket és tetszőleges HTML-elemeket is el tud rejteni, a Show Hide csak meta boxokat. A Conditional Logic több összehasonlítást is ismer (nagyobb, kisebb, nem egyenlő stb.).
Tudnivalók
Szekció neve “Tudnivalók”Klónozható csoportok
Szekció neve “Klónozható csoportok”Klónozható csoportnál a szabályok csak az adott klónon belül érvényesek. Nem működik olyan szabály, amely a csoporton kívüli mezőre hivatkozik: a szabály függő és vezérlő mezőjének is a csoport almezőjének kell lennie.
Láncban rejtett mezők
Szekció neve “Láncban rejtett mezők”Ha egy mező rejtve van, az attól függő mezők is rejtve maradnak, függetlenül az értékeiktől.
Például három mezőnél (A, B, C), ha a szabály ez:
HA A = 1 VAGY B = 1, AKKOR C látszikakkor ha az A vagy a B rejtve van, a C mindig rejtve marad, bármi is az A és a B értéke.
Ismert hibák
Szekció neve “Ismert hibák”A feltételes megjelenítés nem működik az automatikus kiegészítés (autocomplete) mezővel.
Készült: