Package org.apache.wiki.plugin

# Class WeblogPlugin

java.lang.Object
org.apache.wiki.plugin.WeblogPlugin

All Implemented Interfaces:
  `ParserStagePlugin`, `Plugin`

public class WeblogPlugin extends Object implements Plugin, ParserStagePlugin

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

%p - Page name

Parameters:

- page - which page is used to do the blog; default is the current page.
- entryFormat - how to display the date on pages, using the J2SE SimpleDateFormat syntax. Defaults to the current locale's DateFormat.LONG format for the date, and current locale's DateFormat.SHORT for the time. Thus, for the US locale this will print dates similar to this: September 4, 2005 11:54 PM
- days - how many days the weblog aggregator should show. If set to "all", shows all pages.
- pageformat - What the entry pages should look like.
- startDate - Date when to start. Format is "ddMMyy."
- maxEntries - How many entries to show at most.
- preview - How many characters of the text to show on the preview page.

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

Fields
Modifier and Type
Field
Description
`static final String`
`ATTR_ISWEBLOG`
The attribute which is stashed to the WikiPage attributes to check if a page is a weblog or not.
`static final String`
`DEFAULT_DATEFORMAT`
The default date format used in the blog entry page names.
`static final String`
`PARAM_ALLOWCOMMENTS`
Parameter name for the allowComments.
`static final String`
`PARAM_DAYS`
Parameter name for the days.
`static final String`
`PARAM_ENTRYFORMAT`
Parameter name for the entryFormat.
`static final String`
`PARAM_MAXENTRIES`
Parameter name for the maxEntries.
`static final String`
`PARAM_PAGE`
Parameter name for the page.
`static final String`
`PARAM_PREVIEW`
Parameter name for the preview.
`static final String`
`PARAM_STARTDATE`
Parameter name for the startDate.

### Fields inherited from interface org.apache.wiki.api.plugin.Plugin

`CORE_PLUGINS_RESOURCEBUNDLE`

## Constructor Summary

Constructors
Constructor
Description
`WeblogPlugin()`

## Method Summary

Modifier and Type
Method
Description
`String`
`execute(Context context, Map<String,String> params)`
`void`
`executeParser(PluginElement element, Context context, Map<String,String> params)`
Mark us as being a real weblog.
`List<Page>`
`findBlogEntries(Engine engine, 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 Details

### 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

### PARAM_PREVIEW

public static final String PARAM_PREVIEW
Parameter name for the preview. Value is `"preview"`.

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 Details

### WeblogPlugin

public WeblogPlugin()

## Method Details

### 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(Context context, Map<String,String> params) throws PluginException

Specified by:
  `execute` in interface `Plugin`
Throws:
  `PluginException`

### findBlogEntries

public List<Page> findBlogEntries(Engine engine, String baseName, Date start, Date end)
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:
  `engine` - Engine 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.

### executeParser

public void executeParser(PluginElement element, Context context, Map<String,String> params)
Mark us as being a real weblog.

Specified by:
  `executeParser` in interface `ParserStagePlugin`