Author: jablko
Date: Tue Oct 26 11:27:20 2010
New Revision: 8511

Log:
Avoid ever inserting slug more than once

Modified:
   trunk/config/schema.yml
   trunk/lib/model/QubitActor.php
   trunk/lib/model/QubitEvent.php
   trunk/lib/model/QubitFunction.php
   trunk/lib/model/QubitInformationObject.php
   trunk/lib/model/QubitObject.php
   trunk/lib/model/QubitRelation.php
   trunk/lib/model/QubitSlug.php
   trunk/lib/model/QubitStaticPage.php
   trunk/lib/model/QubitTerm.php

Modified: trunk/config/schema.yml
==============================================================================
--- trunk/config/schema.yml     Tue Oct 26 10:58:08 2010        (r8510)
+++ trunk/config/schema.yml     Tue Oct 26 11:27:20 2010        (r8511)
@@ -91,7 +91,7 @@
     rgt: integer
 
   function_i18n:
-    authorized_form_of_name: { type: varchar(255) }
+    authorized_form_of_name: varchar(255)
     classification: varchar(255)
     dates: varchar(255)
     description: longvarchar

Modified: trunk/lib/model/QubitActor.php
==============================================================================
--- trunk/lib/model/QubitActor.php      Tue Oct 26 10:58:08 2010        (r8510)
+++ trunk/lib/model/QubitActor.php      Tue Oct 26 11:27:20 2010        (r8511)
@@ -121,11 +121,12 @@
 
   protected function insert($connection = null)
   {
-    parent::insert($connection);
-
-    QubitSlug::staticInsert($this->id, 
QubitSlug::slugify($this->authorizedFormOfName), $connection);
+    if (!isset($this->slug))
+    {
+      $this->slug = QubitSlug::slugify($this->authorizedFormOfName);
+    }
 
-    return $this;
+    return parent::insert($connection);
   }
 
   public function updateLuceneIndex()

Modified: trunk/lib/model/QubitEvent.php
==============================================================================
--- trunk/lib/model/QubitEvent.php      Tue Oct 26 10:58:08 2010        (r8510)
+++ trunk/lib/model/QubitEvent.php      Tue Oct 26 11:27:20 2010        (r8511)
@@ -63,11 +63,9 @@
 
   protected function insert($connection = null)
   {
-    parent::insert($connection);
+    $this->slug = QubitSlug::slugify($this->slug);
 
-    QubitSlug::staticInsert($this->id, null, $connection);
-
-    return $this;
+    return parent::insert($connection);
   }
 
   /**

Modified: trunk/lib/model/QubitFunction.php
==============================================================================
--- trunk/lib/model/QubitFunction.php   Tue Oct 26 10:58:08 2010        (r8510)
+++ trunk/lib/model/QubitFunction.php   Tue Oct 26 11:27:20 2010        (r8511)
@@ -105,11 +105,12 @@
 
   protected function insert($connection = null)
   {
-    parent::insert($connection);
-
-    QubitSlug::staticInsert($this->id, 
QubitSlug::slugify($this->authorizedFormOfName), $connection);
+    if (!isset($this->slug))
+    {
+      $this->slug = QubitSlug::slugify($this->authorizedFormOfName);
+    }
 
-    return $this;
+    return parent::insert($connection);
   }
 
   public function getLabel()

Modified: trunk/lib/model/QubitInformationObject.php
==============================================================================
--- trunk/lib/model/QubitInformationObject.php  Tue Oct 26 10:58:08 2010        
(r8510)
+++ trunk/lib/model/QubitInformationObject.php  Tue Oct 26 11:27:20 2010        
(r8511)
@@ -139,11 +139,12 @@
 
   protected function insert($connection = null)
   {
-    parent::insert($connection);
-
-    QubitSlug::staticInsert($this->id, QubitSlug::slugify($this->title), 
$connection);
+    if (!isset($this->slug))
+    {
+      $this->slug = QubitSlug::slugify($this->title);
+    }
 
-    return $this;
+    return parent::insert($connection);
   }
 
   public function save($connection = null)

Modified: trunk/lib/model/QubitObject.php
==============================================================================
--- trunk/lib/model/QubitObject.php     Tue Oct 26 10:58:08 2010        (r8510)
+++ trunk/lib/model/QubitObject.php     Tue Oct 26 11:27:20 2010        (r8511)
@@ -194,11 +194,36 @@
 
   protected function insert($connection = null)
   {
+    if (!isset($connection))
+    {
+      $connection = 
QubitTransactionFilter::getConnection(QubitInformationObject::DATABASE_NAME);
+    }
+
     parent::insert($connection);
 
     if (isset($this->slug))
     {
-      QubitSlug::staticInsert($this->id, $this->slug, $connection);
+      $statement = $connection->prepare('
+        INSERT INTO '.QubitSlug::TABLE_NAME.' ('.QubitSlug::OBJECT_ID.', 
'.QubitSlug::SLUG.')
+        VALUES (?, ?)');
+
+      if (1 > strlen($this->slug))
+      {
+        $statement->execute(array($this->id, QubitSlug::random()));
+
+        return;
+      }
+
+      try
+      {
+        $statement->execute(array($this->id, $this->slug));
+      }
+
+      // Collision?  Try random, digit and letter slug
+      catch (PDOException $e)
+      {
+        $statement->execute(array($this->id, QubitSlug::random()));
+      }
     }
 
     return $this;

Modified: trunk/lib/model/QubitRelation.php
==============================================================================
--- trunk/lib/model/QubitRelation.php   Tue Oct 26 10:58:08 2010        (r8510)
+++ trunk/lib/model/QubitRelation.php   Tue Oct 26 11:27:20 2010        (r8511)
@@ -76,11 +76,9 @@
 
   protected function insert($connection = null)
   {
-    parent::insert($connection);
+    $this->slug = QubitSlug::slugify($this->slug);
 
-    QubitSlug::staticInsert($this->id, null, $connection);
-
-    return $this;
+    return parent::insert($connection);
   }
 
   /**

Modified: trunk/lib/model/QubitSlug.php
==============================================================================
--- trunk/lib/model/QubitSlug.php       Tue Oct 26 10:58:08 2010        (r8510)
+++ trunk/lib/model/QubitSlug.php       Tue Oct 26 11:27:20 2010        (r8511)
@@ -19,7 +19,7 @@
 
 class QubitSlug extends BaseSlug
 {
-  protected static function random()
+  public static function random()
   {
     $slug = null;
 
@@ -44,37 +44,6 @@
     return $slug;
   }
 
-  // TODO Rename "::insert()", drop "->insert()"
-  public static function staticInsert($id, $slug, $connection = null)
-  {
-    if (!isset($connection))
-    {
-      $connection = 
QubitTransactionFilter::getConnection(QubitInformationObject::DATABASE_NAME);
-    }
-
-    $statement = $connection->prepare('
-      INSERT INTO '.QubitSlug::TABLE_NAME.' ('.QubitSlug::OBJECT_ID.', 
'.QubitSlug::SLUG.')
-      VALUES (?, ?)');
-
-    if (1 > strlen($slug))
-    {
-      $statement->execute(array($id, QubitSlug::random()));
-
-      return;
-    }
-
-    try
-    {
-      $statement->execute(array($id, $slug));
-    }
-
-    // Collision?  Try random, digit and letter slug
-    catch (PDOException $e)
-    {
-      $statement->execute(array($id, QubitSlug::random()));
-    }
-  }
-
   public static function slugify($slug)
   {
     // Handle exotic characters gracefully

Modified: trunk/lib/model/QubitStaticPage.php
==============================================================================
--- trunk/lib/model/QubitStaticPage.php Tue Oct 26 10:58:08 2010        (r8510)
+++ trunk/lib/model/QubitStaticPage.php Tue Oct 26 11:27:20 2010        (r8511)
@@ -26,11 +26,12 @@
 
   protected function insert($connection = null)
   {
-    parent::insert($connection);
+    if (!isset($this->slug))
+    {
+      $this->slug = QubitSlug::slugify($this->title);
+    }
 
-    QubitSlug::staticInsert($this->id, QubitSlug::slugify($this->title), 
$connection);
-
-    return $this;
+    return parent::insert($connection);
   }
 
   public function isProtected()

Modified: trunk/lib/model/QubitTerm.php
==============================================================================
--- trunk/lib/model/QubitTerm.php       Tue Oct 26 10:58:08 2010        (r8510)
+++ trunk/lib/model/QubitTerm.php       Tue Oct 26 11:27:20 2010        (r8511)
@@ -196,11 +196,12 @@
 
   protected function insert($connection = null)
   {
-    parent::insert($connection);
-
-    QubitSlug::staticInsert($this->id, QubitSlug::slugify($this->name), 
$connection);
+    if (!isset($this->slug))
+    {
+      $this->slug = QubitSlug::slugify($this->name);
+    }
 
-    return $this;
+    return parent::insert($connection);
   }
 
   public function save($connection = null)

-- 
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/qubit-commits?hl=en.

Reply via email to