Index: feedback.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/feedback/feedback.module,v retrieving revision 1.75.2.3 diff -u -p -r1.75.2.3 feedback.module --- feedback.module 27 Jan 2010 22:37:36 -0000 1.75.2.3 +++ feedback.module 25 May 2010 20:49:59 -0000 @@ -236,3 +236,10 @@ function feedback_user($op, &$edit, &$ac db_query('UPDATE {feedback} SET uid = 0 WHERE uid = %d', $account->uid); } } + +/** + * Implementation of hook_views_api(); + */ +function feedback_views_api() { + return array('api' => 2.0); +} Index: feedback.views.inc =================================================================== RCS file: feedback.views.inc diff -N feedback.views.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ feedback.views.inc 25 May 2010 20:49:59 -0000 @@ -0,0 +1,136 @@ + 'fid', + 'title' => t('Feedback'), + 'help' => t('Feedback by users for site locations.'), + ); + // Define the joins. + $data['feedback']['table']['join']['users'] = array( + // 'left_table' => 'user', + 'left_field' => 'uid', + 'field' => 'uid', + ); + // Fields + + // user that left feedback + $data['feedback']['uid'] = array( + 'title' => t('User Id'), + 'help' => t('The unique id key for the User who left feedback.'), + 'relationship' => array( + 'label' => t('Users'), + 'help' => 'Users who left this feedback.', + 'base' => 'users', + 'base field' => 'uid', + // This allows us to not show this relationship if the base is already + // node_revisions so users won't create circular relationships. + 'skip base' => array('users'), + ), + 'filter' => array( + 'handler' => 'views_handler_filter_string', + ), + 'argument' => array( + 'handler' => 'views_handler_argument_many_to_one', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + // processed status + $data['feedback']['status'] = array( + 'title' => t('Processed'), + 'help' => t('Whether or not the feedback is marked processed.'), + 'field' => array( + 'handler' => 'views_handler_field_boolean', + 'click sortable' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_boolean_operator', + 'label' => t('Promoted to front page'), + 'type' => 'yes-no', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + // message left + $data['feedback']['message'] = array( + 'title' => t('Message'), + 'help' => t('The message the user left.'), + 'field' => array( + 'handler' => 'views_handler_field', + 'click sortable' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_string', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + // feedback path + $data['feedback']['location'] = array( + 'title' => t('Location'), + 'help' => t('The location the user left.'), + 'field' => array( + 'handler' => 'views_handler_field', + 'click sortable' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_string', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + // user-agent string + $data['feedback']['useragent'] = array( + 'title' => t('User-Agent'), + 'help' => t('The users browser user-agent string.'), + 'field' => array( + 'handler' => 'views_handler_field', + 'click sortable' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_string', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + // timestamp when feedback was left + $data['feedback']['timestamp'] = array( + 'title' => t('Time'), + 'help' => t('When the Feedback was left.'), + 'field' => array( + 'click sortable' => TRUE, + 'handler' => 'views_handler_field_date', + ), + 'filter' => array( + 'handler' => 'date_api_filter_handler', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + return $data; +}