BreadCrumbsPlugin

Description

This plugin helps you to locate where you are, and shows you how you can escape from there using breadcrumbs navigation.

Two types of breadcrumb are supported; "location" breadcrumbs, which show you where you are in the site hierarchy, taking into account topic parent relationships, and "path" breadcrumbs, that simply show you where you have been, but without going in circles.

In a way, location breadcrumbs have always been supported by TWiki using the META{"parent"} variable to display the list of parent topics. Since version 4.x TWiki also supports hierarchical subwebs, but the breadcrumbs support of TWiki does not allow the display of parent webs as part of of the location breadcrumbs.

Path breadcrumbs show you which topics you visited to reach the current topic. If you revisit a topic you visited earlier, the path is trimmed back to that topic, so it gives you a sort of visual history of where you have been on the site. Path breadcrumbs require that you have session support enabled.

The plugin also gives a great deal of flexibility in deciding which parts of the breadcrumbs should be rendered, and how each individual breadcrumb is displayed.

Syntax

%BREADCRUMBS%, %BREADCRUMBS{"<web>.<topic>" ...}%

Parameters:

  • <web>.<topic>: the location to which breadcrumbs should be generated (type="location" only, ignored if type="path") defaults to the current topic
  • type: "location" (the default) or "path"
  • header: format string prepended to the output result
  • format: format string to render one item on the breadcrumbs path (defaults to '[[$webtopic][$name]]')
  • topicformat: format string for any topic items on the path; for example, parent topics. Defaults to the same as format.
  • footer: format string appended to the output result
  • separator: format string to be put between items (defaults to one space char)
  • include: regular expression that items must match to be part of the path
  • exclude: regular expression that items must not match to be part of the path
  • recurse: (type="location" only)can be one or more of the following values (comma separated) to decide which parts of the breadcrumbs path should be included (defaults to 'on'):
    • on: include all parent webs and all parent topics
    • off: include only the current web and the current topic
    • weboff: don't recurse on webs, include only the current web
    • topicoff: don't recurse on topics, include only the current topic
    • webonce: include the next parent web but not the parent web's parent web
    • topiconce: include the next parent topic but not the parent topic's parent topic
    • once: short formf of webonce, topiconce

Pseudo-variables:
Each of the above format strings (format, header, footer, separator) may contain special variables:

  • $name: the name of the breadcrumb, this is the topic name or the web name having its parent web part being stripped off (that is Bar instead of Sandbox/Foo/Bar)
  • $webtopic: the full web.topic of the breadcrumb (twiki syntax)
  • $target: the full web/topic of the breadcrumb (url syntax)
  • $n: replaced with a newline char (\n)
  • $percnt: replaced with a percent char (%)
  • $dollar: replaced with a dollar char ($)
  • $nop: removed from the format string before expanding common TWiki variables

Examples

default

%BREADCRUMBS%
TWiki BreadCrumbsPlugin

path

%BREADCRUMBS{type="path"}%
Main WebRss WebRss WebRss TWiki TWikiPreferences IncorrectDllVersionW32PTH10DLL? OsWin? Sandbox WebNotify WinDoze95Crash? AccessKeys AdminSkillsAssumptions AnApplicationWithWikiForm AppendixEncodeURLsWithUTF8 BehaviourContrib BlogAddOn BlogAddOnHome BlogAddOnStyles BlogCategory BlogPost BlogPostCommentTemplate BlogPostCreator BlogPostForm BlogPostTemplate BlogPostViewTemplate BookView BreadCrumbsPlugin

breadcrumbs to a non-existent location

%BREADCRUMBS{
  "Web1/Web2/Web3.Topic" 
  format="$name" 
  separator=" &#187; "}%
Web1 » Web2 » Web3 » Topic

recurse="off"

%BREADCRUMBS{
  "Web1/Web2/Web3.Topic" 
  format="$name" 
  separator=" &#187; " 
  recurse="off"}%
Web3 » Topic

recurse="once"

%BREADCRUMBS{"Web1/Web2/Web3.Topic" 
  format="$name" 
  separator=" &#187; " 
  recurse="once"}%
Web2 » Web3 » Topic

include

%BREADCRUMBS{"Web1/Web2/Web3.Topic" 
  format="$name" 
  separator=" &#187; " 
  include="Web(1|3).*"}%
Web1 » Web3

exclude

%BREADCRUMBS{"Web1/Web2/Web3.Topic" 
  format="$name" 
  separator=" &#187; " 
  exclude="Web2"}%
Web1 » Web3 » Topic

Plugin Installation Instructions

You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server where TWiki is running.

Like many other TWiki extensions, this module is shipped with a fully automatic installer script written using the BuildContrib.

  • If you have TWiki 4.2 or later, you can install from the configure interface (Go to Plugins->Find More Extensions)
  • If you have any problems, then you can still install manually from the command-line:
    1. Download one of the .zip or .tgz archives
    2. Unpack the archive in the root directory of your TWiki installation.
    3. Run the installer script ( perl <module>_installer )
    4. Run configure and enable the module, if it is a plugin.
    5. Repeat for any missing dependencies.
  • If you are still having problems, then instead of running the installer script:
    1. Make sure that the file permissions allow the webserver user to access all files.
    2. Check in any installed files that have existing ,v files in your existing install (take care not to lock the files when you check in)
    3. Manually edit LocalSite.cfg to set any configuration variables.

Plugin Info

Plugin Author: TWiki:Main.MichaelDaum
Copyright ©: 2006, Michael Daum http://wikiring.de
License: GPL (GNU General Public License)
Plugin Version: v1.00 (14775 (08 Dec 2008))
Change History:  
08 May 2007: respect HOMETOPIC setting, don't hardcoded 'WebHome'
19 Apr 2007: TWiki:Main.CrawfordCurrie added topicformat
20 Feb 2007: TWiki:Main.CrawfordCurrie added path breadcrumbs
18 Dec 2006: added $webtopic pseudo-parameter
31 Aug 2006: added NO_PREFS_IN_TOPIC; removed commonTagsHandler thus dropping cairo support
08 Aug 2006: fixed topic parents not showing up; don't show non-existing topics
29 Jul 2006: fixed infinit loop when a topic is its own parent topic
28 Jul 2006: initial version; don't add the topic parent 'WebHome' to the path
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.8
TWiki:Plugins/Benchmark: GoodStyle nn%, FormattedSearch nn%, BreadCrumbsPlugin nn%
Plugin Home: TWiki:Plugins/BreadCrumbsPlugin
Feedback: TWiki:Plugins/BreadCrumbsPluginDev
Appraisal: TWiki:Plugins/BreadCrumbsPluginAppraisal

-- TWiki:Main/MichaelDaum - 08 May 2007

Topic revision: r2 - 11 Dec 2008 - 12:21:20 - TWikiAdminUser
 
The Peech
This site is powered by the TWiki collaboration platformCopyright© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding FCAtwiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.BreadCrumbsPlugin