'userpoints', 'provider' => 'internal', // won't show up in external list. 'join' => array( 'left' => array( 'table' => 'node', 'field' => 'uid', ), 'right' => array( 'field' => 'uid', ), ), 'fields' => array( 'points' => array( 'name' => t('Node: Author Points'), 'sortable' => TRUE, 'option' => 'integer', 'handler' => 'views_handler_field_int', 'help' => t('Displays the number of userpoints that the author of the node currently has.'), ), 'max_points' => array( 'name' => t('Node: Author Maximum Points'), 'sortable' => TRUE, 'option' => 'integer', 'handler' => 'views_handler_field_int', 'help' => t('Displays the maximum number of userpoints of the author of the node.'), ), 'link' => array( 'name' => t('Node: Author Link'), 'option' => array( '#type' => 'textfield', '#default_value' => t('(details)|myuserpoints/$uid'), '#size' => 20, '#description' => 'title|destination
$uid is a placeholder.', ), 'help' => t('Displays a link to something, based on the node author.'), 'field' => 'uid', 'handler' => 'views_handler_field_userpoints_link_uid', ), ), 'sorts' => array( 'points' => array( 'name' => t('Node: Author Points'), 'help' => t("Sort by the node's author current number of userpoints"), ), 'max_points' => array( 'name' => t('Node: Author Maximum Points'), 'help' => t("Sort by the node's author maximum number of userpoints"), ), ), 'filters' => array( 'points' => array( 'name' => t('Node: Author Points'), 'value-type' => 'integer', 'operator' => 'views_handler_operator_gtlt', 'help' => t('Filter node authors based on points.'), ), 'tid' => array( 'name' => t('Node: Author Points Category'), 'help' => t('Filter node authors based on the points categories.'), 'operator' => 'views_handler_operator_eqneq', 'value' => array( '#type' => 'select', '#options' => 'userpoints_get_categories', ), ), ), ); $tables['userpoints_categories'] = array( 'name' => 'term_data', 'provider' => 'internal', // won't show up in external list. 'join' => array( 'left' => array( 'table' => 'userpoints', 'field' => 'tid', ), 'right' => array( 'field' => 'tid', ), ), 'fields' => array( 'name' => array( 'name' => t('Userpoints: Points Category'), 'sortable' => TRUE, 'handler' => 'views_handler_field_userpoints_category', 'help' => t('Displays the userpoints category of the points.'), ), 'link' => array( 'name' => t('Userpoints: Category Link'), 'option' => array( '#type' => 'textfield', '#default_value' => t('(details)|mycategories/$tid'), '#size' => 20, '#description' => 'title|destination
$tid is a placeholder.', ), 'help' => t('Displays a link to something, based on the category.'), 'field' => 'tid', 'handler' => 'views_handler_field_userpoints_link_tid', ), ), ); $tables['userpoints_comments'] = array( 'name' => 'userpoints', 'provider' => 'internal', // won't show up in external list. 'join' => array( 'left' => array( 'table' => 'comments', 'field' => 'uid', ), 'right' => array( 'field' => 'uid', ), ), 'fields' => array( 'points' => array( 'name' => t('Comment: Author Points'), 'sortable' => TRUE, 'option' => 'integer', 'handler' => 'views_handler_field_int', 'help' => t('Displays the number of userpoints that the author of the comment currently has.'), ), 'max_points' => array( 'name' => t('Comment: Author Maximum Points'), 'sortable' => TRUE, 'option' => 'integer', 'handler' => 'views_handler_field_int', 'help' => t('Displays the maximum number of userpoints of the author of the comment.'), ), 'link' => array( 'name' => t('Comment: Author Link'), 'option' => array( '#type' => 'textfield', '#default_value' => t('(details)|myuserpoints/$uid'), '#size' => 20, '#description' => 'title|destination
$uid is a placeholder.', ), 'help' => t('Displays a link to something, based on the comment author.'), 'field' => 'uid', 'handler' => 'views_handler_field_userpoints_link_uid', ), ), 'sorts' => array( 'points' => array( 'name' => t('Comment: Author Points'), 'help' => t("Sort by the comment's author current number of userpoints"), ), 'max_points' => array( 'name' => t('Comment: Author Maximum Points'), 'help' => t("Sort by the comment's author maximum number of userpoints"), ), ), 'filters' => array( 'points' => array( 'name' => t('Comment: Author Points'), 'value-type' => 'integer', 'operator' => 'views_handler_operator_gtlt', 'help' => t('Filter comment authors based on points.'), ), 'tid' => array( 'name' => t('Comment: Author Points Category'), 'help' => t('Filter comment authors based on the points categories.'), 'operator' => 'views_handler_operator_eqneq', 'value' => array( '#type' => 'select', '#options' => 'userpoints_get_categories', ), ), ), ); $tables['userpoints_txn'] = array( 'provider' => 'internal', // won't show up in external list. 'join' => array( 'left' => array( 'table' => 'userpoints', 'field' => 'uid', ), 'right' => array( 'field' => 'uid', ), 'extra' => array( 'tid = userpoints.tid' => NULL, ), 'type' => 'inner', ), 'fields' => array( 'points' => array( 'name' => t('Userpoints: Transaction Points'), 'sortable' => TRUE, 'option' => 'integer', 'handler' => 'views_handler_field_int', 'help' => t('Displays the number of userpoints assigned in the transaction.'), ), 'time_stamp' => array( 'name' => t('Userpoints: Transaction Time'), 'sortable' => TRUE, 'handler' => views_handler_field_dates(), 'option' => 'string', 'help' => t('Displays the date and time of the transaction.'), ), 'status' => array( 'name' => t('Userpoints: Transaction Status'), 'sortable' => TRUE, 'handler' => 'views_handler_field_userpoints_txn_status', 'help' => t('Displays the status (approved, pending or declined) of the transaction.'), ), 'description' => array( 'name' => t('Userpoints: Transaction Description'), 'sortable' => TRUE, 'help' => t('Displays the description given to the transaction.'), ), 'operation' => array( 'name' => t('Userpoints: Transaction Operation'), 'sortable' => TRUE, 'help' => t('Displays the operation which caused the transaction.'), ), ), 'sorts' => array( 'points' => array( 'name' => t('Userpoints: Transaction Points'), 'help' => t("Sort by the number of userpoints assigned in the transaction"), ), 'time_stamp' => array( 'name' => t('Userpoints: Transaction Time'), 'handler' => 'views_handler_sort_date', 'option' => views_handler_sort_date_options(), 'help' => t("Sort by the transaction time"), ), ), 'filters' => array( ), ); return $tables; } /** * Implementation of hook_views_arguments(): */ function userpoints_views_views_arguments() { } /** * Implementation of hook_views_default_views(): * Generate a default views: a list of users, and per-user transactions (both require usernode module) */ function userpoints_views_views_default_views() { $view = new stdClass(); $view->name = 'users_points'; $view->description = 'Lists users by their points'; $view->access = array ( ); $view->view_args_php = ''; $view->page = TRUE; $view->page_title = 'Users by Points'; $view->page_header = ''; $view->page_header_format = '1'; $view->page_footer = ''; $view->page_footer_format = '1'; $view->page_empty = ''; $view->page_empty_format = '1'; $view->page_type = 'table'; $view->url = 'views/users_points'; $view->use_pager = TRUE; $view->nodes_per_page = '10'; $view->menu = TRUE; $view->menu_title = 'View - Users by Points'; $view->menu_tab = FALSE; $view->menu_tab_weight = '0'; $view->menu_tab_default = FALSE; $view->menu_tab_default_parent = NULL; $view->menu_tab_default_parent_type = 'tab'; $view->menu_parent_tab_weight = '0'; $view->menu_parent_title = ''; $view->sort = array ( ); $view->argument = array ( ); $view->field = array ( array ( 'tablename' => 'usernode_users', 'field' => 'name', 'label' => 'User', 'handler' => 'usernode_views_handler_field_username_link', 'sortable' => '1', ), array ( 'tablename' => 'userpoints', 'field' => 'link', 'label' => 'Details', 'options' => '(details)|myuserpoints/$uid', ), array ( 'tablename' => 'userpoints_categories', 'field' => 'name', 'label' => 'Category', 'sortable' => '1', ), array ( 'tablename' => 'userpoints', 'field' => 'points', 'label' => 'Points', 'sortable' => '1', 'defaultsort' => 'DESC', ), ); $view->filter = array ( array ( 'tablename' => 'userpoints', 'field' => 'tid', 'operator' => '=', 'options' => '', 'value' => '0', ), ); $view->exposed_filter = array ( array ( 'tablename' => 'userpoints', 'field' => 'tid', 'label' => 'Filter by category:', 'optional' => '1', 'is_default' => '0', 'operator' => '1', 'single' => '1', ), ); $view->requires = array(usernode_users, userpoints, userpoints_categories); $views[$view->name] = $view; $view = new stdClass(); $view->name = 'my_userpoints_txns'; $view->description = 'List a user\'s points transactions'; $view->access = array ( ); $view->view_args_php = ''; $view->page = TRUE; $view->page_title = 'Userpoints Transactions'; $view->page_header = ''; $view->page_header_format = '1'; $view->page_footer = ''; $view->page_footer_format = '1'; $view->page_empty = ''; $view->page_empty_format = '1'; $view->page_type = 'table'; $view->url = 'views/myuserpoints'; $view->use_pager = TRUE; $view->nodes_per_page = '10'; $view->sort = array ( ); $view->argument = array ( array ( 'type' => 'uid', 'argdefault' => '4', 'title' => 'Points for %1', 'options' => '', 'wildcard' => '', 'wildcard_substitution' => '', ), ); $view->field = array ( array ( 'tablename' => 'userpoints_txn', 'field' => 'points', 'label' => 'Points', 'sortable' => '1', ), array ( 'tablename' => 'userpoints_txn', 'field' => 'status', 'label' => 'Approved?', 'sortable' => '1', ), array ( 'tablename' => 'userpoints_txn', 'field' => 'time_stamp', 'label' => 'Date', 'handler' => 'views_handler_field_date_small', 'sortable' => '1', 'defaultsort' => 'DESC', ), array ( 'tablename' => 'userpoints_txn', 'field' => 'operation', 'label' => 'Operation', 'sortable' => '1', ), array ( 'tablename' => 'userpoints_categories', 'field' => 'name', 'label' => 'Category', 'sortable' => '1', ), array ( 'tablename' => 'userpoints_txn', 'field' => 'description', 'label' => 'Description', 'sortable' => '1', ), ); $view->filter = array ( array ( 'tablename' => 'node', 'field' => 'type', 'operator' => 'OR', 'options' => '', 'value' => array ( 0 => 'usernode', ), ), ); $view->exposed_filter = array ( ); $view->requires = array(userpoints_txn, userpoints_categories, node); $views[$view->name] = $view; return $views; } function views_handler_field_userpoints_category($fieldinfo, $fielddata, $value, $data) { if ($value == NULL || $value == '') { return t('!Uncategorized', userpoints_translation()); } return $value; } function views_handler_field_userpoints_link_tid($fieldinfo, $fielddata, $tid, $data) { if ($tid == NULL || $tid == '') { $tid = 0; } $format = $fielddata['options']; $format = str_replace('$tid', $tid, $format); $pieces = explode('|', $format, 2); return l($pieces[0], $pieces[1]); } function views_handler_field_userpoints_link_uid($fieldinfo, $fielddata, $uid, $data) { $format = $fielddata['options']; $format = str_replace('$uid', $uid, $format); $pieces = explode('|', $format, 2); return l($pieces[0], $pieces[1]); } function views_handler_field_userpoints_txn_status($fieldinfo, $fielddata, $value, $data) { static $stati; if (!isset($stati)) { $stati = userpoints_txn_status(); } return $stati[$value]; }