hi,
we've been thinking about this topic a while ago and decided to refactor
PloneGazette to our needs. the result of this refactoring is an
archetypes based newslettertool generated with UML and AGX using nearly
the same features as PG (MaildropHost, ...)
we've added usefull subscriber informations (graduation, salutation,
first/lastname, organisation) and enabled personalization within the
newsletter template.
the newsletter can handle all standard portal_types (wrapped by a
newsletter_typeview_wrapper template which defines the "newsletterlook"
of each used type).
we've made a ATTopic wrapper so you can filter site content with ATTopic
criterions and include the results in your newsletter.
there's also a single ContentReference type where you can "symlink"
existing items into your newsletter. since the newsletter is folderish
you have of course all the folder_contents benefits from plone 2.5 like
sorting, deleting, copy/paste ....
this product is developed for plone 2.5
i will put the source to the collective repository soon but if anybody
is interested in our KNewsletter product right now please send me a mail.
peter
David Bain schrieb:
My initial thought, not claiming to be an expert, would be to consider
refactoring the PloneGazette project.
On 9/11/07, *George Lee* <
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
Hi,
With the fall comes my chance to do a little more programming than the
spring or summer. =) And I'm excited because now I can ask questions on
product-developers to get guidance on the overall idea and framework
for a
product I'm working on -- the list wasn't around a year ago.
I doubt I'd be able to see this all the way through to the end to make a
really polished product a lot of others will use, but I think I can
make a
pretty good version that if other people want, they can take to another
level. But to make it more likely the code is useful, I want to talk
with
folks about it first!
I'm working on a product to create and e-mail newsletters, including
newsletters that compile summaries of different content objects
("Upcoming
Events," "New Job Postings," etc.). I created an old version for
Plone 2.5
last year using Zope 3 views here and there to give some more power and
flexibility to the the newsletters, but it was fairly rough.
I'm taking some inspiration from Constant Contact - when I tried
editing an
e-mail through their interface, it was pretty useable. Basically you
choose
a pre-defined template, which consists of a few different parent
blocks;
within each parent block, you can add different subblocks of predefined
types ("Greeting," "Article," "Coupon," etc.); then you can edit the
settings of a subblock - style, color, main iamge, add regular text,
add
rich text and images and links, etc.
I worked on a rough prototype of this and then afterward thought -
hey, this
reminds me of viewlets. But viewlets were too rigid because of all the
wiring required just to associate viewlet managers with viewlets, on a
site-wide basis rather than per newsletter. Then I thought, this
reminds me
of portlets! And that's where I'm having a lot of fun, using
plone.portlets
to set this up. I have a partial version of the product done that can
display newsletters and allow some editing using the plone.portlets edit
views, so in terms of using plone.portlets a good chunk of that work is
done.
Here's my plan, and some questions. Here's how I imagine a user
adding a
newsletter.
* Initially, for simplicity and also to centralize newsletters since too
many shouldn't be going out all the time to a bunch of the same people,
newsletters are added in a central place. The current plan -- in the
same
way as content rules, have a centralized storage utility at the
Plone Site
root, accessible via plonesite/@@manage-newsletters
* When a newsletter is created, a user decides what template to
use for
it. The newsletter than automatically creates an appropriate number of
"newsletter area" objects, stored in a PersistentMapping. Each
newsletter
area object corresponds to one of the main parent blocks of a
newsletter.
The user assigns portlets to the newsletter areas - with a set
created by
default. The types of portlets available to a newsletter area are
pre-wired.
* The portlets are stored with the help of a portlet manager designed
specifically to keep track of newsletter areas. It took me a while to
understand this, but a portlet manager is not "an object that stores
portlets" - but rather, "an object that can say how to store portlets
associated with different objects." So plone.dashboard1 ,
plone.dashboard2,
plone.dashboard3, and plone.dashboard4 are associated with site-wide
portlet
managers that manage how portlets are assigned to the first, second,
third,
and fourth dashboard columns for different users.
* With different portlet manager renderers, we can make the
newsletters
and portlets appear in different contexts - to view them and edit
them; in a
web version, HTML e-mail version, and text e-mail version. This can
take
advantage of some of the existing views.
* Right now, none of this is done with Archetypes, but a lot of Zope
objects ... an example URL right now is
http://plonesite/++newsletter++events1/++area++header/@@manage-newsletter-portlets
Some example portlets - some inspired by Constant Contact
* Title portlet, whose data would include (1) a logo, and (2)
title text
* Greeting portlet, where a user could choose from a few different
ways of
greeting people (by first name, more formally, or generically)
* A "summary listing" portlet, which would pull up different
summaries of
items based on search criteria (a Smart Folder light; like the Events
portlet or News portlet)
* Article portlet, with a main photo and then article text
* Donate Now portlet, whose data would include PayPal information
* Opt-out portlet, whose data would include a little happytalk and
a link
to opt out of future newsletters
In terms of how newsletters are sent and stored, ideally:
* There would be a way to send test newsletters
* They could look up e-mails in a variety of ways -- from the portal's
member data, from user info stored on the newsletter or the newsletter
storage utility -- and send out individualized or mass e-mails
* They could be archived up on sending by storing a static HTML
version
* A cronjob on the system could be set up to send newsletters out on a
regular basis
So here are some questions:
* What are folks' thoughts on this in general?
* I have seen in a couple of e-mails before that people think
e-mail list
management is a task best left outside of Plone and for Plone to
hook into;
any thoughts on this?
* Does this seem like an appropriate use of plone.portlets? (I
think it's
pretty exciting -- I can also see a similar technique being used to
set up
some flexible templates on a Plone site itself that people could
fill in.)
Are there techniques existing products like CompositePack are using
that
this is duplicating or could learn from?
* Does the idea of centralizing newsletter storage make sense?
* Is it possible to index newsletters in the same way as Archetypes
content, or to wrap newsletters into Archetypes-ish objects down the
line?
Some specific coding questions:
* The GenericSetup handler for portlets.xml automatically chooses to
create a PortalManager instead of allowing an alternative portal manager
(e.g., for one that would have a different method for retrieving the
addable
portlets); it would be great if there was an optional flag for this.
* Also while relying on calls to plone.portlets and plone.app.portlets
code, there are issues where after editing, URL's redirect to things
like
http://plonesite/newsletterevents1/areaheader/... instead of
http://plonesite/++newsletter++events1/++area++header/.
<http://plonesite/++newsletter++events1/++area++header/.>.. I'm
still looking
into how to address this
* How does one distinguish what to put into different packages such as
plone.portlets and plone.app.portlets? Right now I have three packages
communitytechnology.newsletter , communitytechnology.app.newsletter, and
ywasite.newsletterdefinitions (the third being a specific implementation
defining different portlets and newsletters), but I don't know if
the first
two are really a right use of the "app" idea, or how to really
distinguish
what would go in one or the other -- independence from Zope3? From
Plone?
Thanks for any feedback and guidance!
Peace,
George
--
View this message in context:
http://www.nabble.com/Devleoping-a-Product-to-Create-and-E-mail-Newsletters-tf4420534s20094.html#a12608760
Sent from the Product Developers mailing list archive at Nabble.com
<http://Nabble.com>.
_______________________________________________
Product-Developers mailing list
[email protected]
<mailto:[email protected]>
http://lists.plone.org/mailman/listinfo/product-developers
------------------------------------------------------------------------
_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers
_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers