drupal - estructura - hook_views_handlers no se llama
drupal 8 restui (4)
Mi hook_views_handlers () no se está llamando. Intenté borrar el caché, reinstalar el módulo, etc. He agregado las llamadas a watchdog () para ver si se llama, y nunca lo hace.
Este campo expone un contador con el mismo tipo de contador de visitas de código que usa:
Puedo agregar el campo a la vista, pero una vez que lo agregue, solo se muestra como "Roto / Perdido"
Los 3 de estos archivos están en la raíz del directorio del módulo funwithviews. Aquí está el código relavent.
¿Algo parece fuera de lugar?
Esto existe en: funwithviews.module
/**
* Implements hook_views_api().
*/
function funwithviews_views_api() {
return array(
''api'' => 3.0
);
}
Esto existe en: 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'',
),
),
);
}
Esto existe en: funwithviews_handler_field_fwv_counter.inc
class funwithviews_handler_field_fwv_counter extends views_handler_field {
Lo conseguí trabajando al definir los archivos de vistas en mi archivo .info.
files[] = funwithviews.views.inc
files[] = funwithviews_handler_field_fwv_counter.inc
hook_views_handlers () ya no está en Views.
Sí, tienes que agregarlo a tu archivo de información, como lo demuestran los puntos de vista: http://drupalcode.org/project/views.git/blob/refs/heads/7.x-3.x:/views.info
Es un trabajo pero si pones un die(''something'');
en hook_handlers no se llama. esta es una forma complicada y no es una forma estándar.
/**
* 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'',
),
),
);
}
tal vez porque su nombre de módulo (final con vistas), drupal hook parser no lo detecta correctamente. Tengo exactamente este problema. (Mi nombre de módulo terminó con vistas my_module
).
archivos [] = funwithviews.views.inc
archivos [] = funwithviews_handler_field_fwv_counter.inc
La primera línea no es necesaria. Solo segundo. En Drupal 7 puede incluir archivos en el archivo .info
solo con Class.
El archivo funwithviews.views.inc
incluirá automáticamente a través de hook_views_api
en Your .module
file.