Okay, I've got (what I think is ) a *better* solution (I'm quite proud
of this, because I'm a n00b).

I have a controller called resources_controller.php that was using
renderElement() to grab the static HTML.

1) I created a directory for the archive files, call it
/app/views/resources/files
2) I created a new route like this:
              $Route->connect('/resources/files/*', array('controller'
=> 'resources', 'action' => 'display'));
3) I copied the display() function from pages_controller.php into
resources_controller.php, and edited the line
               $this->render(join('/', $path));
to look like
               $this->render('files/'.join('/', $path));
At this point, the archive files are visible by calling
/resources/files/foo
4) Then I put this in views/resources/view.thtml
                echo $this->render("files/{$location}");
                $this->autoLayout = false;
where $location is something like "foo".

The result is that requests to "/resources/files/foo" show the contents
of foo.thtml, within the Cake layout, while "/resources/view/3"
includes that view, as well as any other handling done in the resources
view.thtml file.

The question I have, is that $this->autoLayout = false; is a kludgey
way of avoiding the headers rendering twice. How might I modify
ResourcesController::display() so that it returns the content as a
string without the layout if called by ResourcesController:view(), but
renders the full layout if it's called otherwise?

Thanks for the help.
-Ian


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/cake-php
-~----------~----~----~----~------~----~------~--~---

Reply via email to