"Quality is the parent, the source of all subjects and objects." - Robert Pirsig

Fits Observation: Henry Gurr’s How Our Mind Works


Henry S Gurr’s Article, Book, & Mind-Map, Projects


SiteMaster Henry S Gurr’s Earth Friendly Projects:


SiteMaster Henry S Gurr’s Tech Corner & Projects:



ZMMQuality WebSite: Information Concerning
*** Zen and the Art of ***
Motorcycle Maintenance
** by Robert Pirsig **

Home Page: Fors ZMM Quality WebSite
News&NewsArchive: Re Robert Pirsig & Book
ZMM Book (Full Text) Free On Internet



SUMMARY=>How Find Way In This ZMMQ Site


SUMMARY=> Robert Pirsig Zen Art Motorcycle Maint.


Celebrate: Robert Pirsig’s July1968 Motorcycle Trek


SUMMARY=>Experts & Readers Provide Guidance


SUMMARY=>SpecialStudies Zen Art Motorcycle Maint


SUMMARY=>Memories: Dennis Gary English MSU


SUMMARY=>Research Montana State UniversityMSU


SUMMARY=>“Pirsig Pilgrims”&“Fellow ZMM Travelers”

AFTER Above Link ComeUp, GoTo ''Zen and..Last Hurrah”


SUMMARY=>Maps+Info: ZMM Travel & Mountain Climb


Resources: Pirsig & Zen Art of Motorcycle Maint.


SUMMARY=>Software&Hardware: Create This WebSite


Thanks To Persons Who Created & Supported ZMMQ


PLEASE NOTICE: THE FOLLOWING 4 HANDY LINKS:

ALSO PLEASE NOTICE THESE SAME 4 HANDY LINKS: BOTTOM EVERY ZMMQ PAGE


  

TO ACCESS PHOTO ALBUMS,
Click any photo below: **OR**
Mouse Hover, Over Photo, For Album Description

These 12 Photos were taken by Robert Pirsig’s very own camera, as he Chris, Sylvia and John made that 1968 epic voyage upon which The Travel Narrative for Mr Pirsig’s ‘‘Zen and the Art of Motorcycle Maintenance‘‘ (ZMM) book was based. Taken in 1968 along what is now known as ‘‘The ZMM Book Travel Route ‘‘ each photo scene is actually ‘‘Written-Into ‘‘ Mr. Pirsig’s book => ‘‘Zen and the Art of Motorcycle Maintenance‘‘ (ZMM)

Author Robert Pirsig’s Own 12 Color Photos, Of His 1968 ZMM Travel Route Trip: Each Is Written-Into His ZMM Book. AFTER the 5 Albums Cones Up, Read & ClickOn 2nd Down.

Each of the 832 photographs in these Four Albums show a scene described in the book ‘‘Zen and Art of Motorcycle Maintenance‘‘. Each photo was especially researched and photographed along the ZMM Route to show a specific ZMM Book Travel Description Passage: This passage is shown in quote marks below the respective photo. As you look at each of these photos, you will be viewing scenes similar to those that author Pirsig, Chris, and the Sutherlands might have seen, on that epic voyage, upon which the book ‘‘Zen and the Art of Motorcycle Maintenance‘‘ was based. Thus it is, that these 832 photographs are ‘‘A Color Photo Illustrated Zen and Art of Motorcycle Maintenance‘‘. Indeed ‘‘A Photo Show Book‘‘ for ZMM. Sights & Scenes Plus Full Explanation.

My ZMM Travel Route Research Findings, Are A Page-By-Page, Color Photo Illustrated ZMM. AFTER the 5 Albums Cones Up, Read & ClickOn Top Album.

Each of these 28 photos are Full Circle Panorama Photos Seven-Feet-Wide. They were taken along the Travel Route of the book ‘‘Zen and the Art of Motorcycle Maintenance‘‘. They show a 360 degree view, made by stitching together eight photos. These Panoramic Photos, complement and add to those of my Photo Album ABOVE named  => ‘‘A Color Photo Illustrated ZMM Book, With Travel Route Sights & Scenes Explained‘‘.

ZMM Travel Route Research PANORAMIC PHOTOS 7ft wide! Henry Gurr, 2002 ZMM Research Trip. AFTER the 5 Albums Cones Up, Read & ClickOn 2nd Down.

This album shows what I saw  on my RETURN trip home (San Francisco California to Aiken South Carolina), Summer 2002. These 55 photos were taken along the Route of the “1849er’s Gold Rush to California” (In Reverse Direction). After I completed my ZMM Research, I RETURNED home by way of the Route of the ‘49’s Gold Rush. This route included the route of the “California Gold Rush Trail” (in Nevada & California), as well as portions of the Oregon Trail' all the way into Missouri. These 1849er’s Travel Route Photos, were taken AFTER I took those Photos shown in the above Album named “A Color Photo Illustrated ZMM Book, With Travel Route Sights & Scenes Explained”.

Henry Gurr’s 2002 Research Photos: California Gold Rush Trail & Oregon Trail. AFTER the 5 Albums Cones Up, Read & ClickOn 3rd Down.

Each of these seven 360 degree  Full Circle Panoramic Photos were taken along the route of the Gold Rush ‘1849’ers from Missouri to California. Each is 7 foot wide! These Panorama Photos complement and add to those of my Photo Album above named  => "Henry Gurr’s Research Photos: California Gold Rush Trail & Pioneer Oregon Trail".   AFTER the 5 Albums Cones Up, Read & ClickOn Top Album.

California Gold RushTrail & Pioneer Oregon Trail PANORAMIC PHOTOS 7ft wide! Henry Gurr, 2002 ZMM RETURN Trip. AFTER the 5 Albums Cones Up, Read & ClickOn Top Album.

Enjoy 225 Photos of Flowers & Red Wing Blackbirds Along the ZMM Route. This Album of  Color Photos shows every Flower and Red Wing Blackbird (RWBB) that I could “get within my camera sights!!”  This was done in honor of the ZMM Narrator's emphasis of Flowers and Redwing Blackbirds in the book “Zen and the Art of Motorcycle Maintenance”. I was very surprised to find RWBB's the entire travel route from Minneapolis to San Francisco.

In Honor of ZMM Narrator’s Emphasis: 225 Color Photos of ZMM Travel Route Flowers & Red Wing Blackbirds. AFTER the 5 Albums Cones Up, Read & ClickOn 5th Down.

These 165 photos show ‘‘Tourist Experiences’‘ the ZMM Traveler may have along the ZMM Route.

My 2002 ZMM Travel Route Experience: By Henry Gurr ZMMQ Site Master. AFTER the 5 Albums Cones Up, Read & ClickOn 3rd Down.

Starting Monday 19 July 2004, Mark Richardson traveled the ZMM Route, on his trusty Jakie Blue motorcycle. Mark made these 59 interesting photographs of what he saw along the way. As he toured, he pondered his own life destiny (past present future), and sought to discover his own deeper personal meaning of the book “Zen and the Art of Motorcycle Maintenance”.

Mark Richardson’s 19 July 2004, ZMM Route Trip & Photo Journal. AFTER the 5 Albums Cones Up, Read & ClickOn 5th Down.

The former home (~1968) of John and Sylvia Sutherland, at 2649 South Colfax Ave, Minneapolis MN, shown in 18 photos. Despite John's quite negative disparaging statements in ZMM, about their home back in Minneapolis, this same house, shown in these photos, looks to us like a wonderful, beautiful home along a very nice, quiet, shady street, in a perfectly fine Minneapolis Neighborhood!

John & Sylvia Sutherland of “The ZMM Book”: 18Potos Of Former Minneapolis Home>2649 South Colfax Ave, AFTER the 5 Albums Cones Up, Read & ClickOn 4th Down.

A 36 Photo Tour of Two University of South Carolina Buildings:  a) Etherredge Performing Arts Center Lobby + b) Ruth Patrick Science Education Center, some of which show “Built In Educational Displays

Site Master Henry Gurr's Campus: Photos Of Two Buildings (of 32 total), University of South Carolina Aiken. AFTER the 5 Albums Cones Up, Read & ClickOn 2nd Down.

A 105 Photo Tour of Science Building
At The University of South Carolina Aiken, Aiken SC.
Also showing a) Flowers & Exotic Plants In The Greenhouse
And b) The Rarely Seen Equipment Service Room & Dungeon.
Site Master Henry Gurr's Campus: Photos Of Science Building, One (of 32 total Buildings) At The University of South Carolina Aiken. AFTER the 5 Albums Comes Up, Read & ClickOn 5th Down.

IThese 15 photos show persons & scenes, related to how we got this ZMMQ WebSite going, back in ~2002. Included are "screen captures" of our software systems in use. A few of these photos show the screen views of what we were “looking at,” some including brief notes & hints on how to get around some of the problems we experienced.

Software We Used ~2002, In Creating and Maintaining This ZMMQ WebSite: Illustrated & Explained. AFTER the 5 Albums Cones Up, Read & ClickOn Top Albun.

Attach:ZmmqWikiThumbForWikiMenuLinkToMscFacPixPg2.jpg Δ
1947-60: Photos of MSC Faculty & Sarah Vinke (Vinki Vinche Finche Finch)


In Hawaiian WIKI MEANS => Quick N’ Easy N’ Better! For Anything You Do!!
Wikis began 1994, Ward Cunningham gave name "WikiWikiWeb"..Cont Heret
UP-TO-DATE INFORMATION & HOW TO USE pmWiki
The Pages You Are NOW Reading, Are Powered By pmWiki WebSite SftWare:


ZMMQ Site => Various UN-Complete Work In Process



Revised}DaveMatos130715+HenryGurr140227;16036;170214;180920;181127,200217,200312, 200318, 200831, 210626, 220508,220926,240209-12 , 240319-21, 240530, 240915, 241220.--]
File = WikiZmmq)MenuSidebar.CuzWantPreservPrev240914CpyFnServerServAgain01+FxNgLinks3.docx
PrevFile = WikiZmmq)MenuSidebar.CuzWantPreservPrev240914CpyFnServerServAgain01+FxNgLinks2.docx
PrevFile = WikiZmmq)MenuSidebar..BecuzPrevSvAsNg 240319CpyFnServer07)CpyFmServAgain01.docx
PrevFile = WikiZmmq)MenuSidebar..BecuzPrevSvAsNg 2403`9CpyFnServer07.docx
PrevFile = WikiZmmq)MenuSidebar..200217..210626..220508EdtSvd+Fx&AddLine13+Rev1.docx
File = WikiZmmq)MenuSidebar..200217..210626..220508EdtSvd+Fx&AddLine12.docx
PrevFile = WikiZmmq)MenuSidebar..200217..210626..220508EdtSvd,doc.Hsg02.docx
PrevFile = WikiZmmq)MenuSidebar..FaFaFa200217.06Fa200830Fa210626.Hsg01.doc




This page describes the skin template files (.tmpl) that are used to create PmWiki skins, and how PmWiki uses them. As described in the skins page, a skin is a collection of files that specifies the layout for PmWiki pages. Each skin must include a template file that provides the skeleton for displaying a PmWiki page.

Finding and Processing Templates

When you set the value of the $Skin variable in a configuration file like local/config.php, like this

## Use the Foo Skin.
$Skin = 'foo';

it tells PmWiki to search for a skin of that name, and use it. The usual result of the search is for PmWiki to load a template file from the appropriate skin directory. In this example, that would probably be the file pub/skins/foo/foo.tmpl.

The actual processing that PmWiki goes through to find a template file is important for those who are making complex skins, so its worth mentioning what those steps are:

Security Note

The default value for $SkinLibDirs has server-side and client-side files stored in the same publicly-accessible directory. That is, $SkinDir and $SkinDirUrl point to the same place. This is done for convenience (both for the skin user, and the skin writer), but it is not necessary.

It has the side effect that its possible to construct a URL (like this one) that will let you look at the contents of the the .tmpl or .php files that a skin uses. This is usually not an issue as skin files should not contain any sensitive information.

Still, a purist might want to move their .tmpl and .php files out of the directories that are accessible as URLs, and modify their $SkinLibDirs array to reflect this.

  1. When $PageTemplateFmt is blank (as it should be), PmWiki gathers the names of all candidate skins. It starts with any action-specific skin that is specified in $ActionSkin[$action]. Thus, if the current action is 'login', and $ActionSkin['login'] is 'Bar', then PmWiki will look for a skin named 'Bar'.
  2. If no skin has been found yet, it looks for the skin(s) named in the $Skin variable (which is allowed to be an array) and uses the first skin it can find. If it gets to the end of the list without finding a skin, it issues an error.
  3. To attempt to find a skin, PmWiki first consults the $SkinLibDirs variable to know where to look. Skins consist of server-side files that are loaded by PmWiki (such as .php and .tmpl files) and client-side files (such as .css files and images) that will be requested by the user's browser when they look at a skinned PmWiki page. $SkinLibDirs is an array of key/value pairs. The key is a directory to look in for the server-side files, while the corresponding value is a URL that points to the public client-side resources used by the skin. The default value of $SkinLibDirs is:
    $SkinLibDirs = array(
       "./pub/skins/\$Skin"      => "$PubDirUrl/skins/\$Skin",
       "$FarmD/pub/skins/\$Skin" => "$FarmPubDirUrl/skins/\$Skin");
    

    So, using the above definitions, PmWiki would try to find the skin 'foo' by looking for a directory called ./pub/skins/foo and then for $FarmD/pub/skins/foo (with the value of $FarmD replaced by the root server directory for Farm files). The first such directory that was found would be assumed to contain the skin it was looking for. It would then set $SkinDir to the name of this directory and $SkinDirUrl to the corresponding URL.
  4. Once a valid skin directory has been found, PmWiki starts processing the files in that directory, looking for a .php skin file to run. It first looks for one with the same name as the skin. So, if the skin is 'foo', it looks for foo.php. If no such file is found, it then checks for a file named skin.php. If one of these .php files is found, PmWiki loads and runs it. This allows a skin to define custom markup, or custom configuration parameters. It also allows a skin to choose between which of several different .tmpl files to load.
    To specify which .tmpl file to load, simply call LoadPageTemplate() inside the skin .php file, with the name of the .tmpl file to be loaded:
    LoadPageTemplate($pagename, "$SkinDir/xyz.tmpl");
    For example, a skin might specify a special template to be used if the action is 'print':
    if ($GLOBALS['action'] == 'print')
      LoadPageTemplate($pagename, "$SkinDir/print.tmpl");
    

    When the action is something else, PmWiki will fall back to loading the default .tmpl file instead.
  5. If no appropriate .php file is found, or if that file doesn't load a template, then PmWiki falls back to looking for a template with the same name as the skin, or, failing that, any .tmpl file at all, so long as its the only one in the directory. If it finds one, it will load and process it. If not, it will issue an error.

Template file format

A template file is basically an HTML file that also contains variable substitutions (indicated by '$') and special directives embedded in HTML comments. The following special directives are required in the template file.

  1. The directive <!--PageText--> belongs to the <body> section of the HTML document, and tells PmWiki where the main content of each wiki page should be placed.
  2. The directive <!--HTMLHeader-->, which goes somewhere in the <head> section of the HTML document.
  3. The directive <!--HTMLFooter--> directive, which typically goes before the final </body> tag and is used by some recipes to insert things at the end of the HTML document. Prior to PmWiki 2.2.0 the <!--HTMLFooter--> directive was optional.

When PmWiki displays a page, it replaces the directives and variable substitutions with the values appropriate to the current page. For example, the <!--PageText--> directive is replaced with the page's contents, while any instances of $PageUrl are replaced with the url (address) of the current page.

Note: your skin template shouldn't have a <meta/> tag specifying the charset (encoding), as PmWiki adds this tag when needed.

There is a long list of variables available for substitution in pages; some of the
most useful include:

$PageUrl         the url of the current page
$ScriptUrl       the base url to the pmwiki.php script
$Title           the page's title (e.g., "`SkinTemplates")
$Titlespaced     the page's title with spaces (e.g., "Skin Templates")
$Group           the name of the current group  (e.g., "`PmWiki")
$FullName        the page's full name (e.g., "`PmWiki.SkinTemplates")
$LastModified    the page's last modification time
$PageLogoUrl     the url of a site logo
$WikiTitle       the site's title
$SkinDirUrl      the url of the skin's folder

This last variable, $SkinDirUrl, is particularly useful in templates as it allows the skin designer to refer to other files (such as images or style sheets) in the skin folder without having to know the exact url.

The template is not limited to using the variables listed here; nearly any PHP global variable that begins with a capital letter can be used in a skin template. Page variables can also be used in templates.

Skin directives

Besides the required <!--PageText--> and <!--HTMLHeader--> directives, PmWiki provides other built-in directives for generating page output. It's not necessary to use any of these directives, but they can often add capabilities to a skin

<!--wiki:Main.SomePage-->
<!--page:Main.SomePage-->
The <!--wiki:Main.SomePage--> directive outputs the contents of Main.SomePage. $-substitutions are allowed in directives, thus a directive like <!--wiki:$Group.SomePage--> will include "SomePage" of the current group.
If multiple pages are listed in the directive, then only the first available page is used. Thus <!--wiki:$Group.SomePage Site.SomePage--> will display the contents of SomePage in the current group if it exists, and Site.SomePage if it doesn't. To always display Site.SomePage, even if $Group.SomePage exists, use two consecutive <!--wiki:...--> directives.
The <!--wiki:...--> directive only displays pages for which the browser has read permissions. The <!--page:...--> directive displays pages even if the browser doesn't have read permission.
<!--file:somefile.txt-->
The directive <!--file:somefile.txt--> outputs the contents of another file (on the local filesystem) at the point of the directive. If the file to be included is a .php script, then the PHP script is executed and its output is sent to the browser. Like the <!--wiki:...--> directive above, $-substitutions are available to be able to output files based on the current page name or group.
<!--markup:...-->
The markup directive processes any text that follows the colon as wiki markup and displays that in the output.
<!--function:SomeFunction args-->
This directive calls a PHP function named "SomeFunction", passing the current page's name as first argument, and the optional text following the function name as second argument. PHP functions called in this manner are typically defined in a local customization file. Args allows only one argument, which has to be split in your function. <!--function:SomeFunction arg1 arg2 arg3--> will call SomeFunction($pagename, "arg1 arg2 arg3") when the skin is processed. However variables can be used (like $LastModifiedBy).

Page sections

A template file can designate "sections" that are included or excluded from the output based on page directives or other criteria. A section always begins with <!--Page...Fmt--> and continues to the next section, the end of the template file, or <!--/Page...Fmt-->. For example, a template can specify a <!--PageLeftFmt--> section that is excluded from the output whenever the (:noleft:) directive is encountered in the page's contents. PmWiki's predefined sections (and their corresponding page directives) are:

<!--PageHeaderFmt-->          (:noheader:)
<!--PageFooterFmt-->          (:nofooter:)
<!--PageTitleFmt-->           (:notitle:)
<!--PageLeftFmt-->            (:noleft:)
<!--PageRightFmt-->           (:noright:)
<!--PageActionFmt-->          (:noaction:)

Skin designers can define custom sections and markups, but currently all section names in the template must begin with "Page" and end with "Fmt". As mentioned you also have to define the corresponding markup (for example in your config.php) like this:

Markup('noxyz', 'directives',  '/\\(:noxyz:\\)/ei',
    "SetTmplDisplay('PageXYZFmt',0)");

And, better, compatible with PHP version 5.5, for PmWiki 2.2.58+ :

Markup('noxyz', 'directives',  '/\\(:noxyz:\\)/i',
  "HideXYZ");
function HideXYZ() {
  SetTmplDisplay('PageXYZFmt',0);
}

See also: the recipe Skins:TestPageDirectives can help you test your skins with combinations of the above directives.

Internationalization (i18n)

Skins can also be internationalized by using $[...] substitutions. Any string placed inside of $[...] is treated as a "translatable phrase", and the phrase is looked up in the current translation tables for a corresponding output phrase. If a translation is available, then the translated phrase is substituted at that point, otherwise the original phrase is left intact.

For example, the substitution $[Edit] will display the current translation of "Edit" if it is known, otherwise it displays "Edit". Thus, the same template can be used for multiple languages, displaying "Editer" when French translations are loaded, "Bearbeiten" when German translations are loaded, and "Edit" when no translation is available.

How do I customize the CSS styling of my PmWiki layout?

See Skins for how to change the default PmWiki skin. See also Skins, where you will find pre-made templates you can use to customize the appearance of your site. You can also create a file called local.css in the pub/css/ directory and add CSS selectors there (this file gets automatically loaded if it exists). Or, styles can be added directly into a local customization file by using something like:

$HTMLStylesFmt[] = '.foo { color:blue; }';

Where can the mentioned "translation table" be found for adding translated phrases?

See Internationalizations.

Is it possible to have the edit form in full page width, with no sidebar?

If the sidebar is marked with <!--PageLeftFmt-->, adding (:noleft:) to Site.EditForm will hide it when a page is edited.

Can I easily hide the Home Page title from the homepage?

Yes, you can use in the wiki page either (:title Some other title:) to change it or (:notitle:) to hide it.

Is it possible to hide the Search-Bar in the default PmWiki Skin?

Yes, please see Cookbook:HideSearchBar.



This page may have a more recent version on pmwiki.org: PmWiki:SkinTemplates, and a talk page: PmWiki:SkinTemplates-Talk.

Recent Changes (All) | Edit Sidebar | Wiki Help | Page History | Edit Page Powered by PmWiki