Your SlideShare is downloading. ×
0
EXT:Community  Tymoteusz Motylewski                T3DD12
Tymoteusz MotylewskiAOE mediaWiesbadenTYPO3 & MagentoTwitter: @tmotylMail: t.motylewski@gmail.com
You?!• Have you played around with Community?• What are you interested in?• Do you have Extbase experience?
EXT:Community•   Started around 2008 as pibase extension•   Rewritten during GSoC 2010•   Currently based on Extbase•   Fi...
Where to find it?• Forge:http://forge.typo3.org/projects/show/extension-community• Mailing listhttp://lists.typo3.org/cgi-...
Websites running Community• Caremaid.net            • Ambasadapiekna.pl                 http://www.flickr.com/photos/diese...
Features•   Friends•   Messages•   Wall•   Gallery•   Simple search•   Notification service•   Access control configurable...
Not covered by Community• Registration• Access on a page level• Groups (but planned)
Features - Profile•   View•   Edit•   Delete•   Report bad profile
Features - Messages• Classic view  – Inbox  – Unread  – Sent• Threaded view  – List of conversations  – Whole conversation...
Features – Relation management• Requesting, canceling, confirming  friendship• List of friends• Possible states of the rel...
Features - Wall• Posting messages• Smiles (requires ext. „smile”)• Deleting messages
Features - Gallery• Gallery  – Albums list  – Photos list of one album• Album  – Title  – Cover image  – Privacy settings•...
Features – Notification service• Mail, private message, wall message….• Multiple notifications per event• Easy to use API$...
Features – Notification serviceWant to notify by SMS after receiving private message?   1. Create own notification handler...
Architecture        Architecture
Architecture – Base controller• Base class for all controllers• Resolves requested and requesting user• Access control in ...
Architecture – Access control Types of access for different requests:Requesting    Requested   Are       Access type      ...
Architecture – Access control• On action level• Configured in TS    – Actions are mapped to „resource names”    accessActi...
Roadmap•   Use Ajax wherever possible•   Privacy settings for user properties•   Groups•   Performance tuning•   Notificat...
Workshop tasks• Installing community• Features/roadmap brainstorming• Discussion  – groups handling  – privacy settings• ???
Privacy/access control challenges• Levels  – Action level (MessageController->sendAction)  – Record level e.g. user/ album...
Privacy/access control challenges• Allow user to change his privacy settings• Easy to extend (new models, new  controllers...
Questions?Mail:   t.motylewski@gmail.comTwitter: @tmotyl
Upcoming SlideShare
Loading in...5
×

T3DD12 community extension

2,111

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,111
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "T3DD12 community extension"

  1. 1. EXT:Community Tymoteusz Motylewski T3DD12
  2. 2. Tymoteusz MotylewskiAOE mediaWiesbadenTYPO3 & MagentoTwitter: @tmotylMail: t.motylewski@gmail.com
  3. 3. You?!• Have you played around with Community?• What are you interested in?• Do you have Extbase experience?
  4. 4. EXT:Community• Started around 2008 as pibase extension• Rewritten during GSoC 2010• Currently based on Extbase• Finally stable beta
  5. 5. Where to find it?• Forge:http://forge.typo3.org/projects/show/extension-community• Mailing listhttp://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-communityor news://lists.typo3.org/typo3.projects.community• Git repositorygit://git.typo3.org/TYPO3v4/Extensions/community.git• Gerrit
  6. 6. Websites running Community• Caremaid.net • Ambasadapiekna.pl http://www.flickr.com/photos/dieselbug2007/414348333/
  7. 7. Features• Friends• Messages• Wall• Gallery• Simple search• Notification service• Access control configurable in TS• Easy to extend• Documentation!!!
  8. 8. Not covered by Community• Registration• Access on a page level• Groups (but planned)
  9. 9. Features - Profile• View• Edit• Delete• Report bad profile
  10. 10. Features - Messages• Classic view – Inbox – Unread – Sent• Threaded view – List of conversations – Whole conversation with one user on one page
  11. 11. Features – Relation management• Requesting, canceling, confirming friendship• List of friends• Possible states of the relationship: – New – Confirmed – Rejected
  12. 12. Features - Wall• Posting messages• Smiles (requires ext. „smile”)• Deleting messages
  13. 13. Features - Gallery• Gallery – Albums list – Photos list of one album• Album – Title – Cover image – Privacy settings• Special album with profile pictures
  14. 14. Features – Notification service• Mail, private message, wall message….• Multiple notifications per event• Easy to use API$notification = new Tx_Community_Service_Notification_Notification( relationRequest, $this->requestingUser, $this->requestedUser );$notification->setFoo(„BAR”);$this->notificationService->notify($notification);• Configurable in TSrelationRequest {10 { template = RelationRequest handler = Tx_Community_Service_Notification_MailHandler serverEmail = {$plugin.tx_community.serverEmail}}}
  15. 15. Features – Notification serviceWant to notify by SMS after receiving private message? 1. Create own notification handler which implements Tx_Community_Service_Notification_HandlerInterface - send() method is required e.g. Tx_CommunityLocal_Service_Notification_SmsHandler 2. Add typoscript configuration plugin.tx_community.settings.notification.rules { messageSend { 20 { handler = Tx_CommunityLocal_Service_Notification_SmsHandler } } }
  16. 16. Architecture Architecture
  17. 17. Architecture – Base controller• Base class for all controllers• Resolves requested and requesting user• Access control in initializeAction() – Return nothing if user has no access
  18. 18. Architecture – Access control Types of access for different requests:Requesting Requested Are Access type Notes(logged in) user friendsuserNULL NULL - ACCESS_PUBLIC Public, guest access. No logged in user, no requested (target) user. Used e.g. for “list of 10 newest users”.NULL John - ACCESS_NOBODY Public, guest access, no logged in user. Public, but user specific plugins.Bill John NO ACCESS_OTHER Bill is logged in, but he is not a friend with JohnBill John YES ACCESS_FRIENDJohn John | NULL - Access granted by If requested user is not set, and we default. are logged in, then requestedUser = requestingUser – e.g. we are seeing our own profile
  19. 19. Architecture – Access control• On action level• Configured in TS – Actions are mapped to „resource names” accessActionResourceMap { User { image = profile.image //image action from UserController edit = profile.edit } – Access rules are set for resource names accessRules.friend { profile.image.access = 1 profile.relation.access = 1}
  20. 20. Roadmap• Use Ajax wherever possible• Privacy settings for user properties• Groups• Performance tuning• Notification queue• Advanced search• Standard image sizes defined in TS• Commenting on wall posts
  21. 21. Workshop tasks• Installing community• Features/roadmap brainstorming• Discussion – groups handling – privacy settings• ???
  22. 22. Privacy/access control challenges• Levels – Action level (MessageController->sendAction) – Record level e.g. user/ album – Record property level – $user->email, $user->name• Defaults – Global defaults: deny or allow – Defaults for table/record/property
  23. 23. Privacy/access control challenges• Allow user to change his privacy settings• Easy to extend (new models, new controllers)• Fast• Transparent• Configured in single place• …
  24. 24. Questions?Mail: t.motylewski@gmail.comTwitter: @tmotyl
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×