blokk tiltása

knorbi képe

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ó: 
aruna képe

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.

/**
 * Implements hook_install().
 */
function modulodneve_install() {
  // Give your theme name (text id).
  $your_theme = 'bartik'; // Change it!
  // Delete block from any region and save in block table.
  db_update('block')
    ->fields(array('status' => 0))
    ->fields(array('region' => -1))
    ->condition('module', 'user')
    ->condition('delta', 'login')
    ->condition('theme', $your_theme)
    ->execute();
  // Clear all cache.
  drupal_flush_all_caches();
}

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.

1
0
knorbi képe

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!

0
0

Kiss Norbert
adatmentespecs.hu