Blog posts
70 file icons - size 48x48 pixels - for the most common file types
For a couple of projects I have used the Baseline Rhythm Calculator to create a balanced vertical rhythm on the page. As webtypography.net explains: “Vertical space is metered in a different way to horizontal ...
Even if your MySQL table has a unicode character set, you will run into problems when doing a LIKE search. For instance WHERE myfield LIKE 'a%' will also find strings that start with #269;. Instead you ...
I have updated sloveens.org to combine the database with a wiki.
Tips how to install MySQL on Snow Leopard and have it work with Perl
Although Foswiki is now a two year old project since we forked from TWiki, we still were using the quickly created logo by one of the devs the blue pill in the masthead, lovingly called
This text has first appeared as part of a small Interaction Design pattern library, in 2003. See also: Site Map. Pattern: Homeward path. Also known as: Breadcrumb, Trail marker. Yahoo offers a double path ...
This text has first appeared as part of a small Interaction Design pattern library, in 2003. See also: Homeward Path. Pattern: Site Map. Also known as: Sitemap, Table of Contents, Contents, Site guide ...
For an online app I was looking for an existing undo manager in Javascript. My first place to shop was at jQuery, and although it looks like one had been created as plugin for jQuery, only an info page ...
I have rewritten SoundField, first created 10(!) years ago when I was at the Rijksakademie in Amsterdam, as native Mac application. The source code is freely available at GitHub. Description SoundField ...
%STARTSECTION{"all"}%<a name="BlogPosts"></a><noautolink><div class="blogAddOnViewOptions foswikiFormSteps">
<div class="foswikiFormStep">
<!-- Subscribe RSS -->
<span class="foswikiRight">%ICON{rss-small}%<a class="blogPostAddOnViewOptionsSubscribeLink" title='%IF{"defined pcategory and $pcategory!=''" then="%MAKETEXT{"RSS newsfeed: subscribe to blog posts in category [_1]" args="%pcategory%"}%" else="%MAKETEXT{"RSS newsfeed: subscribe to blog posts in all categories"}%"}%' href='%SCRIPTURL{"view"}%/%BASEWEB%/BlogRss?author=%pauthor%;category=%pcategory%;tag=%ptag%#BlogPosts'>%MAKETEXT{"Subscribe"}%</a>
</span>
<form name="blogAddOnViewOptionsForm" action="%SCRIPTURL{"view"}%/%BASEWEB%/%BASETOPIC%#BlogPosts" method="get">
<!-- ###########################################################################
Filter options
-->
<span class="blogAddOnViewOption">
%MAKETEXT{"View category:"}%
<select class="foswikiSelect" name="category" onchange="document.forms.blogAddOnViewOptionsForm.submit()">
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="pcategory"
value=""
label="%MAKETEXT{"any category"}%"
}%%SEARCH{
" *\s*.*?"
topic="BlogCategory"
web="%WEB%"
type="regex"
multiple="on"
casesensitive="on"
nonoise="on"
format="$percntINCLUDE{$quot%TOPIC%$quot section=$quotfilterOption$quot
paramname=$quotpcategory$quot
value=$quot$pattern(.* \*\s([^\n]*).*)$quot
label=$quot$pattern(.* \*\s([^\n]*).*)$quot
}$percnt"
}%
</select>
</span>
<!--
<span class="blogAddOnViewOption">
%MAKETEXT{"Results per page:"}%
<select class="foswikiSelect" name="pagesize" onchange="document.forms.blogAddOnViewOptionsForm.submit()">
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="ppagesize"
value="10"
label="%MAKETEXT{"10"}%"
}%
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="ppagesize"
value="25"
label="%MAKETEXT{"25"}%"
}%
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="ppagesize"
value="50"
label="%MAKETEXT{"50"}%"
}%
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="ppagesize"
value="100"
label="%MAKETEXT{"100"}%"
}%
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="ppagesize"
value="all"
label="%MAKETEXT{"everything"}%"
}%
</select>
</span>
-->
<!-- ###########################################################################
Sort options
-->
<span class="blogAddOnViewOption">
%MAKETEXT{"Sort by:"}%
<select class="foswikiSelect" name="sort" onchange="document.forms.blogAddOnViewOptionsForm.submit()">
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="psort"
value="formfield(Title)"
label="%MAKETEXT{"Title"}%"
}%
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="psort"
value="formfield(Category)"
label="%MAKETEXT{"Category"}%"
}%
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="psort"
value="formfield(Author)"
label="%MAKETEXT{"Author"}%"
}%
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="psort"
value="formfield(PublishingDate)"
label="%MAKETEXT{"Publishing date"}%"
}%
%INCLUDE{"%TOPIC%" section="filterOption"
paramname="psort"
value="modified"
label="%MAKETEXT{"Last modified"}%"
}%
</select>
</span>
<span class="foswikiMakeHidden blogAddOnViewOptionsFilter"> <input type="submit" class="foswikiButton" value='%MAKETEXT{"Update"}%' /></span>
</form>
<div class="foswikiClear"></div>
</div>
</div>
</noautolink>%STARTSECTION{"posts"}%<noautolink><div class="blogPostAddOnPosts">
<!-- title of selected category -->
%IF{"(defined pcategory) OR (defined pauthor) OR (defined tag)" then="$percntINCLUDE{$quot%TOPIC%$quot section=$quotfilters$quot}$percnt"}%%STARTSECTION{"list"}%%SEARCH{
type="query"
"BlogPostForm%IF{"defined pcategory and $pcategory!=''" then=" AND fields[name='Category'].value='%pcategory%'"}%%IF{"defined ptag and $ptag!=''" then="%FORMAT{
type="string"
"%ptag%"
format=" AND fields[name='Tags'].value=~'\b$item\b' "
}%"}%%IF{"defined pauthor and $pauthor!=''" then=" AND fields[name='Author'].value=~'\b%pauthor%\b'"}%"
web="%WEB%"
zeroresults="<div class='blogPostAddOnItem'>%MAKETEXT{"No posts found"}%</div>"
nosummary="on"
nosearch="on"
nototal="on"
excludetopic="*Template"
casesensitive="on"
format="%INCLUDE{
"%TOPIC%"
section="blogPostAddOnItem"
}%"
header="<div class='blogAddOnList'>"
footer="</div>"
order="%psort%"
reverse="%IF{"$psortdirection='descending'" then="on" else="off"}%"
pagesize="%ppagesize%"
pager="on"
}%%ADDTOZONE{
"head"
id="blogPost"
text="<literal><style type=\"text/css\" media=\"all\">
.blogAddOnViewOptions {
font-size:13px;
}
.blogAddOnViewOption {
margin-right:10px;
}
.blogPostAddOnItem {
padding:10px 0;
height:1%; /* for IE */
border-bottom:1px solid #eee;
}
.blogAddOnList {
/* border-top:1px solid #eee;*/
margin:5px 0 0 0;
}
.blogPostAddOnExcerpt {%IF{
"defined BLOGADDON_AUTHOR_PICTURE_FIELD and $BLOGADDON_AUTHOR_PICTURE_FIELD!=''"
then="
margin-left:%ppicsizeauthor%px;
padding-left:10px;
"}%}
.blogPostAddOnItem h3 {
font-size:120%;
font-weight:bold;
padding:0 0 5px 0;
margin:0;
border:none;
}
.blogPostAddOnSummary {
margin:10px 0 0 0;
}
.blogPostAddOnHasSummaryImage .blogPostAddOnSummaryText {
margin-left:%ppicsizesummary%px; /* image width %ppicsizesummary%px */
padding-left:15px;
}
.blogPostAddOnSummaryPicture {
float:left;
width:%ppicsizesummary%px;
min-height:%ppicsizesummary%px;
border:none;
margin:0 10px 5px 0;
}
.blogPostAddOnPicture {
float:left;
}
ul.blogPostAddOnCommentStatus {
margin:.5em 0 0 0;
padding:0;
list-style:none;
position:relative;
width:35em;
}
ul.blogPostAddOnCommentStatus li {
display:block;
background:#f6f6f5;
padding:3px 0;
margin:0 0 2px 0;
font-size:86%;
}
ul.blogPostAddOnCommentStatus li .blogPostAddOnPicture {
margin:0 10px;
}
.blogPostAddOnCommentStatusText {
padding:0 10px;
}
.blogPostAddOnLatestCommentCount {}
/* list of posts */
.blogPostAddOnPosts {}
.blogAddOnFilters {
margin:10px 0 0 0;
}
a.blogAddOnRemoveFilterButton:link,
a.blogAddOnRemoveFilterButton:visited {
display:inline-block;
padding:0 6px;
line-height:1.8em;
}
a.blogAddOnRemoveFilterButton:link,
a.blogAddOnRemoveFilterButton:visited {
position:relative;
margin:0 3px 3px 0;
text-decoration:none;
font-size:13px;
font-weight:normal;
border-width:1px;
border-style:solid;
}
a.blogAddOnRemoveFilterButton:active,
a.blogAddOnRemoveFilterButton:focus {
outline:none;
-moz-outline-style:none;
}
a.blogAddOnRemoveFilterButton:hover {
cursor:pointer;
text-decoration:none;
color:#000;
}
a.blogAddOnRemoveFilterButton .blogAddOnFilterButtonIcon {
padding-left:22px;
width:13px;
height:13px;
background-repeat:no-repeat;
background-position:0 0;
background-image:url(%PUBURLPATH%/%SYSTEMWEB%/BlogAddOn/icon_tag_delete_btn.png);
}
a.blogAddOnRemoveFilterButton:link,
a.blogAddOnRemoveFilterButton:visited {
color:#000;
background:#f6f6f5;
border-color:#ddd;
}
a.blogAddOnRemoveFilterButton:hover .blogAddOnFilterButtonIcon {
background-position:0 -16px;
}
.blogAddOnFilterButtonType {
font-size:90%;
padding:0 6px 0 0;
text-transform:uppercase;
}
</style></literal>"
}%%ENDSECTION{"list"}%</div></noautolink>%ENDSECTION{"posts"}%%ENDSECTION{"all"}%
<!-- ###########################################################################
filters
-->
%STARTSECTION{"filters"}%<div class='blogAddOnFilters'>%IF{
"defined pauthor and $pauthor!=''"
then="<a class='blogAddOnRemoveFilterButton' href='%SCRIPTURL{view}%/%BASEWEB%/%BASETOPIC%?author=;category=%pcategory%;tag=%ptag%#BlogPosts'><span class='blogAddOnFilterButtonIcon'></span><span class='blogAddOnFilterButtonType'>author:</span>$percntFORMFIELD{\"FirstName\" topic=\"%USERSWEB%.%pauthor%\"}$percnt $percntFORMFIELD{\"LastName\" topic=\"%USERSWEB%.%pauthor%\"}$percnt</a>"
}%%IF{
"defined pcategory and $pcategory!=''"
then="<a class='blogAddOnRemoveFilterButton' href='%SCRIPTURL{view}%/%BASEWEB%/%BASETOPIC%?author=%pauthor%;category=;tag=%ptag%#BlogPosts'><span class='blogAddOnFilterButtonIcon'></span><span class='blogAddOnFilterButtonType'>category:</span>%pcategory%</a>"
}%%IF{
"defined ptag and $ptag!=''"
then="%FORMAT{
type="string"
"%ptag%"
separator=""
format="<a class='blogAddOnRemoveFilterButton' href='%SCRIPTURL{view}%/%BASEWEB%/%BASETOPIC%?tag=$percntFORMAT{$quot%ptag%$quot type=$quotstring$quot separator=$quot$quot format=$quot$dollarpercntIF{$dollarquot'$item'='$dollaritem'$dollarquot else=$dollarquot$dollaritem,$dollarquot}$dollarpercnt$quot}$percnt;category=%pcategory%;author=%pauthor%#BlogPosts'><span class='blogAddOnFilterButtonIcon'></span><span class='blogAddOnFilterButtonType'>tag:</span>$item</a>"
}%"
}%</div>%ENDSECTION{"filters"}%
<!-- ###########################################################################
blogPostAddOnItem
-->
%STARTSECTION{"blogPostAddOnItem"}%<div class='blogPostAddOnItem'>
%IF{
"defined BLOGADDON_AUTHOR_PICTURE_FIELD and $BLOGADDON_AUTHOR_PICTURE_FIELD!=''"
then="$percntINCLUDE{$quot%WEB%.BlogPost$quot section=$quotblogPostAuthorPicture$quot imgWeb=$quot%USERSWEB%$quot imgTopic=$quot$formfield(Author)$quot imgWidth=$quot%ppicsizeauthor%$quot}$percnt"
}%<div class='blogPostAddOnExcerpt'><h3>[[$web.$topic][$formfield(Title)]]</h3>
<!-- author, category, tags -->
<div class='blogPostAddOnHeaderInfo foswikiUnvisited'>$percntINCLUDE{$quot%WEB%.%TOPIC%$quot section=$quotblogPostInfo$quot web=$quot$web$quot topic=$quot$topic$quot author=$quot$formfield(Author)$quot}$percnt</div>
<!-- summary -->
<div class='blogPostAddOnSummary$percntIF{$quot'$formfield(SummaryImage)'!=''$quot then=$quot blogPostAddOnHasSummaryImage$quot}$percnt'>$percntIF{$quot'$formfield(SummaryImage)'!=''$quot then=$quot$percntINCLUDE{$quot%WEB%.%TOPIC%$quot section=$quotsummaryPicture$quot imgWeb=$quot$web$quot imgTopic=$quot$topic$quot imgName=$quot$formfield(SummaryImage)$quot}$percnt$quot}$percnt<div class='blogPostAddOnSummaryText'><div class='foswikiGrayText'>$percntIF{$quot'$%poutline%'!=''$quot then=$quot$%poutline%$quot else=$quot$%pdefaultoutline%$quot}$percnt</div>$percntSEARCH{$quot$topicComments%IF{"($WIKINAME = '%BLOGADDON_HIDE_COMMENTS%') OR (($WIKINAME ingroup '%BLOGADDON_HIDE_COMMENTS%')" then="n0nEToP1C"}%$quot web=$quot%IF{"defined BLOGADDON_COMMENTS_WEB and $BLOGADDON_COMMENTS_WEB!=''" then="%BLOGADDON_COMMENTS_WEB%" else="$web"}%$quot scope=$quottopic$quot nonoise=$quoton$quot format=$quot<ul class='blogPostAddOnCommentStatus'>
<li><div class='blogPostAddOnCommentStatusText'>Comments: $dollarcount(.*?(#CommentDate).*)</div></li><li>$dollarpercntIF{$dollarquot(defined BLOGADDON_AUTHOR_PICTURE_FIELD and $BLOGADDON_AUTHOR_PICTURE_FIELD!='') AND (istopic '$dollarwikiusername')$dollarquot then=$dollarquot$percntINCLUDE{$quot%TOPIC%$quot section=$quotblogPostAuthorPicture$quot imgTopic=$quot$dollarwikiusername$quot imgWeb=$quot%USERSWEB%$quot imgWidth=$quot%ppicsizecommenter%$quot}$percnt$dollarquot}$dollarpercnt<div class='blogPostAddOnCommentStatusText'><a href='$percntSCRIPTURL{view}$percnt/$web/$topic?r=$dollarrev#BlogPostPrompt'>Latest comment by $percntSPACEOUT{$quot<nop>$dollarwikiname$quot}$percnt</a><span class='foswikiGrayText'> - $dollardate</span></div></li></ul>$quot}$percnt</div></div>
</div><div class='foswikiClear'></div></div>%ENDSECTION{"blogPostAddOnItem"}%
<!-- ###########################################################################
blogPostInfo
params: web, topic, context, author
-->
%STARTSECTION{"blogPostInfo"}%%INCLUDE{
"%WEB%.%TOPIC%"
section="_info"
includeSection="_blogPostInfo"
}%%INCLUDE{
"%WEB%.%TOPIC%"
section="_info"
includeSection="_blogPostTags"
}%%ENDSECTION{"blogPostInfo"}%
<!--
_info
params: web, topic, author, includeSection, context
-->
%STARTSECTION{"_info"}%%INCLUDE{
"%WEB%.%TOPIC%"
section="%includeSection%"
listtopic="%IF{"defined BLOGADDON_LIST_TOPIC and $BLOGADDON_LIST_TOPIC!=''" then="%BLOGADDON_LIST_TOPIC%" else="%WEB%.BlogPost"}%"
authortopic="%author%"
}%%ENDSECTION{"_info"}%
<!--
_blogPostInfo
params: web, topic, context, listtopic, authortopic
-->
%STARTSECTION{"_blogPostInfo"}%%MAKETEXT{"[_1] [_2] [_3]" args="
%FORMFIELD{
"PublishingDate"
topic="%web%.%topic%"
default="%REVINFO{rev="1" format="$date" topic="%web%.%topic%"}%"
alttext="%REVINFO{rev="1" format="$date" topic="%web%.%topic%"}%"
}%
,
%IF{
"istopic '%USERSWEB%.%CALC{$SUBSTITUTE(%author%,%USERSWEB%.,)}%' AND '%USERSWEB%/%CALC{$SUBSTITUTE(%author%,%USERSWEB%.,)}%'/fields[name='FirstName']"
then="by [[%SCRIPTURL{view}%/%listtopic%?author=%CALC{$SUBSTITUTE(%author%,%USERSWEB%.,)}%%IF{"defined pcategory" then=";category=%ENCODE{"%pcategory%"}%"}%%IF{"defined ptag" then=";tag=%ENCODE{"%ptag%"}%"}%#BlogPosts][%QUERY{
"'%USERSWEB%/%CALC{$SUBSTITUTE(%author%,%USERSWEB%.,)}%'/fields[name='FirstName'].value"}% %QUERY{"'%USERSWEB%/%CALC{$SUBSTITUTE(%author%,%USERSWEB%.,)}%'/fields[name='LastName'].value"
}%]]"
else="by [[%SCRIPTURL{view}%/%listtopic%?%IF{"defined pauthor" then="author=%ENCODE{"%pauthor%"}%"}%%IF{"defined pcategory" then=";category=%ENCODE{"%pcategory%"}%"}%%IF{"defined ptag" then=";tag=%ENCODE{"%ptag%"}%"}%#BlogPosts][%author%]]"
}%
,
%FORMFIELD{
"Category"
topic="%web%.%topic%"
format="in [[%SCRIPTURL{view}%/%listtopic%?category=$value%IF{"defined ptag" then=";tag=%ENCODE{"%ptag%"}%"}%%IF{"defined pauthor" then=";author=%ENCODE{"%pauthor%"}%"}%#BlogPosts][$value]]"
}%"
}%%ENDSECTION{"_blogPostInfo"}%
<!-- ###########################################################################
_blogPostTags
params: web, topic, listtopic
-->
%STARTSECTION{"_blogPostTags"}%%FORMAT{
"%FORMFIELD{"Tags" topic="%web%.%topic%"}%"
header=" <img src='%ICONURLPATH{tag}%' width='16' alt='tagged' /> "
type="string"
format="[[%SCRIPTURL{view}%/%listtopic%?tag=$percntCALC{$LISTJOIN($dollarcomma,$LISTSORT($LISTUNIQUE($item,%ptag%)))}$percnt;category=%pcategory%;author=%pauthor%#BlogPosts][$item]]"
separator=", "
}%%ENDSECTION{"_blogPostTags"}%
<!-- ###########################################################################
blogPostAuthorPicture
params: imgWeb, imgTopic
-->
%STARTSECTION{"blogPostAuthorPicture"}%<div class='blogPostAddOnPicture'>%INCLUDE{
"%TOPIC%"
section="%IF{"context ImagePluginEnabled" then="imagePluginImage" else="pubImage"}%"
}%
</div>%ENDSECTION{"blogPostAuthorPicture"}%
%STARTSECTION{"pubImage"}%$percntIF{$quot'%imgWeb%/%CALC{$SUBSTITUTE(%imgTopic%,%USERSWEB%.,)}%'/%BLOGADDON_AUTHOR_PICTURE_FIELD%$quot then=$quot<a href='%SCRIPTURL{view}%/%imgWeb%/%CALC{$SUBSTITUTE(%imgTopic%,%USERSWEB%.,)}%'><img src='%PUBURL%/%imgWeb%/%CALC{$SUBSTITUTE(%imgTopic%,%USERSWEB%.,)}%/$percntQUERY{\"'%imgWeb%/%CALC{$SUBSTITUTE(%imgTopic%,%USERSWEB%.,)}%'/%BLOGADDON_AUTHOR_PICTURE_FIELD%\"}$percnt' width='%imgWidth%' title='%MAKETEXT{"Author page"}%' alt='%MAKETEXT{"Author picture"}%' /></a>$quot else=$quot<img src='%PUBURL%/%SYSTEMWEB%/PersonalInfoAddOn/silhouette.gif' width='%imgWidth%' alt='' />$quot}$percnt%ENDSECTION{"pubImage"}%
%STARTSECTION{"imagePluginImage"}%$percntIF{$quot'%imgWeb%/%CALC{$SUBSTITUTE(%imgTopic%,%USERSWEB%.,)}%'/%BLOGADDON_AUTHOR_PICTURE_FIELD%$quot then=$quot$percntIMAGE{web=\"%imgWeb%\" topic=\"%CALC{$SUBSTITUTE(%imgTopic%,%USERSWEB%.,)}%\" href=\"%SCRIPTURL{view}%/%imgWeb%/%CALC{$SUBSTITUTE(%imgTopic%,%USERSWEB%.,)}%\" \"$percntQUERY{\"'%imgWeb%/%CALC{$SUBSTITUTE(%imgTopic%,%USERSWEB%.,)}%'/%BLOGADDON_AUTHOR_PICTURE_FIELD%\"}$percnt\" align=\"none\" zoom=\"on\" title=\"%MAKETEXT{"Author page"}%\" alt=\"%MAKETEXT{"Author picture"}%\" size=\"%imgWidth%\"}$percnt$quot else=$quot$percntIMAGE{web=\"%SYSTEMWEB%\" topic=\"PersonalInfoAddOn\" \"silhouette.gif\" align=\"none\" alt=\"\" size=\"%imgWidth%\"}$percnt$quot}$percnt%ENDSECTION{"imagePluginImage"}%
<!-- ###########################################################################
summaryPicture
params: imgWeb, imgTopic, imgName
-->
%STARTSECTION{"summaryPicture"}%<div class='blogPostAddOnSummaryPicture'>%INCLUDE{
"%TOPIC%"
section="%IF{"context ImagePluginEnabled" then="summaryImagePluginImage" else="summaryPubImage"}%"
imgWidth="%ppicsizesummary%"
}%
</div>%ENDSECTION{"summaryPicture"}%
%STARTSECTION{"summaryPubImage"}%<a href='%SCRIPTURL{view}%/%imgWeb%/%imgTopic%'><img src='%PUBURL%/%imgWeb%/%imgTopic%/%imgName%' width='%imgWidth%' alt='' /></a>%ENDSECTION{"summaryPubImage"}%
%STARTSECTION{"summaryImagePluginImage"}%$percntIMAGE{web=\"%imgWeb%\" topic=\"%imgTopic%\" \"%imgName%\" align=\"center\" alt=\"\" size=\"%imgWidth%x%imgWidth%\" zoom=\"on\" href=\"%SCRIPTURL{view}%/%imgWeb%/%imgTopic%\"}$percnt%ENDSECTION{"summaryImagePluginImage"}%
<!-- ###########################################################################
filterOption
params:paramname, value, label
-->
%STARTSECTION{"filterOption"}%<option value="%value%"%IF{"defined %paramname% and $%paramname% = '%value%'" then=" selected=\"selected\""}%>%label%</option>%ENDSECTION{"filterOption"}%
<!-- ###########################################################################
createButton
params:label
-->
%STARTSECTION{"createButton"}%<form method="get" action="%SCRIPTURL{view}%/%WEB%/BlogPostCreator">
<input type="submit" class="foswikiButton" value="%IF{"defined label AND '%label%'!=''" then="%label%" else="%MAKETEXT{"Write a new blog post"}%"}%" /></form>%ENDSECTION{"createButton"}%