Blog posts
Foswiki is now over 3 years old, and its still
an extremely active project: Congratulations and thankyou!
The Foswiki Association’s Board has just elected the new Office holders:
* Chairman:
Sven Dowideit * Vice Chairman:
Crawford Currie * Treasurer:
Oliver KruegerAs the new chairman, I hope to continue the great work that Crawford did in guiding our foundation so far, and take the opportunity I have to thank Kenneth for the work he did the last 2 years, and for the experience he has passed on to the Board in general.
For 2012, I have suggested that we work on improving our communications both within our community and towards the outside world – for example by developing more microblogging tools like the
Extension News, and then creating a regular newsletter from those feeds. Given that foswiki is a
do-ocracy, that means I just volunteered myself to building some more tools for foswiki.org, and then to write newsletters.
In case you’re still reading this, the Board has a question for you – we now have 1,385 euros in the bank, is there anything we could use this money for that would positively impact on the community, its growth and visibility?
Have a happy and productive 2012
The Foswiki Association is pleased to announce its 3rd General Assembly and Birthday Celebration, 19th-20th November 2011, at CERN Geneva.
%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='%SCRIPTURLPATH{"view"}%/%BASEWEB%/BlogRss?author=%pauthor%;category=%pcategory%;tag=%ptag%'>%MAKETEXT{"Subscribe"}%</a>
</span>
<form name="blogAddOnViewOptionsForm" action="%SCRIPTURLPATH{"view"}%/%BASEWEB%/%BASETOPIC%" 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>
<noscript><span class="blogAddOnViewOptionsFilter"> <input type="submit" class="foswikiButton" value='%MAKETEXT{"Update"}%' /></span></noscript>
</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"
"form.name='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"
}%%STARTSECTION{"styles"}%%ADDTOZONE{
"head"
id="blogPost"
text="<literal><style type=\"text/css\" media=\"all\">
.blogPost,
.blogPostAddOnItem {
border-bottom: 1px solid #ccc;
margin-bottom: 10px;
width: 700px;
height:1%; /* for IE */
}
.blogPost img {
max-width: 700px;
}
.blogAddOnViewOptions {
font-size:13px;
}
.blogAddOnViewOption {
margin-right:10px;
}
.blogPostAddOnItem {
padding: 0 0 10px 0;
}
.blogAddOnList {
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 h2 {
font-size:145%;
}
.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;
background: #ddd;
}
ul.blogPostAddOnCommentStatus li {
display:block;
background:#f6f6f5;
padding:3px 0;
margin:0 0 1px 0;
font-size:86%;
}
ul.blogPostAddOnCommentStatus li .blogPostAddOnPicture {
margin:0 10px;
}
.blogPostAddOnCommentStatusText {
padding: 5px 10px;
max-height: 90px;
overflow: hidden;
overflow-y: auto;
}
.blogPostAddOnCommentStatusText hr {
margin-right: 90%;
background-color: #ddd;
border-color: #ddd;
}
.blogPostAddOnLatestCommentCount {}
/* list of posts */
.blogPostAddOnPosts {}
.blogAddOnFilters {
margin:10px 0 0 0;
border-bottom: 1px solid #ccc;
}
a.blogAddOnRemoveFilterButton:link,
a.blogAddOnRemoveFilterButton:visited {
display:inline-block;
padding:0;
line-height:1.8em;
position:relative;
margin:0 10px 3px 0;
text-decoration:none;
font-size:13px;
font-weight:normal;
border: none;
background: none;
}
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;
}
a.blogAddOnRemoveFilterButton:hover .blogAddOnFilterButtonIcon {
background-position:0 -16px;
}
.blogAddOnFilterButtonType {
font-size:90%;
padding:0 6px 0 0;
text-transform:uppercase;
}
a.blogSelectedCategory {
font-weight: bold;
background-color: #D9F5D9;
}
</style></literal>"
}%%ENDSECTION{"styles"}%%ENDSECTION{"list"}%</div></noautolink>%ENDSECTION{"posts"}%%ENDSECTION{"all"}%
<!-- ###########################################################################
filters
-->
%STARTSECTION{"filters"}%%IF{
"(defined pauthor and $pauthor!='') OR (defined pcategory and $pcategory!='') OR (defined ptag and $ptag!='')"
then="<div class='blogAddOnFilters'>"
}%%IF{
"defined pauthor and $pauthor!=''"
then="<a class='blogAddOnRemoveFilterButton' href='%SCRIPTURLPATH{view}%/%BASEWEB%/%BASETOPIC%?author=;category=%pcategory%;tag=%ptag%'><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='%SCRIPTURLPATH{view}%/%BASEWEB%/%BASETOPIC%?author=%pauthor%;category=;tag=%ptag%'><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='%SCRIPTURLPATH{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%'><span class='blogAddOnFilterButtonIcon'></span><span class='blogAddOnFilterButtonType'>tag:</span>$item</a>"
}%"
}%%IF{
"(defined pauthor and $pauthor!='') OR (defined pcategory and $pcategory!='') OR (defined ptag and $ptag!='')"
then="</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'><h2>[[$web.$topic][$formfield(Title)]]</h2>
<!-- 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'>$percntIF{$quot'%poutline%'!=''$quot then=$quot$%poutline%$quot else=$quot$%pdefaultoutline%$quot}$percnt$percntINCLUDE{$quot%TOPIC%$quot section=$quot_comments$quot web=$quot$web$quot topic=$quot$topic$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"}%
<!--
_comments
params: web, topic
-->
%STARTSECTION{"_comments"}%%SEARCH{
"%topic%Comments%IF{
"($WIKINAME = '%BLOGADDON_HIDE_COMMENTS%') OR (($WIKINAME ingroup '%BLOGADDON_HIDE_COMMENTS%')"
then="n0nEToP1C"
}%"
web="%IF{
"defined BLOGADDON_COMMENTS_WEB and $BLOGADDON_COMMENTS_WEB!=''"
then="%BLOGADDON_COMMENTS_WEB%"
else="%web%"
}%"
scope="topic"
nonoise="on"
zeroresults=""
format="<ul class='blogPostAddOnCommentStatus'>
<li><div class='blogPostAddOnCommentStatusText'>
$percntINCLUDE{$quot$web.$topic$quot}$percnt</div></li><li><div class='blogPostAddOnCommentStatusText'>[[%web%.%topic%#BlogPostComments][Leave a comment]]</div></li></ul>"
}%%ENDSECTION{"_comments"}%
<!--
_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 [[%SCRIPTURLPATH{view}%/%listtopic%?author=%CALC{$SUBSTITUTE(%author%,%USERSWEB%.,)}%%IF{"defined pcategory" then=";category=%ENCODE{"%pcategory%"}%"}%%IF{"defined ptag" then=";tag=%ENCODE{"%ptag%"}%"}%][%QUERY{
"'%USERSWEB%/%CALC{$SUBSTITUTE(%author%,%USERSWEB%.,)}%'/fields[name='FirstName'].value"}% %QUERY{"'%USERSWEB%/%CALC{$SUBSTITUTE(%author%,%USERSWEB%.,)}%'/fields[name='LastName'].value"
}%]]"
else="by [[%SCRIPTURLPATH{view}%/%listtopic%?%IF{"defined pauthor" then="author=%ENCODE{"%pauthor%"}%"}%%IF{"defined pcategory" then=";category=%ENCODE{"%pcategory%"}%"}%%IF{"defined ptag" then=";tag=%ENCODE{"%ptag%"}%"}%][%author%]]"
}%
,
%FORMFIELD{
"Category"
topic="%web%.%topic%"
format="in [[%SCRIPTURLPATH{view}%/%listtopic%?category=$value%IF{"defined ptag" then=";tag=%ENCODE{"%ptag%"}%"}%%IF{"defined pauthor" then=";author=%ENCODE{"%pauthor%"}%"}%][$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="[[%SCRIPTURLPATH{view}%/%listtopic%?tag=$percntCALC{$LISTJOIN($dollarcomma,$LISTSORT($LISTUNIQUE($item,%ptag%)))}$percnt;category=%pcategory%;author=%pauthor%][$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='%SCRIPTURLPATH{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=\"%SCRIPTURLPATH{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='%SCRIPTURLPATH{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=\"%SCRIPTURLPATH{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="%SCRIPTURLPATH{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"}%