Documentation
This function is called in Category topics.
See the also
Parameters
- CAT: category to be rendered, defaults to URLPARM{"catname" default="BASETOPIC"}
- KEYWORDS: keywords to filter for
- TAG: tags to be searching for in this category
- EXCLUDE: categories to be excluded from the list
- SHOWHEADER: switch on/off display anchors, defaults to off
- SHOWTOPICS: switch on/off display of topics in this category; defaults to on
- SHOWGROUPS: switch on/off alphabetic headers; defaults to off
- SHOWFILTER: switch on/off the input field to filter the list items, defaults to
off
- SHOWSUBCATS: switch on/off display of subcategories, defaults to on
- COLS: number of columns, defaults to
CLASSIFICATIONPLUGIN_NRCOLS
which itself defaults to 3
Implementation
%STARTINCLUDE%<noautolink><div class='clsMakeIndexWrapper'>
%IF{"'%SHOWFILTER{default="off"}%'='on'"
then="$percntDBCALL{\"%WEB%.%TOPIC%\" section=\"filter\"}$percnt"
}%<!-- -->
%MAKEINDEX{
"%HIERARCHY{
web="%BASEWEB%"
top="%CAT{default="%URLPARAM{"catname" default="%BASETOPIC%"}%"}%"
exclude="%CAT{default="%URLPARAM{"catname" default="%BASETOPIC%"}%"}%%IF{"defined EXCLUDE" then="|%EXCLUDE%"}%"
depth="2"
sort="on"
format="($title);$topic;$origweb$n"
}%"
cols="%COLS{default="%CLASSIFICATIONPLUGIN_NRCOLS{default="3"}%"}%"
split="\n"
pattern="\((.*)\);(.*);(.*)"
sort="off"
%IF{"'%SHOWGROUPS{default="off"}%'!='on'" then="group=\"\""}%
format="$percntDBCALL{
\"$percntIF{\"istopic '%BASEWEB%.$2'\"
then=\"%BASEWEB%.$2->RenderCategoryItem\"
else=\"Applications.ClassificationApp.CategoryRenderCategoryItem\"
}$percnt\"
TITLE=\"$1\"
OBJECT=\"$2\"
}$percnt"
}%<!-- -->
%IF{"'%SHOWTOPICS{default="%IF{"'%CAT{default="%URLPARAM{"catname" default="%BASETOPIC%"}%"}%'='TopCategory'" then="off" else="on"}%"}%'='on'"
then="$percntDBCALL{\"%WEB%.%TOPIC%\"
section=\"topicindex\"
TAG=\"%TAG%\"
KEYWORDS=\"%KEYWORDS%\"
}$percnt"
}%<!-- -->
</div></noautolink>
<!-- -->%STOPINCLUDE%
%STARTSECTION{"topicindex"}%
%MAKEINDEX{
"%DBQUERY{
"!(TopicType=~'\bCategory\b') AND
('%IF{"defined CAT" then="%CAT%" else="%URLPARAM{"catname" default="%BASETOPIC%"}%"}%' DISTANCE topic) = 1
%FORMATLIST{"%URLPARAM{"tag" default="%IF{"defined TAG" then="%TAG%"}%"}%"
header="AND"
format=" Tag=~'\b$1\b' "
separator="AND"
}%
%FORMATLIST{"%URLPARAM{"search" default="%KEYWORDS{default=""}%"}%"
header="AND"
format=" uc(all) =~ uc('$1') "
separator="AND"
}%
"
web="%BASEWEB%"
hidenull="on"
format="($expand(TopicTitle or topic));$topic;$web"
separator="$n"
}%"
cols="%COLS{default="%CLASSIFICATIONPLUGIN_NRCOLS{default=""}%"}%"
split="\n"
pattern="\((.*)\);(.*);(.*)"
sort="nocase"
%IF{"'%SHOWHEADER%'='on'" then="header=\"$anchors\""}%
format="$percntDBCALL{\"$3.$2->RenderIndexItem\"}$percnt"
}%%ENDSECTION{"topicindex"}%%
%STARTSECTION{"toolbar"}%<!-- -->
<div class="toolbar">
%BUTTON{"New Topic" href="%SCRIPTURLPATH{view}%/%BASEWEB%/ClassifiedTopic?cat=%URLPARAM{"catname" default="%BASETOPIC%"}%%IF{
"defined TEMPLATE"
then=";tmpl=%TEMPLATE%"
else="$percntIF{\"istopic '%BASEWEB%.%URLPARAM{"catname" default="%BASETOPIC%"}%Template'\"
then=\";tmpl=%BASEWEB%.%URLPARAM{"catname" default="%BASETOPIC%"}%Template\"
else=\"\"
}$percnt"
}%"
title="Create a new topic in %CATINFO{cat="%BASEWEB%.%URLPARAM{"catname" default="%BASETOPIC%"}%" format="<nop>$title"}%"
}%
%IF{"'%USERSWEB%.AdminGroup' allows 'change'"
then="%BUTTON{"Manage" href="%SCRIPTURLPATH{view}%/%BASEWEB%/Category" title="Manage categories"}%
%BUTTON{"Browse" href="%SCRIPTURLPATH{view}%/%BASEWEB%/CategoryBrowser" title="Browse the hierarchy"}%"
}%
</div>
%CLEAR%%ENDSECTION{"toolbar"}%
Filter
%STARTSECTION{"filter"}%*%TRANSLATE{"Filter"}%* <input type="text" size="30" class="clsFilter foswikiInputField" />
%ADDTOZONE{"script"
id="%TOPIC%"
requires="JQUERYPLUGIN"
text="<script type='text/javascript' src='%PUBURLPATH%/Applications/ClassificationApp/RenderCategory/filter.js'></script>"
}%%STARTATTACH{"filter.js" hidecontent="on"}%
"use strict"
jQuery(function($) {
var $container = $(".clsMakeIndexWrapper"), timer;
function updateCategoryIndex(val) {
$container.find(".fltMakeIndexItem").each(function() {
var $this = $(this), text = $this.text();
if (!regex.test(text)) {
$this.fadeOut();
} else {
if (!$this.is(":visible")) {
$this.fadeIn();
}
}
});
}
$("input.clsFilter").on("keyup", function(ev) {
var $this = $(this), val = $this.val();
if (typeof(timer) !== 'undefined') {
window.clearTimeout(timer);
}
timer = window.setTimeout(function() {
updateCategoryIndex(val);
timer = undefined;
}, 500);
});
});
%ENDATTACH%%ENDSECTION{"filter"}%
Test
Calls to 'RenderCategory'
Copyright
© 2006-2019 Michael Daum
http://michaeldaumconsulting.com
This file is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version. For
more details read the
LICENSE.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.