Page Elements
The PHP Manual pages are all HTML files with several HTML tags in them
for both presentational and divisional purposes. The HTML pages contain
divisions to be used for skinning purposes and misc divisions added by
the DocBook XSL sheets.
A HTML page can be either a function reference page or another kind
of page (like a feature description). Skins should get ready to skin
these two kinds of pages separately most of the time (depending on
the actual design).
The pages are structured using <div> tags
with appropriate IDs to ease the skin writers work. A page consists
of these parts:
<div id="pageContent"></div> contains
all the page contents. This begins right after
<body> and ends just before
</body>. This division is hidden by default,
you need to show it after you are ready with the page rewriting
process.
<div id="pageHeaders"></div> contains
the page header parts. This includes the text only main title
(in a <span id="pageTitle"></span>)
and function properties, in case this is a function page (contained
in <span id="funcPurpose"></span>,
<span id="funcAvail"></span> and
<span id="funcUsage"></span>).
In case one of these three is not available, the current page is not
a function page.
<div id="pageText"></div> contains the
majority of the page contents, including examples, manual notes,
warnings, etc. This also includes see also parts for now, as we
still cannot differentiate between see also and normal text parts
(may be a thing to change in the future).
<div id="pageNotes"></div> contains the
user notes (itself loaded in from another HTML file by JS). It contains
a heading, and then a <div> without ID for
every user note and spans in that divs for every element of a user
note (with "email", "date" and "text" IDs respectively).
<div id="pageNav"></div> contains the
navigation table, which is further divided into spans (<span
id="navPrev"></span>, <span
id="navPath"></span>, <span
id="navNext"></span>, <span
id="navOnline"></span>, <span
id="navThisOnline"></span> and <span
id="navReportBug"></span>), where navThisOnline
and navReportBug is inside navOnline.
If you would like to rewrite the page, you should first read in the
parts you need from the page to JS variables, then clear the contents
of pageContent (or just the part you would like to rewrite), write in
the new content and show the pageContent div for the user. If you would
not like to make any structural changes, you can simply display the
pageContent div and only specify a special style sheet in your skin JS
file (see the
"greenlinks" skin for an example).
You can find a "Full skin" developed to show you how to make skins built
on top of this structure. The skin name is "headernostalgia".
It rewrites the header part and removes the footer navigational table.