From 64002e8743bfe65368b945ed0ffea998c78e2b2c Mon Sep 17 00:00:00 2001
From: Tim Plunkett <git@plnktt.com>
Date: Mon, 30 Jul 2012 20:40:06 -0400
Subject: [PATCH] Bring _views_create_handler() and _views_create_plugin()
 closer together.

---
 includes/handlers.inc | 35 ++++++++++++-----------------------
 views.module          |  4 ++--
 2 files changed, 14 insertions(+), 25 deletions(-)

diff --git a/includes/handlers.inc b/includes/handlers.inc
index d91d7b74731f..0c83e34391db 100644
--- a/includes/handlers.inc
+++ b/includes/handlers.inc
@@ -13,50 +13,39 @@
 
 /**
  * Instantiate and construct a new plugin.
- *
- * @todo
- * Figure out what to keep from _views_create_handler.
  */
-function _views_create_plugin($type, $plugin_id, $definition) {
+function _views_create_plugin($type, $definition) {
   $manager = new ViewsPluginManager($type);
-
-  $instance = $manager->createInstance($plugin_id);
+  $instance = $manager->createInstance($definition['plugin_id']);
 
   $instance->is_plugin = TRUE;
   $instance->plugin_type = $type;
-  $instance->plugin_name = $plugin_id;
+  $instance->plugin_name = $definition['plugin_id'];
 
   $instance->set_definition($definition);
 
   // Let the handler have something like a constructor.
   $instance->construct();
 
-
   return $instance;
 }
 
 /**
  * Instantiate and construct a new handler
  */
-function _views_create_handler($definition, $type = 'handler', $handler_type = NULL) {
-  if (!empty($definition['plugin_id'])) {
-    $manager = new ViewsPluginManager($handler_type);
-    $handler = $manager->createInstance($definition['plugin_id']);
-  }
-  else {
-    // @todo: remove this else, once all instances got converted.
-    $handler = new $definition['handler']($definition, $definition['handler']);
-  }
+function _views_create_handler($type, $definition) {
+  $manager = new ViewsPluginManager($type);
+  $instance = $manager->createInstance($definition['plugin_id']);
 
-  $handler->set_definition($definition);
+  $instance->is_handler = TRUE;
+  $instance->handler_type = $type;
 
-  $handler->is_handler = TRUE;
-  $handler->handler_type = $handler_type;
+  $instance->set_definition($definition);
 
   // let the handler have something like a constructor.
-  $handler->construct();
+  $instance->construct();
 
-  return $handler;
+  return $instance;
 }
 
 /**
@@ -76,7 +65,7 @@ function _views_prepare_handler($definition, $data, $field, $type) {
     }
   }
 
-  return _views_create_handler($definition, 'handler', $type);
+  return _views_create_handler($type, $definition);
 }
 
 /**
diff --git a/views.module b/views.module
index 9599d8b4f3d9..836e6c6483f2 100644
--- a/views.module
+++ b/views.module
@@ -1290,7 +1290,7 @@ function views_get_handler($table, $field, $key, $override = NULL) {
     'table' => $table,
     'field' => $field,
   );
-  return _views_create_handler($broken, 'handler', $key);
+  return _views_create_handler($key, $broken);
 }
 
 /**
@@ -1369,7 +1369,7 @@ function views_get_plugin($type, $plugin_id, $reset = FALSE) {
   $manager = new ViewsPluginManager($type);
   $definition = $manager->getDefinition($plugin_id);
   if (!empty($definition)) {
-    return _views_create_plugin($type, $plugin_id, $definition);
+    return _views_create_plugin($type, $definition);
   }
 }
 
-- 
GitLab