From bf8275d3e867ce8e3c3b884d8cd19830f9f42a7e Mon Sep 17 00:00:00 2001
From: Bram Goffings <bramgoffings@gmail.com>
Date: Thu, 22 Mar 2012 15:44:49 +0100
Subject: [PATCH] fixed url alias module

---
 url_alias.install |   35 ++++++++++++-----------------------
 url_alias.module  |   13 +++++++++----
 2 files changed, 21 insertions(+), 27 deletions(-)

diff --git a/url_alias.install b/url_alias.install
index 843621b..90de9f4 100644
--- a/url_alias.install
+++ b/url_alias.install
@@ -1,41 +1,30 @@
 <?php
 
 /**
- * @file
- *   URL Alias installation functions.
- */
-
-// Include UUID schema helper functions.
-module_load_include('inc', 'uuid', 'uuid.schema');
-
-/**
- * Implements hook_schema_alter().
+ * Implements of hook_schema_alter().
  */
 function url_alias_schema_alter(&$schema = array()) {
-  _url_alias_schema_generate($schema);
+  $schema['url_alias']['fields']['uuid'] = uuid_schema_field_definition();
 }
 
 /**
  * Implements hook_install().
  */
 function url_alias_install() {
-  $schema = array();
-  _url_alias_schema_generate($schema);
-  uuid_add_field($schema, 'url_alias');
+  if (!db_field_exists('url_alias', 'uuid')) {
+    db_add_field('url_alias', 'uuid', uuid_schema_field_definition());
+    db_add_index('url_alias', 'uuid', array('uuid'));
+  }
+
+  uuid_sync_all();
 }
 
 /**
  * Implements hook_uninstall().
  */
 function url_alias_uninstall() {
-  $schema = array();
-  _url_alias_schema_generate($schema);
-  uuid_drop_field($schema, 'url_alias');
-}
-
-/**
- * Generate the schema for add UUID support to {url_alias}
- */
-function _url_alias_schema_generate(&$schema) {
-  uuid_schema_generate($schema, 'url_alias');
+  if (db_field_exists('url_alias', 'uuid')) {
+    db_drop_field('url_alias', 'uuid');
+    db_drop_index('url_alias', 'uuid');
+  }
 }
diff --git a/url_alias.module b/url_alias.module
index be0fb4c..85fcc2e 100644
--- a/url_alias.module
+++ b/url_alias.module
@@ -35,8 +35,9 @@ function url_alias_entity_uuid_load(&$entities, $entity_type) {
  */
 function url_alias_entity_uuid_save(&$entity, $entity_type) {
   $info = entity_get_info($entity_type);
-  // We only care when there is a url callback and aliases are present.
-  if (empty($entity->url_alias) || !isset($info['uri callback'])) {
+
+  // We only care when there is a url callback
+  if (!isset($info['uri callback'])) {
     return FALSE;
   }
 
@@ -47,17 +48,21 @@ function url_alias_entity_uuid_save(&$entity, $entity_type) {
   // Delete existing aliases.
   path_delete(array('source' => $path));
 
+  // Continue if aliases are present.
+  if(empty($entity->url_alias)) {
+    return FALSE;
+  }
+
   foreach ($entity->url_alias as $alias) {
     $entry = (array) $alias;
     $entry['source'] = $path;
-    dpm($entry, 'entry');
     path_save($entry);
   }
 }
 
 
 /**
- * Load all aliases associated with a path.
+ * Loads all aliases associated with a path.
  *
  * @param
  *   $path The source path to look up.
-- 
1.7.5.4

