version=pmwiki-2.3.8 ordered=1 urlencoded=1
author=MFWolff
charset=UTF-8
csum=typo (+0)
name=PmWiki.GroupHeaders
rev=74
targets=PmWiki.WikiGroup,PmWiki.WikiStyles,PmWiki.PageDirectives,PmWiki.WikiAdministrator,PmWiki.IncludeOtherPages,PmWiki.LayoutVariables,Cookbook.AllGroupHeader,Cookbook.WikiFooter
text=(:Summary: Group Header and Group Footer page usage:)(:title GroupHeaders and GroupFooters:)%0a(:Audience: authors (intermediate) :)%0aEvery [[WikiGroup]] can have @@`GroupHeader@@ and @@`GroupFooter@@ pages that contain markup that should be included at the beginning or end of each page within the group. This feature is useful for:%0a%0a* adding a disclaimer or heading to all of the pages of a group%0a* defining custom [[WikiStyles]] that may be used for all pages in a group%0a* replacing the default headers and/or footers for pages in a group (e.g., using %25pmhlt%25[@(:noheader:)@] and or [@(:nofooter:)@] -- see [[Page Directives]]).%0a%0aTo create a group header, just create a new page called [@YourGroup.GroupHeader@]. Group headers allow authors to create groups with custom headers and footers without having to coordinate with a [[wiki administrator]].  %0a%0aThe default @@`GroupHeader@@ or @@`GroupFooter@@ can be suppressed on an individual page (such as a group's @@`HomePage@@) by using the %25pmhlt%25[@(:nogroupheader:)@] and [@(:nogroupfooter:)@] markups ''on that page''.%0a%0aIf a generic @@`GroupHeader@@ is used in one wikigroup (say, the Site wikigroup), then the code can be easily duplicated in the @@`GroupHeader@@ of any other group by using %0a%25pmhlt%25[@(:include Site.GroupHeader:)@].  See [[Include Other Pages]].%0a%0aIf you want a header or footer to appear when you print a page (action '''print'''), simply create a page called [@YourGroup.GroupPrintHeader@] or [@YourGroup.GroupPrintFooter@] and fill it with your markup.%0a%0aYou can also set the variable %25pmhlt%25[[LayoutVariables#GroupPrintHeaderFmt | [@$GroupPrintHeaderFmt@]]] and [[LayoutVariables#GroupPrintFooterFmt | [@$GroupPrintFooterFmt@]]] in the same way as [@$GroupHeaderFmt@] and [@GroupFooterFmt@] in order to change the header used when [@action=print@]. %0a%0aSee also%0a* [[Cookbook:All group header]] [- {Cookbook/AllGroupHeader$:Summary} -]%0a* [[Cookbook:Wiki footer]] [- {Cookbook/Wikifooter$:Summary} -]%0a%0a%0a>>faq%3c%3c [[#faq]]%0a%0aQ: How do I set the same header or footer for all pages/groups?%0aA: The header and footer for each page are controlled by the variables $GroupHeaderFmt and $GroupFooterFmt. If your site-wide header and footer pages are @@Site.SiteHeader@@ and @@Site.SiteFooter@@, you can add this in @@config.php@@:%0a%0a->%25hlt php%25[@%0a### If you use Site.SiteHeader and Group.GroupHeader%0a$GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader'%0a  . ' basepage={*$FullName}:)(:nl:)' . $GroupHeaderFmt;%0a%0a### If you use Site.SiteHeader instead of Group.GroupHeader%0a$GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader'%0a  . ' basepage={*$FullName}:)(:nl:)';%0a%0a### If you use Site.SiteFooter and Group.GroupFooter%0a$GroupFooterFmt .= '(:nl:)(:include {$SiteGroup}.SiteFooter'%0a  . ' basepage={*$FullName}:)';%0a%0a### If you use Site.SiteFooter instead of Group.GroupFooter%0a$GroupFooterFmt = '(:nl:)(:include {$SiteGroup}.SiteFooter'%0a  . ' basepage={*$FullName}:)';%0a@]%0a%0aNote that single quotes must be used in the lines above.%0a%0aSee also the Cookbook:AllGroupHeader recipe.%0a%0aA: Instead of using an additional page, you could set any wiki text in $GroupHeaderFmt, for example:%0a%0a->%25hlt php%25[@$GroupHeaderFmt .= "Global message here.";@]%0a
time=1660040875
title=GroupHeaders and GroupFooters
