User – is like WackoWiki User with various rights on some pages all over the WackoWiki installation,
Group – is like WackoWiki Group with various rights on some pages all over the WackoWiki installation,
Community – is like WackoWiki Group with various rights on some pages but limited to pages of a single cluster.
So I guess Community – is not a separate structure but a limited configuration in WackoWiki.
The only differnece of Community from Group is being limited to a single cluster and having Community feed.
source="/ClusterNameFromWhereToTakePagesAsPosts|global|category:CatName1,CatName2,..." – "/ClusterNameFromWhereToTakePagesAsPosts" – set cluster name where to take pages from, "global" to take pages according to "users", "groups", "addwatched", "addchanged", "addcommented" etc. options, "category:CatName1,CatName2,..." – to take pages from categories like keywords to limit feed by some interests
[sort="1|0"] – 1- new on top, 0 – old on top
[prepage="10|all"] – number of posts per feed page (makes pagination of the feed) or "all" to show all posts
[users="UserName1,UserName2,UserName3,..."] – include only pages owned by listed users to feed
[groups="GroupName1,GroupName2,GroupName3,..."] – include only pages owned by users from listed groups to feed
[limitsizeto="1000|all"] – set the maximum number of shown letters to show in feed (or "all" to show all) then give a link to full page. NB: cut text on dot
[addwatched="1|0"] – 1 – add watched pages to the feed for a certain user, 0 – do not add
[addchanged="1|0"] – 1 – add changed pages to the feed for all users, 0 – do not add
[addcommented="1|0"] – 1 – add changed pages to the feed for all users, 0 – do not add
[mychanges="1|0"] – 1 – add changed pages to the feed for a certain user, 0 – do not add
[mycomments="1|0"] – 1 – add changed pages to the feed for a certain user, 0 – do not add
The confidential stuff should be controlled by ACLs on all stages:
1. ACLs for page where we call feed action.
2. ACLs for each post of feed.
Btw, a presonal feed could be made based on watched pages list (to make correspondents feed – one can just watch the root page of some user's feed cluster), or presonal owned pages list, or many other variations based on "users", "groups", "addwatched", "addchanged", "addcommented" etc. options.
All upper mentioned requires no modification of DB.
blog cluster structure [constants | config| user_settings| action| random settings] hard to change later
// TODO: add this as config option to Admin panel
// .date('Y/') – 2011
// .date('Y/').date('m/') – 2011/07 (default)
// .date('Y/').date('m/').date('d/') – 2011/07/14
// .date('Y/').date('W/') – 2011/29
$blog_cluster_structure = date('Y/').date('m/');
Guess we should first implement the features that don't need DB modification and then step to notifications.
What should be done is – RSS and Email notification on new posts in certain feed.
I don't remember exactly how it is done in NPJ. I remember that it does not work properly and was done with multiple requests to the same data that made server work slowly and show the error "server has gone away". So I guess it's not a good example.
The node concept is outdated. Now we got openid, openauth and lots of global auth providers so one does not need to establish his own "homenode" to visit other nodes.
Having regular pages and page clusters is enough for the most applications.
If by "cross referencing" you mean putting ones document to your personal feed or a common group feed – we could let the user mark the existing page with a category for which he has a feed, or watch to add page to personal feed of watched pages.
As for the handlers we'll need some new notification handlers and for the rules maybe a new ACL to prevent page from being marked with a category by some user who is not the owner, or to deny isertion of the certain page in feeds. I think it's more than "read" ACL but less then "comment" ACL, or maybe it's all "read" ACL and we shouldn't make it more complicated with adding any new ACLs.