Tovább a tartalomhoz

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.

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' ]

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.

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.).

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.

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átszik

akkor ha az A vagy a B rejtve van, a C mindig rejtve marad, bármi is az A és a B értéke.

A feltételes megjelenítés nem működik az automatikus kiegészítés (autocomplete) mezővel.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások