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.