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.


Reply via email to