BlogPlugin
NOTE: This blog plugin is no longer maintained. We recommend to use the
BlogAddOn application.
This is the supplemental plugin for the
BlogUp TWikiApplication.
It bundles some of the features found in common blogging applications
that are very hard or even impossible to implement using TWikiML.
Note, that most of the tags are tightly related to the
data model of
BlogUp, i.e. it relies on its TopicType and TWikiForm
definitions.
Shortcut: want to create a blog ... use the
BlogFactory.
Syntax Rules
CITEBLOG
Format a link to another BlogEntry displaying its headline and date.
Syntax:
%CITEBLOG{"<topic>"}% |
"<topic>" |
name of a BlogEntry topic, e.g. BlogEntry0 |
Example:
%CITEBLOG{"_BlogPlugin.BlogEntry0"}%
%CITEBLOG{"_BlogPlugin.BlogEntry0"}%
COUNTCOMMENTS
Count the BlogComments that refer to a given topic recursively, that is
the number of BlogComment topics that refer to a given BlogEntry and
each BlogComment referring to the BlogComment found so far. Reference
is expressed by the BlogRef formfield in the BlogCommentForm.
Syntax:
%COUNTCOMMENTS{"<topic>" ... }% |
"<topic>" |
name of a BlogEntry or BlogComment topic, e.g. BlogEntry0 |
web="..." |
web where to search for references; defaults to the web specified as part of the "topic" parameter or the current one |
format="..." |
format string used to display the count; the variable $count is replaced by the calculated references; defaults to "$count" |
single="..." |
format string used to display a single hit; defaults to the "format" value (see above) |
null="..." |
format string used to display a zero hit; defaults to "0" |
hidenull="on,off" |
if set to "on" nohting is displayed if no references where found; defaults to "off" |
offset="..." |
add an "offset" to the computed number of hits; so if offset="9" and 11 references where found the $count is set to 20 |
Following variables are expanded in format strings:
- $percnt: % sign
- $dollar: $ sign
- $n: newline
- $t: tab
- $nop: "empty string"
- $count: the calculated number of references (plus an optional offset)
PREVDOC, NEXTDOC
Display the previous/next topic in an ordered set.
These tags can be used to establish a navigation within a set of related topics
paging to the preceding or succeeding one. A set of related topics is defined
using a "where" and an "order" clause which the given topic is supposed to be part of.
Syntax:
%PREVDOC{"<topic" where="..." ...}%, %NEXTDOC{"<topic" where="..." ...}% |
"<topic>" |
topic which we search the predecessor/successor of |
web="..." |
web where to search for related topics; defaults to the web given with the <topic> parameter or the current one |
where="..." |
search clause, see documentation of the DBCacheContrib |
order="..." |
document property used to sort the hit set; defaults to "created" |
reverse="on,off" |
if set to on the sorting will be reversed, that is the logic of PREV and NEXT is inverted |
RECENTCOMMENTS
Display an ordered list of most recent BlogComments, grouped by the
referred BlogEntry.
Syntax:
%RECENTCOMMENTS{"<format>" ...}% |
"<format>" |
format string used to display the hit results; each hit is displayed using the given format |
header="..." |
format string to prepended to the list of hits being displayed |
footer="..." |
format string to appended to the list of hits being displayed |
separator="..." |
format string used to separate hits; defaults top "$n"; the special separator "none" disables separation |
limit="..." |
restrict the number of hits being displayed; defaults to "-1" which means unlimited |
age="..." |
restrict the age of comments being displayed; values must be given in epoch seconds, e.g. 5184000 being ca. 2 months; defaults to "0" which means unlimited |
category="..." |
pattern that limits comments to those whose BlogEntries match the SubjectCategory; defaults to ".*" |
author="..." |
pattern that limits comments to those on BlogEntries from the given author defaults to ".*" |
(Each BlogEntry that is found given the above search parameters and limits
is called a hit.)
Following variables are expanded in format strings:
- $percnt: % sign
- $dollar: $ sign
- $n: newline
- $t: tab
- $nop: "empty string"
- $count: the number of comments on the given BlogEntry
- $topic: the topic name of the referring BlogEntry, e.g. BlogEntry0
- $web: the web where the hit was found
- $headline: the headline of the referring BlogEntry
- $commenter: a list of links to the comments in the format [[BlogEntry0#BlogComment1][<author>]],... (author: name of commenter)
- $date: date of the most recent comment on the current hit.
See also the interface TopicFunction "RenderRecentComments".
RELATEDENTRIES
Display a list of BlogEntries related to a given one. The Relationship
is manually encoded in the data model using the "Related" formfield. The
relation is computed transitively and reflexively ('til a configurable depth).
That is, two BlogEntries A and B are related if A points to B or vice versa
or A and B are connected by a series of related postings C1,...CN, where A is related
to C1 and B CN is related to B.
Syntax:
%RELATEDENTRIES{"<topic>" ...}% |
"<topic>" |
topic name of a BlogEntry related once are search for |
web="..." |
web where to search for related topics; defaults to the web given with the <topic> parameter or the current one |
format="..." |
format string to display a hit; defaults to "$topic" |
header="..." |
format string to prepended to the list of hits |
footer="..." |
format string to appended to the list of hits |
separator="..." |
format string used to separate hits; defaults to "$n"; the special separator "none" disables separation |
depth="..." |
depth of recursion (the number of hops from posting A to posting B); defaults to "2"; |
Note, that large "depth" values will very soon include your complete blog archive.
The hit set also depends on the amount of direct relationships that you add to your
BlogEntries. So either use a low "depth" value and add more direct relations based on
your own judgment, or just specify one related entry and use a "depth" value of up to
3 for good results.
Following variables are expanded in format strings:
- $percnt: % sign
- $dollar: $ sign
- $n: newline
- $t: tab
- $topic: topic name of a hit
- $web: web name where the hit was found
- $depth: distance to the given <topic> (depth in which this topic was found)
- $headline: headline of the related BlogEntry
The relatedness feature here is a very naïve and purely manual one.
We'd like to semi-automate this task using some automatic classificator
on document similarities. Making use of weights following links is an option too to
improve the hit set quality.
Read
And send me a patch if you've coded that into TWiki ;).
Plugin Installation Instructions
- Download and install all additionally required plugins listed in the dependencies information below
- Download the BlogPlugin ZIP file from the Plugin web (see below)
- Unzip
BlogPlugin.zip
in your twiki installation directory. Content: File: | Description: |
data/TWiki/BlogPlugin.txt | plugin topic |
data/_BlogPlugin/*.txt | blog template web |
data/Main/BlogAdminGroup.txt | blog admin group |
data/Main/BlogAuthorGroup.txt | blog author group |
lib/TWiki/Plugins/BlogPlugin.pm | plugin perl module |
lib/TWiki/Plugins/BlogPlugin/Core.pm | plugin core module |
lib/TWiki/Plugins/BlogPlugin/Factory.pm | rest interface for the BlogFactory |
lib/TWiki/Plugins/BlogPlugin/WebDB.pm | WebDB implementation for the DBCachePlugin |
- Open the TWiki configuration dialog, enable the plugin and change the PluginsOrder to GluePlugin, SpreadSheetPlugin, IfDefinedPlugin, AliasPlugin
- Create a new Blog web using the _BlogPlugin template web
- Edit the BlogAdminGroup and the BlogAuthorGroup to match your needs.
- Optionally, run
BlogPlugin_installer.pl
to automatically check and install other TWiki modules that this module depends on. You can also do this step manually.
- Alternatively, manually make sure the dependencies listed in the table below are resolved.
Plugin Info
Plugin Author: |
TWiki:Main.MichaelDaum |
Copyright ©: |
2006, MichaelDaum@WikiRingPLEASENOSPAM.com |
License: |
GPL (GNU General Public License) |
Version: |
v0.99 |
Change History: |
|
31 Aug 2006: |
added NO_PREFS_IN_TOPIC; added TWiki:Plugins/ImagePlugin support; fixed BlogArchive not to compute terms before calling the tagcloud; removed whitespaces from WebPreferences to prevent insecure eval warnings (strange); fixed use of NatSkin's IFSKINSTATE as it glues no more |
21 Aug 2006: |
fixed error in RECENTCOMMENTS checking the posting's status; some css fixes; added default meta data keywords |
15 Aug 2006: |
making use of new feature of the IfDefinedPlugin to speed up certain things; improved way to render meta data and pagetitle; generating relative urls instead of absolute where possible now |
28 Jul 2006: |
hiding the breadcrumbs in the blog introduced in the recent NatSkin version; reordered sidebar section to "make more sense"; minor docu changes; added recommendation to use the BlogPlugin in combination with the TWiki:Plugins/NatSkin because some features will work with it only |
23 Jul 2006: |
added view templates specific to PatternSkin; improved the blog's sidebar for PatternSkin; added standard WebSearch topics; improved PatternSkin css support; fixed rendering postings without a SubjectCategory; usability improvements in RenderAddComment; fighting back sprinkling <p />; small improvements to the BlogFactory; Upgrade warning: blogentries created with older versions of this plugin need to be editted to replace %META:FIELD{name="State" ... value="enabled"}% with %META:FIELD{name="State" ... value="published"}% ; replace disabled with unpublised respectively |
15 June 2006: |
added BlogFactory to ease creation of blogs; fixed BlogImages feature introduced recently; added docu to to blog's WebPreferences; moved some hard-coded values to WebPreferences so that they can be set by the BlogFactory |
09 June 2006: |
added last.fm support to display the 10 most recent tracks you listened to in the sidebar; simplified uploading/managing images using a new "Upload Image" button; cleaned up technorati sidebar functionality; minor fixes in the blog archive; added ENABLEPINGBACK to blog postings so that they can receive pings once that plugin is ready; added TAG parameter to TopicFunctions that extract blog entries; fixed error in RenderGoogleAdsense; displaying recent visitors within the last week (was today's visitors only) ; added a customized "page not found"; added support to render your blog's license in the sidebar, defaults to a creative common license for wiki |
24 May 2006: |
added BlogImages: centralize all image resources; added affiliations to the sidebar; cleaned up code to detect multi-authored blog; cleaned up forms with singleton formfields ; removed all mandatory flags from formfields that are not auto-filled; improved rss and atom feeds to generate better titles for comments; added TAGCLOUDFADE to WebPreferences to make the archive's tagcloud customizable (was hardcoded before); fixed issue with rss feed icon in sidebar; added notion to register first before replying; added GOOGLE_*COLOR preference values to WebPreferences to make adsens customizable; added accesskeys 1-5 for the WebButtons; multiple css issues, more classes; fixed rss feed validation error due to symbolic html chars instead of numeric (hellip = #8230 etc) |
05 May 2006: |
added views for all models: all BlogenTries, SubjectCategories etc only set a specific TopicView; this reduces redundancy, hides implementation and fixes a pagination error using URLPARAM in TopicTemplates, e.g. SubjectCategories pages couldn't be run over; separated BlogUp ring from blogroll using new NOCAT parameter of RenderBlogRoll; added TopicViews twisty to AdminTools; page through BlogLinks of the same category |
30 Mar 2006: |
moved the createdate field in the WebDB into the DBCachePlugin; overriding it using a Date formfield if there is one; this means you need DBCachePlugin > 1.2; added RenderGoogleAdsense; fixed inconsequent parameter naming of categories (was sometimes NAME sometimes CAT) NOTE: you will need to correct preexisting SubjectCategory topics by hand if you upgrade (sorry again); fixed html in RenderBlogComments; |
27 Mar 2006: |
fixed rendering of scroll helpers; using template comments instead of templateonly sections in TopicViews; initialize email fields of comment with USERINFO |
12 Mar 2006: |
better separation of multiple authors: each BlogAuthor page renders a dedicated About info now taken from the new BlogAuthorForm; the sidebar renders the items that belong to the author only using the new Author section in RenderSideBar; unpublished postings are listed per author only; added RenderAuthors to the sidebar - disabled on a single-author blog; added BlogAuthor to BlogLinks so that every author can have his own sidebar as well as share parts with other authors; added AUTHOR to a couple of TopicTunctions to make them author-aware; added HOME parameter to RenderBlogEntriesOfAuthor link to a different topic than the default Main.AuthorName one; added author argument to RECENTCOMMENTS |
11 Mar 2006: |
css fixes to catch up with the recent changes to the PatternSkin; replaced css based way to hide topic forms with VIEW_TEMPLATEs; added comments field to SubjectCategories; replaced CALF{IF(EXACT())} with new IFDEFINED{"" as=""}; hide postings for guests if they are not published yet; browsing postings coming from a SubjectCategory frontpage will propagate down the category so that pagination will be restricted to that category only; added mechanisms to propagate urlparams; componentized the BlogArchive: no need for CALC variables anymore; listing unpublished/unfinished postings in the sidebar for authors; packaging using the BuildContrib; CAUTION on upgrade: you need to add "Set VIEW_TEMPLATE = HiddenViewTemplate in your previous postings, links and categories (sorry) |
03 Mar 2006: |
added easy way to add/remove tags in the BlogEntryForm; tags are displayed using a mini-tag cloud on the blog entry pages to sort them by weight and name (btw. you can weight each tag like mytag:2 ) |
01 Mar 2006: |
grand rework of the BlogArchive; added BlogTags for BlogEntries; added dependency on TWiki:Plugins/TagCloudPlugin; added rel="tag" to links to tags and categories to make technorati happy; reworked category and archive in sidebar using the new DBSTATS tag of the recent DBCachePlugin resulting in a drastic speed improvement on the front pages; removed unused TopicFunctions |
22 Feb 2006: |
tighter control of alias substitution; removed % in RenderBlogEntryButton; |
21 Feb 2006: |
removed dependency on the NatSkin; added dependency on the IfDefinedPlugin; added PatternSkin specific styles for the blog web; lots of minor TopicFunction tweaks |
14 Feb 2006: |
added and diverse rss and atom feeds; added comment syndication per blog entry; added TopicTypes BlogPage and TWikiTopic; added descriptive tooltips to all links; added reverse argument to PREVDOC, NEXTDOC; added header , footer arguments to COUNTCOMMENTS; renamed RELATEDENTRIES to RELATEDTOPICS to handle BlogPages with it too; added a filter argument to RELATEDTOPICS for more flexibility; preliminary BlogUp documentation and screenshots; reworked sidebar generation by removing BlogSideBar and adding; a proper RenderSideBar TopicFunction for it; added WebButtons to navigate inside the blog application; added nice rss feed icons everywhere; added scroll helper to blog entries (need more); moved most of the descriptive text in BlogAbout into a BlogHelpText and reuse the BlogAbout for a free-form "About" page that is added to the WebButtons; speed improvements rendering the front page by simplifying the navigation renderer; added a dedicated TopicFunction to render http-equivs, i.e. to list the feeds; added w3c validation button to the TWikiWorkbench; added example WebAggregation by rendering own feeds using the HeadlinesPlugin; added dependency to TWiki:Plugins/FilterPlugin for the FORMATLIST tag; unified redundant navigation renderer; improved admin tools using twisties; postings are owned by the author by default now; fixed print view to popup the print dialogue |
30 Jan 2006: |
replaced NOPs with STARSECTIONs; fixed customized search view |
27 Jan 2006: |
added permalink tooltips ; nicer autor and admin buttons; renamed SECTIONs to STARTSECTIONs; highlight current TopicFunction in sidebar list; added button to easily w3c validate a TopicFunction; lots of w3c fixes, mostly superfluous <p>s in the wrong place; css improvements |
24 Jan 2006: |
Initial version |
TWiki Dependency: |
$TWiki::Plugins::VERSION 1.1 |
Perl Version: |
5.8 |
Benchmarks: |
GoodStyle nn%, FormattedSearch nn%, BlogPlugin nn% |
Plugin Home: |
TWiki:Plugins/BlogPlugin |
Feedback: |
TWiki:Plugins/BlogPluginDev |
Appraisal: |
TWiki:Plugins/BlogPluginAppraisal |
--
TWiki:Main.MichaelDaum - 31 Aug 2006