From b345c3b4a369d2c96f0ba5ea0411d8aad65a171f Mon Sep 17 00:00:00 2001
From: Dan Chadwick <dan899@gmail.com>
Date: Wed, 4 Mar 2015 11:06:05 -0500
Subject: [PATCH] Issue #1919872 by DanChadwick: Skip hook_node_view() if
 webform is not rendering a form for a view mode.

---
 webform.module |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/webform.module b/webform.module
index 31bde55..d351381 100644
--- a/webform.module
+++ b/webform.module
@@ -1827,6 +1827,12 @@ function webform_node_view($node, $view_mode) {
     return;
   }
 
+  // If the webform is not set to display in this view mode, return early.
+  $extra_fields = field_extra_fields_get_display('node', $node->type, $view_mode);
+  if (empty($extra_fields['webform']['visible'])) {
+    return;
+  }
+
   $submission = FALSE;
   $submission_count = 0;
   $page = node_is_page($node);
@@ -1837,7 +1843,8 @@ function webform_node_view($node, $view_mode) {
   $closed = FALSE;
   $allowed_roles = array();
 
-  // If a teaser, tell the form to load subsequent pages on the node page.
+  // If a teaser, tell the form to load subsequent pages on the node page. A
+  // special exception is made for this view mode only.
   if ($view_mode == 'teaser' && !isset($node->webform['action'])) {
     $query = array_diff_key($_GET, array('q' => ''));
     $node->webform['action'] = url('node/' . $node->nid, array('query' => $query));
-- 
1.7.8.msysgit.0

