Author: jablko
Date: Tue Oct 26 09:15:03 2010
New Revision: 8503
Log:
Generate and parse URLs with slugs vs. ids, fixes issue 1114
Modified:
trunk/apps/qubit/config/routing.yml
trunk/lib/QubitResourceRoute.class.php
trunk/lib/model/QubitStaticPage.php
Modified: trunk/apps/qubit/config/routing.yml
==============================================================================
--- trunk/apps/qubit/config/routing.yml Tue Oct 26 08:56:28 2010 (r8502)
+++ trunk/apps/qubit/config/routing.yml Tue Oct 26 09:15:03 2010 (r8503)
@@ -3,14 +3,14 @@
homepage:
url: /
- class: QubitRoute
+ class: QubitResourceRoute
param:
module: staticpage
- action: static
- permalink: homepage
+ action: index
+ slug: home
indexDc:
- url: /:id;dc
+ url: /:slug;dc
class: QubitResourceRoute
param:
module: sfDcPlugin
@@ -32,7 +32,7 @@
informationobject_template: dc
editDc:
- url: /:id;edit/dc
+ url: /:slug;edit/dc
class: QubitResourceRoute
param:
module: sfDcPlugin
@@ -40,7 +40,7 @@
informationobject_template: dc
indexEac:
- url: /:id;eac
+ url: /:slug;eac
class: QubitResourceRoute
param:
module: sfEacPlugin
@@ -48,7 +48,7 @@
actor_template: eac
indexEad:
- url: /:id;ead
+ url: /:slug;ead
class: QubitResourceRoute
param:
module: sfEadPlugin
@@ -56,7 +56,7 @@
informationobject_template: ead
indexIsaar:
- url: /:id;isaar
+ url: /:slug;isaar
class: QubitResourceRoute
param:
module: sfIsaarPlugin
@@ -71,7 +71,7 @@
actor_template: isaar
editIsaar:
- url: /:id;edit/isaar
+ url: /:slug;edit/isaar
class: QubitResourceRoute
param:
module: sfIsaarPlugin
@@ -79,7 +79,7 @@
actor_template: isaar
indexIsad:
- url: /:id;isad
+ url: /:slug;isad
class: QubitResourceRoute
param:
module: sfIsadPlugin
@@ -101,7 +101,7 @@
informationobject_template: isad
editIsad:
- url: /:id;edit/isad
+ url: /:slug;edit/isad
class: QubitResourceRoute
param:
module: sfIsadPlugin
@@ -109,7 +109,7 @@
informationobject_template: isad
indexIsdf:
- url: /:id;isdf
+ url: /:slug;isdf
class: QubitResourceRoute
param:
module: sfIsdfPlugin
@@ -121,15 +121,15 @@
module: sfIsdfPlugin
action: edit
-edtIsdf:
- url: /:id;edit/isdf
+editIsdf:
+ url: /:slug;edit/isdf
class: QubitResourceRoute
param:
module: sfIsdfPlugin
action: edit
indexIsdiah:
- url: /:id;isdiah
+ url: /:slug;isdiah
class: QubitResourceRoute
param:
module: sfIsdiahPlugin
@@ -144,7 +144,7 @@
repository_template: isdiah
editIsdiah:
- url: /:id;edit/isdiah
+ url: /:slug;edit/isdiah
class: QubitResourceRoute
param:
module: sfIsdiahPlugin
@@ -152,7 +152,7 @@
repository_template: isdiah
indexMods:
- url: /:id;mods
+ url: /:slug;mods
class: QubitResourceRoute
param:
module: sfModsPlugin
@@ -174,7 +174,7 @@
informationobject_template: mods
editMods:
- url: /:id;edit/mods
+ url: /:slug;edit/mods
class: QubitResourceRoute
param:
module: sfModsPlugin
@@ -182,7 +182,7 @@
informationobject_template: mods
indexRad:
- url: /:id;rad
+ url: /:slug;rad
class: QubitResourceRoute
param:
module: sfRadPlugin
@@ -204,7 +204,7 @@
informationobject_template: rad
editRad:
- url: /:id;edit/rad
+ url: /:slug;edit/rad
class: QubitResourceRoute
param:
module: sfRadPlugin
@@ -253,7 +253,7 @@
# These routes used only to *generate* not *parse* URLs
actorIndex:
- url: /:id;:actor_template
+ url: /:slug;:actor_template
class: QubitResourceRoute
param:
module: actor
@@ -267,14 +267,14 @@
action: create
actorEdit:
- url: /:id;edit/:actor_template
+ url: /:slug;edit/:actor_template
class: QubitResourceRoute
param:
module: actor
action: edit
functionIndex:
- url: /:id;isdf
+ url: /:slug;isdf
class: QubitResourceRoute
param:
module: function
@@ -287,14 +287,14 @@
action: create
functionEdit:
- url: /:id;edit/isdf
+ url: /:slug;edit/isdf
class: QubitResourceRoute
param:
module: function
action: edit
repositoryIndex:
- url: /:id;:repository_template
+ url: /:slug;:repository_template
class: QubitResourceRoute
param:
module: repository
@@ -308,7 +308,7 @@
action: create
repositoryEdit:
- url: /:id;edit/:repository_template
+ url: /:slug;edit/:repository_template
class: QubitResourceRoute
param:
module: repository
@@ -335,7 +335,7 @@
action: oai
informationObjectIndex:
- url: /:id;:informationobject_template
+ url: /:slug;:informationobject_template
class: QubitResourceRoute
param:
module: informationobject
@@ -355,7 +355,7 @@
action: duplicate
informationObjectEdit:
- url: /:id;edit/:informationobject_template
+ url: /:slug;edit/:informationobject_template
class: QubitResourceRoute
param:
module: informationobject
@@ -369,8 +369,8 @@
action: list
id: <?php echo QubitInformationObject::ROOT_ID."\n" ?>
-id;default_index:
- url: /:id;:module
+slug;default_index:
+ url: /:slug;:module
class: QubitResourceRoute
param:
action: index
@@ -381,24 +381,24 @@
action: index
# After default_index to avoid matching /;foo
-permalink:
- url: /:permalink
+slug:
+ url: /:slug
+ class: QubitResourceRoute
param:
module: staticpage
- action: static
+ action: index
-id;default:
- url: /:id;:module/:action
+slug;default:
+ url: /:slug;:module/:action
class: QubitResourceRoute
- param:
- id: { pattern: '[^;]+' }
-# After id;default to avoid matching array($object, 'module' => 'foo',
'action', => 'edit')
+# After slug;default to avoid matching array($object, 'module' => 'foo',
'action', => 'edit')
edit:
url: /;:module/create
param:
action: edit
+# After edit to avoid matching /;foo/create
create:
url: /;:module/create
param:
Modified: trunk/lib/QubitResourceRoute.class.php
==============================================================================
--- trunk/lib/QubitResourceRoute.class.php Tue Oct 26 08:56:28 2010
(r8502)
+++ trunk/lib/QubitResourceRoute.class.php Tue Oct 26 09:15:03 2010
(r8503)
@@ -21,7 +21,11 @@
{
public function bind($context, $params)
{
- $this->resource = QubitObject::getById($params['id']);
+ $criteria = new Criteria;
+ $criteria->add(QubitSlug::SLUG, $params['slug']);
+ $criteria->addJoin(QubitSlug::OBJECT_ID, QubitObject::ID);
+
+ $this->resource = QubitObject::get($criteria)->__get(0);
if (!isset($this->resource))
{
throw new sfError404Exception;
Modified: trunk/lib/model/QubitStaticPage.php
==============================================================================
--- trunk/lib/model/QubitStaticPage.php Tue Oct 26 08:56:28 2010 (r8502)
+++ trunk/lib/model/QubitStaticPage.php Tue Oct 26 09:15:03 2010 (r8503)
@@ -26,6 +26,6 @@
public function isProtected()
{
- return $this->permalink == 'homepage' || $this->permalink == 'about';
+ return $this->slug == 'about' || $this->slug == 'home';
}
}
--
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.