The casing of folders and files changed from 1.3 to 2.x
Please read the migration guide for a complete list of
differences
http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html#file-and-folder-naming.
You may also want to execute the automated upgrade shell that helps you
with some of the migration tasks.
On Friday, February 7, 2014 3:51:53 PM UTC+1, Patrick Templeman Twells
wrote:
>
> Hi, in Cake 1.3 I had a custom route class set up which looked as follows:
>
> /app/libs/routes/slug_route.php
>
>
> <?php
>>
>> class SlugRoute extends CakeRoute
>> {
>> function parse($url)
>> {
>> $params = parent::parse($url);
>> if (empty($params))
>> {
>> return false;
>> }
>>
>> $slugs = Cache::read('dp_slugs');
>> if (empty($slugs) || !array_key_exists($params['slug'],
>> $slugs))
>> {
>> App::import('Model', 'DynamicPage');
>> $DynamicPage = new DynamicPage();
>> $pages = $DynamicPage->find('all', array(
>> 'fields' => array('DynamicPage.url_slug'),
>> 'recursive' => -1
>> ));
>> $slugs = array_flip(Set::extract('/DynamicPage/url_slug',
>> $pages));
>> Cache::write('dp_slugs', $slugs);
>> }
>>
>> if (isset($slugs[$params['slug']]))
>> {
>> return $params;
>> }
>>
>> return false;
>> }
>>
>> }
>>
>>
>> ?>
>>
>
> I've just set up a Cake 2 website and this just tells me:
>
> Route class not found, or route class is not a subclass of CakeRoute
>>
>> Error: An Internal Error Has Occurred.
>>
>
> I'm trying to find an example of a custom route for url_slugs that works
> but I can't get it working. Any ideas what I need to update to make it
> work? Based on what I've been able to find, I've updated it so that now the
> class is in /app/Lib/Routing/Route/slug_route.php and looks like this:
>
> <?php
>> /**
>> * Deal with URL Slugs
>> */
>> App::uses('DynamicPage', 'Model');
>> App::uses('CakeRoute', 'Routing/Route');
>>
>> class CategorySlugRoute extends CakeRoute {
>>
>> /**
>> * Parse the URL
>> * @param string $url
>> * @return boolean
>> */
>> function parse($url) {
>> $params = parent::parse($url);
>> if (empty($params)) {
>> return false;
>> }
>>
>> // See if slugs are cached
>> $slugs = Cache::read('dp_slugs');
>> if (!$slugs) {
>> // Get all slugs
>> $DynamicPage = new DynamicPage();
>> $slugs = $DynamicPage->find('list', array(
>> 'fields' => array('DynamicPage.url_slug'),
>> 'recursive' => -1
>> ));
>>
>> Cache::write('dp_slugs', $slugs);
>> }
>>
>> // Reverse slugs for easy comparison
>> $slugs = array_flip($slugs);
>>
>> // See if dynamic pages have been passed
>> if (!empty($params['pass'])) {
>> $params['slug'] .= '/' . implode('/', $params['pass']);
>> }
>>
>> // Match passed slug with Category slugs
>> if (isset($slugs[$params['slug']])) {
>> return $params;
>> }
>>
>> return FALSE;
>> }
>> }
>>
>
> in /app/config/routes.php I have this at the end of the file:
>
> App::uses('SlugRoute', 'Routing/Route');
>> Router::connect('/:slug', array('controller' => 'dynamic_pages',
>> 'action' => 'view'), array('routeClass' => 'SlugRoute'));
>
>
> But I still have the error. Any ideas would be greatly appreciated
>
> Thanks!
>
> Patrick
>
>
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.