Skip to content

Commit

Permalink
Item2456: initial version of using icons.tmpl for %ICON{blank}% and o…
Browse files Browse the repository at this point in the history
…ther icons so the skin path and TopicTemplates _could_ be used

git-svn-id: http://svn.foswiki.org/trunk@6797 0b4bb1d4-4e5a-0410-9cc4-b2b747904278
  • Loading branch information
SvenDowideit authored and SvenDowideit committed Mar 20, 2010
1 parent 5d433ff commit 4675a59
Show file tree
Hide file tree
Showing 13 changed files with 140 additions and 40 deletions.
10 changes: 5 additions & 5 deletions FamFamFamContrib/data/System/FamFamFamGraphics.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ Other usage: [[%TOPIC%#Usage_extended][see below]].
%TABLE{headeralign="left" databg="#ffffff,#ffffff" databgsorted="#f5f5f5"}%
| *Name* | *Icon URL* | *Description* | *Write...* |
| book | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/book.png | Book | =%<nop>ICON{book}%= |
| blank | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/blank.png | Blank box | =%<nop>ICON{blank}%= |
| blank-bg | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/blank-bg.png | Blank box, transparent | =%<nop>ICON{blank-bg}%= |
| blank | | Blank box (done in =icons.tmpl= using css %ICON{blank}%) | =%<nop>ICON{blank}%= |
| blank-bg | | Blank box, transparent (done in =icons.tmpl= using css %ICON{blank-bg}%) | =%<nop>ICON{blank-bg}%= |
| bubble | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/comment.png | Speech bubble | =%<nop>ICON{bubble}%= |
| days | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/date.png | Days, Calendar | =%<nop>ICON{days}%= |
| download | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkCompanion1Icons/disk_download.png | Download | =%<nop>ICON{download}%= |
Expand Down Expand Up @@ -224,8 +224,8 @@ Other usage: [[%TOPIC%#Usage_extended][see below]].

%TABLE{headeralign="left" databg="#ffffff,#ffffff" databgsorted="#f5f5f5"}%
| *Name* | *Icon URL* | *Description* | *Write...* |
| monospace | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/monospace.png | Monospace | =%<nop>ICON{monospace}%= |
| proportional | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/proportional.png | Proportional | =%<nop>ICON{proportional}%= |
| monospace | | Monospace (done in =icons.tmpl= using css %ICON{monospace}%) | =%<nop>ICON{monospace}%= |
| proportional | | Proportional (done in =icons.tmpl= using css %ICON{proportional}%) | =%<nop>ICON{proportional}%= |
| tablesortdiamond | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/bullet_black.png | Sort table | =&lt;img src="%<nop>ICONURL{tablesortdiamond}%" width="11" height="13" alt="Sort table" border="0" /&gt;= |
| tablesortdown | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/bullet_arrow_down.png | Sort table descending | =&lt;img src="%<nop>ICONURL{tablesortdown}%" width="11" height="13" alt="Sort table descending" border="0" /&gt;= |
| tablesortup | %PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/bullet_arrow_up.png | Sort table ascending | =&lt;img src="%<nop>ICONURL{tablesortup}%" width="11" height="13" alt="Sort table ascending" border="0" /&gt;= |
Expand Down Expand Up @@ -289,7 +289,7 @@ Other usage: [[%TOPIC%#Usage_extended][see below]].
| dot_ul | %PUBURL%/%SYSTEMWEB%/FamFamFamFoswikiExtras/dot_ul.png | Dot graph up-left | =%<nop>ICON{dot_ul}%= |
| dot_ulr | %PUBURL%/%SYSTEMWEB%/FamFamFamFoswikiExtras/dot_ulr.png | Dot graph up-left-right | =%<nop>ICON{dot_ulr}%= |
| dot_ur | %PUBURL%/%SYSTEMWEB%/FamFamFamFoswikiExtras/dot_ur.png | Dot graph up-right | =%<nop>ICON{dot_ur}%= |
| empty | %PUBURL%/%SYSTEMWEB%/FamFamFamFoswikiExtras/empty.png | Empty transparent 16x16 spacer | =%<nop>ICON{empty}%= |
| empty | | Empty transparent 16x16 spacer (done in =icons.tmpl= using css %ICON{empty}%) | =%<nop>ICON{empty}%= |
| parent_gray | %PUBURL%/%SYSTEMWEB%/FamFamFamFoswikiExtras/parent_gray.png | Parent arrow | =%<nop>ICON{parent_gray}%= |


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ data/System/FamFamFamContrib.txt 0644 Documentation
lib/Foswiki/Contrib/FamFamFamContrib.pm 0644 Perl module
#lib/Foswiki/Plugins/DocumentGraphicsPlugin.pm 0644 replacement for built in ICON macro

templates/icons.tmpl
templates/view.famfamfam.tmpl

data/System/FamFamFamFlagIcons.txt
Expand Down
22 changes: 22 additions & 0 deletions FamFamFamContrib/templates/icons.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
%{ FamFamFam based icon library for over-ride by skins. By defining the ICON using a Template, you can completely customise your skin }%

%{ the 'alt' text should really be a MAKETEXT.. }%

%{ yes, i'm redefining it - its also (currently) in foswiki.tmpl }%
%TMPL:DEF{"icon:image"}%<span class="foswikiIcon"><img src="%URL%" width="%WIDTH%" height="%HEIGHT%" alt="%ALT%" /></span>%TMPL:END%


%TMPL:DEF{"iconurl:book"}%%PUBURL%/%SYSTEMWEB%/FamFamFamSilkIcons/book.png%TMPL:END%
%TMPL:DEF{"icoalt:book"}%Book%TMPL:END%
%TMPL:DEF{"icon:book"}%<span class="foswikiIcon"><img src="%TMPL:P{"iconurl:book"}%" width="16px" height="16px" alt="%TMPL:P{"iconalt:book"}%" /></span>%TMPL:END%

%{ special icons which make little sense to do as actual graphics }%
%TMPL:DEF{"icon:blank"}%<span class="foswikiIcon"><div class="inner" style="width:14px;height:14px;border:1px solid gray;background:white;display:inline-block;"></div></span>%TMPL:END%
%TMPL:DEF{"icon:blank-bg"}%<span class="foswikiIcon"><div class="inner" style="width:14px;height:14px;border:1px solid gray;background:transparent;display:inline-block"></div></span>%TMPL:END%
%TMPL:DEF{"icon:empty"}%<span class="foswikiIcon"><div class="inner" style="width:14px;height:14px;border:0;background:transparent;display:inline-block;"></div></span>%TMPL:END%



%{ needs tweaking to get the 'm' and 'p' in the right place }%
%TMPL:DEF{"icon:monospace"}%<span class="foswikiIcon"><div class="inner" style="width:14px;height:14px;border:1px solid gray;background:white;display:inline-block;font-family:monospace;">m</div></span>%TMPL:END%
%TMPL:DEF{"icon:proportional"}%<span class="foswikiIcon"><div class="inner" style="width:14px;height:14px;border:1px solid gray;background:white;display:inline-block;font-family:serif;">p</div></span>%TMPL:END%
2 changes: 1 addition & 1 deletion UnitTestContrib/test/unit/FuncUsersTests.pm
Original file line number Diff line number Diff line change
Expand Up @@ -1381,7 +1381,7 @@ sub verify_topic_meta_usermapping {
$metainfo =~ s/(01 Jan 1970\s*-\s*)[-\d+:]*/${1}TIME/g;
$this->assert_html_equals( <<HERE, $metainfo );
| *I* | *Attachment* | *Action* | *Size* | *Date* | *Who* | *Comment* |
| <img width="16" alt="testfile.gif" align="top" src="$Foswiki::cfg{PubUrlPath}/System/DocumentGraphics/gif.gif" height="16" border="0" /><span class="foswikiHidden">gif</span> | <a href="$Foswiki::cfg{PubUrlPath}/TemporaryFuncUsersTestWebFuncUsers/TestStoreTopic/testfile.gif"><noautolink>testfile.gif</noautolink></a> | <a href="$Foswiki::cfg{ScriptUrlPath}/attach$Foswiki::cfg{ScriptSuffix}/TemporaryFuncUsersTestWebFuncUsers/TestStoreTopic?filename=testfile.gif;revInfo=1" title="change, update, previous revisions, move, delete..." rel="nofollow">manage</a> | 0.1&nbsp;K|<span class="foswikiNoBreak">01 Jan 1970 - TIME</span> |TemporaryFuncUsersUsersWeb.Asdf3Poiu |a comment |
| <img width="16" alt="testfile.gif" align="top" src="$Foswiki::cfg{PubUrlPath}/System/FamFamFamGraphics/gif.gif" height="16" border="0" /><span class="foswikiHidden">gif</span> | <a href="$Foswiki::cfg{PubUrlPath}/TemporaryFuncUsersTestWebFuncUsers/TestStoreTopic/testfile.gif"><noautolink>testfile.gif</noautolink></a> | <a href="$Foswiki::cfg{ScriptUrlPath}/attach$Foswiki::cfg{ScriptSuffix}/TemporaryFuncUsersTestWebFuncUsers/TestStoreTopic?filename=testfile.gif;revInfo=1" title="change, update, previous revisions, move, delete..." rel="nofollow">manage</a> | 0.1&nbsp;K|<span class="foswikiNoBreak">01 Jan 1970 - TIME</span> |TemporaryFuncUsersUsersWeb.Asdf3Poiu |a comment |
HERE
}

Expand Down
9 changes: 6 additions & 3 deletions core/data/System/VarICON.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
%META:TOPICINFO{author="ProjectContributor" date="1231502400" format="1.1" version="$Rev$"}%
%META:TOPICPARENT{name="Macros"}%
#VarICON
---+++ ICON{"name" alt=""} -- small documentation graphic or icon of common attachment types
* Generates a small graphic image from the set attached to DocumentGraphics. Images typically have a 16x16 pixel size. You can select a specific image by name, or you can give a full filename, in which case the type of the file will be used to select one of a collection of common file type icons.
---+++ ICON{"name" alt="" default="name"} -- small documentation graphic or icon of common attachment types
* Generates a small graphic image from the set attached to %ICONTOPIC%.
Images typically have a 16x16 pixel size.
You can select a specific image by name, or you can give a full filename, in which case the type of the file will be used to select one of a collection of common file type icons.
* if you specify an icon which cannot be found, the one specified in the =default= parameter will be used (and if that fails, the 'else' icon will be used)
* Syntax: =%<nop>ICON{ "filename or icon name" [ default="filename or icon name" ] [ alt="alt text to be added to the HTML img tag" ] }%
* Examples:
* =%<nop>ICON{"flag-gray"}%= displays as %ICON{"flag-gray"}%
Expand All @@ -15,5 +18,5 @@
* =%<nop>ICON{"http://trunk.foswiki.org/pub/System/DocumentGraphics/xsl.gif"}%= displays %ICON{"http://trunk.foswiki.org/pub/System/DocumentGraphics/xsl.gif"}%
* Graphic samples: %ICON{"arrowbright"}% =arrowbright=, %ICON{"bubble"}% =bubble=, %ICON{"choice-yes"}% =choice-yes=, %ICON{"hand"}% =hand=
* File type samples: %ICON{"bmp"}% =bmp=, %ICON{"doc"}% =doc=, %ICON{"gif"}% =gif=, %ICON{"hlp"}% =hlp=, %ICON{"html"}% =html=, %ICON{"mp3"}% =mp3=, %ICON{"pdf"}% =pdf=, %ICON{"ppt"}% =ppt=, %ICON{"txt"}% =txt=, %ICON{"xls"}% =xls=, %ICON{"xml"}% =xml=, %ICON{"zip"}% =zip=
* Related: [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICONURL][ICONURL]], [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICONURLPATH][ICONURLPATH]], %WIKIPREFSTOPIC%, FileAttachments, DocumentGraphics
* Related: [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICONURL][ICONURL]], [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICONURLPATH][ICONURLPATH]], %WIKIPREFSTOPIC%, FileAttachments, %ICONTOPIC%

8 changes: 5 additions & 3 deletions core/data/System/VarICONURL.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
%META:TOPICINFO{author="ProjectContributor" date="1231502400" format="1.1" version="$Rev$"}%
%META:TOPICPARENT{name="Macros"}%
#VarICONURL
---+++ ICONURL{"name"} -- URL of small documentation graphic or icon
* Generates the full URL of a DocumentGraphics image, which Foswiki renders as an image. The related =%<nop>ICON{"name"}%= generates the full HTML img tag. Specify image name or full filename (see [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICON][ICON]] for details on filenames.)
---+++ ICONURL{"name" default="name"} -- URL of small documentation graphic or icon
* Generates the full URL of a %ICONTOPIC% image, which Foswiki renders as an image.
The related =%<nop>ICON{"name"}%= generates the full HTML img tag.
Specify image name or full filename (see [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICON][ICON]] for details on filenames.)
* Syntax: =%<nop>ICONURL{"name"}%=
* Examples:
* =%<nop>ICONURL{"arrowbright"}%= returns <nop>%ICONURL{"arrowbright"}%
* =%<nop>ICONURL{"novel.pdf"}%= returns <nop>%ICONURL{"novel.pdf"}%
* =%<nop>ICONURL{"/queen/boheme.mp3"}%= returns <nop>%ICONURL{"/queen/boheme.mp3"}%
* Related: [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICONURLPATH][ICONURLPATH]], [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICON][ICON]], %WIKIPREFSTOPIC%, FileAttachments, DocumentGraphics
* Related: [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICONURLPATH][ICONURLPATH]], [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICON][ICON]], %WIKIPREFSTOPIC%, FileAttachments, %ICONTOPIC%

7 changes: 4 additions & 3 deletions core/data/System/VarICONURLPATH.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
%META:TOPICINFO{author="ProjectContributor" date="1231502400" format="1.1" version="$Rev$"}%
%META:TOPICPARENT{name="Macros"}%
#VarICONURLPATH
---+++ ICONURLPATH{"name"} -- URL path of small documentation graphic or icon
* Generates the URL path of a DocumentGraphics image, typically used in an HTML img tag. Specify image name or full filename (see [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICON][ICON]] for details on filenames.)
---+++ ICONURLPATH{"name" default="name"} -- URL path of small documentation graphic or icon
* Generates the relative URL path of a %ICONTOPIC% image, typically used in an HTML img tag.
Specify image name or full filename (see [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICON][ICON]] for details on filenames.)
* Syntax: =%<nop>ICONURLPATH{"name"}%=
* Examples:
* =%<nop>ICONURLPATH{"locktopic"}%= returns %ICONURLPATH{"locktopic"}%
* =%<nop>ICONURLPATH{"eggysmell.xml"}%= returns %ICONURLPATH{"eggysmell.xml"}%
* =%<nop>ICONURLPATH{"/doc/xhtml.xsl"}%= returns %ICONURLPATH{"/doc/xhtml.xsl"}%
* Related: [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICONURL][ICONURL]], [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICON][ICON]], %WIKIPREFSTOPIC%, FileAttachments, DocumentGraphics
* Related: [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICONURL][ICONURL]], [[%IF{"'%INCLUDINGTOPIC%'='Macros'" then="#"}%VarICON][ICON]], %WIKIPREFSTOPIC%, FileAttachments, %ICONTOPIC%

52 changes: 43 additions & 9 deletions core/lib/Foswiki/Macros/ICON.pm
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,16 @@ sub _lookupIcon {
return $path;
}

sub _findIcon {
my $this = shift;
my $params = shift;

my $path = $this->_lookupIcon($params->{_DEFAULT}) ||
$this->_lookupIcon($params->{default}) ||
$this->_lookupIcon('else');
return ($path);
}

sub _getIconUrl {
my $this = shift;
my $absolute = shift;
Expand All @@ -85,19 +95,43 @@ sub _getIconUrl {
return $this->getPubUrl($absolute, $w, $t, $a);
}

# %ICON{ "filename or icon name" [ default="filename or icon name" ]
# [ alt="alt text to be added to the HTML img tag" ] }%
# If the main parameter refers to a non-existent icon, and default is not
# given, or also refers to a non-existent icon, then the else icon (else)
# will be used. The HTML alt attribute for the image will be taken from
# the alt parameter. If alt is not given, the main parameter will be used.
=begin TML
---++ ObjectMethod ICON($params) -> $html
ICONURLPATH macro implementation
* %ICON{ "filename or icon name" [ default="filename or icon name" ]
[ alt="alt text to be added to the HTML img tag" ] }%
If the main parameter refers to a non-existent icon, and default is not
given, or also refers to a non-existent icon, then the else icon (else)
will be used. The HTML alt attribute for the image will be taken from
the alt parameter. If alt is not given, the main parameter will be used.
=cut

sub ICON {
my ( $this, $params ) = @_;

if (!defined($this->{_ICONSTEMPLATE})) {
#if we fail to load once, don't try again.
$this->{_ICONSTEMPLATE} = $this->templates->readTemplate('icons');
print STDERR "-i-i-i $this->{_ICONSTEMPLATE}\n";
}

#use icons.tmpl
if (defined($this->{_ICONSTEMPLATE})) {
#foreach my $iconName ($params->{_DEFAULT}, $params->{default}, 'else') {
my $iconName = $params->{_DEFAULT}; #can't test for default&else here - need to allow the 'old' way a chance.
#next unless (defined($iconName));
my $html = $this->templates->expandTemplate("icon:".$iconName);
print STDERR "-iiiii $iconName\n";
return $html if (defined($html) and $html ne '');
#}
}

my $path = $this->_lookupIcon($params->{_DEFAULT}) ||
$this->_lookupIcon($params->{default}) ||
$this->_lookupIcon('else');
#fall back to using the traditional brute force attachment method.
my ($path) = $this->_findIcon ($params);

return $this->renderer->renderIconImage(
$this->_getIconUrl( 0, $path ), $params->{alt} || $params->{_DEFAULT});
Expand Down
14 changes: 11 additions & 3 deletions core/lib/Foswiki/Macros/ICONURL.pm
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,19 @@ use strict;

use Foswiki::Macros::ICON ();


=begin TML
---++ ObjectMethod ICONURL($params) -> $html
ICONURLPATH macro implementation
=cut


sub ICONURL {
my ( $this, $params ) = @_;

my $path = $this->_lookupIcon( $params->{_DEFAULT} ) ||
$this->_lookupIcon('else');
my ($path) = $this->_findIcon ($params);

return $this->_getIconUrl( 1, $path );
}
Expand Down
12 changes: 9 additions & 3 deletions core/lib/Foswiki/Macros/ICONURLPATH.pm
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,17 @@ use strict;

use Foswiki::Macros::ICON ();

=begin TML
---++ ObjectMethod ICONURLPATH($params) -> $html
ICONPATH macro implementation
=cut

sub ICONURLPATH {
my ( $this, $params ) = @_;

my $path = $this->_lookupIcon( $params->{_DEFAULT} ) ||
$this->_lookupIcon('else');
my ($path) = $this->_findIcon ($params);

return $this->_getIconUrl( 0, $path );
}
Expand Down
26 changes: 17 additions & 9 deletions core/lib/Foswiki/Render.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2173,21 +2173,29 @@ sub _makeAnchorNameUnique {
Generate the output for representing an 16x16 icon image. The source of
the image is taken from =$url=. The optional =$alt= specifies an alt string.
re-written using TMPL:DEF{icon:image} in Foswiki.tmpl
%TMPL:DEF{"icon:image"}%<span class='foswikiIcon'><img src="%URL%" width="%WIDTH%" height="%HEIGHT%" alt="%ALT%" /></span>%TMPL:END%
see System.SkinTemplates:base.css for the default of .foswikiIcon img
TODO: Sven's not sure this code belongs here - its only use appears to be the ICON macro
=cut

sub renderIconImage {
my ( $this, $url, $alt ) = @_;

if (!defined($alt)) {
#yes, you really should have a useful alt text.
$alt = $url;
}

my %params = (
src => $url,
width => 16,
height => 16,
align => 'top',
border => 0
);
$params{alt} = $alt if defined $alt;
my $html = $this->{session}->templates->expandTemplate("icon:image");
$html =~ s/%URL%/$url/ge;
$html =~ s/%WIDTH%/16px/g;
$html =~ s/%HEIGHT%/16px/g;
$html =~ s/%ALT%/$alt/ge;

return CGI::img( \%params );
return $html;
}

1;
Expand Down
10 changes: 10 additions & 0 deletions core/pub/System/SkinTemplates/base.css
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,16 @@ a:hover .foswikiAccessKey {
border-width:1px;
border-style:solid;
}
.foswikiIcon {
border-width:0;
margin:0;
padding:0;
vertical-align:middle;
}
.foswikiIcon img {
border-width:0;
align: top;
}
.foswikiPreviewArea {
border-width:1px;
border-style:solid;
Expand Down
7 changes: 6 additions & 1 deletion core/templates/foswiki.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,9 @@
%{ title string in page: }%%TMPL:DEF{"pagetitle"}%%TMPL:P{"webaction"}%%TMPL:END%
%TMPL:DEF{"pagetitlestylewrapper"}%<h1>%TMPL:P{"pagetitle"}%</h1>%TMPL:END%%TMPL:P{"htmldoctype"}%%TMPL:P{"head"}%%TMPL:P{"bodystart"}%%TMPL:P{"main"}%%TMPL:P{"bodyend"}%

%{ formatting macros }%%{ webListIndent - used in WEBLIST }%%TMPL:DEF{"webListIndent"}%<span class='foswikiWebIndent'></span>%TMPL:END%
%{ formatting macros }%
%{ webListIndent - used in WEBLIST }%
%TMPL:DEF{"webListIndent"}%<span class='foswikiWebIndent'></span>%TMPL:END%
%{ icon:image - uses double quotes required for legacy reasons :/ }%
%TMPL:DEF{"icon:image"}%<span class="foswikiIcon"><img src="%URL%" width="%WIDTH%" height="%HEIGHT%" alt="%ALT%" /></span>%TMPL:END%
%TMPL:DEF{"icon:image_singlequote"}%<span class='foswikiIcon'><img src='%URL%' width='%WIDTH%' height='%HEIGHT%' alt='%ALT%' /></span>%TMPL:END%

0 comments on commit 4675a59

Please sign in to comment.