2012-02-18 2 views
2

Не удалось вызвать hook_views_handlers(). Я попытался очистить кэш, переустановить модуль и т. Д. Я добавил сторожевые вызовы(), чтобы узнать, вызвано ли это вызовом, и это никогда не происходит.hook_views_handlers не получает вызов

Это поле предоставляет счетчик с тем же типом просмотров код счетчика использует:

я могу добавить поле к виду, но когда я добавляю его, он просто показывает, как «Broken/Missing»

Все 3 из этих файлов находятся в корне каталога модулей funwithviews. Здесь приведенный код.

Что-то не в порядке?

Это существует в: funwithviews.module

/** 
* Implements hook_views_api(). 
*/ 
function funwithviews_views_api() { 
    return array(
    'api' => 3.0 
); 
} 

Это существует в: funwithviews.views.inc

/** 
* Implementation of hook_views_data() 
*/ 
function funwithviews_views_data() { 
    $data['fwv']['table']['group'] = t('FunSpace'); 
    $data['fwv']['table']['join'] = array(
    '#global' => array(), 
); 
    $data['fwv']['counter'] = array(
    'title' => t('Fun counter'), 
    'help' => t('This counter is more fun than the other one.'), 
    'field' => array(
     'handler' => 'funwithviews_handler_field_fwv_counter', 
    ), 
); 
    return $data; 
} 

/** 
* Implements of hook_views_handlers(). 
*/ 
function funwithviews_views_handlers() { 
    return array(
    'info' => array(
     'path' => drupal_get_path('module', 'funwithviews'), 
    ), 
    'handlers' => array(
     'funwithviews_handler_field_fwv_counter' => array(
     'parent' => 'views_handler_field', 
    ), 
    ), 
); 
} 

Это существует в: funwithviews_handler_field_fwv_counter.inc

class funwithviews_handler_field_fwv_counter extends views_handler_field { 
+0

См. Https://drupal.org/node/856186 –

ответ

2

Я получил это работает путем определения файлов представлений в моем файле .info.

files[] = funwithviews.views.inc 
files[] = funwithviews_handler_field_fwv_counter.inc 

hook_views_handlers() больше не находится в представлениях.

0

Это работа, но если вы поставите die('something'); в hook_handlers не called.this хитрый способ и не является стандартный способ.

/** 
* Implements of hook_views_handlers(). 
*/ 
function funwithviews_views_handlers() { 
die('something'); 
return array(
'info' => array(
    'path' => drupal_get_path('module', 'funwithviews'), 
), 
    'handlers' => array(
    'funwithviews_handler_field_fwv_counter' => array(
    'parent' => 'views_handler_field', 
    ), 
    ), 
); 
} 

Возможно, потому что имя вашего модуля (конец с представлениями), парсер drupal hook не обнаруживает его правильно. У меня точно такая проблема. (Мое имя модуля закончилось просмотром my_module).

0

файлы [] = funwithviews.views.inc
файлы [] = funwithviews_handler_field_fwv_counter.inc

Первая линия не нужна. Только второй. В Drupal 7 Вы можете включать файлы в файл .info только с классом.
Файл funwithviews.views.inc будет автоматически включен через hook_views_api в ваш .module файл.

Смежные вопросы