This package is based on ideas of PloneGazette but is not compatible with the PloneGazette newsletter nor subscribers database.
Apart of similar newsletter products, c.gazette aims to support automated newsletters not based on collections, but on developer defined newsletter providers. Each provider returns a HTML snippet which is added to the newsletter issue in order defined in newsletter settings.
There are two types of newsletter issues:
- manual
- automated
Manual issues are just simple Plone pages with static content sent to defined list of subscribers. Manual newsletter also supports a provider, but it should be mostly used as static text issue of the newsletter. It should be possible to write a "collection provider" which will return list of items return from the collection and inserts this list of items to the newsletter issue.
Automated issues are issued from a cron script or other periodical URL call service. You can define parameters for the automated issues in GazetteFolder settings - like Subject, Body text (prepended to the providers text), ordered list of providers and HTML template, where you can define a CSS, for example. Calling gazette-folder/@@auto-issue browser view will go through all providers and collects HTML for the issue. The issue is created as an object in the gazettefolder. The Gazette issue object contains the HTML text and attached PDF version of the issue (wkhtmltopdf required). There is also @@auto-issue-test view which returns rendered PDF page. Users will always receive a HTML version of the newsletter currently.
Providers are simple utilities providing IGazetteTextProvider interface. There is one method, get_gazette_text, which returns HTML code generated by the provider. __repr__ method of the providers returns string representation of provider name used in the providers vocabulary field.
collective.gazette is using cornerstone.soup package to store the subscriber data.