Extension:JSBreadCrumbs

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manualManual:Extensions
Crystal Clear action run.png
JSBreadCrumbs

Release status:Extension status stable

ImplementationTemplate:Extension#type Skin
DescriptionTemplate:Extension#description Adds a trail of breadcrumbs below the tab bar.
Author(s)Template:Extension#username
Latest versionTemplate:Extension#version 1.0 (2017-11-30)
Compatibility policyCompatibility#mediawiki_extensions master
MediaWikiTemplate:Extension#mediawiki 1.29+
PHPTemplate:Extension#php 5.5+
Database changesTemplate:Extension#needs-updatephp No
LicenseTemplate:Extension#license GNU General Public License 2.0 or later
Download
ParametersTemplate:Extension#parameters
  • $JSBreadCrumbsHorizontalSeparator
  • $JSBreadCrumbsCSSSelectorHorizontal
  • $JSBreadCrumbsCSSSelectorVertical
  • $JSBreadCrumbsGlobalMaxCrumbs
Hooks usedTemplate:Extension#hook
BeforePageDisplayManual:Hooks/BeforePageDisplay
MakeGlobalVariablesScriptManual:Hooks/MakeGlobalVariablesScript
GetPreferencesManual:Hooks/GetPreferences

Translate the JSBreadCrumbs extension if it is available at translatewiki.net

Check usage and version matrix.

The JSBreadCrumbs extension is a simple extension that adds a jQuery-based Javascript file and a CSS file to your wiki's output that will add a trail of navigation bread crumbs below the navigation tabs. The idea is for a simpler history than your back button that only tracks navigation inside of the wiki. Unlike the browser's back button, it will only track GET requests, not POSTs, and will remove duplicate entries from the list.

Supports multiple MediaWiki skins including Vector and Foreground.

Installation[edit]

  • Download and place the file(s) in a directory called JSBreadCrumbs in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php:
    wfLoadExtension( 'JSBreadCrumbs' );
    
  • Configure as required
  • YesY Done - Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Configuration[edit]

Configuration parameters[edit]

There are four configuration parameters that may be specified in "LocalSettings.php":

Configuration Flag Default Value Description
$wgJSBreadCrumbsHorizontalSeparator "" The separator used between bread crumbs when used in horizontal mode. If left blank (the default value), the value of the jsbreadcrumbs-horizontal-separator message will be used.
$JSBreadCrumbsCSSSelectorHorizontal [] An array of mappings from skin to the CSS selector that should be used to anchor the bread crumb trail when displaying bread crumbs in horizontal mode while using that skin. There is a default mapping of skin to CSS selector for horizontal mode that is used if no value exists for a skin in this array.
$JSBreadCrumbsCSSSelectorVertical [] An array of mappings from skin to the CSS selector that should be used to anchor the bread crumb trail when displaying bread crumbs in vertical mode while using that skin. There is a default mapping of skin to CSS selector for vertical mode that is used if no value exists for a skin in this array.
$JSBreadCrumbsGlobalMaxCrumbs 20 The maximum number of bread crumbs that will be saved in the cookie for a domain. If multiple wikis exist on the same domain, this value will limit the total number of bread crumbs summed across all of those wikis. This can help to prevent the cookie value from becoming too large and causing a browser error.

User Preference Options[edit]

In addition, there are 8 user preference options. These have default values that can be overridden in LocalSettings.php (see below). Users can then override those default values by visiting Special:Preferences and editing them on the Appearance tab. The user preference options are:

User Preference Option Default Value Description
jsbreadcrumbs-showcrumbs true Controls whether a bread crumb trail will be displayed.
jsbreadcrumbs-numberofcrumbs 5 The maximum number of crumbs displayed in the bread crumb trail.
jsbreadcrumbs-horizontal true If true, the bread crumb trail will be a horizontal list. If value, it will be a horizontal list.
jsbreadcrumbs-maxlength-horizontal 40 The maximum length of the link text for a bread crumb (not including the optional action or site name) when in horizontal mode.
jsbreadcrumbs-maxlength-vertical 20 The maximum length of the link text for a bread crumb (not including the optional action or site name) when in vertical mode.
jsbreadcrumbs-showaction false If false, page links with actions associated them (e.g. ?action=historyor ?action=edit) will not generate separate bread crumbs. Instead, a link to the page without the associated action will be used. If true, each action will create its own bread crumb, and the action will be shown after the page name. If there is a localized message string for the action, that will be used.
jsbreadcrumbs-showsite false If true, the name of the wiki will be shown before the page name. This is useful in wiki farms if the user wants to distinguish between links to different wikis on the same domain.
jsbreadcrumbs-domain false If true, the bread crumb trail may include bread crumbs from any wiki on the same domain as the wiki for the currently displayed page. If false, only bread crumbs from the current wiki will be displayed.

To override the default value of a user preference option, you can put code similar to the code below in your "LocalSettings.php". That is, with this code in "LocalSettings.php", the value of jsbreadcrumbs-maxlength-horizontal used for a user if they do not edit the value in Special:Preferences will be 50 rather than the default value of 40 provided in "extension.json".

$wgDefaultUserOptions['jsbreadcrumbs-maxlength-horizontal'] = 50;

Changelog[edit]

1.0
  • The extension code was significantly refactored. New configuration options and user preferences were created as documented above. Changes included:
    • converted to extension registration
    • localized hard-coded English text
    • replaced non-working pervasive wiki farm option with jsbreadcrumbs-domain user option
    • reworked CSS options
    • added global maximum crumbs in addition to site maximum
    • made maximum length of displayed crumbs configurable
    • optionally added localized action name to the end of crumb for action other than view (e.g. edit, history)
0.7.0
  • Removed I18n shim for php
  • Provided license information
0.6.1
  • Added capability to support additional skins
    • Added capability to specify additional skin -> CSS mappings in code and LocalSettings.php
    • Added dynamic "lookup" of user's current skin and will apply skin->CSS mapping dynamically
  • Added capability for sidebar view vice topbar view
  • Added support for SemanticTitle (does not require SemanticTitle to be present)
  • Removed seperate jquery.cookie library
  • Added ResourceLoader code to load mediawiki.cookie
  • Fixed random === critques
  • Set "show crumbs" to true by default
  • Updated variable usage to use mw.config due to deprication
  • Added variable for "pervasive wiki farm" linking
  • Changed "cookie link" storage and checking for duplicates to prevent issue when using query parameters causing duplicate crumbs
  • Changed way extension passes JavaScript config parameters to BreadCrumbs.js as we were experiencing a situation where parameters were not being passed to some instances of Mediawiki
0.6
  • I18n migrated to json
0.5
  • Changed the display of site names to (sitename) from sitename: to make a visual difference between project namespace, and site name
0.4
  • Added different site name support (when bread crumbs are enabled on wiki farma, and they share the same cookie path)
  • Added support for preferences
    • Users can enable/disable bread crumbs
    • Users can enable/disable prepending sitename on titles
    • Users can set the number of bread crumbs to display
  • Delete cookies on log out
  • Removed some global preferences (replaced with default user options)
  • Fixed localization issue with namespaces
  • Only output Javascript/CSS when using the Vector skin
0.3
  • Display wgTitle instead of wgPage to avoid url encoded titles
  • Fix issue where wgJSBreadCrumbsMaxCrumbs + 1 number of bread crumbs were shown instead wgJSBreadCrumbsMaxCrumbs
  • Strip empty title and url when it exists
  • Change the output of the leading description to look like "Leading description:" instead of "Leading description " + wgJSBreadCrumbsSeparator, to make it more clear that it isn't part of the history.
  • Change the character used to split and join in cookies to '|' since it is illegal in urls and page titles, and therefore is guaranteed to work, unlike using the user overridable separator
  • Make addResources in JSBreadCrumbs.hooks.php public and static to get rid of php warning
0.2
  • Allow the separator character to be localized
  • Add preceding string to the bread crumbs to describe their purpose on initial page load
0.1
  • Initial commit