internal package
Foswiki::Plugins::PublishPlugin::BackEnd Abstract base class of back-end modules for PublishPlugin.
This class defines the interface that must be implemented by back end archive generators.
All archives are interfaced to by adding topics, attachments, and (optionally) external resources. The archive is responsible for storing the data at a unique url that can be used in topics to link to that resource.
Errors, warning, and debug info should be logged to the logger.
ClassMethod
new(\%params, $logger) $params
- optional parameter hash, may contain generator-specific options
$logger
- ref to an object that supports logDebug, logWarn, logInfo and logError methods (see Publisher.pm)
ObjectMethod
getReady() Generator has been constructed; perform any appropriate cleanup steps before executing.
Default does nothing.
ClassMethod
param_schema → \%schema ClassMethod
describeParams($template, $sep) → $string ObjectMethod
alreadyPublished( $web, $topic, $date ) → $bool Test if the given topic, which has the given date in the store, has already been published. A true return value will cause the topic to be skipped in this publishing step.
ObjectMethod
getTopicPath($web, $topic) → $path Return the relative path to the topic in the archive - even if it isn't there!
ObjectMethod
addTopic($web, $topic, $text) → $path Add the given topic to the archive and return the relative path to the topic in the archive.
ObjectMethod
getAttachmentPath($web, $topic, $attachment) → $path Return the path to the attachment in the archive - even if it isn't there!
ObjectMethod
addAttachment($web, $topic, $att, $data) → $path Add the given attachment to the archive, and return the relative path to the attachment in the archive.
ObjectMethod
addResource($data [, $ext]) → $path Add the given resource to the archive, and return the relative path to the resource in the archive.
$ext is an optional hint as to the mime type e.g. '.gif'
ObjectMethod
close() → $path Close the archive, and return the path to the completed archive relative to {PublishPlugin}{Dir}