I am trying to get a Views (2) handler to work and I don't have enough hair left to continue pulling it out.
In my module file:
/**
 * Implements hook_views_api().
 */
function mymodule_views_api() {
 return array(
   'api' => '2.0',
   'path' => drupal_get_path('module', 'mymodule') /*. '/views'*/,
   );
}
/**
 * Implements hook_views_handlers().
 */
function mymodule_views_handlers() {
 return array('handlers' => array('mymodule_views_handler_field_age_flag'));
}
In mymodule_views.inc (same directory as .module):
/**
 * Implementation of hook_views_data_alter().
 * Add "NEW" flag to nodes that are 30 days or less old.
 */
function mymodule_views_data_alter(&$data) {
 // Make sure field names are unique or they may override
 // standard node fields.
 $data['node']['age_flag'] = array(
   'title' => t('Age flag'),
   'help' => t('Flag to indicate the age of a Node.'),
   'field' => array(
     'handler' => 'mymodule_views_handler_field_age_flag',
     'group' => 'Node',
     'click sortable' => FALSE,
   ),
 );
}
So far, so good. The field does show up as selectable. But it keeps saying that the node > age_flag handler cannot be found".
I have added the file to the module's .info files[] - no help. I have tried placing the handler in the same directory as the module, and both an "includes" and "views" directories. No help.
The handler file itself:
/**
 * class definition.
 */
class mymodule_views_handler_field_age_flag extends views_handler_field {
 /**
  * Render function: return html output
  * Including edit and delete action
  */
 function render($values) {
   // See if the created date is less than 30 days ago.
   $ret = NULL;
   if ($values->created - REQUEST_TIME < 2592000) {
     $ret = 'NEW';
   }
   return $ret;
 }
Â
 /**
  * class query.
  */
 function query() {
   // Do nothing, leave query blank, we render the contents
 }
}
What am I doing stupid that makes Views not find this handler? And yes, I am clearing the Views cache and the Drupal caches every time I blink my eyes.
Â
Nancy
Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr.