muamba_status)) { return muamba_statuses($values->muamba_status); } } } /** * Filter by transaction status */ class views_handler_filter_muamba_status extends views_handler_filter_in_operator { function get_value_options() { if (!isset($this->value_options)) { $this->value_title = t('Transaction status'); $this->value_options = muamba_statuses(); } } } /** * Field handler for muamba transaction status. */ class views_handler_field_muamba_available extends views_handler_field { /** * Implements views_handler_field#query(). * * @see views_php_views_pre_execute() */ function query() { // Provide an field alias but don't actually alter the query. $this->field_alias = 'views_muamba_available_' . $this->position; } /** * Renders the field. */ function render($values) { global $user; $available = muamba_check_availability($values->nid); if ($values->users_node_uid == $user->uid) { return t('You own the item'); } elseif (!$available) { $transaction = muamba_current_transactions($values->nid, $user->uid); if (isset($transaction['uid']) && $transaction['uid'] == $user->uid) { return t('You requested'); } else { return t('No'); } } return t('Yes'); } } /** * Field handler for muamba transaction status. * * @todo * Show widget also in a transaction view. */ class views_handler_field_muamba_actions extends views_handler_field { /** * Implements views_handler_field#query(). * * @see views_php_views_pre_execute() */ function query() { // Provide an field alias but don't actually alter the query. $this->field_alias = 'views_muamba_actions_' . $this->position; } /** * Renders the field. */ function render($values) { global $user; if (isset($values->mid)) { $transaction = muamba_get_transaction($values->mid); // @todo return 'TODO'; } elseif (isset($values->nid)) { $available = muamba_check_availability($values->nid); $node = node_load($values->nid); // Check if widget can be shown if ($node->type != MUAMBA_NODE_TYPE || !muamba_has_request_access($node)) { return; } if ($node->uid != $user->uid) { $transactions = muamba_current_transactions($values->nid, $user->uid); } else { $transactions = muamba_current_transactions($values->nid); } return theme('muamba_widget', array( 'node' => $node, 'transactions' => $transactions, 'available' => $available, )); } } }