van egy minimodulom amiben a nevezett hook és párja a hook_field_formatter segítségével eddig probléma nélkül tudtam views-ben olyan cck-imagefield galérianézeteket létrehozni ahol a saját deklarációimat is használhattam. (gyk. clearbox galéria nézet létrehozása miatt)
modulfrissítéseken estem át és valamiért már nem működik a dolog.
néhány dolog változott, finomítottam is a kódot, de a hook nem hajtódik végre.
function clearboxfield_field_formatter_info() { $formatters = array(); if (module_exists('imagefield') && module_exists('imagecache')) { foreach (imagecache_presets() as $preset) { $formatters[$preset['presetname'] .'][clearbox'] = array( 'label' => t('Clearbox: @preset image', array('@preset' => $preset['presetname'])), 'field types' => array('image', 'filefield'), ); } } return $formatters; }
onnan gondolom, h a hook nem fut le, h a fv törzsébe illesztett drupal_set_message('lefutottam') nem hoz semmilyen eredményt, a modul törzsbe helyezve a drupal_set_message pedig a kívánt hatást hozza.
a dolog azért is érdekes, mert a szintén bekapcsolt imagecache ugyan ezen hookja probléma nélkül végrehajtódik.
van valami ötletetek a jelenséget illetően?
megoldva
rongyossá kellett debuggolni hozzá a modulokat, de megvan.
itt a hibajelenség az utókornak, hátha vki küzd majd még 1x evvel:
a gond az volt, hogy mindenféle gyorstárazás bekapcsolása nélkül is a cck nem nagyon hajtja végre a module_invoke -ot az említett hook(ok)ra, inkább a saját cache-ből dolgozik.
a _content_type_info() kellene h elvégezze a dolgát, csak nem úgy teszi ahogy az ember számítana rá.
ez volt a szívás forrása.
hiába írsz modult ami ráakaszkodik az adott hookokra ha egyszerűen cache-ből dolgozik a cck és csak a legritkább esetekben hívja a module_invoke -ot.
a cache (és a views cache) is törlésre és újragenerálásra kerül, ha pl módosítva van a cck field vmelyik tulajdonsága.
esetemben az adott tartalomtípus image field-jét szerkesztettem, módosítottam a max méretet, mentettem, majd visszaállítottam és újramentettem.
ennek hatására a _content_type_info(TRUE) módon hívódik meg a content_clear_type_cache() fv-ben, nem pedig paraméter nélkül mint máshol, így a cache törlődik és valóban végigmegy a module_invoke()-on meg a cache rebuild-en a cck...