The Natural Skin Plugin
Description
This is the supplemental plugin for the
NatSkin. Its main purpose is to supply
"skin states" to control different styles and variations to be switched
dynamically while you are online.
The documentation of the
NatSkinPlugin only covers the additional tags that have
been implemented. Have a look at the
NatSkin topic for more information.
Syntax
CURREV
Syntax:
%CURREV%
returns the current topic revision
see also:
NATMAXREV,
NATREVISIONS
PREVREV,
FORMBUTTON
Syntax:
%FORMBUTTON{";lt;format>"}%
returns a link on to add or change the form attached to a topic. This
will be shown on the edit screen depending on WEBFORMs being defined or not.
More precisely FORMBUTTON returns
- an empty string if there are no WEBFORMS defined
- or an "Add form" link if there are but no form is attached yet
- or a "Change form" link to change the current form
The optional
%lt;format>
string may contain the following variables
-
$url
: the url of the link
-
$action
: the link text
-
$1
: the complete anchor including the link and the text
For example
%FORMBUTTON{"| $1"}%
will generate a pipe and the formbutton
if possible. See the
edit.nat.tmpl
template file of the NatSkin.
KNOWNSTYLES
Syntax:
%KNOWNSTYLES%
returns a list of all known skin styles.
KNOWNVARIATIONS
Syntax:
%KNOWNVARIATIONS%
returns a list of all known styles variations.
NATFORMLIST
Syntax:
%NATFORMLIST{...}%
returns a formatted list of forms that can be attached to a topic. typically used
in the
changeform
skin template.
paramters:
-
header
-
format
-
footer
-
separator
-
selected
-
web
-
topic
NATMAXREV
Syntax:
%NATMAXREV%
substitute for
%MAXREV%
which differes all too much on Beijing, Cairo
and Dakar. This version grants to behave the same.
NATREVISIONS
Syntax:
%NATREVISIONS%
substitute for the
%REVISIONS%
tag which only works on
the PatternSkin.
NATWEBLOGO
Syntax:
%NATWEBLOGO{format="..."}%
returns either a textual or a graphical a logo to be used in the header bar
depending on a set of preference variables.
NATWEBLOGO will check for a couple of preference variables in the following order:
- return
%NATWEBLOGONAME%
if defined
- return
%NATWEBLOGOIMG%
if defined
- return
%WEBLOGOIMG%
if defined
- return
%WIKITOOLNAME%
if defined
- or return the string 'Foswiki' otherwise
Given you want to have the string Wiki in the logo position
when using
NatSkin but not so when using a different skin on the same site.
Then add the following to the
SitePreferences:
* Set NATWEBLOGONAME = %WIKITOOLNAME%
* Set WEBLOGOIMG = /path/to/your/defaultlogo.gif
If you want to have a different logo using
NatSkin than using another skin on the same site
then add the following to the
SitePreferences:
* Set NATWEBLOGOIMG = /path/to/your/natskinlogo.gif
* Set WEBLOGOIMG = /path/to/your/defaultlogo.gif
PREVREV
Syntax:
%PREVREV%
returns the previous topic revision taking
NumberOfRevisions
into account
USERACTIONS
Syntax:
%USERACTIONS{"<format>" ...}%
display separate sets of actions for anonymous or authenticated users.
- sep="<span> class="natSep">|</span>": separator between actions
- guest="$login$sep$register$sep$print": format string of actions for guests
- format="$user$sep$logout$sep$print<br />$edit$sep$attach$sep$move$sep$raw$sep$diff$sep$more": format string of actions for authenticated users
- restrictedactions="...": list of user actions that are disabled if the user has got no write access to the current topic
- help="...": help topic used for
$help
, defaults to UsersGuide (see below)
The "guest" and "format" format strings can use the following variables
- $attach: link to "attach" topic action
- $diff: link to diff
- $edit: link to edit
- $help: link to a help page
- $login: link to log in
- $logout: link to log out
- $more: link to more dialog
- $move: link to move dialog
- $pdf: link to export pdf using the GenPDFAddOn
- $print: link to print action
- $raw: link to display topic in raw format
- $register: link to registration
- $sep: separator string
- $user: name of current authenticated user
WEBCOMPONENT
Syntax:
%WEBCOMPONENT{"name" web="<name>" lineprefix="<prefix>" multiple=""}%
Arguments:
-
name
: The name of the WebComponent topic.
-
web="<name>"
: The web to fetch the component from. Default to the current web.
-
lineprefix="<prefix>"
: A prefix to be added to each line of the web component topic before inclusion. Typically three space characters.
-
multiple
: If defined WEBCOMPONENT will allow for multiple inclusions of the same web component topic.
display a web component. A web component "MyComponent" is searched looking for
- WebMyComponent in the current web,
- SiteMyComponent in the Main web,
- SiteMyComponent in the System web and
- WebMyComponent in the System web.
The WEBCOMPONENT tag will retrieve the component where it was found
first. Thereby the component can be customize for each web separately if required. If it is
not defined locally a predefined component will be returned. Components
can be predefined in the Main and the System where the name
of the component is prefix with "Site" to distinguish them from the
local web components that may already be present in the Main and the System.
As a last resort the local components of the System are used.
By default the
NatSkin comes with predefined components
see also:
MYSIDEBAR
WEBLINK
Syntax:
%WEBLINK{web="..." name="..."}%
display a link to a web with the its name and add the SITEMAPUSEDTO description to
to the hover balloon. The web name is stripped down to its distinguishing tail,
removing all parent web names.
Arguments:
- web: name of the web to link to
- name: name to display instead of the web name
- format: format string for the web link
- marker: string to be added to inserted into the format string if the web link points to the current web
The following variables can be used in the format string:
- $web: full qualified name of the web, defaults to current web
- $topic: name of the topic to link to, defaults to WebHome
- $name: name of the web, all prefixes but its basename being stripped off
- $url: url for the link
- $marker: the marker set to the "marker" string if the link points to the current web
- $tooltip: tooltip for the link, mostly used in a
title
argument of an anchor
Installation Instructions
See
NatSkin#Installation_Instructions
Dependencies
Name | Version | Description |
---|
Foswiki::Contrib::FamFamFamContrib | >=2075 | Required. |
Foswiki::Plugins::BreadCrumbsPlugin | >=4318 | Required |
Foswiki::Plugins::FilterPlugin | >=3491 | Required |
Foswiki::Plugins::FlexWebListPlugin | >=3493 | Required |
Foswiki::Plugins::IfDefinedPlugin | >=3637 | Required |
Foswiki::Plugins::SetVariablePlugin | >=4287 | Required |
Foswiki::Plugins::UploadPlugin | >=1340 | Required |
Foswiki::Plugins::NatEditPlugin | >=1993 | Required |
Foswiki::Plugins::JQueryPlugin | >=3740 | Required |
Foswiki::Plugins::ZonePlugin | >=1.0 | Required |
Plugin Info
Plugin Author: |
Michael Daum |
Copyright ©: |
2003-2010, Michael Daum http://michaeldaumconsulting.com |
License: |
GPL (GNU General Public License) |
Release: |
3.96 |
Version: |
6287 (2010-02-12) |
Change History: |
|
12 Feb 2010: |
allow printing of pages with url params; using Foswiki:Extensions/ZonePlugin for improved page load time |
24 Nov 2009: |
improve SubscribePlugin support |
17 Nov 2009: |
added support for SolrPlugin; fixed email obfuscator; switching sidebar-context off if sidebar tempalte is empty (works only for view ) |
14 Sep 2009: |
removed GETSKINSTYLE in favour of using ADDTOHEAD; ajusted css to latest TablePlugin; using relative urls where possible |
20 Aug 2009: |
added support to switch javascript parmeters via templating; using relative urls as much as possible; be more robust when selecting unknown themes; support for SubscribePlugin; adding style variation identifier to skin path as well; made natsearch pluggable to use wiki apps for searching |
15 Jan 2009: |
more IE6 fixes; fixed natsearch on foswiki; simplified jump+search behavior to be more search-engine-like |
07 Jan 2009: |
added workaround to trick in NatSkin css into TinyMCE; several workarounds to be a hybrid skin for twiki&foswiki; added "show on screen" topic settings to ease hiding form, attachments and meta:comments; removed topicactions from style engine now that they are show-on-screen settings; added tape-recorder-like navigation to USERACTIONS to browse around revisions; support for CompareRevisionsAddOn; removed twiki/dakar support from natsearch; removed old natlogon feature from old beijing days |
12 Nov 2008: |
fixed use of uninitialised variable |
11 Nov 2008: |
added topic actions to edit form and text data |
05 Nov 2008: |
added NATWEBLOGOURL; natsearch can now use kinosearch, plucene, or its own native search engine |
03 Jul 2008: |
removed unused NATLOGINURL, NATLOGOUTURL, NATDIFFURL; removed auto-disabling the plugin on non-nat skins; fixed patching the skinpath not to include the cover; added support for the GenPDFAddOn; added restrictedactions parameter to USERACTIONS to disable specific user actions if he/she has no write access to the current topic; fixed issue in WEBCOMPONENTS that could be used to reveil read-protected topics (reported by Martin Dahlö); implemented a google-like display of hit results in (nat)search; sorting natsearch results accross all webs - not per web |
13 Nov 2007: |
propagating skin state to context to speed up template resolution, prepending style identifier to SKIN variable to be able to switch the markup together with the css, added NATFORMLIST, a more flexible variantion of the standard FORMLIST |
02 Oct 2007: |
added support for HistoryPlugin, TinyMCEPlugin |
21 Sep 2007: |
made external link detection optional, fixed mod_perl/speedy issue detecting new themes on the stylepath, recoded natsearch to be a lot simpler |
06 Mar 2007: |
improved USERACTIONS tag for more flexibility; added NATSEARCHGLOBAL and NATSEARCHCONTENT flags for NatSearch |
05 Feb 2007: |
new option NATSEARCHIGNORECASE; |
13 Oct 2006: |
prevent recursive expansion of WEBCOMPONENTs; fixed natsearch not to print to STDOUT but use standard apis |
02 Oct 2006: |
respect access rights in WEBCOMPONENTs; prevent deep recursion in WEBCOMPONENTs |
18 Sep 2006: |
fixed natlogon to run on current TMwiki4.1-svn |
31 Aug 2006: |
don't call getSkin during initPlugin - you may switch off albeit you are needed |
29 Aug 2006: |
cleaned up and removed all spaghetti code distinguishing beijing, cairo and dakar; removed lots of code that got useless now, i.e. NATSCRIPTURL |
25 Aug 2006: |
first release that drops beijing and cairo support; fixed and cleaned up initialisation sequence to detect commandline context properly; removed unused IFACCESS tag; minor rewrite of the email obfuscator; fixed natsearch to properly support web.topic jumps; moved part of the documentation to NatSkin |
21 Aug 2006: |
removed TablePlugin hack loading plugin preferences into the session store; instead provide proper css for twikiTables to match the current style now; this needs TablePlugin from TMwiki > 4.0.4; alternatively use the attached patch to it; multiple fixes to email obfuscator; simplified support for localization ; fixed unexpanded MAKETEXT in natsearch |
15 Aug 2006: |
suport for userinterface internationalization |
04 Aug 2006: |
fixed detection of the cgi action to be more robust on different apache configurations (rewrites, aliases); implemented NATWEBLOGO to circumvent different ways of using WEBLOGO, WIKITOOLNAME; added a wrapper for natsearch and natlogon to be called using dakar's Foswiki::UI:run() mechanism; reintroduced the dependency on the FilterPlugin which is still used in one place; load email obfuscator javascript only when needed |
28 Jul 2006: |
This version drops the dependency on the FilterPlugin and adds three new dependencies (1) FlexWebListPlugin, (2) BreadCrumbsPlugin and (3) GluePlugin; added use strict; and fixed some minor bugs showing up then; removed NATLOGON, NATLOGOUT tags and replaced it with NATLOGINURL, NATLOGOUTURL for more flexibility; fixed check of USEWYSIWYG preference variable |
15 Jun 2006: |
remove double target attribute from external urls |
26 May 2006: |
fixed error fetching the number of the last revision |
24 May 2006: |
fixed detection of style files to prevent 403 errors; added SETSKINSTATE; added more accesskeys to topic actions; added "nop" class to prevent external link detection |
05 May 2006: |
fixed table bgcolor for Independence style; display default WebLinks for non-public webs |
19 Apr 2006: |
use <link rel="stylesheet" ... /> instead of @import url() to ease the pain for js wysiwyg editors |
11 Apr 2006: |
added STYLEPATH feature; added style=off feature to emulate non-css browser; disable email obfuscation javascript if unused |
05 Apr 2006: |
added support for dakar's TemplateLogin; changed semantics of NATLOGON, added NATLOGOUT; fixed some grave bugs exposed by the PublishContrib |
27 Mar 2006: |
moved MySideBar tempaltes to NatSkin; added docu for HTTPSLOGON |
20 Mar 2006: |
multiple errors in natsearch: always first look into the current web, even for a global search; default to local search, was global before, use g: to switch to global search explicitely; GO function searches in all webs; display number of hits; sort hit results in reverse chronological order |
13 Mar 2006: |
dont remove leading and trailing whitespaces from web components |
11 Mar 2006: |
removed MYSIDEBAR tag; new web component search path; new sidebar construction logic using WebLinks; docu restructuring; packaging using BuildContrib |
22 Feb 2006: |
removed GROUPSUMMARY, ALLUSERS and registrationHandle which where only used on the NatsWiki installation, moved into a plugin of its own; fixed initPlugin not to return 0, disable the plugin if not used with the NatSkin on a per handler base |
21 Feb 2006: |
externalized the IFDEFINED family into a plugin of its own and added a new dependency for it |
15 Feb 2006: |
properly detect scripted mode on Dakar |
14 Feb 2006: |
moved FORMATLIST to Foswiki:Extensions/FilterPlugin; added dependency on it; fixed uninitialized variables with perl-5.8.8; added escape chars to IFDEFINED; don't switch off using an atom skin |
03 Feb 2006: |
added escape chars (percnt, dollar) to IFACCESS to make it more useful; fixed detection of a Dakar engine; fixed default REDDOT in the MySideBarTemplate |
26 Jan 2006: |
docu fixes |
23 Jan 2006: |
fixed natlogn; fixed FORMATLIST to expandCommonVariables of the format result |
09 Jan 2006: |
removed local sandbox; added dependency on DakarContrib; added variable expansion to IFDEFINED; added cleanup code if the AliasPlugin is not installed; improved natsearch customization; w3c fixes in the MySideBarTemplate |
06 Dec 2005: |
switching off the plugin if the skin is not NatSkin |
05 Dec 2005: |
skin state variables respect FINALPREFERENCES settings; added WEBCOMPONENT |
01 Dec 2005: |
added tooltips to topic actions |
29 Nov 2005: |
fixed warning about using the deprecated endRenderingHandler on Dakar |
23 Nov 2005: |
added $nop to IFSKINSTATETHEN content |
22 Nov 2005: |
added support for the WysiwygPlugin; added custom templates for the BlackListPlugin's error messages |
10 Nov 2005: |
added switchvariation urlparam; work arround bug in Dakar (nested calls to getRenderedVersion()); fixed duplicate target/class in external links; improved MySideBarTemplate using Twisties |
09 Nov 2005: |
fixed wrong call to expandCommonVariables() ... doh |
08 Nov 2005: |
fixed use of uninitialized variables; https links to the same site are not external once |
02 Nov 2005: |
added OBFUSCATEEMAILS flag to switch off this feature |
28 Oct 2005: |
add searchbox and style variations to the skin state; configuring header art is now done using style variations; fixed the NatSkinStyleBrowser to only "stick" to changes; extended IFSKINSTATE to cover the new skin state variables |
25 Oct 2005: |
customization of natsearch by WebPreferences |
20 Oct 2005: |
improved external link detection |
10 Oct 2005: |
added switchstyle feature to cycle thru all installed skin styles |
09 Oct 2005: |
rewrite of skin state: support switching border, sidebar, webbuttons and style independently; rewrite of the email obfuscator; improved skin style browser |
27 Sep 2005: |
added conditional content tags IFSKINSTATE and IFDEFINED; added web button support |
30 Aug 2005: |
added external link detection; fixed IFSKINSTYLE; added style support for the Foswiki:Extensions/TablePlugin |
26 Aug 2005: |
new NatSkin-2.0 release |
28 Apr 2005: |
pre-release to fix installation on TMwiki/Cairo |
16 Mar 2005: |
Initial version |
Perl Version: |
>=5.6 |
Home: |
Foswiki:Extensions/NatSkinPlugin |
Support: |
Foswiki:Support/NatSkinPlugin |