hi tim and michael,<br><br>After some investigation, I found an way from different angle to resolve my problem.<br><br>write phptemplate_preprocess_page function in template.php to build a global header variable which utilize a global_header function. Then you can simply print the global_header variable in any page.tpl.php file.<br>
<br><br>function phptemplate_preprocess_page(&amp;$variables){<br><br>$variables[&#39;global_header&#39;]=global_header()<br><br>}<br><br>function global_header(){<br><br>return &quot;Global Header Here&quot;;<br><br>}<br>
<br>Wang<br><br><div class="gmail_quote">2010/1/7 Michael Favia <span dir="ltr">&lt;<a href="mailto:michael.favia@gmail.com">michael.favia@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
What Tim is describing at the end of his message might be  alittle<br>
confusing but is VERY essential. The page template suggestions and<br>
indeed all template suggestions use &quot;original paths&quot; (e.g. node/15)<br>
and not path aliases (news/my-name-is). This makes using them with out<br>
specific template suggestions (on node type, etc) in the preprocess<br>
function almost useless in most of my cases.<br>
<br>
Tim is also right in alluding to the node.tpl.php template files<br>
which, by default DO load conditionally on node type. If you are just<br>
looking to modify the node display contents look here. If you need to<br>
modify contents outside this page then youll have to live with a<br>
little code duplication in page template or conditionally include the<br>
header and footer sections as includes(). Good luck, -mf<br>
<div><div></div><div class="h5"><br>
On Wed, Jan 6, 2010 at 7:02 AM, T L &lt;<a href="mailto:tloud365@gmail.com">tloud365@gmail.com</a>&gt; wrote:<br>
&gt; Hi Wang,<br>
&gt;<br>
&gt; What kind of content are you trying to customize?  If it&#39;s a node, you can<br>
&gt; do something like node-my_node_type.tpl.php.  This would change the theme<br>
&gt; around the various node types, but use a common page.tpl.php file to supply<br>
&gt; the header, menu, footer, etc.<br>
&gt;<br>
&gt; You can override all of the *.tpl.php files like block, page, comment, etc<br>
&gt; in slightly different ways.  Which is generally, I think, how you would do<br>
&gt; something like this dependent on the kind of content you want to theme.  As<br>
&gt; a specific example, you can just create page-news.tpl.php for a unique<br>
&gt; ?q=news theme.  (There&#39;s a gotcha though, so just make sure it&#39;s the<br>
&gt; original path, you will need to adjust if you use path aliasing like<br>
&gt; path_auto.)<br>
&gt;<br>
&gt; Cheers,<br>
&gt; Tim<br>
&gt;<br>
&gt; On Wed, Jan 6, 2010 at 6:50 AM, Wang Zi Feng &lt;<a href="mailto:frank.zifeng@gmail.com">frank.zifeng@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; There is a rookie question.<br>
&gt;&gt;<br>
&gt;&gt; I use template_preprocess_page function in a module to specify a template<br>
&gt;&gt; file (news.tpl.php) based on the hook_menu path (?q=news), utilizing the<br>
&gt;&gt; news.tpl.php every time click on ?q=news, it works fine.<br>
&gt;&gt;<br>
&gt;&gt; But I have to copy the footer&amp;header from page.tpl.php to the new template<br>
&gt;&gt; file (news.tpl.php) to print them, I wonder if there is an approach to<br>
&gt;&gt; inherit automatically the footer and header section?<br>
&gt;&gt;<br>
&gt;&gt; here is the code<br>
&gt;&gt;<br>
&gt;&gt; function news_menu(){<br>
&gt;&gt;      $items[&#39;news&#39;] = array(<br>
&gt;&gt;         &#39;title&#39; =&gt; &#39;News&#39;,<br>
&gt;&gt;         &#39;page callback&#39; =&gt; &#39;news_page_default&#39;,<br>
&gt;&gt;         &#39;access callback&#39;=&gt;TRUE,<br>
&gt;&gt;         &#39;type&#39; =&gt; MENU_CALLBACK,<br>
&gt;&gt;         );<br>
&gt;&gt;<br>
&gt;&gt;      return $items;<br>
&gt;&gt; }<br>
&gt;&gt;<br>
&gt;&gt; function template_preprocess_page(&amp;$variables){<br>
&gt;&gt;<br>
&gt;&gt;     if(drupal_strtolower(arg(0))==&#39;news&#39;){<br>
&gt;&gt;     $variables[&#39;template_file&#39;]=&#39;news&#39; ;<br>
&gt;&gt;     }<br>
&gt;&gt;<br>
&gt;&gt; }<br>
&gt;&gt;<br>
&gt;&gt; Thanks<br>
&gt;&gt;<br>
&gt;&gt; Wang<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Tim Loudon<br>
&gt; (781) 686-6096<br>
&gt;<br>
</div></div></blockquote></div><br>