muamba_status)) { return t(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(). */ 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) { if (isset($values->mid)) { $transaction = muamba_get_transaction($values->mid); return muamba_availability_info($transaction['nid']); } elseif (isset($values->nid)) { return muamba_availability_info($values->nid); } } } /** * Field handler for muamba transaction status. */ class views_handler_field_muamba_actions extends views_handler_field { /** * Implements views_handler_field#query(). */ function query() { // Provide an field alias but don't actually alter the query. $this->field_alias = 'views_muamba_actions_' . $this->position; } /** * Option definition. */ function option_definition() { $options = parent::option_definition(); $options['messages'] = array('default' => FALSE); return $options; } /** * Provide link to node option. */ function options_form(&$form, &$form_state) { parent::options_form($form, $form_state); $form['messages'] = array( '#type' => 'checkbox', '#title' => t('Show messages link'), '#default_value' => isset($this->options['messages']) ? $this->options['messages'] : FALSE, '#description' => t('Add a link to the transaction thread.'), ); } /** * Renders the field. */ function render($values) { global $user; if (isset($values->mid)) { // We should point to the current transaction. $old = muamba_get_transaction($values->mid); $transaction = muamba_current_transactions($old['nid'], $old['uid']); if (empty($transaction)) { return; } if ($transaction['owner'] == $user->uid) { return theme('muamba_widget_owner', array( 'transaction' => $transaction, 'messages' => $this->options['messages'], )); } elseif ($transaction['uid'] == $user->uid) { return theme('muamba_widget_requester', array( 'transaction' => $transaction, 'messages' => $this->options['messages'], )); } } elseif (isset($values->nid)) { if (isset($values->users_muamba_uid)) { $transaction = muamba_current_transactions($values->nid, $values->users_muamba_uid); // Current user may be the requester if (empty($transaction)) { $transaction = muamba_current_transactions($values->nid, $user->uid); } if ($transaction['owner'] == $user->uid) { return theme('muamba_widget_owner', array( 'transaction' => $transaction, 'messages' => $this->options['messages'], )); } elseif ($transaction['uid'] == $user->uid) { return theme('muamba_widget_requester', array( 'transaction' => $transaction, 'messages' => $this->options['messages'], )); } } else { $node = node_load($values->nid); return muamba_widget($node, 'small', $this->options['messages']); } } } } /** * Field handler for muamba total transactions. */ class views_handler_field_muamba_total extends views_handler_field { /** * Implements views_handler_field#query(). */ function query() { // Provide an field alias but don't actually alter the query. $this->field_alias = 'views_muamba_total_' . $this->position; } /** * Option definition. */ function option_definition() { $options = parent::option_definition(); $options['value'] = array('default' => 'transactions'); return $options; } /** * Provide link to node option. */ function options_form(&$form, &$form_state) { parent::options_form($form, $form_state); $form['value'] = array( '#type' => 'select', '#title' => t('Which value'), '#options' => array( 'transactions' => t('Number of transactions'), 'requested' => t('Number of current requests'), 'rejected' => t('Number of rejections'), 'borrowed' => t('Number of times it was borrowed'), ), '#default_value' => isset($this->options['value']) ? $this->options['value'] : 'transactions', ); } /** * Renders the field. */ function render($values) { if (isset($values->nid)) { return muamba_total($values->nid, $this->options['value']); } } }