com.ecyrd.jspwiki.plugin
Class WeblogPlugin

java.lang.Object
  extended by com.ecyrd.jspwiki.plugin.WeblogPlugin
All Implemented Interfaces:
ParserStagePlugin, WikiPlugin

public class WeblogPlugin
extends Object
implements WikiPlugin, ParserStagePlugin

Builds a simple weblog. The pageformat can use the following params:

%p - Page name

Parameters:

The "days" and "startDate" can also be sent in HTTP parameters, and the names are "weblog.days" and "weblog.startDate", respectively.

The weblog plugin also adds an attribute to each page it is on: "weblogplugin.isweblog" is set to "true". This can be used to quickly peruse pages which have weblogs.

Since:
1.9.21

Field Summary
static String ATTR_ISWEBLOG
          The attribute which is stashed to the WikiPage attributes to check if a page is a weblog or not.
static String DEFAULT_DATEFORMAT
          The default date format used in the blog entry page names.
static String PARAM_ALLOWCOMMENTS
          Parameter name for the allowComments.
static String PARAM_DAYS
          Parameter name for the days.
static String PARAM_ENTRYFORMAT
          Parameter name for the entryFormat.
static String PARAM_MAXENTRIES
          Parameter name for the maxEntries.
static String PARAM_PAGE
          Parameter name for the page.
static String PARAM_STARTDATE
          Parameter name for the startDate.
 
Fields inherited from interface com.ecyrd.jspwiki.plugin.WikiPlugin
CORE_PLUGINS_RESOURCEBUNDLE
 
Constructor Summary
WeblogPlugin()
           
 
Method Summary
 String execute(WikiContext context, Map params)
          This is the main entry point for any plugin.
 void executeParser(PluginContent element, WikiContext context, Map params)
          Mark us as being a real weblog.
 List findBlogEntries(PageManager mgr, String baseName, Date start, Date end)
          Attempts to locate all pages that correspond to the blog entry pattern.
static String makeEntryPage(String pageName)
          Return just the basename for entires without date and entry numebr.
static String makeEntryPage(String pageName, String date)
          Returns the entry page without the entry number.
static String makeEntryPage(String pageName, String date, String entryNum)
          Create an entry name based on the blogname, a date, and an entry number.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_DATEFORMAT

public static final String DEFAULT_DATEFORMAT
The default date format used in the blog entry page names.

See Also:
Constant Field Values

PARAM_STARTDATE

public static final String PARAM_STARTDATE
Parameter name for the startDate. Value is "startDate".

See Also:
Constant Field Values

PARAM_ENTRYFORMAT

public static final String PARAM_ENTRYFORMAT
Parameter name for the entryFormat. Value is "entryFormat".

See Also:
Constant Field Values

PARAM_DAYS

public static final String PARAM_DAYS
Parameter name for the days. Value is "days".

See Also:
Constant Field Values

PARAM_ALLOWCOMMENTS

public static final String PARAM_ALLOWCOMMENTS
Parameter name for the allowComments. Value is "allowComments".

See Also:
Constant Field Values

PARAM_MAXENTRIES

public static final String PARAM_MAXENTRIES
Parameter name for the maxEntries. Value is "maxEntries".

See Also:
Constant Field Values

PARAM_PAGE

public static final String PARAM_PAGE
Parameter name for the page. Value is "page".

See Also:
Constant Field Values

ATTR_ISWEBLOG

public static final String ATTR_ISWEBLOG
The attribute which is stashed to the WikiPage attributes to check if a page is a weblog or not. You may check for its presence.

See Also:
Constant Field Values
Constructor Detail

WeblogPlugin

public WeblogPlugin()
Method Detail

makeEntryPage

public static String makeEntryPage(String pageName,
                                   String date,
                                   String entryNum)
Create an entry name based on the blogname, a date, and an entry number.

Parameters:
pageName - Name of the blog
date - The date (in ddMMyy format)
entryNum - The entry number.
Returns:
A formatted page name.

makeEntryPage

public static String makeEntryPage(String pageName)
Return just the basename for entires without date and entry numebr.

Parameters:
pageName - The name of the blog.
Returns:
A formatted name.

makeEntryPage

public static String makeEntryPage(String pageName,
                                   String date)
Returns the entry page without the entry number.

Parameters:
pageName - Blog name.
date - The date.
Returns:
A base name for the blog entries.

execute

public String execute(WikiContext context,
                      Map params)
               throws PluginException
This is the main entry point for any plugin. The parameters are parsed, and a special parameter called "_body" signifies the name of the plugin body, i.e. the part of the plugin that is not a parameter of the form "key=value". This has been separated using an empty line.

Note that it is preferred that the plugin returns XHTML-compliant HTML (i.e. close all tags, use <br /> instead of <br>, etc.

Specified by:
execute in interface WikiPlugin
Parameters:
context - The current WikiContext.
params - A Map which contains key-value pairs. Any parameter that the user has specified on the wiki page will contain String-String parameters, but it is possible that at some future date, JSPWiki will give you other things that are not Strings.
Returns:
HTML, ready to be included into the rendered page.
Throws:
PluginException - In case anything goes wrong.

findBlogEntries

public List findBlogEntries(PageManager mgr,
                            String baseName,
                            Date start,
                            Date end)
                     throws ProviderException
Attempts to locate all pages that correspond to the blog entry pattern. Will only consider the days on the dates; not the hours and minutes.

Parameters:
mgr - A PageManager which is used to get the pages
baseName - The basename (e.g. "Main" if you want "Main_blogentry_xxxx")
start - The date which is the first to be considered
end - The end date which is the last to be considered
Returns:
a list of pages with their FIRST revisions.
Throws:
ProviderException - If something goes wrong

executeParser

public void executeParser(PluginContent element,
                          WikiContext context,
                          Map params)
Mark us as being a real weblog. Method which is executed during parsing.

Specified by:
executeParser in interface ParserStagePlugin
Parameters:
element - The JDOM element which has already been connected to the Document.
context - WikiContext, as usual.
params - Parsed parameters for the plugin.