Sziasztok!
Hogyan tudok egy blokkot tiltani modulból.
Tehát hogyan tudom egy modul bekapcsolásakor egy már létező blokk status-át false-ra állítani?
Úgy értem, hogy a bekapcsolandó modulból.
Konkrétan a "Bejelentkezés" blokkot szeretném letiltani egy saját modul bekapcsolásakor.
Drupal verzió:
Fórum:
Nem próbáltam, de kb. így is lehet.
A modulodban (amelyik bekapcsolásához akarod kötni az eseményt, gondolom saját modul) létrehozol egy modulodneve.install file-t és abban implementálod a hook_enable() hook-ot:
http://api.drupal.org/api/drupal/modules!system!system.api.php/function/...
Ebben a drupal hook-ban tudod az adott blokkot letiltani.
Ha nem a 'bartik' a theme-d írd át a fenti kódban.
Csinálj db mentést előtte! Mielőtt módosítod a db-t!
-----
Igazából nem nagyon értem ez mire jó, mert modul-t csak az adminisztrátor engedélyez, aki utána kézzel ki is tudja kapcsolni a blokkot. Ez nem túl gyakori.
Akkor lehet értelme a dolognak, ha egy saját modult folyamatosan kell engedélyezni és letiltani pl. a fejlesztés alatt (nem tudom van-e ilyen eset), és ezért az utána következő műveletet (egyedi blokk letiltása) automatizálni akarod. Vagy másra kell?
-----
Ha csak bizonyos feltételek között nem akarod mutatni a login ablakot, ahhoz nem kell letiltani a blokkot, elég a login blokk beállításainál beállítani, hogy melyik oldalon ne látszódjon.
Köszi, működik
Most tanulom a modulkészítést. Ezt úgy teszem, hogy közben készítek egy oldalt.
Lehet, nem a legjobb megoldás, de azt találtam ki, hogy feltelepítem a Drupalt és onnantól sorban bekapcsolt modulokkal adom hozzá az egyes funkciókat. Persze úgy, hogy ne kelljen semmit kattintgatással beállítanom. Tehát bekapcsolom a saját modulomat, az bekapcsolja a dependenciákat és be is konfigurálja azokat.
Közben sok fórumot olvasgatva itt és a dorg-on felvilágosodtam, hogy ezt inkább telepítési profillal kéne megoldani.
De ettől még nem volt haszontalan megtudnom ezt a megoldást, köszönöm mégegyszer!
Kiss Norbert
adatmentespecs.hu