See the title of the post? I went nearly mad searching for it!! So I made
it SEO friendly for any brothers-in-pain...
Question: What is the "proper" way to serve static pages in a plugin?
My basic idea was: "Oh, I'll just create the file in *
'app/Plugin/ContactManager/Views/Pages/introduction.ctp'* and it should pop
up in */contact_manager/pages/introduction or **/pages/**contact_manager/**
introduction*"
Got:
Error: MyFancyBoxerShorts.PagesController could not be found.
Error: Create the class PagesController below in file: .....
But I don't feel like creating a duplicate class name
I even tried
//file: PluginName/Controller/PagesController.php
require_once(ROOT . DS . APP_DIR . DS . 'Controller' . DS .
'PagesController.php');
But this fails, because the magic of Pages routing doesn't apply for
plugins.
So, I have 2 possible solutions:
*A: Create a PagesController inside my Plugin*
- CON: duplicates class name
- CON: Any PagesController overrides from the user's app are lost (like
layouts, helpers, markup parsers, tweaks)
- CON: requires plugin routing to achieve default pages/* (action: display)
functionality
*B: Add the pages routing to plugin routes.php (more conventional)*
Create PluginName/PagesController.php // require_once(ROOT . DS . APP_DIR .
DS . 'Controller' . DS . 'PagesController.php');
Add ONE of these in the routes.php
Router::connect('/:plugin/pages/*', array('controller' => 'pages', 'action'
=> 'display')); // potentially unsafe if other plugins define the same
Router::connect('/contact_manager/pages/*', array('controller' => 'pages',
'action' => 'display', 'plugin' => 'ContactManager')); //the "suitable
solution"
Require the user to load routes with the Plugin.
While writing this, I have found the "suitable solution" (again), but I
will leave it here in case anyone ever searches for it.
And I would honestly like your input on the *most conventional* way of
doing this seemingly default-ish routing behavior.
--
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.