Theming and Defaults on Single Pages - without using Scrapbook?

Permalink
There are a couple of topics on this subject, but none that address fully my problem (at least that I could find, or that I liked).

I have found how to apply my theme to single pages, such as the Login and Register pages. I've also seen that the theme will be by default applied to profile pages for individual members (I have public profile pages turned on).

However, I would like to have Page Defaults also apply to these pages. For instance, I'd like the site's logo, footer, nav, etc. appear on the member profile pages. It seems like there's no way to apply page defaults to single pages.

One workaround seems to be to create a scrapbook block, then hard-code it into the view.php file. This seems to me though like a somewhat dirty workaround—what if the block gets renamed, etc.?

I was wondering if there was any other way to set bits of default content on single pages—and member profile pages, especially.

Proteus
 
ijessup replied on at Permalink Reply
ijessup
You can set a page's theme with this code:
$view = new View;
$view->setTheme('themeHandle');
$view->render('view');

All blocks have an ID number.
$block = Block::getByID(###);
$block->display('view');
Not really that hackish in my opinion.

That's all off the top of my head and untested, but should get you in the right direction.
zoinks replied on at Permalink Reply
I just make a new template and page type for every layout that is different, then open the Defaults for that template and re-add the logo, menu, etc. and explain to the client when you make an X kind of page, use the X template. When they select that template, all the have to do is add to the Main Area. Otherwise, it's just too limiting unless your design is something totally generic.