Hi,
I'm Yuki. We are currently designing content personalization module.
In how to personalize contents, we've identified the following approaches and seek input what people would expect / think is useful to them.
1. Template Engine
Personalize contents with template engine. Just like
<% if AudienceType('NewYoker') %>
<!-- Content for NewYoker -->
<% elseif AudienceType('NewComer') %>
<!-- Content for NewComer -->
<% else %>
<!-- Content for OtherUsers -->
<% end %>
Pros: This can provide many kinds of personalizations.
Cons: Hard to use and maintain. If you want to change contents which are personalized, you need to edit the template for that.
2. Widgets / ShortCode
Provide widgets for certain personalization, such as banner rotator.
In banner rotator widget, user can add images with specifing which
image will be shown to certain audience type.
Pros: Easy to use and maintain.
Cons: Area which can be personalized is limited.
3. Full SiteTree / DataObject
We add an column to annotate data object for personalization. This means that having distinct database rows per customization.
For example:
SiteTree Table [Size = 3]
Row1: AudienceTypeA and AudienceTypeB
Row2: AudienceTypeB
Row3: Everyone
SiteTree for AudienceTypeA
Row1, Row3
SiteTree for AudienceTypeB
Row1, Row2, Row3
Pros: Be able to customize overall site
Cons: Hard to maintain, and also hard to implement
Finally, I will introduce some use cases that we assume and my opinion. I thinks there will be some needs for personalizing navigations and banners for visitors. Especially in commercial sites, they would like to personalize banners of sales or products. And in some sites, for example, silverstripe, there are many kind of visitors, such as developers, web administrators, new comers, and so on. And personalizing navigation for each kind of users would be useful. IMHO, I think template engine would be good choice for such personalization. However, this is just my opinion. We are really welcome to any input.
If you needed, you can check overview of this module from the link below.
*Design
And please feel free to ask any question.
Thanks in advance.
Regards,
Yuki