diff --git a/webform_entity.migrate.inc b/webform_entity.migrate.inc index e840d89dc268e49a63d6a8235c089deb8ef2fa8f..4ad6594932e6ecdf5f29089a4e5314c36e01d7d3 100644 --- a/webform_entity.migrate.inc +++ b/webform_entity.migrate.inc @@ -62,7 +62,7 @@ class MigrateDestinationWebformSubmissionEntity extends MigrateDestinationEntity } // Make sure the node type is on webform's list. - $types = webform_variable_get('webform_node_types'); + $types = webform_entity_node_types(); if (!in_array($this->node->type, $types)) { throw new Exception(t("You need to provide either a node object or string node type that is configured to accept webform submissions. We found %type wanting.", array('%type' => $this->node->type))); } diff --git a/webform_entity.module b/webform_entity.module index 62bc8b097a799f03258404a51fc69df688d3395b..5330fc544f901c9386978e2f7a01d9b6d9f26010 100644 --- a/webform_entity.module +++ b/webform_entity.module @@ -81,15 +81,12 @@ function webform_entity_entity_info() { ->fetchAllAssoc('type'); // Add existing node types. - $node_types = array_keys(node_type_get_names()); - foreach ($node_types as $type) { - if (in_array($type, webform_variable_get('webform_node_types'))) { - $webform_submission_entity_type = new stdClass; - $webform_submission_entity_type->id = 'new'; - $webform_submission_entity_type->type = $type; - - $types[$type] = $webform_submission_entity_type; - } + foreach (webform_entity_node_types() as $type) { + $webform_submission_entity_type = new stdClass; + $webform_submission_entity_type->id = 'new'; + $webform_submission_entity_type->type = $type; + + $types[$type] = $webform_submission_entity_type; } if (!empty($types)) { @@ -387,6 +384,20 @@ function webform_entity_form_alter(&$form, &$form_state, $form_id) { } } +/** + * Returns the list of webform-enabled node types. + * Works for webform 3.x and 4.x. + * @return array|null + */ +function webform_entity_node_types() { + if (function_exists('webform_node_types')) { + return webform_node_types(); + } + else { + return webform_variable_get('webform_node_types'); + } +} + /** * Implements hook_form_[form_id]_alter(). * @@ -394,7 +405,7 @@ function webform_entity_form_alter(&$form, &$form_state, $form_id) { * the field configuration pages for provided for our entity bundles. */ function webform_entity_form_webform_admin_settings_alter(&$form, &$form_state) { - $webform_types = webform_variable_get('webform_node_types'); + $webform_types = webform_entity_node_types(); $existing_entity_types = webform_entity_get_types(); foreach ($form['node_types']['#options'] as $option_name => &$option) { if (in_array($option_name, $webform_types)) { @@ -577,7 +588,7 @@ function webform_entity_node_load($nodes, $types) { // by adding a fake component. if ((arg(2) != 'webform' && arg(2) != 'submission') || arg(4) == 'edit') { foreach ($nodes as $node) { - if (!in_array($node->type, webform_variable_get('webform_node_types'))) { + if (!in_array($node->type, webform_entity_node_types())) { return; } if (!is_array($nodes[$node->nid]->webform['components']) || empty($nodes[$node->nid]->webform['components'])) { @@ -620,7 +631,7 @@ function webform_entity_node_save($node) { * Implements hook_node_insert(). */ function webform_entity_node_insert($node) { - if (!in_array($node->type, webform_variable_get('webform_node_types'))) { + if (!in_array($node->type, webform_entity_node_types())) { return; } @@ -631,7 +642,7 @@ function webform_entity_node_insert($node) { // Always add a row to {webform} when adding a webform node. This is needed so that // webform_submission_insert reliably has a nid. - if ($node->webform == webform_node_defaults() && !in_array($node->type, webform_variable_get('webform_node_types_primary'))) { + if ($node->webform == webform_node_defaults() && !in_array($node->type, webform_entity_node_types())) { $node->webform['nid'] = $node->nid; webform_node_insert($node); } @@ -655,7 +666,7 @@ function webform_entity_get_types($type_name = null) { // If we have a node type of this type but no webform_submission_entity_type, // create one. if (!isset($types[$type_name]) && in_array($type_name, array_keys(node_type_get_names()))) { - if (in_array($type_name, webform_variable_get('webform_node_types'))) { + if (in_array($type_name, webform_entity_node_types())) { $return = new stdClass; $return->id = 'new'; $return->type = $type_name; diff --git a/webform_entity_pages/webform_entity_pages.module b/webform_entity_pages/webform_entity_pages.module index c006553d7c1eb78c0bfee7e4a621b548c9fbd1e4..5b3ee28baf471d85c4e341faf7b2e3b8cbe85851 100644 --- a/webform_entity_pages/webform_entity_pages.module +++ b/webform_entity_pages/webform_entity_pages.module @@ -59,7 +59,7 @@ function webform_entity_pages_pathauto($op) { $settings['patterndefault'] = '[webform_submission_entity:node:url:path]/submission/[webform_submission_entity:sid]'; $settings['batch_update_callback'] = 'webform_entity_pages_pathauto_bulk_update_batch_process'; $settings['batch_file'] = drupal_get_path('module', 'webform_entity_pages') . '/webform_entity_pages.pathauto.inc'; - $webform_types = webform_variable_get('webform_node_types'); + $webform_types = webform_entity_node_types(); if (count($webform_types)) { $settings['patternitems'] = array(); foreach ($webform_types as $type) {