authors (intermediate)
Every 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:
- adding a disclaimer or heading to all of the pages of a group
- defining custom WikiStyles that may be used for all pages in a group
- replacing the default headers and/or footers for pages in a group (e.g., using
(:noheader:)
and or(:nofooter:)
-- see Page Directives).
To 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.
The default GroupHeader
or GroupFooter
can be suppressed on an individual page (such as a group's HomePage
) by using the (:nogroupheader:)
and (:nogroupfooter:)
markups on that page.
If 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
(:include Site.GroupHeader:)
. See Include Other Pages.
If 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.
You can also set the variable $GroupPrintHeaderFmt
and $GroupPrintFooterFmt
in the same way as $GroupHeaderFmt
and GroupFooterFmt
in order to change the header used when action=print
.
See also
How do I set the same header or footer for all pages/groups?
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
:
### If you use Site.SiteHeader and Group.GroupHeader $GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader' . ' basepage={*$FullName}:)(:nl:)' . $GroupHeaderFmt; ### If you use Site.SiteHeader instead of Group.GroupHeader $GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader' . ' basepage={*$FullName}:)(:nl:)'; ### If you use Site.SiteFooter and Group.GroupFooter $GroupFooterFmt .= '(:nl:)(:include {$SiteGroup}.SiteFooter' . ' basepage={*$FullName}:)'; ### If you use Site.SiteFooter instead of Group.GroupFooter $GroupFooterFmt = '(:nl:)(:include {$SiteGroup}.SiteFooter' . ' basepage={*$FullName}:)';
Note that single quotes must be used in the lines above.
See also the Cookbook:AllGroupHeader recipe.
Instead of using an additional page, you could set any wiki text in $GroupHeaderFmt
, for example:
$GroupHeaderFmt .= "Global message here.";
This page may have a more recent version on pmwiki.org: PmWiki:GroupHeaders, and a talk page: PmWiki:GroupHeaders-Talk.