I am using a multi-site set up, but the same problem could occur for a single site.
My set up is:
Multisite global theme:
- - page.tpl.php
- - - page--node--2.tpl.php
- - - page--node--3.tpl.php
Page--node--n.tpl.php both have a lot of custom, non-Drupal PHP in.
What I want to achieve:
I have custom regions in the header of page.tpl.php and I want to keep modifications of the custom header in one place. Currently, page--node--n.tpl.php also contains the code for the header, and so any mods to page need to be copy and pasted to page-node-n, which is obviously bad practice.
- Move the everything that's truly universal (everything but the sidebars and content) from page to html in the global theme. This seems wrong, but is there any problem with this?
- Move the header and footer to separate PHP files and require them, pretty bad.
- Actually add the custom PHP in to the content of the Drupal Page Content (edit: or block visible on only that page), probably the worst, don't want to enable PHP Input Filter.
- Just keep copy and pasting