]> gitweb.fluxo.info Git - drupal/muamba.git/commitdiff
Partial views_handler_field_muamba_actions()
authorSilvio Rhatto <rhatto@riseup.net>
Mon, 7 Nov 2011 00:01:21 +0000 (22:01 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Mon, 7 Nov 2011 00:01:21 +0000 (22:01 -0200)
muamba.handlers.inc
muamba.module

index 7a1c3f32e77cb7de93ef0b1ab34dd9a9e998eff8..f6c0982f3e1fa88be6b0cc296d090086d0c5b058 100644 (file)
@@ -58,7 +58,7 @@ class views_handler_field_muamba_available extends views_handler_field {
     elseif (!$available) {
       $transaction = muamba_current_transactions($values->nid, $user->uid);
 
-      if ($transaction['uid'] == $user->uid) {
+      if (isset($transaction['uid']) && $transaction['uid'] == $user->uid) {
         return t('You requested');
       }
       else {
@@ -74,6 +74,7 @@ class views_handler_field_muamba_available extends views_handler_field {
  * Field handler for muamba transaction status.
  *
  * @todo
+ *   Show widget also in a transaction view.
  */
 class views_handler_field_muamba_actions extends views_handler_field {
   /**
@@ -88,11 +89,36 @@ class views_handler_field_muamba_actions extends views_handler_field {
 
   /**
    * Renders the field.
-   *
-   * @todo
    */
   function render($values) {
-    dpm($values);
-    return "TODO";
+    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,
+      ));
+    }
   }
 }
index 66e0b520da9c0660c8105b906629b070cb6cdf3c..2b76df912e5d5791a127de0922a9d67e84017f34 100644 (file)
@@ -117,30 +117,24 @@ function muamba_node_view($node, $view_mode, $langcode) {
   }
 
   if ($view_mode == 'full') {
-    if ($node->uid != $user->uid) {
-      $transactions            = muamba_current_transactions($node, $user->uid);
-      $available               = muamba_check_availability($node->nid);
-      $node->content['muamba'] = array(
-        '#markup' => theme('muamba_widget', array(
-          'node'         => $node,
-          'transactions' => $transactions,
-          'available'    => $available,
+    $available = muamba_check_availability($node->nid);
 
-        )),
-        '#weight' => 100,
-      );
+    if ($node->uid != $user->uid) {
+      $transactions = muamba_current_transactions($node, $user->uid);
     }
     else {
-      $transactions            = muamba_current_transactions($node);
-      $node->content['muamba'] = array(
-        '#markup' => theme('muamba_widget', array(
-          'node'         => $node,
-          'transactions' => $transactions
-        )),
-        '#weight' => 100,
-      );
+      $transactions = muamba_current_transactions($node);
     }
 
+    $node->content['muamba'] = array(
+      '#markup' => theme('muamba_widget', array(
+        'node'         => $node,
+        'transactions' => $transactions,
+        'available'    => $available,
+      )),
+      '#weight' => 100,
+    );
+
     return $node;
   }
 }