field_formatter_info hook nem fut le

andrew képe

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?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
andrew képe

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

0
0